Нашлась программа. Что делает, неясно.
Mar. 4th, 2024 07:25 pmНа диске 2148, зона 0417 нашлась целая программа на АЛГОЛе - в кодировке УПП с чётностью, поэтому сразу не заметная:
Она компилируется, и если ей дать на вход какие-то значения, она что-то печатает.
Например, в ответ на
Что это такое было, кто-нибудь понимает? В обычной задаче оптимизации грузоперевозок, вроде, никаких "дефицита" и "хранения" не было.
Что нужно было говорить АЛГОЛу, чтобы он читал текст программы с диска, неизвестно.
Нужно добавить
перед текстом программы, и
после. Открывающая кавычка в первой позиции строки имеет специальное значение для эмулятора, поэтому выше в текст программы в 3 строки добавлены пробелы, отсутствующие в оригинале.
Чтобы программа не печаталась как кирпич, к концам строк нужно добавить символы CR (ctrl-M).
_ВЕ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).
no subject
Date: 2024-03-05 04:09 am (UTC)no subject
Date: 2024-03-05 04:29 am (UTC)no subject
Date: 2024-03-05 04:29 am (UTC)no subject
Date: 2024-03-05 04:40 am (UTC)no subject
Date: 2024-03-05 04:42 am (UTC)