Рефераты

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

GoTo 2;

end

else

repeat

Read(F33,Atr);

R2:=StrPas(Atr.P2); {Преобразование ASCIIZ-строки Atr.P2 в

строку типа string }

Val(R2,Z2,Code); {Преобразование символьного представления

номера вопроса в двоичную форму}

If Z2=Z1 then

begin

repeat

If Atr.P3=CH then

begin

Y:=100;

OKNO;

repeat

Stt:=StrPas(Atr.P4); {Преобразование ASCIIZ-строки Atr.P4

в строку типа string }

R5:=StrPas(Atr.P5); {Преобразование ASCIIZ-строки Atr.P5

в строку типа string }

Val(R5,Z5,Code); {Преобразование символьного

представления оценки в двоичную форму}

REZ3:=Round((REZ3+Z5)/2); {Формирование оценки}

OutTextXY(20,Y,Stt); {Вывод текста справки}

Y:=Y+10;

case Atr.P1 of {иллюстрации к тексту справок}

'1':begin

Line(380,150,550,190);

MoveRel(380,190);

Line(380,190,550,190);

LineTo(550,190);

OutTextXY(555,190,'(X1,Y1)');

OutTextXY(370,140,'(X,Y)');

OutTextXY(390,200,'(X,Y+dY)');

end;

'2':begin

GOTOXY(100,190);

LineTo(100,190);

LineRel(30,40);

LineRel(0,80);

end;

'3':begin

GOTOXY(100,190);

LineTo(380,150);

LineRel(30,40);

LineRel(0,80);

end;

end;

Read(F33,Atr);

until Atr.P3='*';

readkey;

GOTO 3;

end

else Read(F33,Atr);

until Atr.P1='*';

end

until Atr.P1='0';

end

else

3: end;

until At.P1='0';

Close(F32);

Close(F33);

CloseGraph;

end;

begin

end.

Unit RAZDEL4;

interface

uses Crt,Graph,Dos,Strings,MYBOOK;

type An = record {Теория}

P1:Char; {Переменная поля флага : конец файла, номер

иллюстрации}

P2:array[0..69] of char; {Переменная поля текста}

end;

type Ant=record {Текст вопросов}

P1:Char; {Переменная поля флага:конец файла, номер иллюст-

рации, конец вопроса}

P2:array[0..1] of Char; {Переменная поля номера вопроса}

P3:array[0..69] of Char; {Переменная поля текста вопроса}

end;

type Antr=record { Справки }

P1:Char; {Переменная поля флага:конец файла, конец вопроса,

номер иллюстрации}

P2:array[0..1] of Char; {Переменная поля номера вопроса}

P3:array[0..0] of Char; {Переменная поля флага: номер справки

и конец справки}

P4:array[0..69] of Char; {Переменная поля текста справки}

P5:array[0..2] of Char; {Переменная поля оценки}

end;

var F4: file of An ; {Переменные теории}

A:An;

N,Y:integer;

St:string[68];

var F32:file of Ant; { Переменные вопросов}

At:Ant;

R1:string[2];

Z1:integer;

S:string[68];

var F33:file of Antr; {Переменные справок}

Atr:Antr;

R2:string[2];

R3:string[1];

Stt:string[68];

R4:string[2];

Z2,Z3,Z4:integer;

CH: Char;{Переменная для принятия символа с клвиатуры}

K,J,I:integer; {Переменные циклов}

M: array[0..3] of integer; {Массив для хранения черырех

выбранных номеров вопросов}

Code:integer;

var R5:string[1]; {переменные вывода результатов}

Z5:integer;

REZ4:Longint; {переменная оценки}

procedure RAZDEL40;

implementation

procedure RAZDEL40;

Label 0,1,2,3;

begin

REZ4:=6;

GraphRegim;

Assign(F4,'RAZTEX4.pas'); {Связь с файлом текста теории}

{SI-}

Reset(F4);

{SI+}

If IOResult <> 0 then Writeln ('Нет файла RAZTEX4.pas');

repeat

ClearDevice;

OKNO;

Y:=10;

For N:=0 to 31 do {Вывод текста теории}

begin

Read(F4,A);

St:=StrPas(A.P2); {Преобразование ASCIIZ-строки A.P2 в строку

типа string}

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

case A.P1 of

'*':begin

SetColor(4);

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

SetColor(1);

end;

'1':begin SetFillStyle(1,15);

Bar(350,45,600,340);

SetFillStyle(1,0);

Bar(350,45,600,65);

SetFillStyle(1,1);

Bar(350,65,600,85);

SetFillStyle(1,2);

Bar(350,85,600,105);

SetFillStyle(1,3);

Bar(350,105,600,120);

SetFillStyle(1,4);

Bar(350,120,600,135);

SetFillStyle(1,5);

Bar(350,135,600,150);

SetFillStyle(1,6);

Bar(350,150,600,165);

SetFillStyle(1,7);

Bar(350,165,600,185);

SetFillStyle(1,8);

Bar(350,185,600,200);

SetFillStyle(1,9);

Bar(350,200,600,215);

SetFillStyle(1,10);

Bar(350,215,600,235);

SetFillStyle(1,11);

Bar(350,235,600,255);

SetFillStyle(1,12);

Bar(350,255,600,275);

SetFillStyle(1,13);

Bar(350,275,600,295);

SetFillStyle(1,14);

Bar(350,295,600,315);

SetFillStyle(1,15);

Bar(350,315,600,340);

end;

'2':begin

SetBKColor(15);

SetFillStyle(1,15);

Bar(200,100,600,300);

SetFillStyle(2,2);

Bar(200,100,600,120);

SetFillStyle(3,2);

Bar(200,120,600,145);

SetFillStyle(4,2);

Bar(200,145,600,168);

SetFillStyle(5,2);

Bar(200,168,600,190);

SetFillStyle(6,2);

Bar(200,190,600,210);

SetFillStyle(7,2);

Bar(200,210,600,228);

SetFillStyle(8,2);

Bar(200,228,600,246);

SetFillStyle(9,2);

Bar(200,246,600,264);

SetFillStyle(10,2);

Bar(200,264,600,282);

SetFillStyle(11,2);

Bar(200,282,600,300);

SetFillStyle(1,0);

end;

'0':GoTo 0

end;

end;

readkey;

0:until A.P1='0' ;

readkey;

Close(F4);

Assign(F32,'Joi.pas'); {связь с файлом вопросов}

{SI-}

Reset(F32);

{SI+}

If IOResult<>0 then Writeln('Нет файла Joi.pas');

Assign(F33,'Iodi.pas');

{SI-}

Reset(F33); {связь с файлом справок}

{SI+}

If IOResult<>0 then Writeln('Нет файла Iodi.pas');

OKNO1; {"Контрольные вопросы"}

readkey;

ClearDevice;

Randomize; {Выбор четырех номеров вопросов}

For J:=0 to 3 do

begin

1:I:=Random(10);

If I=0 then GOTO 1;

For K:=0 to J-1 do

begin

If M[k]=I then GOTO 1;

end;

M[J]:=I;

end;

M[1]:=1;

repeat

OKNO;

begin

Read(F32,At);

R1:=StrPas(At.P2);{Преобразование ASCIIZ-строки At.P2 в

строку типа string}

Val(R1,Z1,Code); {Преобразование символьного представления

номера вопроса в двоичную форму}

Y:=20;

If(Z1=M[0]) or (Z1=M[1]) or (Z1=M[2]) or (Z1=M[3]) then

begin

repeat

S:=StrPas(At.P3); {Преобразование ASCIIZ-строки At.P3 в

строку типа string}

OutTextXY(20,Y,S); {Вывод текста вопроса}

case At.P1 of

' ':begin

end;

end;

Y:=Y+10;

Read(F32,At);

until At.P1='*';

OutTextXY(50,330,'ВВЕДИТЕ НОМЕР ПРАВИЛЬНОГО ОТВЕТА ___');

2:CH:=ReadKey;

SetColor(4);

OutTextXY(320,325,CH);

SetColor(1);

readkey;

If(CH<>'1') and (CH<>'2') and (CH<>'3') and (CH<>'4') then

begin

SetFillStyle(1,11);

Bar(318,320,327,340);

GoTo 2;

end

else

repeat

Read(F33,Atr);

R2:=StrPas(Atr.P2); {Преобразование ASCIIZ-строки Atr.P2 в

строку типа string}

Val(R2,Z2,Code); {Преобразование символьного представления

номера вопроса в двоичную форму}

If Z2=Z1 then

begin

repeat

If Atr.P3=CH then

begin

Y:=100;

OKNO;

repeat

Stt:=StrPas(Atr.P4); {Преобразование ASCIIZ-строки Atr.P4 в

строку типа string}

R5:=StrPas(Atr.P5); {Преобразование ASCIIZ-строки Atr.P5 в

строку типа string}

Val(R5,Z5,Code); {Преобразование символьного представления

оценки в двоичную форму}

REZ4:=Round((REZ4+Z5)/2); {Формирование оценки }

OutTextXY(20,Y,Stt);

Y:=Y+10;

case Atr.P1 of

' ':begin

end;

end;

Read(F33,Atr);

until Atr.P3='*';

readkey;

GOTO 3;

end

else Read(F33,Atr);

until Atr.P1='*';

end

until Atr.P1='0';

end

else

3:end;

until At.P1='0';

Close(F32);

Close(F33);

CloseGraph;

end;

begin

end.

Unit RAZDEL5;

interface

uses Crt,Graph,Dos,Strings,MYBOOK;

type An = record

P1:Char;

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

end;

type Ant=record {Текст вопросов}

P1:Char;

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

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

end;

type Antr=record { Справки }

P1:Char;

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

P3:array[0..0] of Char;

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

P5:array[0..2] of Char;

end;

var F5: file of An ;

A:An;

N,Y:integer;

St:string[68];

var F52:file of Ant; { переменные вопросов}

At:Ant;

R1:string[2];

Z1:integer;

S:string[68];

V:char;

var F53:file of Antr; {переменные справок}

Atr:Antr;

R2:string[2]; {поле Ant.P1-номер вопроса}

R3:string[1]; {поле Ant.P2-номер варианта ответа}

Stt:string[68];{поле Ant.P3-текст справки}

R4:string[2]; {поле Ant.P4- оценка}

Z2,Z3,Z4:integer;

CH: Char; {номер варианта ответа}

K,J,I:integer;

M: array[0..3] of integer;

Nom:Longint;

Code:integer;

var R5:string[1]; {переменные вывода результатов}

Z5:integer;

REZ5:Longint;

procedure RAZDEL50;

implementation

procedure RAZDEL50;

Label 0,1,2,3;

begin

REZ5:=0;

GraphRegim;

Assign(F5,'RAZTEX5.pas');

{SI-}

Reset(F5);

{SI+}

If IOResult <> 0 then Writeln ('Нет файла RAZTEX5.pas');

repeat

ClearDevice;

OKNO;

Y:=10;

For N:=0 to 31 do

begin

Read(F5,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(1);

end;

'1':begin

SetColor(4);

Arc(500,150,0,278,30);

OutTextXY(490,140,'(X,Y)');

OutTextXY(500,150,'.');

SetColor(1);

end;

'2':begin

SetColor(4);

Circle(500,300,30);

OutTextXY(475,290,'(X,Y)');

OutTextXY(500,300,'.');

SetColor(1);

end;

'3':begin

SetBKColor(15);

SetColor(4);

Ellipse(500,100,0,278,50,25);

OutTextXY(490,90,'(X,Y)');

OutTextXY(500,100,'.');

SetColor(1);

end;

'4': begin

SetColor(2);

Ellipse(500,180,10,270,50,30);

Line(500,135,460,225);

SetFillStyle(4,14);

FloodFill(455,180,2);

end;

'5': begin

SetColor(4);

Ellipse(500,300,0,361,50,30);

FillEllipse(500,300,50,30);

SetFillStyle(1,15);

SetColor(1);

end;

'6': begin

SetFillStyle(7,13);

PieSlice(500,120,0,120,50);

end;

'7': begin

SetFillStyle(9,13);

Sector(500,200,0,270,50,30);

SetFillStyle(1,15);

end;

'8':begin

SetFillStyle(1,9);

Bar(250,100,600,200);

SetViewPort(250,100,600,200,true);

FloodFill(260,110, 1);

Randomize;

repeat

PutPixel(Random(GetMaxX),Random(GetMaxY),15);

Delay(15);

until KeyPressed;

SetFillStyle(1,15);

SetViewPort(5,5,635,345,true);

end;

'9': begin

Diogramma;

end;

'0':GoTo 0

end;

end;

0:readkey;

until A.P1='0';

Close(F5);

Assign(F52,'Join.pas'); {связь с файлом вопросов}

{SI-}

Reset(F52);

{SI+}

If IOResult<>0 then Writeln('Нет файла Join.pas');

Assign(F53,'Iodin.pas');

{SI-}

Reset(F53); {связь с файлом справок}

{SI+}

If IOResult<>0 then Writeln('Нет файла Iodin.pas');

OKNO1; {"Контрольные вопросы"}

readkey;

ClearDevice;

Randomize; {Выбор четырех номеров вопросов}

For J:=0 to 3 do

begin

1:I:=Random(6);

If I=0 then GOTO 1;

For K:=0 to J-1 do

begin

If M[k]=I then GOTO 1;

end;

M[J]:=I;

end;

repeat

OKNO;

begin

Read(F52,At); { вывод текста вопросов и справок }

R1:=StrPas(At.P2);

Val(R1,Z1,Code);

Y:=20;

If(Z1=M[0]) or (Z1=M[1]) or (Z1=M[2]) or (Z1=M[3]) then

begin

repeat

S:=StrPas(At.P3);

OutTextXY(20,Y,S);

case At.P1 of

'2':begin

end

end;

Y:=Y+10;

Read(F52,At);

until At.P1='*';

OutTextXY(50,330,'ВВЕДИТЕ НОМЕР ПРАВИЛЬНОГО ОТВЕТА ___');

2:CH:=ReadKey;

SetColor(4);

OutTextXY(320,325,CH);

SetColor(1);

readkey;

If(CH<>'1') and (CH<>'2') and (CH<>'3') and (CH<>'4') then

begin

SetFillStyle(1,11);

Bar(318,320,327,340);

GoTo 2;

end

else

repeat

Read(F53,Atr);

R2:=StrPas(Atr.P2);

Val(R2,Z2,Code);

If Z2=Z1 then

begin

repeat

If Atr.P3=CH then

begin

Y:=100;

OKNO;

repeat

Stt:=StrPas(Atr.P4);

R5:=StrPas(Atr.P5); {формирование оценки}

Val(R5,Z5,Code);

REZ5:=Round((REZ5+Z5)/2);

OutTextXY(20,Y,Stt);

Y:=Y+10;

case Atr.P1 of

'1':begin

end;

'0':GoTo 3;

end;

Read(F53,Atr);

until Atr.P3='*';

readkey;

GOTO 3;

end

else Read(F53,Atr);

until Atr.P1='*';

end

until Atr.P1='0';

end

else

3: end;

until At.P1='0';

Close(F52);

Close(F53);

CloseGraph;

end;

begin

end.

Unit RAZDEL6;

interface

uses Crt,Graph,Dos,Strings,MYBOOK;

type An = record {Теория}

P1:Char; {Переменная поля флага : конец файла, номер

иллюстрации}

P2:array[0..69] of char; {Переменная поля текста}

end;

type Ant=record {Текст вопросов}

P1:Char; {Переменная поля флага:конец файла, номер иллюст-

рации, конец вопроса}

P2:array[0..1] of Char; {Переменная поля номера вопроса}

P3:array[0..69] of Char; {Переменная поля текста вопроса}

end;

type Antr=record { Справки }

P1:Char; {Переменная поля флага:конец файла, конец вопроса,

номер иллюстрации}

P2:array[0..1] of Char; {Переменная поля номера вопроса}

P3:array[0..0] of Char; {Переменная поля флага: номер справки

и конец справки}

P4:array[0..69] of Char; {Переменная поля текста справки}

P5:array[0..2] of Char; {Переменная поля оценки}

end;

var F6: file of An ; {Переменные теории}

A:An;

Y,N,T1,T2,T3,T4:integer;

St:string[68];

var F62:file of Ant; { переменные вопросов}

At:Ant;

R1:string[2];

Z1:integer;

S:string[68];

var F63:file of Antr; {Переменные справок}

Atr:Antr;

R2:string[2];

R3:string[1];

Stt:string[68];

R4:string[2];

Z2,Z3,Z4:integer;

CH: Char;{Переменная для принятия символа с клвиатуры}

K,J,I:integer; {Переменные циклов}

M: array[0..3] of integer; {Массив для хранения черырех

выбранных номеров вопросов}

Code:integer;

var R5:string[1]; {переменные вывода результатов}

Z5:integer;

REZ6:Longint; {переменная оценки}

procedure RAZDEL60; {Обеспечение работы раздела "Формирование

графических текстов}

implementation

procedure RAZDEL60;

Label 0,1,2,3;

begin

REZ6:=6;

GraphRegim;

Assign(F6,'RAZTEX6.pas');

{SI-}

Reset(F6);

{SI+}

If IOResult <> 0 then Writeln ('Нет файла RAZTEX6.pas');

repeat

ClearDevice;

OKNO;

For N:=0 to 31 do

begin

Read(F6,A);

St:=StrPas(A.P2); {Преобразование ASCIIZ-строки A.P2 в строку

типа string}

case A.P1 of

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

'*':begin

SetColor(4);

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

SetColor(1);

end;

'1':begin

SetFillStyle(1,1);

Bar(10,30,630,338);

SetColor(15);

SetTextStyle(2,0,1);

OuttextXY(50,50,'TriplexFont, HorizDir, 15');

SetTextStyle(1,0,3);

SetColor(12);

OutTextXY(50,100,'DefaultFont, HorizDir, 12') ;

SetTextStyle(3,0,4);

SetColor(13);

OutTextXY(50,160, 'SmallFont, HorizDir, 13');

SetTextStyle(4,0,5);

SetColor(10);

OutTextXY(50,220,'SanSerifFont, HorizDir, 10');

SetTextStyle(0,0,3);

SetColor(14);

OutTextXY(50,300,'GothicFont, HorizDir, 14');

SetTextStyle(0,1,2);

SetColor(14);

OutTextXY(30,30,'DefaultFont,VertDir');

SetTextStyle(0,0,1);

SetColor(1);

end;

'2':begin

SetColor(4);

SetTextStyle(1,0,1);

SetUserCharSize(1,1,1,1);

OutTextXY(20,120,'Turbo-Pascal 7.0');

SetUserCharSize(3,2,3,2);

OutTextXY(20,160,'Turbo-Pascal 7.0');

SetUserCharSize(2,1,2,1);

OutTextXY(20,230,'Turbo-Pascal 7.0');

SetTextStyle(0,0,1);

SetColor(1);

end;

'3':begin

T1:=InstallUserFont('Goth');

T2:=InstallUserFont('sans');

T3:=InstallUserFont('trip');

T4:=InstallUserFont('bold');

If GraphResult0 then OutTextXY(50,100,'Нет файла Jois.pas');

Assign(F63,'Iodis.pas');

{SI-}

Reset(F63); {связь с файлом справок}

{SI+}

If IOResult<>0 then Writeln('Нет файла Iodis.pas');

OKNO1; {"Контрольные вопросы"}

readkey;

ClearDevice;

Randomize; {Выбор четырех номеров вопросов}

For J:=0 to 3 do

begin

1:I:=Random(10);

If I=0 then GOTO 1;

For K:=0 to J-1 do

begin

If M[k]=I then GOTO 1;

end;

M[J]:=I;

end;

M[1]:=1;

repeat

OKNO;

begin

Read(F62,At);

R1:=StrPas(At.P2);{Преобразование ASCIIZ-строки At.P2 в

строку типа string}

Val(R1,Z1,Code); {Преобразование символьного представления

номера вопроса в двоичную форму}

Y:=20;

If(Z1=M[0]) or (Z1=M[1]) or (Z1=M[2]) or (Z1=M[3]) then

begin

repeat

S:=StrPas(At.P3); {Преобразование ASCIIZ-строки At.P3 в

строку типа string}

OutTextXY(20,Y,S); {Вывод текста вопроса}

case At.P1 of

' ':begin

end;

end;

Y:=Y+10;

Read(F62,At);

until At.P1='*';

OutTextXY(50,330,'ВВЕДИТЕ НОМЕР ПРАВИЛЬНОГО ОТВЕТА ___');

2:CH:=ReadKey;

SetColor(4);

OutTextXY(320,325,CH);

SetColor(1);

readkey;

If(CH<>'1') and (CH<>'2') and (CH<>'3') and (CH<>'4') then

begin

SetFillStyle(1,11);

Bar(318,320,327,340);

GoTo 2;

end

else

repeat

Read(F63,Atr);

R2:=StrPas(Atr.P2); {Преобразование ASCIIZ-строки Atr.P2 в

строку типа string}

Val(R2,Z2,Code); {Преобразование символьного представления

номера вопроса в двоичную форму}

If Z2=Z1 then

begin

repeat

If Atr.P3=CH then

begin

Y:=100;

OKNO;

repeat

Stt:=StrPas(Atr.P4); {Преобразование ASCIIZ-строки Atr.P4

строку типа string}

R5:=StrPas(Atr.P5); {Преобразование ASCIIZ-строки Atr.P5 в

строку типа string}

Val(R5,Z5,Code); {Преобразование символьного представления

оценки в двоичную форму}

REZ6:=Round((REZ6+Z5)/2); {Формирование оценки }

OutTextXY(20,Y,Stt);

Y:=Y+10;

case Atr.P1 of

' ':begin

end;

end;

Read(F63,Atr);

until Atr.P3='*';

readkey;

GOTO 3;

end

else Read(F63,Atr);

until Atr.P1='*';

end

until Atr.P1='0';

end

else

3:end;

until At.P1='0';

Close(F62);

Close(F63);

CloseGraph;

end;

begin

end.

Unit RAZDEL7;

interface

uses Crt,Graph,Dos,Strings,MYBOOK;

type An = record {Теория}

P1:Char; {Переменная поля флага : конец файла, номер

иллюстрации}

P2:array[0..69] of char; {Переменная поля текста}

end;

type Ant=record {Текст вопросов}

P1:Char; {Переменная поля флага:конец файла, номер иллюст-

рации, конец вопроса}

P2:array[0..1] of Char; {Переменная поля номера вопроса}

P3:array[0..69] of Char; {Переменная поля текста вопроса}

end;

type Antr=record { Справки }

P1:Char; {Переменная поля флага:конец файла, конец вопроса,

номер иллюстрации}

P2:array[0..1] of Char; {Переменная поля номера вопроса}

P3:array[0..0] of Char; {Переменная поля флага: номер справки

и конец справки}

P4:array[0..69] of Char; {Переменная поля текста справки}

P5:array[0..2] of Char; {Переменная поля оценки}

end;

var F7: file of An ; {Переменные теории}

A:An;

N,Y,T:integer;

St:string[68];

var F72:file of Ant; { Переменные вопросов}

At:Ant;

R1:string[2];

Z1:integer;

S:string[68];

var F73:file of Antr; {Переменные справок}

Atr:Antr;

R2:string[2];

R3:string[1];

Stt:string[68];

R4:string[2];

Z2,Z3,Z4:integer;

CH: Char;{Переменная для принятия символа с клвиатуры}

K,J,I:integer; {Переменные циклов}

M: array[0..3] of integer; {Массив для хранения черырех

выбранных номеров вопросов}

Code:integer;

var R5:string[1]; {переменные вывода результатов}

Z5:integer;

REZ7:Longint; {переменная оценки}

var Size:word;

pt:pointer;

u,Nn,xt,yt:integer;

procedure RAZDEL70;

implementation

procedure RAZDEL70;

Label 0,1,2,3;

begin

REZ7:=6;

GraphRegim;

Assign(F7,'RAZTEX7.pas'); {связь с файлом теории}

{SI-}

Reset(F7);

{SI+}

If IOResult <> 0 then Writeln ('Нет файла RAZTEX7.pas');

repeat

OKNO;

For N:=0 to 32 do

begin

Read(F7,A);

St:=StrPas(A.P2); {Преобразование ASCIIZ-строки A.P2 в строку

типа string}

case A.P1 of

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

'*':begin

SetColor(4);

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

SetColor(1);

end;

'1':begin

For Nn:=0 to 3 do

begin

GetMem(pt,ImageSize(0,200,50,250));

GetImage(0,200,50,250,pt^);

u:=0;

while u0 then Writeln('Нет файла Jos.pas');

Assign(F73,'Ios.pas');

{SI-}

Reset(F73); {связь с файлом справок}

{SI+}

If IOResult<>0 then Writeln('Нет файла Ios.pas');

OKNO1; {"Контрольные вопросы"}

readkey;

ClearDevice;

Randomize; {Выбор четырех номеров вопросов}

For J:=0 to 3 do

begin

1:I:=Random(7);

If I=0 then GOTO 1;

For K:=0 to J-1 do

begin

If M[k]=I then GOTO 1;

end;

M[J]:=I;

end;

repeat

OKNO;

begin

Read(F72,At);

R1:=StrPas(At.P2);{Преобразование ASCIIZ-строки At.P2 в

строку типа string}

Val(R1,Z1,Code); {Преобразование символьного представления

номера вопроса в двоичную форму}

Y:=20;

If(Z1=M[0]) or (Z1=M[1]) or (Z1=M[2]) or (Z1=M[3]) then

begin

repeat

S:=StrPas(At.P3); {Преобразование ASCIIZ-строки At.P3 в

строку типа string}

OutTextXY(20,Y,S); {Вывод текста вопроса}

case At.P1 of

' ':begin

end;

end;

Y:=Y+10;

Read(F72,At);

until At.P1='*';

OutTextXY(50,320,'ВВЕДИТЕ НОМЕР ПРАВИЛЬНОГО ОТВЕТА ___');

2:CH:=ReadKey;

SetColor(4);

OutTextXY(320,310,CH);

SetColor(1);

readkey;

If(CH<>'1') and (CH<>'2') and (CH<>'3') and (CH<>'4') then

begin

SetFillStyle(1,11);

Bar(318,290,327,320);

GoTo 2;

end

else

repeat

Read(F73,Atr);

R2:=StrPas(Atr.P2); {Преобразование ASCIIZ-строки Atr.P2 в

строку типа string}

Val(R2,Z2,Code); {Преобразование символьного представления

номера вопроса в двоичную форму}

If Z2=Z1 then

begin

repeat

If Atr.P3=CH then

begin

Y:=100;

OKNO;

repeat

Stt:=StrPas(Atr.P4); {Преобразование ASCIIZ-строки Atr.P4

в

строку типа string}

R5:=StrPas(Atr.P5); {Преобразование ASCIIZ-строки Atr.P5 в

строку типа string}

Val(R5,Z5,Code); {Преобразование символьного представления

оценки в двоичную форму}

REZ7:=Round((REZ7+Z5)/2); {Формирование оценки }

OutTextXY(20,Y,Stt);

Y:=Y+10;

case Atr.P1 of

' ':begin

end;

end;

Read(F73,Atr);

until Atr.P3='*';

readkey;

GOTO 3;

end

else Read(F73,Atr);

until Atr.P1='*';

end

until Atr.P1='0';

end

else

3:end;

until At.P1='0';

Close(F72);

Close(F73);

CloseGraph;

end;

begin

end.

unit MYBOOK;

interface

uses Graph,Crt,Strings,Dos;

Type Dlina=string[10];

var Ch:char;

Regime:byte;

c,Gd,Gm,i,x1,x2,y1,y2:integer;

ArcCoords:ArcCoordsType;

StAngle,dAngle,KRadius:word;

const OK:array[1..11] of PointType= ((X:0;Y:0),(X:640;Y:0),

(X:640;Y:350), (X:0;Y:350),(X:0;Y:8),(X:5;Y:8),

(X:5;Y:345),(X:635;Y:345),(X:635;Y:5),(X:0;Y:5),

(X:0;Y:0));

procedure Diogramma;

procedure OKNO;

procedure OKNO1;

procedure GraphRegim;

implementation

procedure OKNO;

begin

SetColor(14);

DrawPoly(11,OK);

SetFillStyle(1,14);

FloodFill(635,2,14);

SetFillStyle(1,11);

Bar(6,6,634,344);

SetColor(1);

end;

procedure OKNO1;

const OK:array[1..11] of PointType= ((X:0;Y:0),(X:640;Y:0),

(X:640;Y:350), (X:0;Y:350),(X:0;Y:8),(X:5;Y:8),

(X:5;Y:345), (X:635;Y:345),(X:635;Y:5),(X:0;Y:5),

(X:0;Y:0));

begin

SetColor(14);

DrawPoly(11,OK);

SetFillStyle(1,14);

FloodFill(635,2,14);

SetFillStyle(1,11);

Bar(6,6,634,344);

SetColor(4);

SetTextStyle(0,0,6);

OutTextXY(50,100,'Контрольные');

OutTextXY(140,150,'вопросы');

SetTextStyle(0,0,1);

SetColor(1);

end;

procedure Diogramma;

begin

SetViewPort(0,0,GetMaxX,GetMaxY,true);

SetColor(11);

SetLineStyle(0,0,3);

SetFillStyle(1,13);

PieSlice(170,210,0,359,120);

SetFillStyle(9,2);

PieSlice(170,210,0,30,120);

SetFillStyle(1,3);

Sector(170,210,0,359,80,120);

SetFillStyle(11,5);

Sector(170,210,0,270,80,120);

SetFillStyle(1,15);

Circle(480,210,120);

FloodFill(480,210,11);

StAngle:=0;

dAngle:=360 Div 16;

while(StAngle+dAngle)grOK then Halt(1);

end;

begin

end.

Приложение 2

База данных

Для работы с настоящей программой Вам необходимо знание языка

TURBO-PASCAL 7.0, интегрированной среды, персонального компьютера

IBM PC.

Расширенный алгоритмический язык TURBO-PASCAL7.0 в качестве гра-

фических средств соддержит в арсенале два стандартных модуля:

Grt и Graph.

Модуль Grt содержит процедуры и функции следующего назначения:

1.Процедуры задания режимов работы.

2.Полцедуры управления цветом.

3.Процедуры и функции работы с экраном.

4.Функции работы с клавиатурой.

5.Процедуры управления звуком и др.

Процедуры и функции модуля Graph имеют назначение:

1.Управление графическим режимом.

2.Управление экраном, окном, страницей.

3.Управление цветом и палитрой.

4.Работа с точками и линиями.

5.Построение различных фигур.

6.Работа с текстом.

7.Обмен с памятью.

В настоящей программе они скомпанованы для изучения в следующие

разделы:

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

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

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

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

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

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

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

Первые два раздела являются справочными, а остальные разделы

содержат теоретическую часть и контрольные вопросы.

0

ПРОГРАММИРОВАНИЕ ГРАФИЧЕСКИХ РЕЖИМОВ

Состав, назначение и взаимное положение операторов управления

графическими режимами в языке TURBO-PASCAL удобно рассматривать в

контексте структуры характерной графической программы:

---------- program - заголовок программы.

I uses Graph - используемые модули.

I {Действия в текстовом режиме}.

I ------ InitGraph - инициализация графических средств

I I {Действия в графическом режиме " по умолчанию".

I I SetGraphMode - изменение графического режима.

Страницы: 1, 2, 3, 4, 5, 6, 7


© 2010 Современные рефераты