ПрограммированиеФорумОбщее

Тройственное условие (2 стр)

Страницы: 1 2
#15
17:22, 2 фев 2009

kloun
> ибо меньше не быает
тебя обманули

int _1bitvar : 1;
#16
17:26, 2 фев 2009

Fla
>kloun
>> ибо меньше не быает
>тебя обманули
>int _1bitvar : 1;

гыгыгыгы ))))))))))  сделай потом sizeof(_1bitvar) и посмотри ))) он вернет 1 (а не 1/8). в ЖЕЛЕЗЕ менше не бывает!!!!!! а уж в языке больше

и вообще эта конструкция работает тока в структурах, для того чтобы одну переменную разбить на несколько ..... пробегись по листингу , и посмотри как из этой структуры выдераються значения......

правка:
и вообще, если ты не заметил - тема юмористическо-развлекательная, и нафиг тут умничать....

#17
1:46, 8 фев 2009

Был в конце 80-х такой язык БАРСИК в "Науке и Жизни".
Там была такая конструкция (программа по расчету - действуют ли нас вас модные тогда экстрасенсы и иже с ними):
if (...) then print
  "Действуют"
else print
  "Не действуют"
nothennoelse print
  "На вас никто и ничто не действует".

(Пример реальный. Я через столько лет запомнил ключевое слово nothennoelse... может быть, ошибся. Вы вообще Чумака помните? Как он банки заряжал?)

Еще была в конце одной БАРСИК-программы строка
110 switch off computer and svet v komnate

#18
4:19, 8 фев 2009

А как долджно работать это "все равно" ?
И откуда оно это все равно бывает?
Когда бывает все равно?

#19
8:19, 8 фев 2009

У нас был как-минимум один язык программирования у которого тип 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
#20
8:51, 8 фев 2009

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 ' конец тринативы
#21
8:57, 8 фев 2009

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 ' выключаем компьютер
#22
8:57, 8 фев 2009

По программе 8 отыскиваются первые 10 000 простых чисел. Начинающие программисты, совершенствуя своем мастерство, оптимизируют такую программу так, чтобы они были короче, работали быстрее и чтобы найденные простые числа занимали меньше места в памяти компьютера. Язык Барсик своими операторами SWITCH ON - SWITCH OFF позволяет потренироваться и в экономии электроэнергии, идущей на работу компьютера, его периферии, на освещение рабочего места программиста.

#23
9:39, 8 фев 2009

ААА!!! Как мне не хватало вот этого:

Пример 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, поставит кавычки там, где ничего другого стоять не может, отструктурирует текст программы, исправит ошибки и сделает многое другое.

#24
22:49, 13 фев 2009

Ты автор этого языка, что ли? :)
Эх 80-е...
Помню еще программу расчета налога по зарплате в "Науке и Жизни". (Но на простом Бейсике). Там при первых двух диапазонах были, как сейчас помню через 20+ лет, комментарии (они по возрастанию зарплат шли):

' Да здравствует профсоюз, запрещающий своим членам устраиваться на такую работу!

' И на такую тоже

...

' "У одних штанов сорок пар и семь комнат, а другим приходится по помойкам пропитание себе
' добывать" - ремарка Полиграфа Полиграфовича Шарикова

' Комментарий, не пропущенный в печать
' внутренним цензором программиста

#25
10:05, 14 фев 2009

X9
Жалко что нет... :'( У меня не хватает фантазии. Зато как круто! Стукнул по монитору и весь код сам реструктуризовался! =)

#26
16:06, 15 фев 2009
int main() {
  
  bool a = false;
  
  if (a == true) {
    // если правда
    do_true();
  } else {
    // если ложь
    do_false();
  }

  // если все равно
  // if (a == true || a == false)
  do_does_not_matter();

  return 0;
}
Страницы: 1 2
ПрограммированиеФорумОбщее

Тема в архиве.