Ðåôåðàò: Îáó÷àþùàÿ ïðîãðàììà Ãðàôèêà ïðîãðàììèðîâàíèþ â ãðàôè÷åñêîì ðåæèìå íà ÿçûêå turbo-pascal 7.x
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)<360 do
begin
c:=random(14);
SetColor(c);
Arc(535,210,StAngle,StAngle+dAngle,40);
GetArcCoords(ArcCoords);
with
ArcCoords do
begin
KRadius:=Round(SQRT(SQR(Xend-600)+SQR(Yend-210)));
Circle(Xend,Yend,KRadius);
setfillstyle(1,c);
floodfill(xend-kradius+5,yend,c);
end;
StAngle:=StAngle+dAngle;
end;
end;
procedure
GraphRegim;
var
Gd,Gm:integer;
begin
Gd:=Detect;
InitGraph(Gd,Gm,'');
If
GraphResult<>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 -
èçìåíåíèå ãðàôè÷åñêîãî ðåæèìà.
I I {Äåéñòâèÿ â
íîâîì ãðàôè÷åñêîì ðåæèìå}.
I I I-- RestoreCrtMode
- âðåìåííûé ïåðåõîä â òåêñòîâîìó ðåæèìó.
I I I {Äåéñòâèÿ â
òåêñòîâîì ðåæèìå}.
I I I->
SetGraphMode - âîçâðàò â ãðàôè÷åñêèé ðåæèì.
I I {Äåéñòâèÿ â
ãðàôè÷åñêîì ðåæèìå}.
I I-----> CloseGraph
I {Äåéñòâèÿ â
òåêñòîâîì ðåæèìå}.
I--------> end. -
çàâåðøåíèå ïðîãðàììû.
* proñedure InitGraph(var
GraphDriver:integer;
* var
GraphMode:integer;
*
DriverPath:string);
Èíèöèàëèçèðóåò
ãðàôè÷åñêóþ ñèñòåìó, óñòàíàâëèâàåò ãðàôè÷åñêèé
ðåæèì, óñòàíàâëèâàåò
èñõîäíûå çíà÷åíèÿ òåêóùåãî óêàçàòåëÿ, ïàëèòðû,
öâåòà è ò.ä..
ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈÅ ÃÐÀÔÈ×ÅÑÊÈÕ ÐÅÆÈÌÎÂ
GraphDriver -
ïåðåìåííàÿ, â êîòîðóþ íåîáõîäèìî çàïèñàòü êîä
òðåáóåìîãî ãðàôè÷åñêîãî äðàéâåðà èëè íóëü, åñëè
òðåáóåòñÿ
àâòîìàòè÷åñêîå îïðåäåëåíèå äðàéâåðà.
GraphMode - ïåðåìåííàÿ,
â êîòîðóþ ïðîöåäóðà ïîìåùàåò êîä
ãðàôè÷åñêîãî ðåæèìà.
DriverPath - ñòðîêà,
ñîäåðæàùàÿ ïóòü ê äðàéâåðó (åñëè ñòðîêà
ïóñòàÿ,
ñ÷èòàåòñÿ, ÷òî äðàéâåð íàõîäèòñÿ â òåêóùåì
êàòàëîãå).
 ñëó÷àå àâàðèéíîé
ñèòóàöèè ïðîöåäóðà óñòàíàâëèâàåò êîä îøèáêè:
-2 - íåò
ãðàôè÷åñêîãî àäàïòåðà;
-3 - íåò
äðàéâåðà óñòðîéñòâà;
-4 - îøèáêà â
äðàéâåðå;
-5 - íåò ïàìÿòè
äëÿ çàãðóçêè äðàéâåðà;
-10 -
íåäîïóñòèìûé ðåæèì äëÿ âûáðàííîãî äðàéâåðà.
* procedure
CloseGraph(áåç ïàðàìåòðîâ);
Âîññòàíàâëèâàåò
òåêñòîâûé ðåæèì ðàáîòû äèñïëåÿ,áûâøèé äî âûçîâà
ãðàôè÷åñêîé ñèñòåìû, è
îñâîáîæäàåò äèíàìè÷åñêóþ ïàìÿòü êîìïüþòåðà,
îòâåäåííóþ ïîä ãðàôè÷åñêèé
äðàéâåð.
* procedure
SetGraphMode(Mode:integer);
Mode - ãðàôè÷åñêèé
ðåæèì.Èçìåíÿåò ðàíåå èñïîëüçóåìûé ãðàôè-
÷åñêèé ðåæèì ëèáî âîçâðàùàåò
ñèñòåìó â ïðåæíèé ãðàôè÷åñêèé ðåæèì
ïîñëå âðåìåííîãî ïåðåõîäà ê
òåêñòîâîìó ðåæèìó. Óñëîâèåì èñïîëüçî-
âàíèÿ îïåðàòîðà ÿâëÿåòñÿ
ñîõðàíåíèå â äèíàìè÷åñêîé îáëàñòè ÎÇÓ ðàíåå
çàãðóæåííîãî ãðàôè÷åñêîãî
äðàéâåðà.
ÏÐÎÃÐÀÌÌÈÐÎÂÀÍÈÅ ÃÐÀÔÈ×ÅÑÊÈÕ ÐÅÆÈÌÎÂ
* procedure
RestoreCrtMode(áåç ïàðàìåòðîâ);
Âîññòàíàâëèâàåò
èñõîäíûé òåêñòîâûé ðåæèì äèñïëåÿ áåç ïîòåðè â
Ñòðàíèöû: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
|