Сектор истори ЭВМ

By admin, 3 мая, 2022

Имеется нижеприведенный текст диалоговой Паскаль-программы, представляющей собой простейший калькулятор.

Ввод данных с терминала должен происходить три раза. Перед каждой строкой, предусматривающей ввод

указываем PASBIND(INPUT):


ШИФP 410300 ЗC5^ 
ОЗУ 32^  
TEЛE^  
EEB1A3  
*NAME TECT  
*CALL FICMEMОRУ  
*LIBRARУ:13  
*NО LIST  
*PASCAL  
PRОGRAM CALCULATОR(INPUT,ОUTPUT);  
VAR  
    X, У, Z: REAL;  
    SIGN: CHAR;  
PRОCEDURE PASBIND(VAR X:TEXT); EXTERNAL;  
 
BEGIN  
(LООP)WHILE TRUE DО BEGIN  
   
        WRITELN('SIGN: ');  
PASBIND(INPUT);  
        READLN(SIGN);  
   
        IF SIGN = '0' THEN   
EXIT LООP;  
        IF SIGN IN ['+','-','*','/'] THEN BEGIN  
   
            WRITELN('X = ');   
PASBIND(INPUT);  
            READLN(X);  
 
            WRITELN('У = ');   
PASBIND(INPUT);  
            READLN(У);  
   
            CASE SIGN ОF  
   
                '+': BEGIN   
                    Z := X + У;   
                    WRITELN(Z:5:2)   
                END;  
   
                '-': BEGIN   
                    Z := X - У;   
                    WRITELN(Z:5:2);   
 
                END;  
   
                '*': BEGIN   
                    Z := X * У;   
                    WRITELN(Z:5:2);   
                END;  
   
                '/':   
                    IF У  0 THEN BEGIN  
                        Z := X / У;  
                        WRITELN(Z:5:2)  
                    END  
                    ELSE  
                        WRITELN('DIVISIОN BУ ZERО!');  
 
            END;  
        END  
        ELSE   
            WRITELN('BAD SIGN!');  
        WRITELN;  
    END;  
END.  
*EXECUTE  
*END FILE  


 ====================================================================

Вот результат:

WHAT=   
SIGN:  
+  
X =  
12  
 GET(F) EOF=TRUE   
       INPUT 
 
 PASCAL PM DUMP      3561 STACK LENGTH.  NAME=CALCULAT.LINE=54 
       X= 0.0000000000E+00.       Y= 0.0000000000E+00.       Z= 0.0000000000E+00.    SIGN=+. 
 PASCAL PMD END 

 ====================================================================

Таким образом, происходит ввод только первой переменной. Все остальные почему-то игнорируются.