Министерство образования Республики Беларусь
Учреждение образования «Гомельский государственный университет имени
Франциска Скорины»
Физический факультет
Кафедра радиофизики и электроники
Отчет
по лабораторной работе № 20
ОБРАБОТКА ДАННЫХ СРЕДСТВАМИ
ЯЗЫКА TURBO PASCAL, МОДУЛИ
Выполнил
студент группы Ф-11 В. Н. Олифенко
Проверил
доцент кафедры общей физики В. В. Свиридова
Гомель 2009
Цель: получить практические навыки работы с информацией с использованием средств Turbo Pascal – модулей.
Задание: Дан двумерный массив, отсортировать его с помощью процедур на выбор по столбцам/строкам всеми простыми методами сортировки, использовать модули для доступа к процедурам.
Модуль:
unit modul;
Interface
type
mas = array[1..20,1..20] of byte;
var
a: mas;
i,j,n,m: byte;
sposob: 1..4;
nevozrast, po_stolb: char;
procedure drob(n,m: byte; var a: mas; nevozrast,po_stolb: char);
procedure drobflag(n,m : byte; var a : mas; nevozrast,po_stolb : char);
procedure vstavka(n,m:byte; var a:mas; nevozrast,po_stolb:char);
procedure obmen(n,m:byte; var a:mas;nevozrast,po_stolb:char);
implementation
uses crt;
procedure drob;
var
k: byte;
buf: byte;
begin
if nevozrast='y' then
if po_stolb='y' then
begin
for k:=1 to m do
for i:=1 to n-1 do
for j:=i to n-1 do
if a[j+1,k]>a[j,k] then
begin
buf:=a[j,k];
a[j,k]:=a[j+1,k];
a[j+1,k]:=buf
end
end
else
begin
for k:=1 to n do
for i:=1 to m-1 do
for j:=i to m-1 do
if a[k,j+1]>a[k,j] then
begin
buf:=a[k,j];
a[k,j]:=a[k,j+1];
a[k,j+1]:=buf
end
end
else
if po_stolb='y' then
begin
for k:=1 to m do
for i:=1 to n-1 do
for j:=i to n-1 do
if a[j+1,k]<a[j,k] then
begin
buf:=a[j,k];
a[j,k]:=a[j+1,k];
a[j+1,k]:=buf
end
end
else
begin
for k:=1 to n do
for i:=1 to m-1 do
for j:=i to m-1 do
if a[k,j+1]<a[k,j] then
begin
buf:=a[k,j];
a[k,j]:=a[k,j+1];
a[k,j+1]:=buf
end
end
end;
procedure drobflag;
var
k, buf : byte;
switch : boolean;
begin
if nevozrast = 'y' then
if po_stolb = 'y' then
begin
for k:=1 to m do
repeat
switch:=false;
for i:=1 to n-1 do
if a[i+1,k]>a[i,k] then
begin
switch:=true;
buf:=a[i + 1,k];
a[i+1,k]:=a[i,k];
a[i,k]:=buf
end
until not switch
end
else
begin
for k:=1 to n do
repeat
switch:=false;
for i:=1 to m-1 do
if a[k,i+1]>a[k,i] then
begin
switch:=true;
buf:=a[k,i + 1];
a[k,i+1]:=a[k,i];
a[k,i]:=buf
end
until not switch
end
else
if po_stolb='y' then
begin
for k:=1 to m do
repeat
switch:=false;
for i:=1 to n-1 do
if a[i+1,k]<a[i,k] then
begin
switch:=true;
buf:=a[i+1,k];
a[i+1,k]:=a[i,k];
a[i,k]:=buf
end
until not switch
end
else
begin
for k:=1 to n do
repeat
switch:=false;
for i:=1 to m-1 do
if a[k,i+1]<a[k,i] then
begin
switch:=true;
buf:=a[k,i+1];
a[k,i+1]:=a[k,i];
a[k,i]:=buf
end
until not switch
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.