Обучающая программа Графика программированию в графическом режиме на языке turbo-pascal 7.x

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

°змера и позиции курсора}

Intr($10,Red);

SizeCursor:=CX;{сохраняем размер курсора}

СН:=$20; {делаем курсор невидимым}

end;

АН:=01; {функция установки размера курсора}

Intr($10,Red);

end;

end;

 

procedure SVETFON(C,F:byte); {установка цвета и фона}

begin

TextColor(C);

TextBackground(F)

end;

 

procedure VERTIKALNOE_MENU(Kl,K2,Kp:byte;SS1,SS2,SS3,SS4,SS5,SS6,

SS7,SS8,SS9:dlina;Var Result:byte);

{процедура создания окна меню}

 

Label Met;

Const Kr=9;

Var M:array[l..Kr] of string[60];

I,T:byte;

Ch:char;

Fl:boolean;

begin

Cursor(False);

Fl:=True;

M[1]:=SS1;M[2]:=SS2;M[3]:=SS3;M[4]:=SS4;M[5]:=SS5;M[6]:=SS6;

M[7]:=SS7;M[8]:=SS8;M[9]:=SS9;

T:=Length(M[I]);

for I:=2 to Kp do

if Length(M{I])>T then T:=Length(M[I]);

for l:=l to Kp do

begin

if 1=1 then SVETFON(1,13)

else SVETFON(13,1);

GoToXY(Kl,K2+i);

write(M[I]);

end;

SVETFON(13,1);

I:=l;

while Fl=True do begin

Ch:=ReadKey;

if Ch=#13 then Fl:=False;

if(Ch=#0) and KeyPressed then

begin

Ch:=ReadKey;

case Ch of

#80: begin

GoToXY(Kl,K2+i);

SVETFON(13,1);

write(M[I]);

if i=(Kp+l) then

begin

I:=l;

SVETFON(3,l);

GoToXY(Kl,K2+l);

SVETFON(1, 13);

write(M[I]);

SVETFON(13,1);

goto Met;

end;

GoToXY(Kl,K2+I);

SVETFON(1,13);

write(M[I]);

SVETFON(13,1);

end;

#72: begin

if 1=1 then goto Met;

GoToXY(Kl,K2+I);

SVETFON(1371);

write(M[I]);

i:=I-1;

GoToXY(Kl,K2+I);

SVETFON(1,13);

write(M[I])

end

end;

Met:

end ;

end;

Result :=I;

SVETFON(13,1);

Cursor(True) ;

end;

begin {Начало основной программы}

GraphRegim;

SetBKColor(l);

SetTextStyle(0,0,5);

SetColor(12);

OutTextXY(40,50, Т Р А Ф И К А);

SetTextStyle(0,0,1);

SetColor(15);

OutTextXY(100,225,Программа для обучения работе в графическом

режиме);

OutTextXY(170,245,Разработал Черноткач Р. И.);

OutTextXY(232,285,СПГУАП);

OutTextXY{240,305,2002);

readkey;

SetTextStyle(0,0,l);

Windo1;

CloseGraph;

NOMER3:=0; {переменные, контролирующие доступ к разделам}

NOMER4:=0; {{ не более двух раз) за сеанс}

NOMER5:=0;

NOMER6:=0;

NOMER7:=0;

К[1]:=0;

К[2]:=0;

while True do begin

TextBackground(3);

ClrScr;

Cursor(False);

GoToXY(15,5);

TextColor(l);

write(Какой раздел Вы хотели бы изучить?);

GoToXY(10,10);

VERTIKALNOE_MENU(10,10,9,

Программирование графических режимов

Управление курсором и полем рисования

Формирование прямоллинейньгх монохромных изображений

Управление цветим и стилем изображений

Программирование цветных криволинейных изображений

Формирование графических текстов

Программирование озвученных динамических сцен

Результаты Вашей работы

Конец работы

Regime);

case Regime of

1:RAZDEL10;

2:RAZDEL20;

3:begin

NOMER3:=NOMER3+1;

If NOMER3<3 then

begin

RAZDEL30;

ball3[NOMER3]:=REZ3;

Itog[nomer3]:=Itog[nomer3]+ball3[nomer3];

K[nomer3]:=K[nomer3]+l;

end

end;

4: begin

NOMER4:=NOMER4+1;

If NOMER4<3 then

begin

RAZDEL40;

ball4[nomer4]:=rez4;

Itog[nomer4]:=Itog[nomer4]+ball4[nomer4];

K[nomer4]:=K[nomer4]+l;

end

end;

5:begin

NOMER5:=NOMER5+1;

If NOMER5<3 then

begin

RAZDEL50;

Ьа115[погаег5]:=rez5;

Itog[nomer5]:=Itog[nomer5]+ball5[nomer5];

K[nomer5]:=K[nomer5]+1;

end;

end;

6:begin

NOMER6:=NOMER6+1;

If NOMER6<3 then

begin

RAZDEL60;

ball6[nomer6]:=rez6; Itog[nomer6]:=Itog[nomer6]+ball6[nomer6]; K[nomer6]:=K[nomer6]+l;

end;

end

7:begin

NOMER7:=NOMER7+1;

IF NOMER7<3 then

begin

RAZDEL70;

ball7[nomer7]:=rez7;

Itog[nomer7]:=Itog[nomer7]+ball7[nomer7];

end;

end;

8:begin {вывод результатов работы}

If K[l]<>0 then

tog[l3:=Round(Itog[l]/K[1);

If K[2]<>0 then

tog[2]:=Round(Itog[2]/K[2]);

TextBackground(1);

ClrScr;

TextColor(12);

writeln;

Write(РЕЗУЛЬТАТЫ ВАШЕЙ РАБОТЫ);

writeln;

writeln(l попытка 2 попытка:80);

writeln;

wtiteln(ФОРМИРОВАНИЕ ПРЯМОЛИНЕЙНЫХ МОНОХРОМНЫХ

ИЗОБРАЖЕНИЙ);

writeln;

writeln( УПРАВЛЕНИЕ ЦВЕТОМ И СТИЛЕМ ИЗОБРАЖЕНИЙ1);

writeln;

writeln(ПРОГРАММИРОВАНИЕ ЦВЕТНЫХ КРИВОЛИНЕЙНЫХ

ИЗОБРАЖЕНИЙ);

writeln;

writeln( ФОРМИРОВАНИЕ ГРАФИЧЕСКИХ ТЕКСТОВ);

writeln;

writeln( ПРОГРАММИРОВАНИЕ ОЗВУЧЕННЫХ ДИНАМИЧЕСКИХ СЦЕН);

writeln;

writeln;

writeln( ОЦЕНКА РАБОТЫ ЗА СЕАНС);

GotoXY(64,6); writeln(ball3[1]);

GoToXY(75,6); writeln(ball3[2]);

GoToXY(64,8); writeln(ball4[l]);

GoToXY(75,8); writeln(ball4[2]);

GoToXY(64,10); writeln(ball5[l]);

GoToXY(75,10); writeln(ball5[2]);

GoToXY(64,12); writeln(ball6[l]);

GoToXY(75,12); writeln(bal16[2]);

GoToXY(64,14); writeln(bal17[l]);

GoToXY(75,14); writeln(ball7[23)

GoToXY(64,18); writeln(tog[l]);

GoToXY(75,18); writeln(tog[2]);

readkey;

end;

9:begin

GraphRegim;

OKNO;

SetTextStyle{0,0,4);

SetColor(4);

OutTextXY(150,80,Bы хотите);

OutTextXY(60,120,закончить работу)

OutTextXY(100,160,с программой?);

OutTextXY(230,280,Y/N);

Dh:=ReadKey;

If (Dh=y) or (Dh=н) then

begin

Cursor(True);

ClrScr;

Halt

end

else

CloseGraph;

end;

end;

end;

CloseGraph;

end.

 

 

 

 

 

 

 

 

{$A+, B-, D+, E+, F-, G-, I+,L+,N-,O-,P-,Q-,R-,S+,T-,V+,X+}

{$M 16384,0,655360}

 

Unit RAZDEL1;

interface

uses Crt, Graph, Dos, Strings, MYBOOK;

 

type An=record

P1:Char;

P2:array[0..69] of Char;

end;

var Fl:file of An ;

A: An;

Gd,Gm,Y,N:integer;

St:string[68];

procedure RAZDEL10; {Обеспечение работы с разделом "Программиро вание графических режимов"}

implementation

 

procedure RAZDEL10;

 

Label 1;

 

begin

GraphRegim;

Assign(Fl,RAZTEX1.pas);

{SI-}

Reset (Fl);

{SI+}

0thenWriteln(RAZTEX1.pas);"> If lOResult <>0 then Writeln (Нет файла RAZTEX1.pas);

Repeat;

ClearDevice;

OKNO;

Y:=10;

For N:=0 to 31 do

begin

Read(Fl,A); St:=StrPas(A.P2);

case A.P1 of

:OutTextXY(20,Y*N+10,St);

*:begin

SetColor{4);

OutTextXY(20,Y*N+10,St);

SetColor(l);

end;

0:GoTo 1;

end;

end;

1: readkey;

until A.P1=O;