1. Внимательно читаем условие задания. Требуется составить и использовать процедуру, которая считает сумму двух одинаковых чисел. Остальное текстуально относится к самой программе: ввод данных, проверка условия с зацикливанием и вывод.
// PascalABC.NET 3.3, сборка 1599 от 17.12.2017 // Внимание! Если программа не работает, обновите версию!
procedure Strange(a,b:real; var c:real; var flag:boolean); begin flag:=a=b; if flag then c:=a+b end;
begin var a,b,c:real; var f:boolean; while true do begin (a,b):=ReadReal2('Введите пару чисел:'); Strange(a,b,c,f); if f then begin Writeln('Сумма равна ',c); break end else Writeln('Числа не равны') end end.
Пример Введите пару чисел: 2 4.5 Числа не равны Введите пару чисел: 4 4 Сумма равна 8
2. Можно представить, что автор задания не в ладах с русским языком и на самом деле процедура должна сделать все сама, а программа - только вызвать эту процедуру. Тогда решение может быть таким.
procedure Strange2; begin while true do begin var (a,b):=ReadReal2('Введите пару чисел:'); if a=b then begin Writeln('Сумма равна ',a+b); exit end; Writeln('Числа не равны') end end;
begin Strange2 end.
Пример Введите пару чисел: 4.5 4.4 Числа не равны Введите пару чисел: 3.6 3.6 Сумма равна 7.2
Var a,b:array [1..100,1..100] of real; current_row,current_column,rows,columns:integer;
begin readln(rows); readln(columns);
for current_row := 1 to rows do begin writeln(); for current_column := 1 to columns do begin read(a[current_row,current_column]); b[current_row,current_column] :=a [current_row,current_column] / 8; end; end;
for current_row := 1 to rows do begin writeln(); for current_column := 1 to columns do write(b[current_row,current_column]:4, ' '); end; end.
Остальное текстуально относится к самой программе: ввод данных, проверка условия с зацикливанием и вывод.
// PascalABC.NET 3.3, сборка 1599 от 17.12.2017
// Внимание! Если программа не работает, обновите версию!
procedure Strange(a,b:real; var c:real; var flag:boolean);
begin
flag:=a=b;
if flag then c:=a+b
end;
begin
var a,b,c:real;
var f:boolean;
while true do begin
(a,b):=ReadReal2('Введите пару чисел:');
Strange(a,b,c,f);
if f then begin
Writeln('Сумма равна ',c);
break
end
else Writeln('Числа не равны')
end
end.
Пример
Введите пару чисел: 2 4.5
Числа не равны
Введите пару чисел: 4 4
Сумма равна 8
2. Можно представить, что автор задания не в ладах с русским языком и на самом деле процедура должна сделать все сама, а программа - только вызвать эту процедуру. Тогда решение может быть таким.
procedure Strange2;
begin
while true do begin
var (a,b):=ReadReal2('Введите пару чисел:');
if a=b then begin
Writeln('Сумма равна ',a+b);
exit
end;
Writeln('Числа не равны')
end
end;
begin
Strange2
end.
Пример
Введите пару чисел: 4.5 4.4
Числа не равны
Введите пару чисел: 3.6 3.6
Сумма равна 7.2
current_row,current_column,rows,columns:integer;
begin
readln(rows);
readln(columns);
for current_row := 1 to rows do begin
writeln();
for current_column := 1 to columns do begin
read(a[current_row,current_column]);
b[current_row,current_column] :=a [current_row,current_column] / 8;
end;
end;
for current_row := 1 to rows do begin
writeln();
for current_column := 1 to columns do
write(b[current_row,current_column]:4, ' ');
end;
end.