Ðåôåðàò: Îáó÷àþùàÿ ïðîãðàììà Ãðàôèêà ïðîãðàììèðîâàíèþ â ãðàôè÷åñêîì ðåæèìå íà ÿçûêå turbo-pascal 7.x
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
GraphResult<grOK then
begin
OutTextXY(40,180,'Îøèáêà èíñòàëëÿöèè');
readkey;
end;
SetFillStyle(1,1);
Bar(10,30,630,335);
SetTextStyle(T1,0,4);
SetColor(13);
OutTextXY(100,60,'Goth.chr,
HorizDir') ;
SetTextStyle(T2,0,4);
SetColor(10);
OuttextXY(100,110,'Sanse, HorizDir');
SetTextStyle(T3,0,4);
SetColor(4);
OutTextXY(100,170, 'Trip, HorizDir');
SetTextStyle(T4,0,4);
SetColor(14);
OutTextXY(100,230,'Bold, HorizDir');
SetTextStyle(0,1,2);
SetColor(15);
OutTextXY(45,35,'Goth.chr, VertDir');
SetTextStyle(0,0,1);
SetColor(1);
end;
'#':GoTo
0;
'0':GoTo
0
end;
end;
0:readkey;
until
A.P1='0';
Close(F6);
Assign(F62,'Jois.pas'); {ñâÿçü ñ ôàéëîì âîïðîñîâ}
{SI-}
Reset(F62);
{SI+}
If
IOResult<>0 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;
Ñòðàíèöû: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
|