ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π“Ρ€Π°Ρ„ΠΈΠΊΠ° Π’ΡƒΡ€Π±ΠΎ Паскаля

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

НСсмотря Π½Π° ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹Π΅ возмоТности для Π΄Π΅Π»ΠΎΠ²ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, графичСскиС срСдства с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΆΠ΅Π»Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ. НСльзя Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ спрайтами, Π½Π΅Ρ‚ скроллинга экрана, сохранСния / Π²Ρ‹Π²ΠΎΠ΄Π° всСго изобраТСния, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ заполнСния ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ ΠΎΠ±Ρ€Π°Π·Π°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ использованиС Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΈΡ… графичСских… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π“Ρ€Π°Ρ„ΠΈΠΊΠ° Π’ΡƒΡ€Π±ΠΎ Паскаля (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Для использования графичСских возмоТностСй Π’ΡƒΡ€Π±ΠΎ Паскаля Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² Π±Π»ΠΎΠΊΠ΅ описания uses ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ графичСский ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Graph. ΠœΠΎΠ΄ΡƒΠ»ΡŒ содСрТит Π½Π°Π±ΠΎΡ€ графичСских Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, основныС ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… рассмотрСны Π½ΠΈΠΆΠ΅.

ГрафичСскиС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹

Arc (x, y: integer; St, En, R: word); {рисованиС Π΄ΡƒΠ³ΠΈ, Π³Π΄Π΅ x, y — ΠΊΠΎΠΎΡ€Π΄. Ρ†Π΅Π½Ρ‚Ρ€Π° Π΄ΡƒΠ³ΠΈ, R — радиус, St, En — Π½Π°Ρ‡. ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ ΡƒΠ³Π»Ρ‹. }

ClearDevice; {очистка экрана}

Circle (x, y: integer; R: word); {ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ радиуса R

cΡ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ (x, y) }

CloseGraph; {Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ}

InitGraph (gd, gm: integer; Path: string); {инициализация Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, Π³Π΄Π΅

gd — графичСский Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€,

gm — графичСский Ρ€Π΅ΠΆΠΈΠΌ,

Path — ΠΏΡƒΡ‚ΡŒ размСщСния Ρ„Π°ΠΉΠ»Π°

с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ. bgi. }

Line (x1,y1,x2,y2: integer); {рисованиС Π»ΠΈΠ½ΠΈΠΈ, проходящСй Ρ‡Π΅Ρ€Π΅Π· Π΄Π²Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ:

с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ (x1,y1) ΠΈ (x2,y2) }

LineRel (dx, dy: integer); {рисованиС Π»ΠΈΠ½ΠΈΠΈ: dx, dy — приращСния

ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΊ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ

ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ курсора}

LineTo (x, y: integer); {рисованиС Π»ΠΈΠ½ΠΈΠΈ, ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ

ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ курсора ΠΈ Ρ‚ΠΎΡ‡ΠΊΡƒ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ (x, y) }

Moveto (x, y: integer); {Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ}

OutText (T: string); {Π²Ρ‹Π²ΠΎΠ΄ тСкста Π² Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ}

OutTextXY (x, y: integer; T: string); {Π²Ρ‹Π²ΠΎΠ΄ тСкста Π² Ρ‚ΠΎΡ‡ΠΊΡƒ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ Ρ…, Ρƒ}

Rectangle (x1,y1,x2,y2: integer); {рисованиС ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°: (x1,y1) ΠΈ (x2,y2) — ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹Ρ… Π²Π΅Ρ€ΡˆΠΈΠ½}

PutPixel (x, y: integer; c: word); {Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚ΠΎΡ‡ΠΊΡƒ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ (Ρ…, Ρƒ) Ρ†Π²Π΅Ρ‚ΠΎΠΌ с}

ГрафичСскиС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

GetMaxX — опрСдСляСт ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ экрана ΠΏΠΎ ΠΎΡΠΈ x.

GetMaxY — опрСдСляСт ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ экрана ΠΏΠΎ ΠΎΡΠΈ y.

GetX — ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ курсора ΠΏΠΎ ΠΎΡΠΈ x.

GetY — ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ курсора ΠΏΠΎ ΠΎΡΠΈ y.

ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹.

Начало машинной систСмы ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ осСй, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅

На Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Ρ‚Π°ΠΊΠΆΠ΅ машинная (xm, ym) ΠΈ Ρ„изичСская (x, y) систСмы ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚. Для изобраТСния Π½Π° ΡΠΊΡ€Π°Π½Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ с Ρ„изичСскими ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ (x, y) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π΅ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ (xm, ym). РасчСтныС Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄ (ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ эти Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹):

xm=x0+x*Mx,

ym=y0-y*My,

Π³Π΄Π΅ Mx, My-ΠΌΠ°ΡΡˆΡ‚Π°Π±Ρ‹ соотвСтствСнно ΠΏΠΎ ΠΎΡΡΠΌ x ΠΈ y, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ число пиксСлСй Π² ΠΎΠ΄Π½ΠΎΠΉ физичСской Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅,

x, y — физичСскиС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ‚ΠΎΡ‡ΠΊΠΈ,

xm, ym — ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ‚ΠΎΡ‡ΠΊΠΈ,

x0, y0 — ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π½Π°Ρ‡Π°Π»Π° физичСской систСмы ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€. ΠΠ°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· вСсь экран Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π»ΠΈΠ½ΠΈΠΈ, ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°.

Π­Ρ‚Π°ΠΏΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ свСдСны Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ.

Π’Π°Π±Π»ΠΈΡ†Π°

N

Π­Ρ‚Π°ΠΏΡ‹ программирования

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅

1.

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

ΠΠ°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· вСсь экран Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ Π»ΠΈΠ½ΠΈΠΈ, ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‰ΠΈΠ΅ΡΡ Π² Ρ†Π΅Π½Ρ‚Ρ€Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°.

2.

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ описаниС

Π˜Π·ΠΎΠ±Ρ€Π°Π·ΠΈΠΌ Π²ΠΈΠ΄ экрана с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚

Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ

3.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° структограммы

4.

НаписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Program P5;

Uses graph; {ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„. модуля}

Var gd, gm: integer;

Begin

gd: =detect; {ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„. Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°}

InitGraph (gd, gm,' `); {инициализация Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ}

Line (0, round (GetMaxY/2), GetMaxX,

Round (GetMaxY/2)); {Π³ΠΎΡ€ΠΈΠ·. Π»ΠΈΠ½. }

Line (round (GetMaxX/2), 0,Round (GetMaxX/2), GetMaxY);

{Π²Π΅Ρ€Ρ‚ΠΈΠΊ. Π»ΠΈΠ½. }

Readln; {пустой Π²Π²ΠΎΠ΄}

CloseGraph; {Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ}

End.

5.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€. ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ построСния Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ y=x2 для xΒ· [-1; 1].

Π­Ρ‚Π°ΠΏΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ свСдСны Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ.

Π’Π°Π±Π»ΠΈΡ†Π°

N

Π­Ρ‚Π°ΠΏΡ‹ программирования

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅

1.

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ y=x2 для x? [-1; 1].

2.

ΠœΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ описаниС

Π˜Π·ΠΎΠ±Ρ€Π°Π·ΠΈΠΌ Π²ΠΈΠ΄ экрана, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ послС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

3.

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° структограммы

4.

НаписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Program P6;

Uses graph;

Var gd, gm: integer;

x, y: real;

x0,y0,xm, ym, Mx, My: integer;

begin

gd: =detect;

InitGraph (gd, gm,' `);

Mx: =300; x0: =320; My: =440; y0: =460;

{Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ для ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° 640Π§480 пикс. }

For xm: =20 to 620 do

Begin

x: = (xm-x0) /Mx;

y: =sqr (x);

ym: =round (y0-y*My);

PutPixel (xm, ym, 1);

End;

Readln;

CloseGraph;

End.

5.

ΠžΡ‚Π»Π°Π΄ΠΊΠ° ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ²

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Graph

Π’Π  ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ достаточно Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ срСдствами для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΌ VGA экраном (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ использованиС ΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Π²ΠΈΠ΄Π΅ΠΎΠ°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠ²).

VGA Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ 640×480 пиксСл (Ρ‚ΠΎΡ‡ΠΊΠ° (0,0) Π² Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ экрана), 16 Ρ†Π²Π΅Ρ‚ΠΎΠ².

ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Π° ΠΏΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ — «Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ». ВсС графичСскиС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ находятся Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Graph, поэтому Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

ΠžΠ±Ρ‰Π°Ρ структура графичСской ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

Uses crt, graph;

var Gd, Gm: Integer;

begin

Gd: = Detect;

InitGraph (Gd, Gm, 'c: bpbgi');

{Π—Π΄Π΅ΡΡŒ построСниС изобраТСния}

ReadKey;

CloseGraph;

end.

ΠŸΡƒΡ‚ΡŒ c: bpbgi ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ располоТСниС Ρ„Π°ΠΉΠ»Π° egavga. bgi (Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ графичСского Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°). На Ρ€Π°Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… этот ΠΏΡƒΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΌ. Если Ρ„Π°ΠΉΠ» egavga. bgi ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ, Ρ‚ΠΎ ΠΏΡƒΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ графичСскиС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Ρ„ΠΈΠ³ΡƒΡ€

PutPixel (x, y, c) — ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ Π½Π° ΡΠΊΡ€Π°Π½Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ (x, y) ΠΈ Ρ†Π²Π΅Ρ‚ΠΎΠΌ c

Line (x1,y1,x2,y2) — рисуСт линию с Π½Π°Ρ‡Π°Π»ΠΎΠΌ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ (x1,y1) ΠΈ ΠΊΠΎΠ½Ρ†ΠΎΠΌ — (x2,y2)

Rectangle (x1,y1,x2,y2) — рисуСт ΠΊΠΎΠ½Ρ‚ΡƒΡ€ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° с Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΡŽ (x1,y1) — (x2,y2)

Bar (x1,y1,x2,y2) — рисуСт Π·Π°ΠΊΡ€Π°ΡˆΠ΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ с Π΄ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒΡŽ (x1,y1) — (x2,y2)

Circle (x, y, r) — рисуСт ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ с Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ (x, y) ΠΈ Ρ€Π°Π΄ΠΈΡƒΡΠΎΠΌ r

Ellipse (x, y, ba, ea, xr, yr) — рисуСт Π΄ΡƒΠ³Ρƒ эллипса с Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ Π² (x, y), Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ радиусом xr ΠΈ yr, ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ ΡƒΠ³Π»ΠΎΠΌ ba ΠΈ ea

FillEllipse (x, y, xr, yr) — рисуСт Π·Π°ΠΊΡ€Π°ΡˆΠ΅Π½Π½Ρ‹ΠΉ эллипс с Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ Π² (x, y), Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ радиусом xr ΠΈ yr

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚ΠΎΠ² ΠΈ ΡΡ‚ΠΈΠ»Π΅ΠΉ

GetPixel (x, y) — Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ†Π²Π΅Ρ‚ пиксСла с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ (x, y)

SetColor (c) — устанавливаСт Ρ†Π²Π΅Ρ‚ изобраТСния (для Π»ΠΈΠ½ΠΈΠΉ)

SetFillStyle (p, c) — устанавливаСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΡΡ‚ΠΈΠ»ΡŒ p ΠΈ Ρ†Π²Π΅Ρ‚ c (для «Π·Π°ΠΊΡ€Π°ΡˆΠ΅Π½Π½Ρ‹Ρ…» Ρ„ΠΈΠ³ΡƒΡ€)

FloodFill (x, y, b) — Π·Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Π·Π°ΠΌΠΊΠ½ΡƒΡ‚ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ (x, y) ΠΈ Ρ†Π²Π΅Ρ‚ΠΎΠΌ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π° b

Π Π°Π±ΠΎΡ‚Π° с Ρ‚Скстом

OutTextXY (x, y, st) — Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° ΡΠΊΡ€Π°Π½ строку st Ρ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ (x, y)

SetTextStyle (f, d, s) — устанавливаСт ΡˆΡ€ΠΈΡ„Ρ‚ f, Π΅Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ d ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€

БообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…

function GraphErrorMsg (ErrorCode: integer): String; Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строку сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅ для Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ErrorCode.

function GraphResult: integer; Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄ ошибки для послСднСй графичСской ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°, инициализация ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΌΠ΅ΠΆΠ΄Ρƒ тСкстом ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠΉ

procedure DetectGraph (var GraphDriver, GraphMode: integer); ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ ΠΊΠ°ΠΊΠΎΠΉ графичСский Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ ΠΈ Π² ΠΊΠ°ΠΊΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ (Ρ‚ΠΈΠΏ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° — Π² GraphDriver, Ρ€Π΅ΠΆΠΈΠΌ — GraphMode).

function GetDriverName: string; oΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строку с ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°.

procedure InitGraph (var GraphDriver: integer; var GraphMode: integer; PathToDriver: String); Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ систСму ΠΈ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ‚ устройство Π² Π³Ρ€Π°Ρ„ичСский Ρ€Π΅ΠΆΠΈΠΌ. PathToDriver — ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρƒ. bgi, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ 'c: tpbgi'. Если ΠΏΡƒΡ‚ΡŒ ΠΎΠΏΡƒΡ‰Π΅Π½ (''), Ρ‚ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ находится Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅.

function RegisterBGIfont (Font: pointer): integer; РСгистрируСт ΡˆΡ€ΠΈΡ„Ρ‚ BGI для графичСской систСмы. ЗарСгистрированный Ρ„ΠΎΠ½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π²Ρ‹Π·ΠΎΠ²Π΅ SetTextStyle. Он ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ с Π΄ΠΈΡΠΊΠ° Π² ΠΊΡƒΡ‡Ρƒ ΠΈΠ»ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π². obj Ρ„Π°ΠΉΠ» (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ binobj. exe) ΠΈ ΡΠ²ΡΠ·Π°Π½ Π² Ρ„Π°ΠΉΠ». exe. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ ошибки функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

function RegisterBGIdriver (Driver: pointer): integer; РСгистрируСт Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ BGI для графичСской систСмы. ЗарСгистрированный Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ InitGraph. Он ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ с Π΄ΠΈΡΠΊΠ° Π² ΠΊΡƒΡ‡Ρƒ ΠΈΠ»ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π². obj Ρ„Π°ΠΉΠ» (с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ binobj. exe) ΠΈ ΡΠ²ΡΠ·Π°Π½ Π² Ρ„Π°ΠΉΠ». exe. Π’ ΡΠ»ΡƒΡ‡Π°Π΅ ошибки функция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

function InstallUserDriver (DriverFileName: string; AutoDetectPtr: pointer): integer; УстанавливаСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ устройства Π² BGI Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² устройств.

function InstallUserFont (FontFileName: string): integer; УстанавливаСт Π½ΠΎΠ²Ρ‹ΠΉ ΡˆΡ€ΠΈΡ„Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½ Π² BGI систСму.

procedure SetGraphBufSize (BufSize: word); ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΡƒΡ„Π΅Ρ€Π° для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ заполнСния (закрасок). Π‘ΡƒΡ„Π΅Ρ€ с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ BufSize Π±Π°ΠΉΡ‚ размСщаСтся Π² ΠΊΡƒΡ‡Π΅ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ InitGraph. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ€ 4К, Ρ‡Ρ‚ΠΎ достаточно для построСния ΠΌΠ½ΠΎΠ³ΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ° с 650 линиями.

function GetMaxMode: integer; Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ максимального Ρ€Π΅ΠΆΠΈΠΌΠ° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°.

procedure GetModeRange (GraphDriver: integer; var LoMode, HiMode: integer); Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ графичСскиС Ρ€Π΅ΠΆΠΈΠΌΡ‹ для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°.

function GetModeName (GraphMode: integer): string; Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ строку с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ графичСского Ρ€Π΅ΠΆΠΈΠΌΠ°.

procedure SetGraphMode (Mode: integer); ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ систСму Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ графичСский Ρ€Π΅ΠΆΠΈΠΌ ΠΈ ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ экран.

function GetGraphMode: integer; Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ графичСский Ρ€Π΅ΠΆΠΈΠΌ.

procedure GraphDefaults; УстанавливаСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ (CP) Π² ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ (Ρ‚.Π΅. Ρ‚ΠΎΡ‡ΠΊΡƒ 0,0) ΠΈ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Π΅Ρ‚ всС устанавливаСмыС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ€Π΅ΠΆΠΈΠΌΡ‹ Π² ΠΈΡΡ…ΠΎΠ΄Π½ΠΎΠ΅ состояниС, Π² Ρ‚. Ρ‡. ΠΎΠΊΠ½Π°, ΠΏΠ°Π»ΠΈΡ‚Ρ€Ρƒ, основной Ρ†Π²Π΅Ρ‚ ΠΈ Ρ†Π²Π΅Ρ‚ Ρ„ΠΎΠ½Π°, ΡΡ‚ΠΈΠ»ΡŒ Π»ΠΈΠ½ΠΈΠΉ, ΡˆΡ€ΠΈΡ„Ρ‚, Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ тСкста, Ρ€Π°Π·ΠΌΠ΅Ρ€ символов ΠΈ ΡΡ‚ΠΈΠ»ΡŒ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ тСкста. БистСма Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² Π³Ρ€Π°Ρ„ичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅.

procedure RestoreCrtMode; ВосстанавливаСт тСкстовый Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π΄ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. НС ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ‚ Π±ΡƒΡ„Π΅Ρ€ ΠΈ Π½Π΅ ΠΎΠ±Π½ΡƒΠ»ΡΠ΅Ρ‚ установлСнныС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

procedure CloseGraph; Π—Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π³Ρ€Π°Ρ„ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ систСму. ВосстанавливаСт тСкстовый Π²ΠΈΠ΄Π΅ΠΎΡ€Π΅ΠΆΠΈΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» Π΄ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. ΠžΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ‚ Π±ΡƒΡ„Π΅Ρ€ ΠΈ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Π΅Ρ‚ всС графичСскиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ графичСского курсора

function GetX: integer; Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρƒ X Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ (CP).

function GetY: integer; Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρƒ Y Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ (Π‘Π ).

function GetMaxX: integer; Π’ΠΎΠ·Π²Ρ€Π°ΡˆΠ°Π΅Ρ‚ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π₯ (Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ) для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ графичСского Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ°.

function GetMaxY: integer; Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Y (Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ) для Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ графичСского Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° ΠΈ Ρ€Π΅ΠΆΠΈΠΌΠ°.

ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π’ΡƒΡ€Π±ΠΎ-Паскаля ΠΈ Π’ΡƒΡ€Π±ΠΎ-Π‘ΠΈ

Π’ΡƒΡ€Π±ΠΎ-Паскаль Π½Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π°Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΉ Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ… (малСнькиС ΠΈΠ»ΠΈ большиС Π±ΡƒΠΊΠ²Ρ‹) ΠΏΡ€ΠΈ написании констант, Ρ‚ΠΈΠΏΠΎΠ², ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ модуля Graph. Π’ Π’ΡƒΡ€Π±ΠΎ-Π‘ΠΈ всС константы, Ρ‚ΠΈΠΏΡ‹, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС (Π·Π°Π³Π»Π°Π²Π½Ρ‹ΠΌΠΈ Π±ΡƒΠΊΠ²Π°ΠΌΠΈ), Π° Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ — Π² Π½ΠΈΠΆΠ½Π΅ΠΌ (прописными Π±ΡƒΠΊΠ²Π°ΠΌΠΈ). Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΏΡ€ΠΈ этом Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ.

ΠΠ•Π”ΠžΠ‘Π’ΠΠ’ΠšΠ˜ BGI-Π“Π ΠΠ€Π˜ΠšΠ˜

НСсмотря Π½Π° ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹Π΅ возмоТности для Π΄Π΅Π»ΠΎΠ²ΠΎΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ, графичСскиС срСдства с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΆΠ΅Π»Π°Ρ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ. НСльзя Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ спрайтами, Π½Π΅Ρ‚ скроллинга экрана, сохранСния / Π²Ρ‹Π²ΠΎΠ΄Π° всСго изобраТСния, ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠΈ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ заполнСния ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ ΠΎΠ±Ρ€Π°Π·Π°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ использованиС Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΈΡ… графичСских Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ², ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚Ρ€Π΅Ρ…ΠΌΠ΅Ρ€Π½Ρ‹Π΅ изобраТСния ΠΈ Ρ‚. Π΄. ВсС это Π΄Π΅Π»Π°Π΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ написаниС графичСских Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², ΠΈΠ³Ρ€ΡƒΡˆΠ΅ΠΊ, систСм ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½ΠΎΠΉ ΠΈ ΠΌΠ°Ρ‚СматичСской Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ. Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… возмоТностСй Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ графичСским Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ прямой доступ Π² Π²ΠΈΠ΄Π΅ΠΎΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ ΡΠ»ΡƒΠΆΠ΅Π±Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ BIOS.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ