Рассмотрим на примере массива язык JS
ECMA 6
Имеется массив
const a = [0, 1, 2, 3, 4, 5];
Как можно получить доступ внутрь массива? Проитерировать его.
Стандартный
for(let i = 0; i < a.length ; i++) console.log(a[i]);
a.forEach(v => console.log(v));
Что мы имеем?
Меньше букв для написания цикла и большее понимание.
Разница?
С цикла forEach нельзя выйти за пределы длины массива, что нам при отладке.
В обычном цикле можно выйти за пределы и получить undefined.
Минусы forEach ?
Ты никак не изменишь элементы массива (?), но это так-же и плюс.
Остальное текстуально относится к самой программе: ввод данных, проверка условия с зацикливанием и вывод.
// 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