Объектно-ориентированное программирование. Модуль CRT. Вывод на экран. Системные переменные модуля CRT, страница 5

·  Процедура обработки матрицы – objmatr.Job

·  Процедура создания меню – menu

Вх  kurs

true                                                         false

·  Процедура перемещения по меню – kursor

true

#80                                         #72

#13

true                                                    false                                 true                                                       false

1                                                                 5

4

2

3

Текст программы:

program kursovik;

uses crt,graph;                         {Подключаемые модули}

const

m=5;                                  {Число строк матрицы и элементов массива}

n=m;                                  {Число столбцов матрицы}

l=5;                                  {Число пунктов меню}

type

menumas = array [1..l] of string;      {Описание массива под меню}

matrix=array[1..m,1..n] of real;       {Описание матрицы}

massiv=array[1..m] of real;            {Описание массива}

pasient=record                         {Описание записи}

fio:string[30];                    {Фамилия, имя, отчество}

birth:string[4];                   {Год рождения}

adres:string[30];                  {Адрес}

tel:string[7];                     {Телефон}

nu:string[2];                      {Номер участка}

no:string[2];                      {Номер отделения}

end;

link=^spis;                            {Описание связанного списка}

spis=record

data:pasient;

next:link;

end;

ptrpar=^parent;                        {Объект прародитель}

parent=object

m:integer;

constructor Init(minit:integer);

destructor Done;   virtual;

procedure OutData; virtual;

procedure Job;     virtual;

end;

ptrobjmas=^objmas;                     {Объект массив}

objmas=object(parent)

a:massiv;

constructor Init(minit:integer);

destructor Done;   virtual;

procedure OutData; virtual;

procedure Job;     virtual;

end;

ptrobjmatr=^objmatr;                   {Объект матрица}

objmatr=object(parent)

n:integer;

b:matrix;

constructor Init(minit,ninit:integer);

destructor Done;   virtual;

procedure OutData; virtual;

procedure Job;      virtual;

end;

ptrobjspis=^objspis;                   {Объект связанный список}

objspis=object(parent)

list:link;

constructor Init(minit:integer);

destructor Done;     virtual;

procedure OutData;  virtual;

procedure Job;      virtual;

end;

var

men:menumas;                   {Массив пунктов меню}

p:ptrpar;                      {Переменная для осуществления правил объектов}

key:char;                      {Нажатие клавиш в меню}

kurs,k:integer;                {Позиция курсора в меню, счетчик элементов}

{**********************Правила прародителя*********************}

constructor parent.Init(minit:integer);

begin

m:=minit;

end;

destructor parent.Done;

begin

{Пустое правило}

end;

procedure parent.OutData;

begin

{Пустое правило}

end;

procedure parent.Job;

begin

{Пустое правило}

end;

{**********************Правила Массива*********************}

{Ввод массива}

constructor objmas.Init(minit:integer);

var

i:integer;

begin

parent.Init(minit);

clrscr;

writeln('Введите ',m,' элементов массива:');

for i:=1 to m do

read(a[i]);

k:=m

end;

{Вывод массива}

procedure objmas.OutData;

var

i:integer;

begin

writeln;

writeln;

for i:=1 to k do

write(a[i]:6:2,'  ');

writeln;

readkey

end;

{Удаление второго и предпоследнего элементов массива}

procedure objmas.Job;

var

i:integer;

begin

for i:=2 to k-3 do

a[i]:=a[i+1];

a[k-2]:=a[k];

k:=m-2

end;

{Разрушение массива}

destructor objmas.Done;

begin

{Пустое правило}

end;

{*********************Правила Матрицы***********************}

{Ввод матрицы}

constructor objmatr.Init(minit,ninit:integer);

var

i,j:integer;

begin

m:=minit;

n:=ninit;

clrscr;

for i:=1 to m do

begin

writeln('Введите ',n,' элементов ',i,' строки:');

for j:=1 to n do

read(b[i,j]);

end;

end;

{Вывод матрицы}

procedure objmatr.OutData;

var

i,j:integer;

begin