Разработка структуры алгоритма решения задачи
Рисунок. 14 — Поиск элементов, расположенных справа от двух диагоналей, вычисление среднего значения элементов, расположенных слева и справа от главных диагоналей и последующий вывод этих значений. Далее текст программы FortMinor на языке программирования IDE Borland Turbo Pascal 7.0, выполняющий вычисление среднего значения элементов, находящихся слева и справа от двух диагоналей. Ниже… Читать ещё >
Разработка структуры алгоритма решения задачи (реферат, курсовая, диплом, контрольная)
Изначально, стоит рассмотреть, как будет осуществляться ввод размера матрицы и заполнение ее элементов, и их последующая проверка ввода. Размер вводится через переменную целочисленного типа, проверка осуществляется с помощью функции val. Иначе дело обстоит для значений матрицы. Для правильного ввода этих значений необходимо и достаточно использовать циклы с изначально заданным числом итераций, а ячейки в матрице должны быть вещественного типа для создания массовости программы.
Рисунок 13 — Ввод размера матрицы и значений ее элементов, поиск суммы элементов, находящихся слева от двух диагоналей.
Рисунок. 14 — Поиск элементов, расположенных справа от двух диагоналей, вычисление среднего значения элементов, расположенных слева и справа от главных диагоналей и последующий вывод этих значений.
Ниже составлена схема алгоритма, вычисляющего среднее арифметическое значение элементов матрицы, расположенных слева и справа от двух диагоналей (рис. 13 и рис.14).
Текст программы на языке программирования Turbo Pascal 7.0
Далее текст программы FortMinor на языке программирования IDE Borland Turbo Pascal 7.0, выполняющий вычисление среднего значения элементов, находящихся слева и справа от двух диагоналей.
Program FortMinor;
Const F=30;
uses crt;
var.
i, j, L, n, pr: integer;
Sum, Sum1, Sum2,Sred: real;
W: array [1.F, 1. F] of real;
str1:string;
begin.
clrscr;
begin.
repeat.
Write ('Введите размер матрицы W, W<', F);
Readln (str1);
val (str1,L, pr);
if pr0 then.
writeln ('Введено неверное значение. Повторите ввод.');
until pr=0;
end;
L:=odd (L);
For i:=1 to L do.
for j:=1 to L do.
begin.
repeat.
Write ('‚Введите элемент W[', i,',', j,']: ');
Readln (str1);
val (str1,W[i, j], pr);
if pr0 then.
writeln ('Введено неверное значение. Повторите ввод.');
until pr=0;
end;
writeln ('Введеная матрица :');
For i:=1 to L do.
begin.
for j:=1 to L do.
begin.
Write (W[i, j]: 4:1);
end;
writeln;
end;
Sum:=0;
n:=0;
For j:=1 to L div 2 do.
for i:=j+1 to L-j do.
begin.
Sum1:=Sum1+W[i, j];
n:=n+1;
end;
For j:=L downto L div 2+2 do.
for i:=j-1 downto L-j+2 do.
begin.
Sum2:=Sum2+W[i, j];
n:=n+1;
end;
Sum:=Sum1+Sum2;
if n>0 then.
begin.
Sred:=Sum/n;
writeln ('Среднее арифметическое значение элементов матрицы W, ');
writeln (' расположенных слева и справа от диагоналей =', Sred:7:3);
end.
else.
begin.
writeln (' Элементов, расположенных слева и справа от диагоналей матрицы W нет…');
Writeln;
Readln.
end;
end.