- •H 3ttp://vk.Com/pomoshtulgu - создатели этой работы. Отчеты и курсовые на заказ, недорого.
- •2. Задача №2 16
- •3. Задача №3 23
- •Введение
- •1. Задача №1
- •1.1 Содержательное описание задачи
- •1.2 Математическая формулировка задачи
- •1.3 Полное описание численного метода решения
- •1.4 Разработка структур данных, необходимых для решения задачи
- •1.5 Разработка структур алгоритма решения задачи
- •1.6 Текст программы на языке программирования Turbo Pascal 7.0
- •1.7 Тестовый пример
- •1.7.1 Аналитическое решение
- •1.7.2 Решение задачи с использованием разработанного по
- •1.8 Инструкция программисту
- •1.9 Инструкция пользователю
- •2. Задача №2
- •2.1 Описание задачи
- •2.2 Математическая формулировка задачи
- •2.3 Полное описание численного метода решения задачи
- •2.4 Разработка структур данных, необходимых для решения задачи
- •2.5 Разработка структуры алгоритма решения задачи
- •2.6 Текст программы
- •2.7 Тестовый пример
- •2.7.1 Аналитическое решение
- •2.7.2 Решение задачи с использованием разработанного по
- •2.8 Инструкция программисту
- •2.9 Инструкция пользователю
- •3.5 Разработка структуры алгоритма решения задачи
- •3.6 Текст программы на языке программирования Turbo Pascal 7.0
- •3.7 Тестовый пример
- •3.7.1 Аналитическое решение
- •3.7.2 Решение задачи с использованием разработанного по
- •3.8 Инструкция программисту
- •3.9 Инструкция пользователю
3.5 Разработка структуры алгоритма решения задачи
Изначально, стоит рассмотреть, как будет осуществляться ввод размера матрицы и заполнение ее элементов, и их последующая проверка ввода. Размер вводится через переменную целочисленного типа, проверка осуществляется с помощью функции val. Иначе дело обстоит для значений матрицы. Для правильного ввода этих значений необходимо и достаточно использовать циклы с изначально заданным числом итераций, а ячейки в матрице должны быть вещественного типа для создания массовости программы. Ниже составлена схема алгоритма, вычисляющего среднее арифметическое значение элементов матрицы, расположенных слева и справа от двух диагоналей (рис. 13 и рис.14).
24
1
Программа для
вычисления среднего арифметического
значения элементов матрицы, расположенных
слева и справа от двух диагоналей
2
12
3
5
4
6
9
Sum:=0; n:=0;
8
j:=L..L
div 2+2
i:=j+1
to L-j
10
Sum1:=Sum1+W[i,j] n:=n+1;
11
18
17
16
15
14
13
нет
да
да
Рисунок
13 – Ввод размера матрицы и значений
ее элементов, поиск суммы элементов,
находящихся слева от двух диагоналей
25
19
20
21
22
24
18
23
j:=L..L
div 2+2
i:=j-1..L-j+2
Sum2:=Sum2+W[i,j] n:=n+1;
нет
да
Sred:=(Sum2+Sum1)/n
25
26
Рисунок. 14 – Поиск элементов, расположенных справа от двух диагоналей, вычисление среднего значения элементов, расположенных слева и справа от главных диагоналей и последующий вывод этих значений.
26
3.6 Текст программы на языке программирования 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 pr<>0 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 pr<>0 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.
27