Задание
Блок схемы:
index.pas
program MyKurs;
uses
Crt,JobUnit,Grafika;
begin
q:=nil;
repeat
clrscr;
textmode(3);
Write('В этой программе вы можете выполнять ');
WriteLn('следующие действия:');
WriteLn('1: Работа с массивом');
WriteLn('2: Работа с матрицей');
WriteLn('3: Работа со связанным списком');
WriteLn('4: Просмотр заставки');
WriteLn('5: Выход');
WriteLn;
Write('Ваш выбор: ');
ReadLn(answer);
case answer of
1: begin
st1:='Вывод исходного массива:';
st2:='Вывод сформированного массива ';
clrscr;
write('Введите количество элементов массива: ');
readln(minit);
q:=new(ptrmas,Init(minit))
end;
2: begin
st1:='Вывод исходной матрицы:';
st2:='Вывод сформированноy матрицы:';
clrscr;
writeln('Введите размерность матрицы:');
write('m = ');
readln(minit);
write('n = ');
readln(ninit);
q:=new(ptrmatr,Init(minit,ninit))
end;
3: begin
st1:='Вывод исходноgo списка:';
st2:='Вывод найденных элементов списка:';
clrscr;
write('Введите количество записей для ввода: ');
readln(minit);
q:=new(ptrlist,Init(minit))
end;
4: begin
zastavka;
minit:=0;
end;
5: begin
exit
end;
end;
if minit<>0 then begin
clrscr;
writeln(st1);
q^.OutData;
q^.Job;
writeln(st2);
q^.OutData;
writeln;
writeln('Для продолжения работы программы нажмите любую клавишу...');
readkey;
dispose(q,Done);
q:=nil;
end;
until false;
end.
JobUnit.PAS
unit JobUnit;
interface
uses
Crt;
const
mmax=50;
nmax=50;
type
{Описание простых типов...}
massiv=array [1..mmax] of integer;
matrix=array [1..mmax,1..nmax] of integer;
bazarec=record
tabnum:word;
mesac:string[3];
vidNachisl:string[20];
summ:real;
nalogi:real;
numOtdel:word;
end;
link=^elem;
elem=record
data:bazarec;
next:link;
pred:link;
end;
{Описание типов объектов...}
ptrquan=^Quantity;
Quantity=object
m:integer;
Constructor Init(minit:integer);
Destructor Done;
procedure OutData; virtual;
procedure Job; virtual;
end;
ptrmas=^Mas;
Mas=object(quantity)
a:massiv;
Constructor Init(minit:integer);
procedure OutData; virtual;
procedure Job; virtual;
end;
ptrmatr=^Matr;
Matr=object(quantity)
a:matrix;
n:integer;
Constructor Init(minit,ninit:integer);
procedure OutData; virtual;
procedure Job; virtual;
end;
ptrlist=^list;
List=object(quantity)
first,last:link;
Constructor Init(minit:integer);
Destructor Done;
procedure OutData; virtual;
procedure Job; virtual;
end;
var
{Данные переменные нужны для меню...}
answer:integer;
st1,st2:string;
minit,ninit:integer;
{Данные переменные нужны для описания объектов...}
q:ptrquan;
implementation
{Описание соответствующих методов обработки объектов...}
Constructor Quantity.Init;
begin
m:=minit;
end;
Destructor Quantity.Done;
begin
end;
procedure Quantity.Job;
begin
end;
procedure Quantity.OutData;
begin
end;
Constructor Mas.Init; {Процедура инициализации массива}
var
i:integer;
begin
if minit<1 then begin
WriteLn('Неправильно введено количество елементов!');
readkey;
exit
end;
m:=minit;
For i:=1 to m do begin
textattr:=$07; Write(i,': ');
textattr:=$0F; ReadLn(a[i])
end;
textattr:=07;
end;
procedure Mas.Job; {Процедура обработки массива}
var
i,min,minpoz:integer;
begin
if m<1 then exit;
min:=a[1];
minpoz:=1;
For i:=2 to m do
if min>a[i] then begin
min:=a[i];
minpoz:=i
end;
a[minpoz]:=a[1];
a[1]:=min
end;
procedure Mas.OutData; {Процедура вывода массива на экран}
const
colls=4;
var
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.