|
Донецкий Национальный Технический Университет
Кафедра геодезии и геоинформатики
Лабораторная работа №9
Тема: «ОРГАНИЗАЦИЯ ЦИКЛОВ И ОБРАБОТКА МАТРИЦ»
Выполнила:
ст.гр.ГКЗ -12а
Зашихина А.В.
Проверил:
Шморгун Е.И.
г.Донецк-2013
Постановка задачи
Вариант 2
В ходе данной лабораторной работы необходимо задав двумерный массив вещественных данных (матрица А(N,N)) реализовать расчет среднего арифметического элементов каждого из нечетных столбцов этой матрицы. Размер матрицы N<=10. Исходные данные задать самостоятельно учитывая формат элементов массива.
Теоретическое введение
Для реализации заданной задачи необходимо использовать описание матрицы. Объявление матрицы и массива приведены ниже:
Массив: Ar = array [1..20] of byte
Матрица: Matr = array [1..20, 1..20] of byte
Как видно из примера матрица – это несколько объединенных массивов. Чтобы просматривать элементы матрицы необходимо реализовать вложенные циклы с определенным числом итераций (это как раз подходит для реализации нашей задачи т. к. в любом случае необходимо просмотреть всю матрицу для корректного решения задачи), для этого необходимо использовать структуру кода:
for i:=1 to n do
for j:=1 to n do
{ выполнение необходимых операций }
Как видно необходимо использовать две переменных для описания элемента массива, что является вполне логичным. Как и прежде используется стандартная подпрограмма модуля CRT – ClrScr необходимая для очистки экрана.
Описание логической структуры программы:
1. Очистка экрана дисплея
2. Ввод размерности массива и проверка на корректность
3. Ввод матрицы
4. Печать матрицы для визуального контроля правильности введенных данных
5. Организация цикла по расчету среднего значения нечетных столбцов и печать в этом же цикле результатов
Алгоритм выполнения задания:
Описание входных данных:
i, j – переменные для адресации элемента массива
n – размерность массива
A – матрица данных для обработки
ch – переменная для получения ответа от пользователя
Описание выходных данных:
sum – сумма элементов нечетного столбца матрицы
Листинг программы
Program Lab4;
Uses crt;
const Nmax = 10;
Type
matrix = array[1..Nmax, 1..Nmax] of real;
Var
A: matrix;
i, j, n: integer;
sum: real;
ch: char;
Begin
ClrScr;
repeat
repeat
Write('Vvedite razmer matrici [1..10]: ');
readln(n)
until (n >= 1) and (n <= 10);
Writeln('Vvedite znachenija matrici A: ');
for i:=1 to n do
for j:=1 to n do
begin
write('A[',i,',',j,']: ');
readln (A[i,j]);
end;
writeln('Ishodnaja matrica:');
for i:=1 to n do
begin
for j:=1 to n do
write(A[i,j]:8:2);
writeln;
end;
readln;
writeln('Srednie znachenija ne4etnih stolbcov');
sum:= 0;
for j:=1 to n do
begin
for i:=1 to n do
if odd(j) then
begin
sum:= sum + A[i,j];
end
else
begin
sum:= 0;
break;
end;
if odd(j) then
write((sum/n):8:2)
else
write(' ')
end;
writeln;
writeln('Povtorin? (Y/N)');
ch:= ReadKey;
until (ch = 'n') or (ch = 'N');
end.
Дата добавления: 2015-09-30; просмотров: 21 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
Протокол о присвоении классов начинающим спортсменам | | | Донецкий Национальный Технический Университет |