Большая проблема в программе Pascal
Здравствуйте.
Нужна ваша помощь.
Дано задание : Составить программу (задание ниже в виде изображений) строго соблюдая указание (использовать процедуру для массива!)
Столкнулся с такой проблемой: вывести измененную "матрицу" (пусть 3 на 3) в виде 3 массивов размерностью 3 не составляет труда, но необходимо найти среднее арифметическое этой матрицы,т.е. требуется получить именно матрицу, например B[i,j]...проблема в том, что используя процедуру замены элементов для массива выходят массивы и работать с этими массивами мы не можем, надеюсь на вашу помощь...
Отойти от требований в задании нельзя...
Вот сама программа:
Так у меня выглядит окно вывода:
Заранее спасибо!
Здравствуйте.
Нужна ваша помощь.
Дано задание : Составить программу (задание ниже в виде изображений) строго соблюдая указание (использовать процедуру для массива!)
Столкнулся с такой проблемой: вывести измененную "матрицу" (пусть 3 на 3) в виде 3 массивов размерностью 3 не составляет труда, но необходимо найти среднее арифметическое этой матрицы,т.е. требуется получить именно матрицу, например B[i,j]...проблема в том, что используя процедуру замены элементов для массива выходят массивы и работать с этими массивами мы не можем, надеюсь на вашу помощь...
Отойти от требований в задании нельзя...
Вот сама программа:
PHP:
Program zam;
Const n=3;
Type mass=array[1..n]of real;
matr=array[1..n,1..n]of real;
Function module(x:real):real;
Begin
module:=abs(x);
end; // написал функцию, функция выводит модуль числа
Function sredarifm(B:matr):real;
var
summ:real;
i,j:integer;
Begin
Summ:=0;
Begin
for i:=1 to n do
for j:=1 to n do
summ:=summ+B[i,j];
end;
sredarifm:=summ/n*n;
end; //функция расчёта среднего арифметического матрицы
Procedure zamena(w:real; var p:mass );
var i,k:integer;
Begin
k:=0;
for i:=1 to n do
if module(p[i])<w then
Begin
k:=k+1;
p[i]:=0;
end;
writeln;
for i:=1 to n do
write(p[i]:0:2,' ');
Write('Число замен в данной строке : ',k);
end; // написал процедуру, считаем количество элементов массива р модули которых больше меньше или равны r,
Var
i,j:integer;
w:real;
A,B:matr;
p,c:mass;
Begin
Write('Введите контрольную величину W : ');
Readln(w);
Write('Заполните матрицу А: ');
for i:=1 to n do
Begin
Write('Введите ',i,' строку : ' );
for j:=1 to n do
Begin
Read(A[i,j]);
p[j]:=(A[i,j]);
write(A[i,j]:0:2,' ');
end;
end;
writeln('Матрица успешно введена');
writeln;
writeln('После замены элементов матрицы А получаем матрицу В: ');
Begin
for i:=1 to n do
Begin
for j:=1 to n do
p[j]:=A[i,j];
zamena(w,p); //здесь у нас выходят 3 массива в столбик, получается матрица
end;
end;
//как получить матрицу B ???
Writeln;
Writeln('Среднее арифметическое полученной матрицы В равно : ', sredarifm(B));
end.
Так у меня выглядит окно вывода:
PHP:
Введите контрольную величину W : 5
Заполните матрицу А: Введите 1 строку : 2 3 6
2.00 3.00 6.00 Введите 2 строку : 5 8 7
5.00 8.00 7.00 Введите 3 строку : 1 0 9
1.00 0.00 9.00 Матрица успешно введена
После замены элементов матрицы А получаем матрицу В:
0.00 0.00 6.00 Число замен в данной строке : 2
5.00 8.00 7.00 Число замен в данной строке : 0
0.00 0.00 9.00 Число замен в данной строке : 2
Среднее арифметическое полученной матрицы В равно : 0
Заранее спасибо!