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
У меня получилось вот что (смотри скриншоты листинга программы и результата работы этой программы): uses Crt; const n = 10; var A: array [1..n] of integer; i: integer; begin ClrScr; Randomize; WriteLn ( ' Massiv I: '); for i:=1 to n do begin A[i] := 1+random(n); Write (A[i]:4); end; WriteLn; WriteLn ( ' Massiv II: '); for i:=1 to n do begin if (A[i] mod 2 =0) then A[i]:=0 else A[i]:=3*A[i]; Write (A[i]:4); end; ReadLn; end.
Для работы в интернете достаточно 4 ГБ оперативной памяти.