Найти среднее арифметическое первого столбца массива - PascalABC.NET
Формулировка задачи:
Писал прогу, надо было найти сначала среднее арифметическое первого столбца массива, потом среднее арифметическое первых двух столбцов массива, потом первых трёх столбцов массива, надо использовать процедуры, в итоге вот что у меня получилось :
На 4 строчке снизу пишет : Неверное число параметров процедуры. Вопрос, что мне надо исправить в таком случае? Если кто знает, напишите.
Листинг программы
- const n=3;
- type mas=array[1..n,1..n] of real;
- procedure srednie_arifmeticheskie1(A:mas; i,j:integer; var sar1: real);
- begin
- j := 1;
- sar1 := 0;
- for i := 1 to n do
- sar1 := sar1 + A[i, j];
- writeln('Среднее арифметическое в столбце 1', j, ' = ', sar1 / n:0:2);
- end;
- procedure srednie_arifmeticheskie2(A:mas; i,j:integer; var sar1, sar2: real);
- begin
- begin
- j := 1;
- sar1 := 0;
- for i := 1 to n do
- sar1 := sar1 + A[i, j];
- sar1 := sar1 / n;
- end;
- begin
- j := 2;
- sar2 := 0;
- for i := 1 to n do
- sar2 := sar2 + A[i, j];
- sar2 := sar2 / n;
- writeln('Среднее арифметическое в столбце 1 и 2', j, ' = ', ((sar1 + sar2) / 2):0:2);
- end;
- end;
- procedure srednie_arifmeticheskie3(A:mas; i,j:integer; var sar1, sar2, sar3: real);
- begin
- begin
- j := 1;
- sar1 := 0;
- for i := 1 to n do
- sar1 := sar1 + A[i, j];
- sar1 := sar1 / n;
- end;
- begin
- j := 2;
- sar2 := 0;
- for i := 1 to n do
- sar2 := sar2 + A[i, j];
- sar2 := sar2 / n;
- sar2 := (sar1 + sar2) / 2;
- end;
- begin
- j := 3;
- sar3 := 0;
- for i := 1 to n do
- sar3 := sar3 + A[i, j];
- sar3 := sar3 / n;
- writeln('Среднее арифметическое в столбце 1 , 2 и 3', j, ' = ', ((sar1 + sar2 + sar3) / 3):0:2);
- end;
- end;
- var
- A : mas;
- i, j: integer;
- sar1, sar2, sar3: real;
- begin
- for i := 1 to n do
- for j := 1 to n do
- begin
- write('A[', i, ',', j, ']=');
- readln(A[i, j]);
- end;
- sar1 := srednie_arifmeticheskie1(A);
- sar2 := srednie_arifmeticheskie2(A);
- sar3 := srednie_arifmeticheskie3(A);
- end.
Решение задачи: «Найти среднее арифметическое первого столбца массива»
textual
Листинг программы
- const n=3;
- type mas=array[1..n,1..n] of real;
- procedure srednie_arifmeticheskie(A:mas; k:integer; var sar: real);
- var i,j:integer;
- begin
- sar := 0;
- for j:=1 to k do
- for i := 1 to n do
- sar := sar + A[i, j];
- writeln('Среднее арифметическое в столбцах номер 1..',k,'=', sar / (n*k):0:2);
- end;
- var
- A : mas;
- i, j: integer;
- sar: real;
- begin
- for i := 1 to n do
- for j := 1 to n do
- begin
- write('A[', i, ',', j, ']=');
- readln(A[i, j]);
- end;
- srednie_arifmeticheskie(A,1,sar);
- srednie_arifmeticheskie(A,2,sar);
- srednie_arifmeticheskie(A,3,sar);
- end.
Объяснение кода листинга программы
- Объявлены константа
n
равная 3 и тип массиваmas
как одномерный массив размером от 1 до 3 строк и от 1 до 3 столбцов, заполняемый вещественными числами. - Объявлена процедура
srednie_arifmeticheskie
принимающая массивA
, номер столбцаk
и переменнуюsar
типаreal
для хранения суммы элементов столбца. - В процедуре объявлены две переменные
i
иj
для перебора строк и столбцов массива соответственно. - Переменная
sar
инициализируется нулем. - Два вложенных цикла перебирают элементы массива
A
по строкам и столбцам. - Внутри циклов сумма элементов
sar
увеличивается на текущий элемент массиваA[i, j]
. - После завершения циклов выводится среднее арифметическое столбца номер от 1 до
k
включительно, равноеsar / (n*k)
. - Значение среднего арифметического округляется до двух знаков после запятой с помощью функции
:0:2
. - В основной части программы объявлены переменные
A
,i
,j
иsar
типаreal
. - Для заполнения массива
A
используется два вложенных цикла, в которых сначала выводится приглашение для ввода значения элемента массива, затем это значение считывается функциейreadln()
. - После заполнения массива
A
вызывается процедураsrednie_arifmeticheskie
для каждого из трех столбцов с передачей в качестве аргументов номера столбца и переменнойsar
. - Результат вычисления среднего арифметического выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д