Вы находитесь на странице: 1из 9

Министерство образования Республики Беларусь

Учреждение образования
«Гомельский государственный университет
имени Франциска Скорины»

Факультет физики и информационных технологий

Кафедра радиофизики и электроники

ИСПОЛЬЗОВАНИЕ ПОДПРОГРАММ
Отчёт по лабораторной работе №14

Выполнил:
Студент группы ФЭ-11 И.А. Рыжков

Проверила:
канд. физ.-мат. наук,
доцент кафедры общей физики В.В. Свиридова

Гомель 2020
Вариант 13
Цель:

1) Оформите в виде процедуры следующие задачи:


1. ввод двумерного массива;
2. вывод двумерного массива;
3. сортировка двумерного массива по строкам и по столбцам (любым
методом);
4. поиск максимального числа в массиве;
5. поиск минимального числа в массиве;
Код:
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils,
Windows;
type mas=array[1..20,1..20] of integer;
var a:mas;
label l,l1,l11,l3,l32,c1;
var f,f1,f3,f31,f32,m,n:integer;
procedure enterkey(var a:mas;n,m:integer);
var i,j:integer;
begin
for i:=1 to m do
for j:=1 to n do
begin
write('a[',i,',',j,']=');
Readln(a[i,j]);
end;
end;
procedure enterrandom(var a:mas;n,m:integer);
var i,j:integer;
begin
Randomize;
for i:=1 to m do
for j:=1 to n do
begin
a[i,j]:=Random(99)+1;
end;
end;
procedure show(a:mas;var m,n:integer);
var i,j:integer;
begin
for i:=1 to m do
begin;
for j:=1 to n do
Write(a[i,j],' ');
Writeln;
end;
end;
procedure max(a:mas;var m,n:integer);
var i,j,mx:integer;
begin
begin
mx:=a[1,1];
for i:=1 to m do
for j:=1 to n do
if mx<a[i,j] then mx:=a[i,j];
Writeln('Максимальный элемент массива ',mx);
end;
end;
procedure min(a:mas;var m,n:integer);
var i,j,mn:integer;
begin
begin
mn:=a[1,1];
for i:=1 to m do
for j:=1 to n do
if mn>a[i,j] then mn:=a[i,j];
Writeln('Максимальный элемент массива ',mn);
end;
end;
procedure strokaup(var a:mas;var m,n:integer);
var i,j,b,k:integer;
begin
for i:=1 to m do
for j:=1 to n-1 do
for k:=j+1 to n do
if a[i,j]>a[i,k] then
begin
b:=a[i,j];
a[i,j]:=a[i,k];
a[i,k]:=b;
end;
end;
procedure strokadown(var a:mas;var m,n:integer);
var i,j,b,k:integer;
begin
for i:=1 to m do
for j:=1 to n-1 do
for k:=j+1 to n do
if a[i,j]<a[i,k] then
begin
b:=a[i,j];
a[i,j]:=a[i,k];
a[i,k]:=b;
end;
end;
procedure stolbecup(var a:mas;var m,n:integer);
var i,j,b,k:integer;
begin
for j:=1 to n do
for i:=1 to m-1 do
for k:=i+1 to m do
if a[i,j]>a[k,j] then
begin
b:=a[i,j];
a[i,j]:=a[k,j];
a[k,j]:=b;
end;
end;
procedure stolbecdown(var a:mas;var m,n:integer);
var i,j,b,k:integer;
begin
for j:=1 to n do
for i:=1 to m-1 do
for k:=i+1 to m do
if a[i,j]<a[k,j] then
begin
b:=a[i,j];
a[i,j]:=a[k,j];
a[k,j]:=b;
end;
end;
begin
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
l:
Writeln('Выберите задачу');
writeln('1. ввод двумерного массива');
writeln('2. вывод двумерного массива');
writeln('3. сортировка двумерного массива по строкам и по столбцам');
writeln('4. поиск максимального числа в массиве');
writeln('5. поиск минимального числа в массиве');
Writeln('6. Выход');
Readln(f);
case f of
1:begin
l1:
writeln('Введите размерность массива');
readln(m,n);
if (m<=0) and (n<=0) then begin Writeln('Введите размерность правильно'); goto l1
end;
l11:Writeln('Выберите варинат ввода');
Writeln('1.C клавиатуры');
Writeln('2.Рандомно');
Readln(f1);
case f1 of
1:begin
enterkey(a,m,n);
end;
2:begin enterrandom(a,m,n);end;
else begin Writeln('Выберите один из предложенных варинатов'); goto l11 end;
end;
goto l;
end;
2:begin
show(a,m,n);
writeln;
goto l;
end;
3:begin
l3:
Writeln('Выберите вид сортировки');
Writeln('1.По столбцам');
Writeln('2.По строкам');
Readln(f3);
case f3 of
1:begin;Writeln('Выберите варинат сортировки');
Writeln('1.Возрастание');
Writeln('2.Убывание');
Readln(f31);
case f31 of
1:begin
stolbecup(a,m,n);
end;
2:begin
stolbecdown(a,m,n);
end;
else begin Writeln('Выберите один из предложенных варинатов'); end;
end;
end;
2:begin
l32:Writeln('Выберите варинат сортировки');
Writeln('1.Возрастание');
Writeln('2.Убывание');
Readln(f32);
case f32 of
1:begin
strokaup(a,m,n);
end;
2:begin
strokadown(a,m,n);
end;
else begin Writeln('Выберите один из предложенных варинатов'); goto l32 end;
end;
end;
else begin Writeln('Выберите один из предложенных варинатов'); goto l3 end;
end;
goto l;
end;
4:begin
max(a,m,n);
writeln;
goto l;
end;
5:begin
min(a,m,n);
writeln;
goto l;
end;
6:Exit;
else begin Writeln('Выберите один из предложенных варинатов'); goto l; end;
Readln;
end;
Readln;
end.

Оценить