Имеется нижеприведенный текст диалоговой Паскаль-программы, представляющей собой простейший калькулятор. Ввод данных с терминала должен происходить три раза. Перед каждой строкой, предусматривающей ввод указываем 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 ==================================================================== Таким образом, происходит ввод только первой переменной. Все остальные почему-то игнорируются.
- Войдите или зарегистрируйтесь, чтобы оставлять комментарии