|
Обучающая программа Графика программированию в графическом режиме на языке 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
|
|