Разговорчики в строю

Jan 09, 2022 01:22

Из найденных на диске исходных текстов стандартной математической библиотеки АЛГОЛА-60 (библиотечные процедуры хранились в текстовом виде, по-видимому, в силу каких-то особенностей автора системы, и в кодировке, в точности совпадающей с кодировкой перфокарт, т. е. с битом четности, что было довольно неочевидно при поиске интересностей во всех возможных кодировках), одна содержит довольно забавную диагностику об ошибке. Сейчас в такой манере вычислительные библиотеки с пользователями не общаются.


_REAL _PRОCEDURE ЛАГРАНЖ2(A,Х,У,Х1,Х2,P,П,П1); _REAL Х1,Х2;_INTEGER P,П,П1;_ARRAУ A,Х,У; _BEGIN _REAL S,Z,Z1;_INTEGER I,J,J1,К; _ARRAУ S1[0:20]; _INTEGER Я,Я1; _IF Х2ПРИ ОБРАЩЕНИИ К ПРОЦЕДУРЕ ЛАГРАНЖ2 АРГУМЕНТ=’, ‘E’,Z,‘T’, ‘ВЫШЕЛ ЗА ПРЕДЕЛЫ ТАБЛИЦЫ. РАЗБЕРИСЬ В ЧЕМ ДЕЛО, А Я ПРЕРЫВАЮ СЧЕТ. ДО ВСТРЕЧИ!’); ОUTPUT(‘×’); S:=S/0; М:_IF I≤П-P_THEN J:=I_ELSE J:=П-P; _IF J1>П1-P_THEN J1:=П1-P; Я1:=J1; _FOR Я:= _STEP 1_UNTIL P_DО _BEGIN S:=0; _FOR I:=0_STEP 1_UNTIL P_DО _BEGIN Z:=Z1:=1; _FOR К:=0_STEP 1_UNTIL P_DО _BEGIN _IF К≠I_THEN Z:=Z×(Х1-Х[К+J])/(Х[I+J]-Х[К+J]); _END ; S:=S+У[I+J+(J1-1)×П]×Z;_END ; S1[Я]:=S;J1:=J1+1;_END ; S:=0; _FOR I:=0_STEP 1_UNTIL P_DО _BEGIN Z:=Z1:=1; _FOR К:=0_STEP 1_UNTIL P_DО _BEGIN _IF К≠I_THEN Z:=Z×(Х2-A[К+Я1])/(A[I+Я1]-A[К+Я1]); _END ; S:=S+S1[I]×Z;_END ; ЛАГРАНЖ2:=S; _END

Необходимое примечание: Название процедуры ЛАГРАНЖ2 вряд ли имеет отношение к точке Лагранжа L2, по направлению к которой сейчас летит телескоп имени Уэбба.

This entry was originally posted at https://spamsink.dreamwidth.org/1238339.html. Please comment there using OpenID.

retrocomputing

Previous post Next post
Up