Даны 3 различных массива целых чисел (размер каждого не превышает 15). В каждом массиве...

0 голосов
406 просмотров

Даны 3 различных массива целых чисел (размер каждого не превышает 15). В каждом массиве найти сумму элементов и среднеарифметическое значениеНаписать программу с использованием функций.


Информатика (15 баллов) | 406 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

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]) + ' ');   // выводим их для просмотра

 end;

 CalcArray (A, s, m);   // вызов процедуры

 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.


(6.4k баллов)
0

Строка 25 - ошибка (CalcArray (A,s,m);

0

Текст ошибки можете написать?

0

Ошибка в том, что ты в процедуру CalcArray передаёшь параметр A как статический массив, а в объявлении функции динамический.

0

rykipyro: Если вопрос еще актуален - откройте ответ для корректировки - исправлю.

0

Изменил программу, чтобы работала на ранних версиях Pascal