Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №6 ТКС-12а (матрицы).doc
Скачиваний:
8
Добавлен:
01.03.2025
Размер:
267 Кб
Скачать
☆

1.4 Пример составления алгоритма и программы на языке Pascal для обработки двумерного массива.

Задание: Дана матрица целых чисел A размером 8х10. Получить массив F1,...,F10, каждый элемент которого равен количеству нулевых элементов в соответствующем столбце матрицы A.

Решение.

Описание массива A выполним в разделе описания типов Type, а описание массива F выполним в разделе описания переменных Var.

Для работы с массивом A сначала необходимо сформировать его элементы. Выполним формирование элементов массива с помощью генератора случайных чисел random. Для обозначения количества строк массива A введем переменную N, а количества столбцов – переменную M. В цикле сразу после формирования элемента массива выполним вывод его на экран.

Далее, поскольку необходимо просматривать элементы матрицы по столбцам, организуем внешний цикл с перебором всех столбцов, а внутренний – с перебором всех строк:

for j:=1 to M do

for i:=1 to N do

При этом перед внутренним циклом выполним обнуление элемента Fj, в который в результате перебора элементов j-го столбца запишется количество нулевых элементов в данном столбце. Во внутреннем цикле будем проверять условие, является ли i-элемент j-го столбца нулевым (Aij=0), и если является, то выполним увеличение Fj на единицу.

После обработки всех элементов матрицы массив F выведем на экран.

1.2.1 Блок-схема алгоритма решения данной задачи выглядит следующим образом:

1.2.2 Текст программы на языке Pascal выглядит следующим образом:

program primer6;

uses crt;

type

matr=array[1..8,1..10] of integer;

var

A:matr;

F:array[1..10] of byte;

i,j,N,M:byte;

Begin

clrscr;

randomize;

N:=8;

M:=10;

writeln('Matrica A:');

for i:=1 to N do

begin

writeln;

for j:=1 to M do

begin

A[i,j]:=random(20)-10;

write(A[i,j]:5);

end;

end;

for j:=1 to M do

begin

F[j]:=0;

for i:=1 to N do

begin

if A[i,j]=0 then F[j]:=F[j]+1;

end;

end;

writeln;

writeln('Matrica F');

for j:=1 to M do

write(F[j]:5);

readkey;

End.

1.2.3 Результаты работы программы:

Matrica A:

7 -4 5 1 7 3 -6 -2 5 5

-7 -8 0 -9 -7 -4 -3 0 7 3

8 2 -5 -8 1 -5 -7 4 7 9

4 5 -7 7 4 8 -7 -2 -8 -3

-2 3 -9 -8 0 -8 -4 5 1 -1

3 4 -2 -2 -8 -5 2 -3 -9 3

2 -9 0 2 -9 -10 5 -6 0 5

-4 2 -2 7 -10 5 -3 -1 7 -6

Matrica F

0 0 2 0 1 0 0 1 1 0

2. Практическая часть

2.1 Требования к выполнению работы:

Составить блок-схему алгоритма и программу для решения индивидуального задания.

Предусмотреть вывод на печать исходных и результирующих матриц, подробных промежуточных и конечных результатов.

Значения элементов матриц задавать либо с помощью генератора случайных чисел random, либо путем ввода с клавиатуры (по выбору студента).

Порядок выполнения работы.

1. Выполнить анализ задания, сформулировать постановку задачи.

2. Составить блок-схему алгоритма.

3. Составить программу на языке Pascal. Предусмотреть ввод исходных данных и вывод результатов на экран.

4. Выполнить проверку работоспособности программы на различных исходных данных.

5. Выполнить анализ полученных результатов.