Объектно-ориентированное программирование. Разработка программы, имеющей графическую заставку, работу с массивом, матрицей и со связным списком, страница 4

GetEnv. Возвращает значение   заданной   переменной операционной среды.         

Function DosVersion: Word – Возвращает номер версии ДОС.

Параметры вызова обычно следуют в командной строке ДОС сразу за именем вызываемой программы и отделяются от этого имени и друг от друга пробелами, например:

C:\TP\TURBO.EXE  PROGRAM.PAS

Здесь PROGRAM. PAS – параметр, передаваемый программе TURBO.EXE. При вызове программы непосредственно из среды Турбо Паскаля ей можно передать параметры с помощью опции OPTIONS/PARAMETERS.

Использование процедуры EXEC имеет ряд особенностей. Прежде всего необходимо отметить, что сама вызывающая программа остаётся резидентной в памяти, поэтому она не должна занимать всю оперативную память. Полезно включить в текст вызывающей программы директиву компилятора, в которой изменяются принятые по умолчанию размеры памяти {$M}.

Специфические особенности исполнения программ Турбо Паскаля требуют изменения стандартных значений некоторых векторов прерываний. Начальные значения этих векторов сохраняются в восемнадцати переменных с именами SAVEINTXX из библиотечного модуля SYSTEM, где ХХ – шестнадцатеричный номер прерывания. Поэтому непосредственно перед запуском внешней программы и сразу после возврата из неё рекомендуется вызывать библиотечную процедуру SWAPVECTORS, которая обменивает содержимое векторов прерывания и перечисленных переменных.

.

Блок-Схемы.

·  Процедура обработки массива (удаление положительных элементов) – objmas.Job

·   НачалоПроцедура обработки матрицы (замена всех локальных минимумов нулями) – objmatr.Job

                 

k:=0,i:=2,(n-1),Конец 


                                                                                                                  

 


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

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

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

program kursovik;

uses crt,graph;

const

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

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

l=5;                                  {число элементов меню}

type

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

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

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

zapis=record                          {описание записи}

naim:string[30];                  {наименование товара}

nomnom: integer;                  {номенклатурный номер}

nomnak: integer;                  {номер накладной}

dat: string[20];                  {дата из накладной}

prih: integer;                    {приход}

rash:integer;                     {расход}

end;

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

spis=record

data:zapis;

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;