Перенос программы в процедуру - PascalABC.NET
Формулировка задачи:
Перенести программу в процедуру
Решение задачи: «Перенос программы в процедуру»
textual
Листинг программы
procedure progra;
var i:integer;
begin
var a : array [1..10] of Integer;
begin
randomize;
for i:=1 to 10 do a[i]:=random(10);
write('array=',' {');
for i:=1 to 10 do write(a[i]:3);
write(' }');
writeln;
end;
var sum := 0;
foreach var n : Integer in a do sum += n;
var sr := sum / (High(a) - Low(a) + 1);
WriteLn('<', sr, '>');
var n1 := Integer.MaxValue;
var n2 := Integer.MaxValue;
foreach var n : Integer in a do
if abs(sr - n) < abs(sr - n1) then
begin
n2 := n1; n1 := n;
end
else if abs(sr - n) < abs(sr - n2) then
n2 := n;
WriteLn(n1, NewLine, n2);
end;
begin propra(); readln; end.
Объяснение кода листинга программы
В данном коде реализована процедура progra, которая выполняет следующие действия:
- Создает массив
aразмером 10, заполняет его случайными числами от 0 до 9 с помощью функцииrandom. - Выводит на экран содержимое массива
aчерез циклforи функциюwrite. - Вычисляет сумму всех элементов массива
aс помощью циклаforeachи переменныхsumиn. - Находит среднее значение массива
aс помощью выраженияsum / (High(a) - Low(a) + 1). - Находит наименьшее и наибольшее значение массива
aс помощью переменныхn1иn2и циклаforeach. - Сравнивает разницу между средним значением
srи каждым элементом массиваaс помощью условияif. Если разница меньше, чем междуsrиn1, то обновляет значенияn1иn2. - Выводит на экран значения
n1иn2. Пользовательский ввод/вывод в данном коде не используется.