Балтийский Государственный
Технический Университет
«ВоенМех»
имени Д.Ф. Устинова
Отчет
к лабораторной работе по информатике №5
На тему
Процедуры и матрицы
Отчет выполнил студент
Факультета «И»
Суханов Александр
Группа И433
Санкт-Петербург 2003
Лабораторная работа по информатике №5
Тема: Процедуры и матрицы
Цель: Ознакомиться с понятием процедуры и матрицы. Научиться использовать их при решении задач в языке Pascal.
Исходная задача: Дана вещественная матрица V10*15. Выполнить в каждом столбце матрицы следующую перестановку: поменять местами минимальный элемент столбца с первым элементом этого же столбца.
Блок-схема алгоритма:
Листинг программы, решающей данную задачу:
program lab5;
const m=10; n=15;
type matrix = array [1..m,1..n] of real;
var mass: matrix;
procedure Init (m, n: integer; var mass: matrix); {процедура ввода массива}
var zicl,zicl2: integer;
begin
writeln('Ввод матрицы [',m,'*',n,']: ');
for zicl:=1 to m do
begin
write(zicl,' строка [',n,'] элементов: ');
for zicl2:=1 to n do
if zicl2<n then read(mass[zicl,zicl2])
else readln(mass[zicl,zicl2]);
end;
end;
procedure Count (m, n: integer; var mass: matrix); {процедура обработки матрицы}
var zicl, zicl2, poz: integer;
min: real;
begin
for zicl:=1 to n do
begin
min:=mass[1,zicl];
poz:=1;
for zicl2:=2 to m do
if mass[zicl2,zicl]<min then
begin
poz:=zicl2;
min:=mass[zicl2,zicl];
end;
if poz<>1 then
begin
mass[poz,zicl]:=mass[1,zicl];
mass[1,zicl]:=min;
end;
end;
end;
procedure Finit (m, n: integer; var mass: matrix); {процедура вывода матрицы}
var zicl,zicl2: integer;
begin
for zicl:=1 to m do
begin
for zicl2:=1 to n do
write(mass[zicl,zicl2]:4:0,' ');
writeln;
end;
end;
begin
Init (m, n, mass);
writeln('Вывод исходной матрицы:');
Finit(m, n, mass);
Count (m, n, mass);
writeln('Вывод обработанной матрицы:');
Finit (m, n, mass);
end.
Пояснения к используемым данным:
двумерный массив mass – исходная матрица константы m и n – размеры исходной матрицы процедура Init – процедура ввода матрицы процедура Count – процедура обработки матрица процедура Finit – процедура вывода матрицы переменные zicl и zicl2 – переменные цикла переменная poz – хранит номер строки минимального элемента в текущем столбце
Тестовые данные:
Для уменьшения затрат на ввод данных тесты программы проводились для матрицы 4*5, для этого в разделе описания констант просто менялись значения M и N.
1) A4*5 = 1 2 3 4 5Ответ: A4*5 = 0 0 0 0 5
1 2 3 4 6 1 2 3 4 6
0 0 0 0 5 1 2 3 4 5
2 1 1 1 7 2 1 1 1 7
2) A4*5 = 3 9 3 0 5Ответ: A4*5 = 1 1 3 0 2
1 2 3 4 6 3 2 3 4 6
6 8 4 6 2 6 8 4 6 5
2 1 9 8 7 2 9 9 8 7
Вывод: Мною было изучено понятие процедуры, для закрепления изученного материала была написана программа (lab5.pas) использующая матрицы. Произведенные тесты этой программы позволяют сделать вывод о правильности ее алгоритма и реализации этого алгоритма.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.