Смотри картинку
Объяснение:
p = 23
s = 0
цикл выполняется пока р > 0
Действия в цикле:
s = s + p mod 10
p = p div 10
p = 23 s = 0 23 > 0 (да)
выполняем цикл
s = s + p mod 10 = 0 + 23 mod 10 = 0 + 3 = 3
p = p div 10 = 23 div 10 = 2
p = 2 s = 3 2 > 0 (да)
выполняем цикл
s = s + p mod 10 = 3 + 2 mod 10 = 3 + 2 = 5
p = p div 10 = 2 div 10 = 0
p = 0 s = 5 0 > 0 (нет)
не выполняем цикл
div - целочисленное деление
mod - остаток от целочисленного деления
2 / 2 = 1 целое + 0 остаток
2 div 2 = 1
2 mod 2 = 0
3 / 2 = 1 целое + 1 остаток
2 div 2 = 1
2 mod 2 = 1
procedure CalcArray (const Ax: array of Integer; var S: Integer; var M: Real); // var в параметрах означает, что переменная используется для возврата значения
var
i, c: Integer;
begin
S := 0;
c := 0;
for i := 0 to High (Ax) do begin
S := S + Ax [i]; // здесь накапливаем сумму элементов
c := c + 1;
end;
M := S / c; // когда найдена сумму, рассчитываем среднеарифметическое
end;
var
A: array [0..4] of Integer; // размерность массивов можно делать любой, но начинаться с 0
B: array [0..14] of Integer;
C: array [0..9] of Integer;
i, s: Integer;
m: Real;
begin
SetConsoleCP (1251);
SetConsoleOutputCP (1251);
Randomize; // инициализация датчика случайных чисел
WriteLn ('Массив 1:');
for i := Low (A) to High (A) do begin
A [i] := Random (10); // заполняем элементы массива случайными значениями
Write (IntToStr (A [i]) + ' '); // выводим их для вызов процедуры
WriteLn; // показываем возвращаемые из функции переменные
WriteLn ('Сумма элементов = ' + IntToStr (s));
WriteLn ('Среднеарифметическое = ' + FloatToStr (m));
WriteLn; // аналогично поступаем с другими массивами
WriteLn ('Массив 2:');
for i := Low (B) to High (B) do begin
B [i] := Random (10);
Write (IntToStr (B [i]) + ' ');
end;
CalcArray (B, s, m);
WriteLn;
WriteLn ('Сумма элементов = ' + IntToStr (s));
WriteLn ('Среднеарифметическое = ' + FloatToStr (m));
WriteLn;
WriteLn ('Массив 3:');
for i := Low (C) to High (C) do begin
C [i] := Random (10);
Write (IntToStr (C [i]) + ' ');
end;
CalcArray (C, s, m);
WriteLn;
WriteLn ('Сумма элементов = ' + IntToStr (s));
WriteLn ('Среднеарифметическое = ' + FloatToStr (m));
end.