spamsink: (Default)
[personal profile] spamsink posting in [community profile] besm6
На диске 2148, зона 0417 нашлась целая программа на АЛГОЛе - в кодировке УПП с чётностью, поэтому сразу не заметная:

_ВЕGIN _RЕАL СХР,ND,‾Т,NЕ;_INТЕGЕR ‾N,М;
INРUТ(СХР,ND,‾Т,NЕ,‾N,М);
_ВЕGIN _RЕАL СD,СХ,F1,Р1,В1;_INТЕGЕR Т,I;_АRRАУ Н[1:М,1:‾N];
_RЕАL _АRRАУ В,Х,‾Н[0:М],NН,МС,МСD,МСХ,Р2[1:М],С[1:‾N];
_INТЕGЕR У1;
INРUТ(Н,С,В);
У1:=1943;
В1:=В[0];Р1:=0;_FОR Т:=1_SТЕР 1_UNТIL М_DО Р2[Т]:=0;
_ВЕGIN _RЕАL _РRОСЕDURЕ ‾R‾А‾N‾D;_ВЕGIN У1:=3125×У1;
У1:=У1-(У1÷67108864)×67108864;‾R‾А‾N‾D:=У1/67108864_ЕND ;
_ВЕGIN _РRОСЕDURЕ ‾А1(Х,S,F);_VАLUЕ Х,S;_RЕАL Х;_INТЕGЕR S;
_ВЕGIN _INТЕGЕR К,L,J,R,R1,I;_RЕАL  Р,U;
_RЕАL NМ,NУ,NF;_INТЕGЕR _АRRАУ РЕRМ[1:2×‾N];_АRRАУ ‾Ф[1:2×‾N];
_RЕАL NS;I:=1;F:=NМ:=0;СD:=СХ:=0;
2:_FОR К:=1_SТЕР 1_UNТIL ‾N_DО РЕRМ[К]:=К;_FОR К:=‾N_SТЕР -1
_UNТIL 1_DО _ВЕGIN L:=‾R‾А‾N‾D×К+.5;J:=РЕRМ[L];РЕRМ[L]:=РЕRМ[К];
РЕRМ[К]:=J_ЕND К;_FОR К:=1_SТЕР 1_UNТIL ‾N_DО РЕRМ[‾N+К]:=РЕRМ[К];
Р:=Х;_FОR J:=1_SТЕР 1_UNТIL ‾N_DО Р:=Р-Н[S,J];NУ:=Х×(‾N+1);
‾Ф[1]:=Н[S,РЕRМ[1]];_FОR J:=2_SТЕР 1_UNТIL 2×‾N_DО ‾Ф[J]:=
‾Ф[J-1]+Н[S,РЕRМ[J]];_FОR R:=1_SТЕР 1_UNТIL ‾N_DО _ВЕGIN J:=
‾R‾А‾N‾D×‾N+.5;Р:=‾Ф[J+R]-‾Ф[J];_IF (Х-Р)>0_ТНЕN NУ:=NУ+(Х-Р)×
(‾N+1-R)_ЕND R;NУ:=NУ×СХР×‾Т/(‾N+2)/(‾N+1);NF:=0;_FОR R1:=
1_SТЕР 1_UNТIL ‾N_DО _ВЕGIN _FОR К:=1_SТЕР 1_UNТIL ‾N_DО РЕRМ[К]:=
К;_FОR К:=‾N_SТЕР -1_UNТIL 1_DО _ВЕGIN L:=‾R‾А‾N‾D×К+.5;J:=
РЕRМ[L];РЕRМ[L]:=РЕRМ[К];РЕRМ[К]:=J_ЕND К;_FОR К:=1_SТЕР 1
_UNТIL ‾N_DО РЕRМ[‾N+К]:=РЕRМ[К];U:=-Х;_IF R1>1_ТНЕN _FОR R:=1
_SТЕР 1_UNТIL R1-1_DО U:=U+Н[S,РЕRМ[R]];_FОR R:=1_SТЕР 1_UNТIL
‾N_DО _ВЕGIN U:=U-Н[S,РЕRМ[К]]+Н[S,РЕRМ[R+R1-1]];_IF U<0∧
Н[S,РЕRМ[R]]+U>0_ТНЕN NF:=NF+(Н[S,РЕRМ[R]]+U)×(‾N+2-R1)×(‾N+1-R1)×
С[РЕRМ[R]]/‾N;_IF U>0_ТНЕN NF:=NF+Н[S,РЕRМ[R]]×(‾N+2-R1)×(‾N+1-R1)×
С[РЕRМ[R1]]/‾N_ЕND R_ЕND R1;NF:=NF×‾Т/2/(‾N+2)/(‾N+1);F:=
F+NУ+NF;СХ:=СХ+NУ;СD:=СD+NF;NМ:=NМ+(NF+NУ)↑2;_IF I>10
_ТНЕN _ВЕGIN NS:=NМ/I-(F/I)↑2;
_IF I-(9×NS)/(ND×F/I)↑2>0_ТНЕN _GО
_ТО 1_ЕND ;I:=I+1;_GО _ТО 2;1:F:=F/I;СD:=СD/I;СХ:=СХ/I
_ЕND РRОСЕDURЕ ‾А1;
_РRОСЕDURЕ ‾G(F,А,В,NЕ,МIN,Z);_VАLUЕ А,В,NЕ;_RЕАL А,В,NЕ,МIN,Z;
_RЕАL _РRОСЕDURЕ F;_ВЕGIN _RЕАL Х1,Х2,У1,У2;Х2:=А+0.62×(В-А);Х1:=
А+0.38×(В-А);У1:=F(Х1);У2:=F(Х2);‾А:_IF У2>У1_ТНЕN _ВЕGIN В:=Х2;
Х2:=Х1;У2:=У1;Х1:=А+0.38×(В-А);У1:=F(Х1)_ЕND _ЕLSЕ
_ВЕGIN А:=Х1;Х1:=Х2;У1:=У2;Х2:=А+0.62×(В-А);У2:=F(Х2)_ЕND ;
_IF (В-А)≥2.5×NЕ_ТНЕN _GО _ТО ‾А;Z:=Х1;МIN:=У1;_ЕND РRОСЕDURЕ ‾G;
_RЕАL _РRОСЕDURЕ F2(У);_VАLUЕ У;_RЕАL У;_ВЕGIN _RЕАL F1;‾А1(У,1,F1);F2:=F1
_ЕND F2;‾G(F2,0,В[0],NЕ,МС[1],Х[0]);_FОR Т:=1_SТЕР 1_UNТIL
М-1_DО  _ВЕGIN _RЕАL _РRОСЕDURЕ F(У);_VАLUЕ У;_RЕАL У;_ВЕGIN
_RЕАL F1;‾А1(У,Т,F1);F:=F1+‾Т×СХР×У/2_ЕND  РRОСЕDURЕ F;
_FОR I:=1_SТЕР 1_UNТIL ‾N_DО Р2[Т]:=Р2[Т]+Н[Т,I];Р1:=Р1+Р2[Т];
В1:=В1+В[Т];‾G(F,0,В1-Р1,NЕ,МС[Т],Х[Т]);
ОUТРUТ(‘/’,‘Т’,‘Х=’,‘Е’,Х,‘Т’,‘Т=’,‘Е’,Т);
_ЕND Т;
Х[М]:=0;
ОUТРUТ(‘/’,‘Т’,‘МС=’,‘Е’,МС,‘Т’,‘Х*’,‘Е’,Х);
‾Н[0]:=0;Х[М]:=0;_FОR Т:=1_SТЕР 1_UNТIL М_DО ‾Н[Т]:=Х[Т]-Х[Т-1]+
Р2[I];_FОR Т:=1_SТЕР 1_UNТIL М_DО _ВЕGIN ‾А1(Х[Т-1],Т,F1);МС[Т]:=
F1+‾Т×СХР×Х[Т]/2;МСD[Т]:=СD;МСХ[Т]:=СХ+
‾Т×СХР×Х[Т]/2_ЕND Т;
ОUТРUТ(‘/’,‘Т’,‘ОПТИМАЛЬНЫЙНАЧАЛЬНЫЙЗАПАС’,‘Е’,Х[0],‘/’,‘Т’,‘ОПТИМАЛЬНЫЕПОСТАВКИ’,‘Е’,‾Н);
ОUТРUТ(‘/’,‘Т’,‘МС=’,‘Е’,МС,‘Т’,‘МСD=’,‘Е’,МСD,‘Т’,
‘МСХ=’,‘Е’,МСХ);
_ВЕGIN _RЕАL ЕМС,ЕСD,ЕСХ;ЕМС:=МС[1];ЕСD:=МСD[1];ЕСХ:=МСХ[1];
_FОR I:=2_SТЕР 1_UNТIL М_DО _ВЕGIN ЕМС:=ЕМС+МС[I];ЕСD:=ЕСD+МСD[I];
ЕСХ:=ЕСХ+МСХ[I]_ЕND I;
ОUТРUТ(‘/’,‘Т’,‘ИЗДЕРЖКИ=’,‘Е’,ЕМС,‘15В’,
‘Т’,‘ДЕФИЦИТ=’,‘Е’,ЕСD,‘15В’,
‘Т’,‘ХРАНЕНИЕ=’,‘Е’,ЕСХ);
_ЕND _ЕND _ЕND
_ЕND
_ЕND


Она компилируется, и если ей дать на вход какие-то значения, она что-то печатает.
Например, в ответ на
1; 2; 3; 4; 2; 2;
1; 2; 4; 8;
3; 5;
7;
она отвечает
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

          Х= .9424000000e+00   .7068000000e+00  <<<<<<<<<<<<<<<<<<Т= .1000000000e+01
          МС= .2048418182e+01  <<<<<<<<<<<<<<<<<<Х* .9424000000e+00   .7068000000e+00   .0000000000e+00
          ОПТИМАЛЬНЫЙ НАЧАЛЬНЫЙ ЗАПАС .9424000000e+00
          ОПТИМАЛЬНЫЕ ПОСТАВКИ .0000000000e+00   .7644000000e+00   .2932000000e+00
          МС= .2178709091e+01   .1060200000e+01  МСD= .1975272727e+00   .0000000000e+00  МСХ= .1981181818e+01
           .1060200000e+01
          ИЗДЕРЖКИ= .3238909091e+01                 ДЕФИЦИТ= .1975272727e+00                 ХРАНЕНИЕ= .3041381818e+01

                                                                                                                             1
――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

Что это такое было, кто-нибудь понимает? В обычной задаче оптимизации грузоперевозок, вроде, никаких "дефицита" и "хранения" не было.
Что нужно было говорить АЛГОЛу, чтобы он читал текст программы с диска, неизвестно.

Нужно добавить
ШИФР 419999^
ФИЗО МБ21^
ТРАК 32^
ЛИСТ 0-27^
ВХОД 37^
ВРЕМ 240^
АЦПУ 3^
ЛЕНТ 57(2148-300)^
ЛЕНТ 30(1С)^
РОСП 0^
АВОС^
СПЕЦ^
Е
В 37
К 00 010 0042
К 15 24 00100
К 00 066 0011 00 000 0100
С 0000 0000 0057 0002
EВ1A3
$АЛГО

перед текстом программы, и
$2
1; 2; 3; 4; 2; 2;
1; 2; 4; 8;
3; 5;
7;
``````
ЕКОНЕЦ


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

Чтобы программа не печаталась как кирпич, к концам строк нужно добавить символы CR (ctrl-M).

Date: 2024-03-05 04:29 am (UTC)
vak: (Default)
From: [personal profile] vak
Прикольно! В студенческое время на олимпиадах по программированию встречались задачки типа "что делает данная программа". Можно попробовать аккуратно переделать на Си, и потом мучить исходник до окончательного просветления.

Date: 2024-03-05 04:29 am (UTC)
lxe: (Default)
From: [personal profile] lxe
Межотраслевой баланс какой-нибудь?

Profile

Сообщество любителей БЭСМ-6

December 2025

S M T W T F S
 123456
78910111213
14151617181920
21222324252627
282930 31   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 13th, 2026 06:32 pm
Powered by Dreamwidth Studios