Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК_ОАиП.doc
Скачиваний:
18
Добавлен:
01.04.2025
Размер:
5.06 Mб
Скачать

Лабораторная работа №18.

Тема: Разработка алгоритмов и программ методом пошаговой детализации. Обработка двумерных массивов. Организация ввода-вывода с помощью текстовых файлов.

Цель работы: Научиться разрабатывать алгоритмы и программы методом пошаговой детализации.

Средства: ПЭВМ, среда разработки Pascal.

Актуализация опорных знаний

1. Циклический алгоритм.

2. Процедуры и функции.

3. Метод пошаговой детализации.

4. Описание и использование массивов.

5. Особенности использования массивов в качестве параметров в процедурах и функциях.

Пример выполнения задания

Задание: Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой заменить нулями все элементы, расположенные на главной и побочной диагонали матрицы размером 4х4, состоящей из элементов целого типа. Ввод-вывод данных необходимо организовать с помощью текстовых файлов. Основные функции программы оформить в виде процедур и функций.

Решение: Для разработки алгоритма воспользуемся методом пошаговой детализации.

uses crt;

type

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

stroka=string[30];

var

a,c:matr; {исходная матрица и матрица результата}

i,j,m:integer;

procedure vvodmatr(var a:matr;namefile:stroka;var m:integer);

{Чтение матрицы из тестового файла}

var

i,j:integer;

fin:text;

begin

assign(fin,namefile);

reset(fin);

readln(fin,m);

for i:=1 to m do

begin

for j:=1 to m do

read(fin,a[i,j]);

readln(fin);

end;

close(fin);

end;

procedure obrmatr(a:matr;var c:matr;m:integer);

{Обработка матрицы}

var

i,j:integer;

begin

34

for i:=1 to m do

for j:=1 to m do

if (i=j) or (i=m+1-j) then c[i,j]:=0 else c[i,j]:=a[i,j];

end;

procedure vivodmatr(namefile:stroka;a:matr;m:integer);

{Вывод матрицы}

var

i,j:integer;

fout:text;

begin

assign(fout,namefile);

rewrite(fout);

for i:=1 to m do

begin

for j:=1 to m do

write(fout,a[i,j]);

writeln(fout);

end;

close(fout);

end;

begin

clrscr;

vvodmatr(a,'matri.txt',m);

obrmatr(a,c,m);

vivodmatr('matrr.txt',c,m);

end.

Результаты отладки программы

Исходные данные (файл matri.txt):

4

1 2 3 4

5 6 7 8

9 1 2 3

4 5 6 7

результат (файл matrr.txt):

0 2 3 0

5 0 0 8

9 0 0 3

0 5 6 0

Индивидуальные задания.

1. Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой заменить нулями все элементы, расположенные на побочной диагонали матрицы размером 4х4, состоящей из элементов целого типа. Основные функции программы оформить в виде процедур и функций.

2. Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой заменить нулями все элементы, расположенные на главной диагонали и ниже ее матрицы размером 4х4, состоящей из элементов целого типа. Основные функции программы оформить в виде процедур и функций.

3. Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой заменить нулями все элементы, расположенные на главной диагонали и выше ее матрицы размером 4х4, состоящей из элементов целого типа. Основные функции программы оформить в виде процедур и функций.

4. Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой заменить нулями все элементы, расположенные на побочной диагонали и выше ее матрицы размером 4х4, состоящей из элементов целого типа. Основные функции программы оформить в виде процедур и функций.

5. Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой заменить нулями все элементы, расположенные на побочной диагонали и ниже ее матрицы размером 4х4, состоящей из элементов целого типа. Основные функции программы оформить в виде процедур и функций.

6. Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой найти сумму всех элементов, расположенных на побочной диагонали и выше ее матрицы размером 4х4, состоящей из элементов целого типа. Основные функции программы оформить в виде процедур и функций.

7. Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой найти сумму всех элементов, расположенных на побочной диагонали и ниже ее матрицы размером 4х4, состоящей из элементов целого типа. Основные функции программы оформить в виде процедур и функций.

8. Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой найти сумму всех элементов, расположенных на главной диагонали и выше ее матрицы размером 6х6, состоящей из элементов целого типа. Основные функции программы оформить в виде процедур и функций.

9. Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой найти сумму всех элементов, расположенных на главной диагонали и ниже ее матрицы размером 4х4, состоящей из элементов целого типа. Основные функции программы оформить в виде процедур и функций.

10. Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой найти произведение всех элементов, расположенных на побочной диагонали и выше ее матрицы размером 4х4, состоящей из элементов целого типа. Основные функции программы оформить в виде процедур и функций.

11. Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой найти произведение всех элементов, расположенных на побочной диагонали и ниже ее матрицы размером 4х4, состоящей из элементов целого типа Основные функции программы оформить в виде процедур и функций.

12. Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой найти сумму элементов строки, в которой расположен наименьший элемент в матрице размером 4х4, состоящей из элементов целого типа. Основные функции программы оформить в виде процедур и функций.

13. Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой найти произведение всех элементов, расположенных на главной диагонали и ниже ее матрицы размером 4х4, состоящей из элементов целого типа. Основные функции программы оформить в виде процедур и функций.

14. Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой найти произведение всех элементов, расположенных на главной диагонали и выше ее матрицы размером 4х4, состоящей из элементов целого типа. Основные функции программы оформить в виде процедур и функций.

15. Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой найти сумму всех элементов, расположенных ниже побочной диагонали матрицы размером 4х4, состоящей из элементов целого типа. Основные функции программы оформить в виде процедур и функций.

16. Разработать алгоритм методом пошаговой детализации и программу решения задачи, в которой найти сумму всех элементов, расположенных ниже главной диагонали матрицы размером 4х4, состоящей из элементов целого типа. Основные функции программы оформить в виде процедур и функций.