Ðåôåðàò: Îáó÷àþùàÿ ïðîãðàììà Ãðàôèêà ïðîãðàììèðîâàíèþ â ãðàôè÷åñêîì ðåæèìå íà ÿçûêå turbo-pascal 7.x
begin
GraphRegim;
Assign(F2,'RAZTEX2.pas');
{SI-}
Reset(F2);
{SI+}
If IOResult <> 0 then Writeln ('Íåò
ôàéëà RAZTEX2.pas');
repeat
ClearDevice;
OKNO;
Y:=10;
For N:=0 to 31
do
begin
Read(F2,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;
'0':GoTo
1;
end;
end;
1: readkey;
until
A.P1='0';
Close(F2);
CloseGraph;
end;
begin
end.
Unit
RAZDEL3;
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 F3:file of An ; {ïåðåìåííûå
òåîðåòè÷åñêîé ÷àñòè}
A:
An;
St:string[68];
Y,N:integer;
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;
REZ3:Longint; {ïåðåìåííàÿ
îöåíêè}
procedure RAZDEL30; {Îáåñïå÷åíèå ðàáîòû ñ
ðàçäåëîì "Ôîðìèðîâàíèå
ïðÿìîëèíåéíûõ
ìîíîõðîìíûõ èçîáðàæåíèé"}
implementation
const Mn:array[1..5] of
PointType=((X:460;Y:30),(X:590;Y:90),
(X:590;Y:120),(X:430;Y:120),(X:460;Y:30));
Mno:array[1..5] of
PointType=((X:460;Y:170),(X:590;Y:230),
(X:590;Y:260),(X:430;Y:260),(X:460;Y:170));
{Êîíñòàíòû äëÿ ôîðìèðîâàíèå
èëëþñòðàöèé ê òåêñòó òåîðèè}
const Ww:array[1..5] of
PointType=((X:390;Y:60),(X:510;Y:60),
(X:510;Y:260),(X:390;Y:260),(X:390;Y:60));
WWW:array[1..5] of
PointType=((X:380;Y:50),(X:520;Y:50),
(X:520;Y:270),(X:380;Y:270),(X:380;Y:50));
{Êîíñòàíòû äëÿ ôîðìèðîâàíèÿ
èëëþñòðàöèé ê òåêñòó âîïðîñîâ}
procedure
RAZDEL30;
Label
0,1,2,3;
begin
REZ3:=6;
GraphRegim;
Assign(F3,'RAZTEX3.pas'); {Ñâÿçü ñ
ôàéëîì òåñòà òåîðèè}
{SI-}
Reset(F3);
{SI+}
If IOResult <> 0 then Writeln
('Íåò ôàéëà RAZTEX3.pas');
repeat
OKNO;
Y:=10;
For N:=0 to 31 do {Öèêë âûâîäà òåêñòà
òåîðèè}
begin
Read(F3,A);
St:=StrPas(A.P2); {Ïðåîáðàçîâàíèå
ASCIIZ-ñòðîêè A.P2 â ñòðîêó
òèïà
string}
case A.P1 of {Èëëþñòðàöèè ê
òåêñòó}
' ':
OutTextXY(20,Y*N+10,St);
'*':
begin
SetColor(4);
OutTextXY(20,Y*N+10,St);
SetColor(1);
end;
'ù':
begin
SetColor(4);
Line(460,120,593,120);
OutTextXY(460,160,'0');
OutTextXY(593,130,'(X,Y)');
SetColor(1);
end;
'2':begin
SetColor(4);
OutTextXY(460,160,'0
dX');
OutTextXY(600,180,'dY');
OutTextXY(550,200,'(dX,dY)');
Line(460,170,593,170);
Line(593,170,593,200);
Line(460,170,593,200);
SetColor(1);
end;
'3':begin
SetColor(4);
OutTextXY(430,245,'(X1,Y1)');
Line(460,260,593,285);
OutTextXY(580,270,'(X2,Y2)');
SetColor(1);
end;
'4':begin
SetBKColor(2);
SetColor(4);
Rectangle(460,40,590,90);
SetColor(1);
end;
'5':begin
SetFillStyle(1,4);
Bar(459,129,591,181);
SetFillStyle(8,5);
SetColor(4);
Bar(460,130,590,180);
SetColor(1);
end;
'6':begin
SetFillStyle(6,5);
SetColor(4);
Bar3D(460,240,590,300,20,true);
SetCOLOR(1);
SetFillStyle(1,15);
SetBKColor(11);
end;
'7':begin
SetBKColor(15);
SetColor(4);
DrawPoly(5,Mn);
SetColor(1);
end;
'8':begin
SetColor(4);
SetFillStyle(11,5);
SetBKColor(15);
FillPoly(5,Mno);
SetColor(1);
SetFillStyle(1,15);
end;
'0':GoTo
0;
end;
end;
0:readkey;
ClearDevice;
OKNO;
until
A.P1='0';
Close(F3);
Assign(F32,'Joing.pas'); {ñâÿçü ñ
ôàéëîì âîïðîñîâ}
{SI-}
Reset(F32);
{SI+}
If IOResult<>0 then Writeln('Íåò
ôàéëà Joing.pas');
Assign(F33,'Iod.pas'); {ñâÿçü ñ ôàéëîì
ñïðàâîê}
{SI-}
Reset(F33);
{SI+}
If IOResult<>0 then Writeln('Íåò
ôàéëà Iod.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;
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 {èëëþñòðàöèè ê
òåêñòó âîïðîñîâ}
'1':begin
DrawPoly(5,Ww);
DrawPoly(5,Www);
Bar3D(410,100,470,120,20,true);
Bar3D(410,120,470,250,20,false)
end;
'2':begin
Bar3D(200,250,300,300,30,true);
Bar3D(200,300,300,320,30,true)
end;
'3':begin
Line(380,150,550,190);
Line(380,190,550,190);
Ñòðàíèöû: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
|