Читайте также:
|
|
Составить функцию для вычисления среднего арифметического элементов одномерного массива. Использовать эту функцию для формирования массива средних арифметических значений элементов каждой строки матрицы A(m,n), m≤12, n≤11.
program Fun1;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
mMax=12; nMax=11;
type
tStrk=array[1.. nMax] of Real;
tMatr=array[1.. mMax] of tStrk;
tStlb=array[1.. mMax] of Real;
//Функция вычисления среднего арифметического
//элементов одномерного массива
function Sred(const B:tStrk; n:Integer):Real;
var
i:Integer;
begin
Result:=0;
for i:=1 to n do
Result:= Result+B[i];
Result:= Result/n;
end; //конец функции Sred
var
A: tMatr; //Массив исходной матрицы
StrkA: tStrk; //Массив строки матрицы
SredStrkA: tStlb; //Массив средних значений строк матрицы
m,n,i,j:Integer;
begin // РАЗДЕЛ ОПЕРАТОРОВ ПРОГРАММЫ
WriteLn('Введите количество строк и столбцов');
ReadLn(m,n);
WriteLn('Введите матрицу по строкам');
for i:=1 to m do
begin
for j:=1 to n do
Read(a[i,j]);
ReadLn;
end;
//Вычисление средних арифметических
//значений в строках матрицы
for i:=1 to m do
SredStrkA [i]:=Sred(A[i],n); //Обращение к функции
//Вывод матрицы по строкам и правее
//каждой строки - её среднего арифметического
WriteLn('Исходная матрица и средние арифметические');
for i:=1 to m do
begin
for j:=1 to n do
Write(a[i,j]:6:1,' '); //Вывод строки матрицы
//Вывод её среднего арифметического
WriteLn(' ', SredStrkA[i]:6:2);
end;
ReadLn;
end.
Можно поставленную задачу решить и по-другому, если функция должна работать непосредственно с матрицей. Функция в этом случае возвращает сразу сформированный массив средних арифметических.
program Fun1a;
{$APPTYPE CONSOLE}
uses
SysUtils;
const
mMax=12; nMax=11;
type
tStrk=array[1.. nMax] of Real;
tMatr=array[1.. mMax] of tStrk;
tStlb=array[1.. mMax] of Real;
//Функция вычисления среднего арифметического
//элементов строк матрицы
function Sred(const B: tMatr; m,n:Integer):tStlb;
var
i,j:Integer; S:Real;
begin
for i:=1 to m do
begin
S:=0;
for j:=1 to n do
S:= S +B[i,j];
Sred[i]:=S/n
end;
end; //конец функции Sred
var
A: tMatr; //Массив исходной матрицы
SredStrkA: tStlb; //Массив средних значений строк матрицы
m,n,i,j:Integer;
begin // РАЗДЕЛ ОПЕРАТОРОВ ПРОГРАММЫ
WriteLn('Введите количество строк и столбцов');
ReadLn(m,n);
WriteLn('Введите матрицу по строкам');
for i:=1 to m do
begin
for j:=1 to n do
Read(a[i,j]);
ReadLn;
end;
//Вычисление средних арифметических
//значений в строках матрицы
SredStrkA:=Sred(A,m,n);
//Вывод матрицы по строкам и правее
//каждой строки - её среднее арифметическое
WriteLn('Исходная матрица и средние арифметические');
for i:=1 to m do
begin
//Вывод строки матрицы
for j:=1 to n do
Write(a[i,j]:6:1,' ');
//Вывод её среднего арифметического
WriteLn(' ', SredStrkA[i]:6:2);
end;
ReadLn;
end.
Дата добавления: 2015-07-26; просмотров: 72 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Обращение к функции | | | Задания 5.2 для самостоятельной проработки |