kloun
> ибо меньше не быает
тебя обманули
int _1bitvar : 1;
Fla
>kloun
>> ибо меньше не быает
>тебя обманули
>int _1bitvar : 1;
гыгыгыгы )))))))))) сделай потом sizeof(_1bitvar) и посмотри ))) он вернет 1 (а не 1/8). в ЖЕЛЕЗЕ менше не бывает!!!!!! а уж в языке больше
и вообще эта конструкция работает тока в структурах, для того чтобы одну переменную разбить на несколько ..... пробегись по листингу , и посмотри как из этой структуры выдераються значения......
правка:
и вообще, если ты не заметил - тема юмористическо-развлекательная, и нафиг тут умничать....
Был в конце 80-х такой язык БАРСИК в "Науке и Жизни".
Там была такая конструкция (программа по расчету - действуют ли нас вас модные тогда экстрасенсы и иже с ними):
if (...) then print
"Действуют"
else print
"Не действуют"
nothennoelse print
"На вас никто и ничто не действует".
(Пример реальный. Я через столько лет запомнил ключевое слово nothennoelse... может быть, ошибся. Вы вообще Чумака помните? Как он банки заряжал?)
Еще была в конце одной БАРСИК-программы строка
110 switch off computer and svet v komnate
А как долджно работать это "все равно" ?
И откуда оно это все равно бывает?
Когда бывает все равно?
У нас был как-минимум один язык программирования у которого тип Boolean был изначально тройственным --- Forth. Т.е.
( defined inside standard Forth-83 library -1 constant TRUE 0 constant FALSE ) : sample ( b -- ) DUP TRUE = IF ." TRUE" DROP ELSE FALSE = IF ." FALSE" ELSE ." UNDEF" THEN THEN CR ; TRUE sample ( will print TRUE ) FALSE sample ( will print SAMPLE ) 1 sample ( will print UNDEF ) BYE
X9
ААА!!! Нашел статью! =)
Листинг 4
' Программа "Экстрасенс"
' на языке BArSIC (r - Реальный)
PRINT "Действуют ли на Вас экстрасенсы ?" DO ' начало диалога человека с машиной INPUT "Когда Вы родились (ГГГГ.ММ.ДД)"; D$ IF D$ > "1894.04.01" AND D$<"1995.04.01" THEN EXIT DO PRINT "Вы что, меня за дурочку принимаете?!" PRINT "Повторите ввод!" LOOP ' конец начального диалога, далее процесс расчета D = VAL(RIGHT$(D$,2)) Y = VAL(LEFT$(D$, 4)) P$ = STR$(D * 12 * Y) S = 0: FOR I=1 TO LEN(P$): S=S+VAL(MID$(P$,I,1)): NEXT IF S > 1 + VAL(LEFT$(D$, 2)) THEN ' начало тринативы PRINT "Действуют." ELSE PRINT "Слава Богу, не действуют." NO THEN NO ELSE PRINT "На вас никто и ничто не действует." END IF ' конец тринативы
http://twt.mpei.ac.ru/ochkov/barsic.htm
ААА!!! БАРСИК Рулит! =)
Листинг 7 SWITCH ON COMPUTER ' Включаем компьютер, SWITCH OFF SWET V KOMNATE ' включаем свет в комнате ' Программа поиска простых чисел ' по алгоритму DO-DO-DO (давай-давай-давай) ' на языке BArSIC (r - Рачительный) K=10000: DIM P%(K): P%(1)=2: N=1: I=1 DO ' давай DO ' давай N = N + 2 S = INT(SQR(N)) J = 0 DO ' давай J = J + 1 P = P%(J) LOOP UNTIL P >= S OR N / P=INT(N/P) LOOP UNTIL N / P > INT(N / P) I = I + 1 P%(I) = N LOOP UNTIL I = K SWITCH ON PRINTER ' включаем принтер FOR I = 1 TO K: LPRINT I, P%(I): NEXT SWITCH OFF PRINTER ' выключаем принтер SWITCH ON DISK ' включаем дисковод OPEN "DATA" FOR OUTPUT AS #1 ' открываем файл FOR I = 1 TO K: PRINT #1, I, P%(I): NEXT CLOSE ' закрываем файл SWITCH OFF DISK ' выключаем дисковод SWITCH OFF SWET V KOMNATE ' гасим свет в комнате SWITCH OFF COMPUTER ' выключаем компьютер
По программе 8 отыскиваются первые 10 000 простых чисел. Начинающие программисты, совершенствуя своем мастерство, оптимизируют такую программу так, чтобы они были короче, работали быстрее и чтобы найденные простые числа занимали меньше места в памяти компьютера. Язык Барсик своими операторами SWITCH ON - SWITCH OFF позволяет потренироваться и в экономии электроэнергии, идущей на работу компьютера, его периферии, на освещение рабочего места программиста.
ААА!!! Как мне не хватало вот этого:
Пример 9
В составе любой среды программирования есть инструменты отладки (debuging, дословный перевод с английского - обезжучивание). Эта калька с английского не такая уж бессмысленная. Один из первых компьютеров стал барахлить из-за того, что в его электронных внутренностях запутался таракан, закоротил контакты, обуглился и, как некий связист-камикадзе, замкнул их, внеся тем самым изменение в электронную схему машины.
Если мастер, ремонтируя телевизор, уронит в его недра детальку (a bug - жучок), то он подстилает под него газетку и трясет над ней телеприемником, пока эта деталька, способная вывести телевизор из строя, не выпадет.
Листинг 9 'Исходный текст программы "Календарь" 'на языке BArSIC (r - Реагирующий) INPUT "Год,месяц,день"; Year, Month, Day Month=Month+1 IF Month < 4 THEN Month=Month+12:Year=Year-1 Day=INT(365.25*Year)+INT(30.6001*Month)+Dey SELECT CASE Day-7*INT(Day/7) CASE 0:?"Воскресенье CASE 1:?"Понедельник CASE 2:?"Вторник CASE 3:?"Среда CASE 4:?"Четверг CASE 5:?"Пятница CASE ELSE:?"Субота"'случай 6 ENDS ELECT ' Текст программы после удара по левой стенке дисплея ' и потряхивания дисплея с текстом программы INPUT "Год, месяц, день ";Year, Month, Day Month = Month + 1 ' Вставлены пробелы IF Month < 4 THEN ' Разделены служебные слова Month = Month + 12 Year = Year - 1 END IF ' Выделено плечо неполной альтернативы Day = INT(365.25 * Year) + INT (30.6001 * Month) + Day SELECT CASE Day - 7 * INT(Day / 7 ) CASE 0 ' Выделены заголовки случаев PRINT "Воскресенье" CASE 1 PRINT "Понедельник" CASE 2 PRINT "Вторник" CASE 3 PRINT "Среда" CASE 4 PRINT "Четверг" CASE 5 PRINT "Пятница" CASE 6 ' Ничего другого (ELSE) нет PRINT "Суббота" END SELECT NEWSPAPER ' Подстелили газету для сбора ошибок Dey (Day) Субота (Суббота) ' Ошибка (Исправлено) END NEWSPAPER
На листинге 9 помещен исходный текст программы определения дня недели по дате с двумя "детальками-жучками" (Субота вместо Суббота и Dey вместо Day), а также ее работоспособный вариант. Барсик программа отлаживается так. Исходный текст программы выводится на дисплей, который затем приподнимается и трясется (я не шучу), пока все ошибки не "выпадут" на газету (буфер NEWSPAPER). Программа легче читается и отлаживается, если ее структурные элементы на листинге выделены пробелами от начала строки. Структурируется листинг программы на Барсике легким ударом по левой стенке дисплея. Удар по правой стенке восстанавливает первоначальный текст, который в ОЗУ машины и на диске занимает меньше места. В среде Барсика для получения контекстной подсказки не нужно переводить курсор на участок программы, где находится интересуемая переменная или функция, а затем нажимать клавишу F1. Достаточно постучать по определенному месту стекла дисплея и спросить: "Кто там?". Глядя на знаки вопросов вместо слов PRINT, отмечая отсутствие замыкающих кавычек в названиях дней недели в верхней части листинга 10, можно вспомнить фразу из романа Д.Гранина "Зубр": "Ученый должен быть достаточно ленив, - объяснял мне Зубр. - На этот счет у англичан есть прекрасное правило: не стоит делать того, что все равно сделают немцы." Так вот - не стоит делать того, что все равно сделает среда программирования Барсик - она сама заменит знак вопроса на слово PRINT, поставит кавычки там, где ничего другого стоять не может, отструктурирует текст программы, исправит ошибки и сделает многое другое.
Ты автор этого языка, что ли? :)
Эх 80-е...
Помню еще программу расчета налога по зарплате в "Науке и Жизни". (Но на простом Бейсике). Там при первых двух диапазонах были, как сейчас помню через 20+ лет, комментарии (они по возрастанию зарплат шли):
' Да здравствует профсоюз, запрещающий своим членам устраиваться на такую работу!
' И на такую тоже
...
' "У одних штанов сорок пар и семь комнат, а другим приходится по помойкам пропитание себе
' добывать" - ремарка Полиграфа Полиграфовича Шарикова
' Комментарий, не пропущенный в печать
' внутренним цензором программиста
X9
Жалко что нет... :'( У меня не хватает фантазии. Зато как круто! Стукнул по монитору и весь код сам реструктуризовался! =)
int main() { bool a = false; if ( a == true) { // если правда do_true( ); } else { // если ложь do_false( ); } // если все равно // if (a == true || a == false) do_does_not_matter( ); return 0; }
Тема в архиве.