Бесполезное-​воскресное (в субботу): что это?

Аватар пользователя sgerr

Отмаз: этот пост не преследует познавательных, назидательных или исследовательских целей, равно как и не имеет практической пользы. Простое бесполезное развлечение: угадайте, что это (ответ под спойлером)?

 

 

 

        PROGRAM ODD
        INTEGER I        
        DO 100 I=2,20,2
        WRITE(6,*) I
100     CONTINUE
        END
 

 

Авторство: 
Авторская работа / переводика
Комментарий автора: 

Предыдущие бесполезности:

https://aftershock.news/?q=node/914074

Комментарии

Аватар пользователя ДК
ДК(12 лет 1 месяц)

шото типа печати чётных чисел от 2 до 20. похоже на фортран, но какой-то он странный.

Аватар пользователя v.p.
v.p.(12 лет 2 месяца)

название программы улыбнуло ;-)

Аватар пользователя ДК
ДК(12 лет 1 месяц)

это чтобы запутать

Аватар пользователя Александр Мичуринский

Да, фортран (формула транслятор) - первый язык программирования, с которым познакомился в десятом классе тогда, когда машины были ещё большими. Первая программка которую писал был популярный тогда расчет биоритмов.

И да, фортран жив до сих пор. На тех же GPU он, говорят, позволяет более эффективно управлять памятью, чем С++.

Аватар пользователя Олежа
Олежа(9 лет 11 месяцев)

На фортране куча библиотек для питона написана. 

Что программа делает, не понял. Что вот это делает - WRITE(6,*) I - не врубаюсь.

Аватар пользователя Александр Мичуринский

WRITE(6,*) I - бесформатный вывод числа I в устройство (файл) с дескриптором 6, которым, по умолчанию, является "standard output" - консоль.

https://coderoad.ru/28620899/%D0%A0%D0%B0%D0%B7%D0%BD%D0%B8%D1%86%D0%B0-...

Аватар пользователя Олежа
Олежа(9 лет 11 месяцев)

Ужснах. То есть, там написано вывести в консоль целые числа начиная с 2 через 2 и до 20. А сто зачем - DO 100? И вот это сто:

100 CONTINUE

?

Аватар пользователя Александр Мичуринский

100 это метка конца тела цикла,

типа goto 100, что в переводе означает пошел на ...

Аватар пользователя Олежа
Олежа(9 лет 11 месяцев)

Охтыж!  goto -  это зло КМК. Моск ломают такие конструкции, когда программа длинная.

Аватар пользователя Александр Мичуринский

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

for(int I=2; I<=20; I+=2) //100

{

 fprintf(1,"%d\n",I);

} //100

Аватар пользователя Олежа
Олежа(9 лет 11 месяцев)

Ну, вот это я более-менее понял. Я бы и код ТС, может быть, хотя сомнительно, понял, просто забыл, что бывают метки строк. Просто учу питон, чтобы обсчитать одну конкретную модельку касательно моей деятельности, кою регрессия в эксель по человечески расколупать не может. И ещё графичками балуюсь, очень нравится. Не программист вообще, в общем.

Аватар пользователя Лптолик
Лптолик(12 лет 2 месяца)

Для регрессии и графичков -- учите R (https://cran.r-project.org/). Вообще для стат.обработки АР лучше питона, т.к. он для этого создавался. smile1.gif

Аватар пользователя Олежа
Олежа(9 лет 11 месяцев)

R по сравнению с питоном - шняга. Толкового комьюнити нет, описалово зачатошное. От чего падает р-студио под линухом, почитать тупо негде, а он сам ничего не говорит, просто молча падает, и ЧСХ не сохраняет, что было написано. Спасибо хоть синтаксис не мозголомный. Я вообще хотел маленькую нейронку, чтобы аппроксимировать неизвестную мне функцию, и как это реализовать в R?

Аватар пользователя Mc_Aaron
Mc_Aaron(9 лет 9 месяцев)

В нормальном редакторе есть подсветка блоков, фолдинг блоков и комбинация клавиш, которая "мотает" блок от начала к концу и назад.

Ну а если писать код в тетрадке, то немного не так, поскольку люди, разрабатывающие стандарты 9899 и 14882, рекомендуют располагать открывающую скобку всякого операторного блока в конце строки с оператором.

for(;;) { // 100

    ...

} // 100

Да, тип счетчика цикла for опасно делать типом int. Для этого в stddef.h предусмотрен специальный тип size_t.
 

 

Аватар пользователя Александр Мичуринский

Всё так. Просто со времен "структурного программирования" я привык закрывающую скобочку писать строго под открывающей.

Что касается size_t, то да, это отличный тип для счетчика числа операций (переполнить  числом операций 64 бита  в одном цикле удается нечасто).

Но так как С позволяет практически всю программу запихнуть в заголовок цикла c пустым телом

for(a=a1,b=b1,...; ... ; ...) {}

то отрицательные величины переменной цикла иногда могут быть полезны. Типа:

for(int i=0; i>=-10; i--)

{

f(i);

}

Аватар пользователя Bugger
Bugger(8 лет 10 месяцев)

6 во write это номер консоли, на которую идёт вывод переменной *. В данном примере переменная это «I»

Аватар пользователя Александр Мичуринский

второй аргумент во write - ссылка на формат.

Например,

write (*,100) n, (i, a(i), i=1,5)

100 format (1x,i5,100(/,1x,i3,2x,f9.5,:))

* - бесформатный вывод переменной.

Аватар пользователя Олежа
Олежа(9 лет 11 месяцев)

write (*,100) n, (i, a(i), i=1,5)

100 format (1x,i5,100(/,1x,i3,2x,f9.5,:))

Котострофа! Код для терминаторов.

Аватар пользователя Bugger
Bugger(8 лет 10 месяцев)

Ну это ответ на 5-ку:) я же по памяти вспоминал  физико-математическую юность 90-х и отвечал, исходя из условий задачи white(6,*) I

Также мне  казалось, что переопределить формат надо было до начала цикла. Но, 30 лет прошло, могу ошибаться

Аватар пользователя Ильич_08
Ильич_08(8 лет 11 месяцев)

На сколько я помню, 100 Continue не обязательна, достаточно было меточку 100 на операторе вывода поставить. FORTRAN.

Аватар пользователя Bugger
Bugger(8 лет 10 месяцев)

Да вроде нет. Две ссылки на 100 (одна, как в примере на цикл, вторая на формат) не прокатывали - переход был безусловный.

Аватар пользователя sgerr
sgerr(12 лет 10 месяцев)

получишь warning при компиляции. не смертельно, но неаккуратненько.

Аватар пользователя Ильич_08
Ильич_08(8 лет 11 месяцев)

Да, не. Ежели строку "100 Continue" просто убрать и сделать "100 Write (...)", прокатило бы, для этого случая. Continue это "пустой" оператор. Если бы внутри цикла было условное ветвление, ну, например не печатать цифру "8" (IF I=8 GO TO 100), тогда цикл надо было закрыть пустышкой 100 СONTINUE, обойдя печать. Как то так. Спасибо, вспомнил молодость.

Аватар пользователя sgerr
sgerr(12 лет 10 месяцев)

Аватар пользователя Ильич_08
Ильич_08(8 лет 11 месяцев)

Ну, что сказать ... Я на Фортране IV программировал, потом на Фортране 77, может чего и забыл. Не думал, что Фортран ещё жив.

Аватар пользователя Igoris
Igoris(10 лет 11 месяцев)

То что фортран, сразу было понятно.

Остальное лирика)

Аватар пользователя Yana Hazina
Yana Hazina(5 лет 5 месяцев)

а мы платы на фортране разводили.  Эхх было времечко!

 

Аватар пользователя Секретный крановщик

Жуть.. А мы на гетинаксе.

Аватар пользователя Yana Hazina
Yana Hazina(5 лет 5 месяцев)

процесс выглядел примерно так. сначала на перфокартах набивались первичные данные на основе принципиалки

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

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

дальше легко и просто лента вставлялась в магнитофон графопостроителя и графопостроитель рисовал чертеж разведенной платы с  металлизированными отверстиями и контактными площадками

в написании трассировки на фортране мы с коллегами немножко поучаствовали

 

Аватар пользователя Секретный крановщик

Перфокарты и я застал. Но у нас всё было проще - или на макетной гетинаксовой плате паялся рабочий прототип, который потом перерисовывался на полноценную печатку, или на бумажке в квадратик рисовалась печатка, которая опять же проверялась на прототипе. Это было быстрее и практичнее. Потом, конечно, появились всякие буржуйские программы для PC, в которых было работать удобнее, но это уже совсем другая история.

Аватар пользователя ЭллиКо
ЭллиКо(4 года 5 месяцев)

Скармливалось табулятору. Он выдавал полученную сумму по колонкам. Сравниванием с суммой на печатной ленте. Правим неправильно набитое. Еще раз пропускаем, проверяем и сдаем. Верификация изготовленных деталей и цена операции для ИЛ-76. Таким образом обрабатывалась информация по затратам на каждую операцию по изготовлению деталей. 

Аватар пользователя Igoris
Igoris(10 лет 11 месяцев)

Вы точно девушка?

Пошёл варить борщ..

/Перфокарты и перфоленты застал, работал с ними/

Аватар пользователя Александр Мичуринский

>перфоленты застал,

Помню, секретариат как-то поставил входящий штамп на торец рулона перфоленты. Считал рулон. Он размотался, смотался - штампа как не бывало.

Аватар пользователя Igoris
Igoris(10 лет 11 месяцев)

Хе-хе, у нас если был обрыв п/л, то надо было склеивать и печать ставить, емнип.

А работать ней - исключительно вдвоём, никак не меньше.

Хотя, чего греха татить, операторы и по одному работали, народа не хватало на смену. 

Аватар пользователя Yana Hazina
Yana Hazina(5 лет 5 месяцев)

я леди пенсионного возраста! По датам в моих постах могли бы догадаться, молодой человек!

как говорят - Фи, поручик!

 

Аватар пользователя Igoris
Igoris(10 лет 11 месяцев)

Я только в гендерном смысле )

До поручика не дорос, разве что, подпоручик)

Аватар пользователя Скиталец
Скиталец(9 лет 2 недели)

Это у Вас уже продвинутая трассировка. А мы сначала рисовали блок-схему алгоритма (на обратной стороне "распечатки", метра два-три). Выделяли максимально связанный элемент на принципиалке. И понеслась.

Аватар пользователя Скиталец
Скиталец(9 лет 2 недели)

а мы платы на фортране разводили. 

Волновой алгоритм Ли. И целый "дипломат" перфокарт. 

Аватар пользователя ИЮЛь Майский
ИЮЛь Майский(8 лет 9 месяцев)

А -- да -- программка всего лишь печатает первый десяток четных чисел.

А я уж было подумал, что это программа, написанная Скайшипом для обеспечения победы Байдена ...smile1.gif

Аватар пользователя Ivanovich
Ivanovich(12 лет 11 месяцев)

Будучи студентом куражился Фортраном, как хотел. 

в космос летал, моделировал работу микропроцессора Intel 8080  и пр. smile1.gif

Аватар пользователя Александр Мичуринский

а я студентом программы на фортране набивал на перфокартах

(синтаксис как раз под них был заточен, 80 колонок, признак продолжения...)

При необходимости перфокарты вручную редактировали - лишние дырки вырубками заклеивали, недостающие - лезвием вырезали.

Аватар пользователя Олежа
Олежа(9 лет 11 месяцев)

Меня в детсве водили на дополнительное образование ещё при СССР, там стояла списанная с какого-то предприятия машина системы ЕС-1022, кажиццо, и привязанный к ней дисплейный класс с ГДР-овскими черно-зелёными видеотонами, от коих начинала трещать башка через полчаса пяления в них даже у малолетнего долбо******. Ввод-вывод осуществлялся с перфолент или печатной машины с кареткой, как у обычной пишущей машинки, коя прикольно тарабанила в ответ на команды программиста. Нам тогда показывали бейсик...

Аватар пользователя Александр Мичуринский

В ФМШ-18 нам доверили ломать ещё более старую технику - где память была на ферритовых колечках,

откуда пошло выражение "шить память".

Аватар пользователя Олежа
Олежа(9 лет 11 месяцев)

А в институте стояла чумная машина системы СМ с 4 МБ, по моему, оперативной памяти, которая заводилась только если снять кожух и чем-нибудь подтолкнуть кулер охлаждения. Мы на ней считали предел прочности и величину раскрытия трещин в изгибаемой балке. Было жутко интересно. Но в курсовиках мы всё-равно считали всё это на бумаге.

Аватар пользователя Шляхтич Зосуля

См-4... стояла в моей школе. Фмш-542 при мифи.

Эх было время.

 

Аватар пользователя Ильич_08
Ильич_08(8 лет 11 месяцев)

Ошибаетесь, оперативка на СМ-4 была не более 64-128Кбайт, ежели 32КБ то это ферритовые сердешники. Внешний съёмный диск был всего на 1,7МБ. Вот на СМ-1420 опервтивка была побольше, до полумегабайта, так и диски к ней шли на 20МБайт. Тогда ж ни порнухи, ни фотошопа. Сплошные цифирьки. А уж график красивый на АЦПУ вывести, вааще искусство.

Аватар пользователя Шляхтич Зосуля

За давностью лет могу конечно не помнить..

Но был шкаф центрального процессора и пару шкафов памяти. На графопостроителе помню выводили изображения любимых девок.

Аватар пользователя Igoris
Igoris(10 лет 11 месяцев)

Скорее всего так - на СМ-1, памяти было 16Кб (килобайт, Карл!) и диск огромный, на 0,25Мб, ещё магнитная лента (шкаф с лентопротяжным механизмом)

 

Аватар пользователя Скиталец
Скиталец(9 лет 2 недели)

При необходимости перфокарты вручную редактировали

Было дело, но в основном этим занимались те, кто ленился перебить карты на перфораторе. Ещё были самопальные "читалки", которые позволяли прочитать любую набитую перфокарту. Недавно рылся в архивах, до сих пор лежит.

Аватар пользователя Александр Мичуринский

Не ленился. Вручную правили тогда, когда перед зачетом нужно было срочно успеть прогнать программу (в один ящик кидаешь перетянутую резинками колоду перфокарт с щечками из оргстекла, а в другом через некоторое время находишь её с подложенным под резинку листингом АЦПУ),

а комната с перфораторами закрыта до обеда.

Страницы