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

Страницы работы

Содержание работы

Балтийский Государственный

Технический Университет

«ВоенМех»

имени Д.Ф. Устинова

Отчет

к лабораторной работе по информатике №5

На тему

Процедуры и матрицы

Отчет выполнил студент

Факультета «И»

Суханов Александр

Группа И433

Санкт-Петербург 2003

Лабораторная работа по информатике №5

Тема: Процедуры и матрицы

Цель: Ознакомиться с понятием процедуры и матрицы. Научиться использовать их при решении задач в языке Pascal.

Исходная задача: Дана вещественная матрица V10*15. Выполнить в каждом столбце матрицы следующую перестановку: поменять местами минимальный элемент столбца с первым элементом этого же столбца.

Блок-схема алгоритма:

начало,ввод m, n,false,min:=mass[1,zicl],zicl 1, n,true,poz:=1,mass[zicl2,zicl]<min ,poz:=zicl2,конец,ввод mass,zicl2 1, m,min:=mass[zicl2,zicl],mass[poz,zicl]:=mass[1,zicl],mass[1,zicl]:=min,вывод mass 


Листинг программы, решающей данную задачу:

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) использующая матрицы. Произведенные тесты этой программы позволяют сделать вывод о правильности ее алгоритма и реализации этого алгоритма.

Похожие материалы

Информация о работе