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

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

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

 

 

 

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

 

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

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

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

Комментарии

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

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

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

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

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

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

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

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

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

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

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

Что программа делает, не понял. Что вот это делает - 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 лет 6 месяцев)

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

100 CONTINUE

?

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

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

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

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

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

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

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

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

{

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

} //100

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

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

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

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

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

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

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

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

Ну а если писать код в тетрадке, то немного не так, поскольку люди, разрабатывающие стандарты 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 лет 5 месяцев)

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

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

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

Например,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Аватар пользователя Yana Hazina
Yana Hazina(4 года 11 месяцев)

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

 

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

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

Аватар пользователя Yana Hazina
Yana Hazina(4 года 11 месяцев)

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

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

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

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

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

 

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

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

Аватар пользователя ЭллиКо
ЭллиКо(4 года 6 дней)

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

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

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

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

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

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

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

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

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

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

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

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

Аватар пользователя Yana Hazina
Yana Hazina(4 года 11 месяцев)

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

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

 

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

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

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

Аватар пользователя Скиталец
Скиталец(8 лет 7 месяцев)

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

Аватар пользователя Скиталец
Скиталец(8 лет 7 месяцев)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Аватар пользователя Шляхтич Зосуля
Шляхтич Зосуля(4 года 8 месяцев)

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

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

 

Комментарий администрации:  
*** "Идите в жопу все и навсегда! Я ЕСТЬ БОГ!" (с) ***
Аватар пользователя Ильич_08
Ильич_08(8 лет 6 месяцев)

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

Аватар пользователя Шляхтич Зосуля
Шляхтич Зосуля(4 года 8 месяцев)

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

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

Комментарий администрации:  
*** "Идите в жопу все и навсегда! Я ЕСТЬ БОГ!" (с) ***
Аватар пользователя Igoris
Igoris(10 лет 6 месяцев)

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

 

Аватар пользователя Скиталец
Скиталец(8 лет 7 месяцев)

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

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

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

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

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

Страницы