Применение языков программирования высокого уровня для реализации численных методов и прикладных программ
Рефераты >> Программирование и компьютеры >> Применение языков программирования высокого уровня для реализации численных методов и прикладных программ

{koord3[l]=floor(koord2[l]*(1-t)+koord1[l]*t);}

setcolor(random( MaxColors - random(15) ) + random(15));

line(koord3[0],koord3[1],koord3[2],koord3[3]); //первая //четверть

line(getmaxx()-koord3[0],koord3[1],getmaxx()-koord3[2],koord3[3]);//вторая четверть

line(koord3[0],getmaxy()-koord3[1],koord3[2],getmaxy()-koord3[3]);//третья четверть

line(getmaxx()-koord3[0],getmaxy()-koord3[1],

getmaxx()-koord3[2],getmaxy()-koord3[3]);//четвертая четверть

}

for (int p=0;p<4;p++)//переприсвоение координат

{koord2[p]=koord1[p];}

//получение новых координат первой линии

koord1[0]=random(getmaxx()/2);

koord1[1]=random(getmaxy()/2);

koord1[2]=random(getmaxx()/2);

koord1[3]=random(getmaxy()/2);

}

while( !kbhit() ); // повторение пока не нажата клавиша

getch();

clearviewport();

}

//

//последняя страница

//

void endpage2(void)

{

MainWindow( "The end" );

StatusLine( "Press any key for exit to DOS" );

do

{

settextstyle(BOLD_FONT,0,2);

outtextxy(getmaxx()/2,getmaxy()/2,"The end ");

}

while( !kbhit() );

getch();

clearviewport();

}

//

//функция создания графического окна

//

void MainWindow( char *header )

{

int height;

xmax=getmaxx();

ymax=getmaxy();

cleardevice();//очистка экрана

setcolor( MaxColors - 2 );//установка текущего цвета //белым

setviewport( 0, 0, xmax, ymax, 1 );//открыть окно во //весь экран

height = textheight( "H" );//установить начальную высоту //текста

settextjustify( CENTER_TEXT, TOP_TEXT );

outtextxy( xmax/2, 2, header );

setviewport( 0, height+4, xmax, ymax-(height+4), 1 );

DrawBorder();

setviewport( 1, height+5, xmax-1, ymax-(height+5), 1 );

}

//

//функция создания строки статуса в нижней части экрана

//

void StatusLine( char *msg )

{

int height;

xmax=getmaxx();

ymax=getmaxy();

setviewport( 0, 0, xmax, ymax, 1 ); //открыть окно во //весь экран

setcolor( MaxColors - 1 ); //установка текущего цвета //черным

settextjustify( CENTER_TEXT, TOP_TEXT );

setlinestyle( SOLID_LINE, 0, NORM_WIDTH );

setfillstyle( EMPTY_FILL, 0 );

height = textheight( "H" );//установка текущей высоты //текста

bar( 0, ymax-(height+4), xmax, ymax );

rectangle( 0, ymax-(height+4), xmax, ymax );

outtextxy( xmax/2, ymax-(height+2), msg );

setviewport( 1, height+5, xmax-1, ymax-(height+5), 1 );

}

//

//функция, образующая границу графического окна

//

void DrawBorder(void)

{

// struct viewporttype vp;

setcolor( MaxColors - 1 );//установка текущего цвета //белым

setlinestyle( SOLID_LINE, 0, NORM_WIDTH );

// getviewsettings( &vp );

rectangle( 0, 0, getmaxx(), getmaxy() );

}

приложение 3

Program Notebook;

{программа обслуживает файлы данных "записной книжки".}

Uses App, Objects, Menus, Drivers, Views, StdDlg, DOS, Memory, Dialogs;

type

{объект TWorkWin создает рамочное окно с полосами прокрутки для

управления встроенным в него объектом TInterrior}

PWorkWin =^TWorkWin;

TWorkWin = object (TWindow)

Constructor Init(Bounds: Trect);

end;

{Объект TDlgWin создает диалоговое окно для выбора режима работы}

PDlgWin =^TDlgWin;

TDlgWin = object (TDialog)

Procedure HandleEvent (var Event: TEvent); Virtual;

end;

{Следующий объект обуславливает внутреннюю часть рамочного окна TWorkWin. Он

создает прокручиваемое окно с записями из архивного файла и с помощью диало-

гового окна TDlgWin управляет работой с этими записями}

PInterior =^Tinterior;

Tinterior = object (TScroller)

PS: PStringCollection;

Location: Word;

Constructor Init (var Bounds: TRect; HS, VS: PScrollBar);

Procedure Draw; Virtual;

Procedure ReadFile;

Destructor Done; Virtual;

Procedure HandleEvent (var Event: TEvent); Virtual;

end;

{объект-программа ТNotebook поддерживает работу с меню и строкой стстуса}

TNotebook = object (TApplication)

procedure InitStatusLine; virtual;

procedure InitMenuBar; virtual;

procedure HandleEvent (var Event: TEvent); virtual;

procedure FileSave;

procedure ChangeDir;

procedure DOSCall;

procedure FileOpen;

procedure Work;

end;

const

{Команды для обработчиков событий:}

cmChDir = 202;{сменить каталог}

cmWork = 203;{обработать данные}

cmDOS = 204;{временно выйти в дос}

cmCan = 205;{команда завершения работы}

cmDelete = 206;{уничтожить текущую запись}

cmSearch = 207;{искать нужную запись}

cmEdit = 208;{редактировать запись}

cmAdd = 209;{добавить запись}

{ножество временно недоступных команд:}

WinCom1: TCommandSet = [cmSave, cmWork];

WinCom2: TCommandSet = [cmOpen];

LName=25; {длина поля NAME}

LPhone=11; {---------- PHONE}

LAddr=40; {---------- ADDR}

LLIne=LName+LPhone+LAddr; {длина строки}

type

DataType = record {тип данных в файле}

Name : string [LName]; {имя}

Phone: string [LPhone];{телефон}

Addr : string [LAddr]; {адрес}

end;

var

DataFile: file of DataType; {файловая переменная}

OpFileF : Boolean; {флаг открытого файла}

{---------------------------------------------

реализация объекта TWorkWin

----------------------------------------------}

constructor TWorkWin.Init(Bounds: Trect);

{создание окна данных}

var

HS, VS: PScrollBar; {полосы-указатели}

Interior: PInterior; {указатель на управляемое текстовое окно}

begin

TWindow.Init(Bounds,'',0); {создание нового окна с рамкой}

GetClipRect(Bounds); {получение в BOUNDS кординаты минимальной перерисо-

вываемой части окна}

Bounds.Grow(-1,-1); {установка размеров окна с текстом}

{Включение стандартных по размеру и положению полос-уаказателей:}

VS:= StandardScrollBar(sbVertical+sbHandleKeyBoard);

HS:= StandardScrollBar(sbHorizontal+sbHandleKeyBoard);

{создание текстового окна:}

Interior :=New(Pinterior,Init(Bounds, HS, VS));

Insert(Interior) {включение его в основное окно}

end; {TWrkWin.Init}

{--------------------}

procedure TDlgWin.HandleEvent;

begin

inherited HandleEvent (Event);

if Event.What=evCommand then

EndModal(Event.Command)

end;

{--------------------}

procedure TNotebook.FileOpen;

{открывает файл данных}

var

PF: PFileDialog; {диалоговое окно выбора файла}

Control: Word;

s: PathStr;

begin

{создание экземпляра динамического объекта:}

New(PF, Init('*.dat','Выберите нужный файл:','Имя файла',fdOpenButton,0));

{с помощью следующего оператора окно выводится на экран и результат работы

пользователя с ним помещается в переменную Control:}

Control :=DeskTop^.ExecView(PF);

{анализ результата запроса:}


Страница: