В чём ошибка этой программы? Она должна запрашивать ввод 2 чисед, а потом вызывать функцию с помомщью которой выведет сумму и разность числа var a,b,c:string; procedure summ(plus:string;minus:string); Begin plus:=a+b; minus:=a+...

В чём ошибка этой программы? Она должна запрашивать ввод 2 чисед, а потом вызывать функцию с помомщью которой выведет сумму и разность числа var a,b,c:string; procedure summ(plus:string;minus:string); Begin plus:=a+b; minus:=a+b; writeln('',plus,''); writeln('',minus,''); end; Begin Writeln('chislo'); Readln(b); Readln(b); summ (Writeln('',plus,'',''minus'') end.
Гость
Ответ(ы) на вопрос:
Гость
В этой программе множество ошибок. 1. В заголовке процедуры procedure summ(plus:string;minus:string); параметры plus и minus описаны, как строки. В теле процедуры обоим параметрам присваивается значение, равное соединению строк a и b, а вовсе не сумма чисел и их разность, как требует условие. 2. Поскольку параметры не имеют описателя var, после выхода из процедуры их исходное значение не изменяется. 3. Операторы Readn(b) дважды выполняют присваивание переменной b, а переменная a значения не получает. 4. Вызов процедуры summ неверен, поскольку вместо пары строковых фактических параметров используется вызов процедуры Writen, что синтаксически неверно.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы