UF

 

МАЗМҰНЫ

 

КІРІСПЕ. 1

I ТАРАУ. ПАСКАЛЬ БАҒДАРЛАМАЛАУ ТІЛІНІҢ ГРАФИКТІК РЕЖИМІ 3

1.1  Паскаль бағдарламалау тілі 3

1.2 Графикалық режимдер. 5

1.3 GRAPH модулі 8

1.4  Процедуралар мен функциялар. 9

ІІ ТАРАУ. ПАСКАЛЬ БАҒДАРЛАМАЛАУ ТІЛІНІҢ ГРАФИКАЛЫҚ МҮМКІНДІКТЕРІ 29

2.1 Жұлдыздардың бейнеленуі 29

2.2 Бірінің ішіне бірі орналасқан түрлі - түсті 15 квадратты салу программасы   32

2.3 Түрлі графикалық режимдегі бірнеше обьектілердің бейнеленуі 32

ҚОРЫТЫНДЫ.. 45

ПАЙДАЛАНҒАН ӘДЕБИЕТТЕР. 46

 

КІРІСПЕ

Қазіргі кезде кеңінен қолданылатын программалау жүйесінің бірі – Turbo Pascal. Американың Borland корпорациясының бұл өнімі сол корпорацияның қызметкері Андерсон Хейлсбергтің жетекшілігімен құрастырылған. Turbo Pascal - дың түпнұсқасы швейцария ғалымы Никлаус Вирт жасаған Паскаль программалау тілінен тарайды. Бастапқыда Паскаль тілі программалауды алғаш үйретушілер үшін өте тиімді құрал болып табылады. Қарапайым Паскальды өңдеуді А.Хейлсбергтің үлкен еңбегінің нәтижесінде Turbo Pascal қазіргі заман талабына сай, қуатты программалау жүйесіне айналды. Turbo Pascal – жоғарғы деңгейлі программалау жүйесі. Оның логикалық құрылымы әртүрлі есептерді дәл шешуге көмегін тигізеді. Сондықтан, оқушылар мен студенттерге программалаудың негізін Turbo Pascal тілін оқытып - үйретуден бастап, программалаудың қыр - сырын меңгертудің маңызы зор.

Turbo Pascal - дың тұңғыш нұсқасын 1970 жылы швейцария физигі Никлаус Вирт ұсынған. Автор тілді алғашқы арифметикалық есептеу машинасын жасаған француздың ұлы ғалымы Блез Паскальдың құрметіне Паскаль деп атап, тіл атауын үнемі бас әріппен жалылуын сұраған. Кейіннен тілдің көптеген нұсқалары жарық көрді. Солардың ішінде, 1983 жылы Borland корпорациясының талантты қызметкері А.Хейлсбергтің жасаған жаңа үлгісі - Turbo Pascal программалаушылар арасында үлкен сұранысқа ие болды. Оның бұл нұсқасы СР/М операциялық жүйесіне негізделген. 1984 жылдың басында MS DOS жүйесіне ауыстырғалы бері пайдалану қарқыны бұрынғыдан да арта түсті. Turbo Pascal - дың жоғарғы деңгейлі логикалық құрылымы әр түрлі есептерді дәл шешуге көмегін тигізеді. Turbo Pascal жүйесінде қарапайым есептерді шешудің программасынан бастап, күрделі мәліметтер қорын құрудың сан қырлы жұмыстары жүргізіледі.

Тілмен қатар жетіле келе, іздене келе компыотерлік графика атты үлкен бір сала пайда болды. Компьютерлік графика дегеніміз кез келген материалдық объектінің бір өлшемді түрінен бастап көп өлшемді түріне дейінгі әр түрлі адам нанғысыз болудағы компьютерлік кескінін айтамыз. Дербес компыотерлерде (івм РС/хт) екі негізгі режим қолданылады, біріншісі символдық (белгілік), екіншісі - графикалық. Графикалық режимде экранның 200 нүктелік қатардан тұратын әрбір кез-келген 320 нүктесін кескіндеуге болады.

Pascal программалау тілінде символдық режимнен бөлек графиктік режимде жұмыс icтеуге болады. Онда әр түрлі графиктік кескіндер құрастыру мүмкіндігі бар. Графикалық экранда нүкте координатасы екі бүтін санмен анықталады. Яғни Х осінің координатасы экранның сол жақ жоғарғы бұрышынан басталып, оңға қарай, ал У осінің координатасы экранның сол жақ жоғарғы бұрышынан басталып төмен қарай өсіп отырады. Turbo Pascal графиктік мүмкшіліктерін пайдалану үшін арнайы "GRAPH" кітапханасы iске қосылады. GRAPH модулінің графиктік процедураларымен функцияларын қолданып графитік кескіндерді құрастыруға болады.

Паскаль тілінің графикалық операторлары графикалық кез келген элементімен жұмыс істеуге және осы элементтердің түстерін меңгеруге мүмкіндік береді.

 

Жұмыстың мақсаты: Паскаль бағдарламалау тілінің графикалық мүмкіндіктерін зерттей отырып, негізгі графикалық обьектілерді салу операторлары және функцияларымен танысу және оларды программалауда қолдана білуге дағдылану.

Зерттеу обьектісі: Паскаль бағдарламалау тілінің графикалық операторлары және функциялары, графикалық режимдері анықталды. Бірнеше бағдарламалар түзіліп, нәтижелері алынды.

 

Құрылымы: Кіріспеден, екі тараудан, қорытынды және пайдаланылған әдебиеттерден тұрады.

 

 

 

I ТАРАУ. ПАСКАЛЬ БАҒДАРЛАМАЛАУ ТІЛІНІҢ ГРАФИКТІК РЕЖИМІ

1.1  Паскаль бағдарламалау тілі

Паскаль тілінің ерекшеліктері:

- Тілдің қарапайымдылығы оны тез арада жете меңгеруге мүмкіндік береді.

- Деректердің құрылысына қарай сандық, белгілік және екілік информациямен жұмыс жүргізуге және күрделі алгоритмді бағдарлама жасауға қызмет етеді.

- Жүйелік бағдарламалауда кеңінен қолдануына оның өте тиімді бағдарламалар құру мүмкіндігі септігін тигізеді.

 

Программа құрылымы

Программа – белгілі бір программалау тілінің синтаксистік ережелеріне сәйкес жазылған нұсқаулар тізбегі. Демек, Паскаль тілінде программа жазу үшін программалаушы оның жазылу ережесін жақсы білу қажет. Паскаль тіліндегі программа жалпы мына түрде жазылады:

Программа тақырыбы;

          Сипаттау бөлімі;

Begin

          Орындалатын бөлім;

End.

● Программа тақырыбы program қызметші сөзінен басталады. Ол программа атынан және параметрлерден тұрады. Мысалы:

Program esep1 (input, output);

Мұндағы esep1- программаға берілген атау. Программалаушы программа атын өз қалауынша бере алады. Программа атауы оларды екінші бір программадан ажыратуға қажетті көрсеткіш.

input, output – стандартты енгізу, шығару файлы.

● Сипаттау бөлімінде программада кездесетін барлық берілгендердің атауы, типі, мүмкін болатын мәндері, т.б. хабарланады.

● Орындалатын бөлімде вegin және еnd қызметші сөздері арасында операторлар тізбегі жазылады. Сол себепті, вegin (ашылатын) және еnd (жабылатын) қызметші сөздердің операторлар жақшасы деп атаса да болады.

Оператор – нұсқаулардың машиналық тілде жазылуы. Сонда әрбір оператор орындалуға қажетті әрекетті машинаға түсінікті түрде сипаттайды. Программаның әр жолында бірнеше операторларды жазуға болады. Олардың арасында (;) нүктелі үтір таңбасы, ал программаның соңын көрсететін еnd сөзінен кейін (.) нүкте қойылады. Программаның орындалатын бөлімінде жазылған операторлар тізбегін - программа денесі деп атаймыз.

 

Программа бөлімдері

Паскаль тіліндегі программа төмендегі бөлімдерден тұрады:

● Программа тақырыбы;

● Берілгендерді сипаттау;

● Берілгендерді хабарлау бөлімі;

● Тұрақтыларды хабарлау бөлімі;

● Типтерді хабарлау;

● Айнымалыларды сипаттау бөлімі;

● Процедура- функцияны хабарлау бөлімі;

● Орындалатын бөлім:

Begin

Программа денесі (операторлар тізбегі);

End.

Сонда, программа құрылымы мына түрде болады:

Рrоgrаm    программа аты;

Uses               модуль аты;

Label            белгі;                

Const      тұрақты атауы=тұрақты мәні;

Type       тип атауы = тип сипаттамасы;

Var                    айнымалылар атауы: типі;

Procedure           пайдаланушылар процедурасын хабарлау;

Function             пайдаланушылар функциясын хабарлау;

Begin

               Операторлар тізбегі;  

End.

 

1.2 Графикалық режимдер

Жұмысқа графикалық процедуралардың күйге келтірілуі, қажетті графикалық драйверлердің қосылулары нақтылы адаптермен жұмыс істейді. Драйвер - арнайы бағдарлама, ол компьютердің басқа техникалық құралдарымен басқаруды жүзеге асырады. Адаптерлердің барлық үлгілеріне арналған практикалық графикалық драйверлер BORLAND фирмасы арқылы өңделген. Олар әдеттегі тегеріште BGI ішкі каталогында BGI кеңейтуімен файлдар түрінде орналасады (ағылшынша: Borland Graphics Interface- BORLAND фирмасының графикалық интерфейсі). Мысалы, CG4 - адаптеріне арналған CGA.BGI -драйвері, EGA және VGA адаптерлеріне арналған EGA VGA.BGI-драйвер және т.с.с. Осы кездегі шығарылып отырған ДК-лер IBM фирмасы арқылы өңделген адаптерлермен жабдықталған. MDA монохромды адаптері барлық  графикалық режимдерде жұмыс істеу мүмкіншілігіне ие.

Драйвер

Режим

Нүктелер саны

файл

CGA(l)

CGACO, CGAHi

320x200(640x200)

CGA.BGI

EGA (2)

EGALo, EGAHi

640x200(640x350)

EGAVGA.BGI

VGA (9)

HERCM ONOHI

720x348

HERC.BGI

 

 

 

 

 

 

 

 

CGA (Color Graphics Adapter – түсті графикалық адаптер) адаптері бес графикалық режимге ие. Төрт режимі экранның төмен үйлесуі мүмкіндігіне (көлденең 320 пиксель және 200 пиксель тігінен, 320х200) және палитра түстері жиынымен ерекшеленеді. Әрбір палитра үш түстен құрылады. Палитра 0 (жарық жасыл, қызғылт, сары), палитра 1 (светло-бирюзовый, таңқурай түс, ақ), палитра 2 (жасыл, қызыл, қоңыр), палитра 3 (бирюзовый, күлгін, ақ сұр) түстеріне ие. Бесінші режим 640х200 нүктелер санына ие. Бұл режимдегі әрбір пиксель алдын ала белгіленген және барлық пиксель түстеріне бірдей болған жағдайда жарық береді немесе мүлде жарқырамайды. Бұл режимдегі палитрада екі түс қолданылады. CGA адаптері графикалық режимде тек қана бір бетті қолданады.

EGA адаптері (Enabled Graphics Adapter-үдетілген графикалық адаптер) CGA адаптерінің барлық графикалық режимдерін қолдана алады. EGA адаптеріндегі мүмкін болатын режимдер: төменгі (640х200, 16түс, 4бет) және жоғарғы (640х350, 16түс, 1бет). Кейбір өзгертулерде монохромды режим (640х350, 1 бет, 2түс) де қолданылады.

MCGA (Multi-Color Graphics Adapter - көптүсті графикалық адаптер) адаптері CGA адаптерімен қатар қолданылады және тағы бір режимге (640х480, 2түс, 1бет) ие. Мұндай адаптер IBM фирмасының PS/2 үлгісінде құрылған.

Hercules фирмасының бірнеше белгілі адаптерлері бар. HGС адаптері 720х348 нүктелер санына ие. Оның пиксельдері бір түспен жарқырауы мүмкін (әдетте қоңыр түсті) немесе мүлде жарқырамайды. HICC (Hercules In Color Card) адаптері 16 түсті вариантты ұсынады. Олар төмендегі кестеде көрсетілген.

Түстердің қолданылуы

Түс тұрақтылары

Түс атауы

Түс тұрақтылары

Түс атауы

0 (Black)

Қара

8 (DarkGray)

Сұр

1 (Blue)

Көк

9 (LightBlue)

Ашық көк

2 (Green)

Жасыл

10 (LightGreen)

Ашық жасыл

3 (Cyan)

Көгілдір

11 (LightCyan)

Ашық көгілдір

4 (Red)

Қызыл

12 (LightRed)

Қызғылт

5 (Magenta)

Таңқурай түс

13 (LightMagenta)

Ашық таңқурай түс

6 (Brown)

Қоңыр

14 (Yellow)

Сары

7 (LightGray)

Ақ сұр

15 (White)

Ақ

 

GRAPH модулі icкe қосылысымен оның ішіндегі процедуралар мен функцияларды пайдалана беруге болады.

Графикалық режимді icкe косу:     

Экранды графикалық режимге ауыстыру үшін InitGraph операторы қолданылады. Бұл оператордың орындалуы нәтижесінде экран тазарып, түрлі - түсті режимге ауысады.

InitGraph (Var Driver, Mode: integer; Path: string);

мұндағы Driver - графикалык режимді анықтайтын параметр;

Mode - орнатылған драйверге байланысты берілетін графиктік режим параметрі;

Path - графиктік драйвер файлынын атауы және жолы.

Паскаль тілінің графикалық операторлары графикалың кез келген элементімен жұмыс істеуге және осы элементтердің түстерін меңгеруге мүмкіндік береді. Пиксель нұсқаулықтарына мынадай координата жүйелері қолданылады: координата басы (0,0) экранның сол жақ жоғарғы бұрышында орындалады; көлденең координата Х сол жақтан оңға қарай созылып, тік координата У жоғарыдан төмен қарай созылады. VGA (640х480) графикалық адаптерінде экранның оң жақ төменгі бұрышы (639, 479) координаталарына ие, ал экран центрінің  координаталары (319, 239).

Графикалық режимді жабу үшін CloseGraph процедурасы қолданылады.

Driver мәні Graph модулінде хабарланған тұрақтылар жиынымен шектеледі.

Тұрақты атауы

Сандық коды

Detect

0

CGA

1

MCGA

2

EGA

3

EGA64.

4

EGAMono

5

IBM8514

6

HercMono

7

ATT400

8

VGA

9

PC3270

10

 

1.3 GRAPH модулі

Күн санап компьютердің біздің күнделікті өмірден тұрақты орын ала бастауы, тілдің маңызын арттырып жіберді. Сондықтан болар, соңғы кездері Паскаль тілінің ең алғашқы түп нұсқасын жетілдіру мақсатымен тілдің бірнеше басқа да түрлері, модификациялары пайда бола бастады. Мысал ретінде Турбо Паскальдың бірнеше тармақпен шығуын алуға болады. Сонымен өмірдің өзі тілдің графикалық мүмкіндіктеріне де зор талаптар қоя бастады. Тілмен қатар жетіле келе, іздене келе компыотерлік графика атты үлкен бір сала пайда болды. Компьютерлік графика дегеніміз кез келген материалдық объктінің бір өлшемді түрінен бастап көп өлшемді түріне дейінгі әр түрлі адам нанғысыз болудағы компьютерлік кескінін айтамыз. Дербес компыотерлерде (івм РС/хт) екі негізгі режим қолданылады, біріншісі символдық (белгілік), екіншісі - графикалық. Графикалық режимде экранның 200 нүктелік қатардан тұратын әрбір кез-келген 320 нүктесін кескіндеуге болады. Бұл жерде нүкте деп алып отырғанымыз 0,8*1 мм2 ауданы өте кішкентай тіктөртбұрыш. Әрбір нүкте бүтін сандар жұбымен анықталған, біріншісі – қатардағы реттік саны, екіншісі – экрандағы қатардың реттік саны. Нүктенің ең үлкен мүмкін реттік саны 319-ға тең, ал қатардың мүмкін ең үлкен реттік саны 199-ға тең болады.

Графикалық режимге ауысу үшін GRAPHCOLORMODE операторын қолданады. GRAPHCOLORMODE сөзі аудармасында түрлі-түсті графикалық режимге дегенді білдіреді.

Осы режимде төрт түсті (болуы) қолдануға болады. Оңай болу үшін оларды цифрлармен белгілеген. 0 – қара (экранның түсі) түс, 1- жасыл, 2 - қызыл, 3 – қоңыр.

Turbo Pascal программалау тілінде символдық режимнен бөлек графиктік режимде жұмыс icтеуге болады. Онда әр түрлі графиктік кескіндер құрастыру мүмкіндігі бар. Turbo Pascal графиктік мүмкіншіліктерін пайдалану үшін арнайы "GRAPH" кітапханасы iске қосылады. GRAPH модулінің графиктік процедураларыменен функцияларын қолданып графиктік кескіндерді құрастыруға болады. GRAPH модуліне орналасқан процедуралар мен функцияларды пайдалану үшін программаның сипаттау бөлімінде көрсетіледі:

 

USES GRAPH

Графиктермен жұмыс icтey алдында оған сәйкес келетін монитор режимін орнату қажет. Паскаль тілінде алдын ала бекітілген драйверлер саны бар. Олардың әрқайсысы үш түрлі режимдердің бipiндe жұмыс істей алады. Драйвер типі мен оның режимi санмен немесе тұрақты түрінде берілген.

 

1.4  Процедуралар мен функциялар

Адаптерлердің көпшілігі әртүрлі режимде жұмыс жасайды. Адаптерлерлерге қажетті жұмыс режимін көрсету үшін Mode параметрі қолданылады. Процедураға шақыру кезінде мүмкін болатын мәндер тұрақтылары:

const

{CGA адаптері}

CGACO=0;

CGAC1=1;

CGAC2=2;

CGAC3=3;

CGAHi=4;

{MCGA адаптері}

MCGAC0=0;

MCGAC1=1;

MCGAC2=2;

MCGAC3=3;

MCGAMed=4;

MCGAHi=5;

{EGA адаптері}

EGAL0=0;

EGAHi=1;

EGAMonoHi=3;

{HGC және HGC+ адаптерлері}

HercMonoHi=0;

{ATT400 адаптері}

ATT400CO=0;

ATT400C1=1;

ATT400C2=2;

ATT400C3=3;

ATT400Med=4;

ATT400H1=5;

{VGAадаптері}

VGAL0=0;

VGAMed=1;

VGAHi=2;

PC3270H1=0;

{IBM8514 адаптері}

IBM8514LO=0;

IBM8514H1=1;

 

DetectGraph процедурасы

DetectGraph процедурасы компьютер құрылымын тестілеп, берілген бейнеадаптеріне қандай графиктік драйвер және режим тиімді екендігін анықтайды. Процедураның жазылуы:

DetectGraph (Var Driver, Mode : Integer);

Мұндағы: Driver - сәйкес келетін графиктік драйвердің типін анықтайды;

Mode - графиктік режим параметрі.

 

GraphResult функциясы

GraphResuIt қате орындалған графиктік операциялардың кодын шығарады. Функция жазылуы:

GraphResult: Integer;

Қателер коды төмендегі кестеде көрсетілген.

 

Тұрақты атауы

Коды

Анықтамасы

GrOk

0

Қате жоқ

GrNolnitGraph

-1

Графиктік  режим анықталмаған

GrNotDetected

-2

Адаптер типі анықталмаған

GrFileNotFound

-3

Драйвер файлы табылмады

GrlnvalidDriver

-4

Анықталған  файлда драйвер табылмады

 

GrNoLoadMem

-5

Драйверді жүктеуге жады көлемі жетпейді

GrNoScanMem

-6

Аймақты қарастыруға жады көлемі жетпейді

GrNoFloodMem

-7

Аймақты толтыруға    жады жетпейді

GrFontNotFound

-8

Қapiп файлы табылмады

GrNoFontMem

-9

Қapiп файлы табылмады

GrlnvalidMode

-10

Анықталған драйверге сәйкес келмейтін режим        

GrError

-11

Жалпы қате

GrlOerror

-12

Енгізу-шығару катесі

GrlnvalidFont

-13

Қapiптің дұрыс емес пішімі

GrlnvalidFontNum

-14

Қapiптің номepi дұрыс емес

 

 

RestoreCrtMode процедурасы

RestoreCrtMode графиктік режимнен текстік режимге уақытша ауысу процедурасы.

Процедураның жазылуы:

RestoreCrtMode;

RestoreCrtMode процедурасының CloseGraph процедурасынан айырмашылығы, ол графиктік режимнен текстік режимге ауысқанда графиктік режим параметрлерін сақтап қалады.

Бұл процедураны CloseGraphMode процедурасыменен бірге колдануға болады. Бірге колдану арқылы текстік режимнен графиктік режимге бірден ауыстырылады.

 

CloseGraph процедурасы

Графиктік режимді жабу процедурасы. Процедураның жазылуы:

CloseGraph;

Бұл процедура жадыда орналасқан барлық графиктік параметрлерден босатады.

 

SetСоlоr процедурасы

Бейнеленетін символдар мен түзулердін түсін орнату процедурасы. SetСоlоr процедурасының жалпы жазылуы:

SetСоlоr (Со1оr:Wогd);

Мұндағы Соlоr - ағымдағы түс.

Мысалы:

SetСоlоr (1); - экранға бейнелер көк түске боялып шығарылады.

 

 GetСоlоr функциясы

GetСоlоr функциясы ағымдағы түстің мәнін қайтарады.

Функция жазылуы:

Function GetСоlоr:Wогd;

Бұл функция SetСоlоr функциясы арқылы өзгертілген түстің мәнін қайтарады.

 

GetMaxColor функциясы

GetMaxColor функциясы. SetColor функциясына параметр ретінде беруге болатын ең үлкен мәнді анықтайды.

Функцияның жазылуы:

Function GetMaxColor : Word;

Функция аркылы берілетін мән, адаптер және драйверде қолданылатын тип арқылы анықталады. Мысалы, SVGA режимінде берілген процедура 15 санын қайтарады.

 

SetBkColor процедурасы

SetBkColor процедурасы фон түсін орнатады.

Процедура жазылуы:

Procedure SetBkColor (Color:Word);

Мұндағы Color - фонның жаңа түсі.

Фон түсі терезе үшін емес, экран түсін өзгертуге беріледі. Фонды өзгерту кодтары 0-15 аралығында болуы тиіс.

Мысалы:

SetBkColor(2);

немесе SetBkColor(Green);

Берілген мысал көмегімен экран фоны жасыл түске өзгертіледі.

 

GetBkColor функциясы

GetBkColor экрандағы фон түсінің мәнін анықтауға қолданылатын функция.

Функцияның жазылуы:

Function GetBkColor : Word;

GetBkColor функциясының қайтаратын мәні 0-15 аралығында болады. Ал текстік режимде берілген түстер санының тең жартысын ғана

қолдануға болады.

 

SetPalette процедурасы

SetPalette     палитра     түсін     жаңа     түске     ауыстыру процедурасы.

Процедуранын жазылуы:

Procedure SetPalette (Cut:Word; Paste:Shortint);

Мұндағы: Cut - палитра түci;

Paste - жаңа түстің коды.

Мысалы:      SetPalette (9,4);

Берілген көк түсті кызыл түске ауыстыру процедурасы.

 

SetVisualPage процедурасы

Көрсетілген нөмір бойынша беттің көрінуін анықтайды. Процедураның жазылуы:

Procedure SetVisualPage(PageNum:Word);

Мұндағы: PageNum-бет нөмірі.

Бетті нөмірлеу 0-ден басталады.

Келесі бағдарлама алдымен көрінетін бетте квадрат және шеңберді көрінбейтін бетте салады.Enter клавишасы шертілген соң көрінетін беттер ауысады.

 

Uses Graph;

Var

D,m,e:Integer;

S:String;

Begin

D:=Detect; InitGraph(d,m,’’);

E:=GraphResult; if e <> grOk then

Writeln(GraphErrorMsg(e))

Else

If d in [HercMono,EGA,EGA64,MCGA,VGA] then

Begin

If d <> HercMono then

SetGraphMode(m-1);

Rectangle(10,10,GetMaxX div 2,GetMaxY div 2);

OutTextXY(0,0,’Page 0.Press Enter…’);

SetActivPage (1);

Circle(GetMaxX div 2,GetMaxY div 2,100);

OutTextXY(0,GetMaxY-10,’Page 1.Press Enter…’);

Readln;

SetVisualPage(1);

Readln;

SetVisualPage(0);

Readln;

CloseGraph

End

Else

Begin

S:=GetDriverName; CloseGraph;

Wrieln(‘Адаптер’,s,’тек қана 1 бетті қолданады’)

End

End.

 

 

SetFillStyle процедурасы

SetFillStyle боялу түсін және ңұсқасын анықтайды.

Процедураның жазылуы:

Procedure SetFillStyle(Pattern:Word;Color:Word);

   Мұндағы: Pattern   -   толтыру   ңұсқасы (төмендегі кестеде көрсетілген);

 

 

 

 

 

 

 

 

 

 

 

 

 

        

GetX және GetY функциясы

Ағымдағы нүктенің тік және көлденең координаталар мәнін қайтарады.

Функцияның жазылуы:

Function GetX : Integer;

Function GetY : Integer;

GetX және GetY функцияларының мәндері экранның сол жақ жоғарғы бұрышынан нөлден басталып есептеледі.

 

  MoveTo процедурасы

MoveTo ағымдағы  көрсеткішті  берілген координата бойынша орналастырады.

Процедураның жазылуы:

Procedure Move1fo(X,Y : Integer);

Мұндағы: X және Ү - көрсеткіш орнын ауыстыруға берілетін экрандағы нүкте координаталары.

 

ClearDevice процедурасы

ClearDevice процедурасы экранды тазартып, ағымдағы көрсеткішті экранның жоғарғы сол жақ бұрышына орналастырады.

Процедураның жазылуы:

Procedure ClearDevice;

Экранды     тазартып,     SetBkColor     процедурасының көмегімен берілген түске бояйды.

 

GetPixel функциясы

GetPixel X жене Y координаталары бойынша орналасқан нүкте түсінің кодын қайтарады.

Функцияның жазылуы:

Function GetPixeI(X,Y:Integer):Word;

Мұндағы: X және Y - нүкте координаталары.

 

PutPixel процедурасы

PutPixel берілген орынға берілген түс бойынша нүкте бейнелейді.

Процедураның жазылуы:

Procedure PutPixel (X,Y:Integer; Color:Word);

Мұндағы: X және Y - нүкте координаталары;

Color - нүкте түci.

Мысалы:   PutPixel (100,55,14);   - 100-15 координатасы бойынша сары түсті нүкте орналастыру процедурасы.

 

Line процедурасы

Line берілген   координаталар   бойынша   екі   нүкте аралығында түзу бейнелеу процедурасы.

Процедуранын жазылуы:

Procedure Line (Xl,Yl,X2,Y2:lnteger);

Мұндағы:    X1,Y1 - түзудің    басталу    нүктесінің координаталары;

X2,Y2 - түзудің соңғы нүктесінің координаталары.

Түзудің қалыңдығын және бейнелену түрін SetLineStyle процедурасының көмегімен анықтайды.

Ал түзудің түсі SetColor процедурасынын көмегімен беріледі.

Мысалы: Line (25,50,85,100); - бастапқы нүктсі 25,50-ден басталып 85,100 координаталарынан аяқталатын түзу бейнелеу процедурасы.

 

LineTo процедурасы

LineTo ағымдағы орыннан бастап берілген координатаға дейін түзу тұрғызу процедурасы.

Процедураньщ жазылуы:

Procedure LineTo(X,Y:Integer);

Мұндағы: X және Y - нүкте координаталары.

 

Түзудің түсі SetColor процедурасының көмегімен беріліп, қалыңдығы және бейнелену түpi SetLineStyle процедурасының көмегімен анықтайды.

Мысалы, Turbo Pascal программалау тілінің кітапханасындағы кез-келген түс бойынша кез-келген координаталарда сызылатын түзулерді бейнелеу программасын қарастырайық.

Program LinetoTP;

uses

Crt, Graph;

var

GraphDriver, GraphMode: Integer;

begin

GraphDriver := Detect;

lnitGraph(GraphDriver, GraphMode, ");

if GraphResult <> grOk then Halt(1);

Randomize;

repeat

SetColor(Random(GetMaxColor)+1);

LineTo(Random(GetMaxX),

Random(GetMaxY));

until KeyPressed;

end.

 

SetLineStyle процедурасы

SetLineStyle түзудің жана түрін белгілейді.

Процедураның жазылуы:

Procedure SetLineSryle(Type,Pattern,Thick:Word);

Мұндағы: Туре - түзу типі (кесте);

Pattern - түзу түpi; 

Thick - түзу қалындығы.

 


 

 

Rectangle процедурасы

Rectangle ағымдағы түс және түр бойынша төртбұрыш бейнелейді.

Процедураның жазылуы:

Procedure Rectangle(Xl,Yl,X2,Y2:Integer);

Мұндағы: X1,Y1 – төртбұрыштың сол жақ жоғарғы нүктесінің координаталары;

X2,Y2 – төртбұрыштың оң жақ төменгі нүктесінің координаталары.

Мысалы: Rectangle(100,120,250,180);

Накты мысалы: төмендегі бағдарламада кез-келген пернені баспайынша тік-төртбұрыштарды ретсіз координаталар бойынша шығару жүзеге асырылады.

Program RectangTP;

uses Crt, Graph;

var

GraphDriver, GraphMode: Integer;

X1,Y1,X2,Y2: Integer;

begin

GraphDriver := Detect;

lnitGraph(GraphDriver, GraphMode,");

if GraphResulto grOk then

Halt(1);

Randomize; repeat

X1 := Random(GetMaxX);

Y1 := Random(GetMaxY);

X2 := Random(GetMaxX - X1) + X1;

Y2 := Random(GetMaxY - Y1) + Y1;

Rectangle(X1,Y1,X2,Y2);

until KeyPressed;

READLN;

CloseGraph;

end.

 

 

Circle процедурасы

Circle шеңбер салу процедурасы.

Процедураның жазылуы:

Procedure Circle(X,Y:Integer; Rad : Word);

Мұндағы: X,Y - шеңбердің центрі

Rad - шеңбер радиусы.

Мысалы, бірінен соң бipi орналасқан бес шенберді салу программасын қарастырайық.

Program grafica;

uses Graph;

var

Gd, Gm: Integer;

Radius: Integer;

begin

Gd := Detect;

lnitGraph(Gd, Gm,");

if GraphResult <> grOk then

Halt(1);

for Radius := 1 to 5 do

Circle(100, 100, Radius * 10);

Readln;

CloseGraph;

end.

 

GraphErrorMsg функциясы

GraphErrorMsg функциясы String типі мәнін қайтарады.Функцияның жазылуы:

Function GraphErrorMsg(Code:Integer):String;

Мұндағы: Code-GraphResult Функциясын қайтаратын қателік коды.

Мысалы,графиктік режимдегі автоматты типтегі драйверді орнату төмендегідей түрге ие болады:

Var

Driver,Mode,Error:Integer;

Begin

Driver:=Detect; {драйверді автоматты анықтау}

InitGraph(Driver, Mode,” “);

Error:=GraphResult; {нәтижесін алу}

If Error <> grOk then {Қатені тексеру}

Begin

Writeln(GraphErrorMsg(Error)); {хабарлама енгізу}

…..

End

Else {қате жоқ}

…..

 

 

GetGraphMode функциясы

Орнатылған графикалық адаптер жұмысы режимінің кодын және integer типі мәнін береді.Функцияның жазылуы:

FunctionGetGraphMode: Integer;

 

SetGraphMode процедурасы

Адаптердің жаңа графикалық жұмыс режимін орнатады.Процедураның жазылуы:

SetGraphMode(Mode: Integer);

Мұндағы: Modeқұрылған режим коды.

Төмендегі бағдарлама графикалық режимнен текстік режимге өтуді көрсетеді және керісінше:

Uses Graph;

Var

Driver,Mode,Error:Integer;

Begin

Driver:=Detect; {драйверді автоматты анықтау}

InitGraph(Driver, Mode,” “);

Error:=GraphResult; {нәтижені есте сақтаймыз}

If Error <> grOk then {Қатені тексеру}

Writeln(GraphErrorMsg(Error)); {қате бар}

Else

Begin {қате жоқ}

Writeln (‘Бұл графикалық режим’);

Writeln (‘Enter’ді басыңыз);

Readln;

{Текстік режимге өту}

RestoreCRTMode;

Writeln (‘Бұл текстік режим ба...’);

Readln;

{Графикалық режимге өту}

SetGraphMode (GetGraphMode);

Writeln (‘Қайтадан графикалық режим...’);

Readln;

CloseGraph

End

End.

 

GetDriverName функциясы

Жүктелген графикалық драйвер атын және String типі мәнін береді.

Функцияның жазылуы:

Function GetDriverName:Integer;

 

GetMaxMode функциясы

Нөмірі бойынша адаптер жұмысы режимін және String типі мәнін береді. Функцияның жазылуы:

Function GetMaxMode: Integer;

 

GetModeRange процедурасы

Берілген графикалық адаптердің мүмкін болатын жұмыс режимі диапазонын анықтайды.

Процедураның жазылуы:

Procedure GetModeRange(Drv: Integer;var Min,Max: Integer);

Мұндағы: Drv - адаптер типі; Min - Integer типі айнымалысы, режим нөмірінің мүмкін болатын төменгі мәнін анықтайды; Max- нөмірдің жоғарғы мәнін анықтайды.

Төмендегі бағдарлама барлық адаптерлердің атауын және мүмкін болатын жұмыс режимі нөмірлерінің диапазонын шығарады:

Uses Graph;

Var

D, L, H:Integer;

Const

N: array [1..11] of String [8] =

(‘CGA’, ‘MCGA’, ‘EGA’,

‘EGA64’, ‘EGAMono’, ‘IBM8514’,

‘HercMono’, ‘Att400’, ‘VGA’,

‘PC3270’, ‘Қате’);

Begin

Writeln(‘Мин.Макс. адаптері);

For D:=1 to 11 do

Begin

GetModeRange(D, L, H);

Writeln(N[D], L:7, H:10)

End

End.

 

GetMaxX және GetMaxY функциялары

Ағымдағы жұмыс режимінің, сәйкесінше экранның көлденең және тік координаталарының максималды мәндерін және Word типі мәнін анықтайды.Мысалы:

Uses Graph;

Var

A,b:integer;

Begin

A:=Detect; InitGraph(a, b,”);

Writeln(GetMaxX, GetMaxY:5);

Readln;

CloseGraph

End.

 

SetViewPort процедурасы

Графикалық экранда үшбұрышты терезені құрады. Процедураның жазылуы:

Procedure SetViewPort(x1,y1,x2,y2:integer; ClipOn:Boolean);

Мұндағы: х1..у2- терезе бұрышының (х1,у1) сол жақ жоғарғы және (х2,у2) оң жақ төменгі координаталары; CHpOn-boolean типі мәні.

Терезе координаталары сәйкесінше экранның сол жақ жоғарғы бұрышынан бастап беріледі.Егер ClipOn параметрі true мәнін қабылдаса,онда бейне элементтері бөліктерге бөлінеді.Керісінше жағдайда терезе шекараларын елемейміз.Осы параметрлерді басқару үшін мынадай анықталған тұрақтыларды пайдалануға болады:

Const

ClipOn=True;

ClipOff=False;

Келесі мысалда CHpOn параметрлерінің қимылы бейнеленеді.Бағдарлама параметрлері әртүрлі мәнді болатын екі үшбұрышты терезені құрады және оларда бірнеше шеңберлерді шығарады.

 

1-сурет. Терезедегі бейне бөлігі

 

Uses Graph, CRT;

Var

X,y,e:integer;

X11,y11,x12,y12, {1-терезе координаталары}

X21,x22, {2-терезенің сол жақ жоғарғы бұрышы}

R, {Бастапқы радиус}

K:Integer;

Begin

DirectVideo:=False;

X:=Detect; InitGraph(x,y,’’);

{Нәтижені тексереміз}

E:=GraphResult; if e<> grOk then

Wtiteln(GraphErrorMsg (e)) {Қате}

Else

Begin

X11:= GetMaxX div 60;

X12:= GetMaxX div 3;

Y11:= GetMaxY div 4; y12:=2*Y11;

R:=(x21+x12) div 4;x21:=x12*2;

X22:=x21+x12-x11;

Writeln ‘ClipOn:’:10,’ClipOff:’:40);

Rectangle(x11,y11,x22,y22,ClipOn);

SetViewPort(x11,y11,x22,y22,ClipOn);

For k:=1 to 4 do

Circle(0,y11,R*K);

SetViewPort(x21,y11,x22,y21,ClipOff);

For k:=1 to 4 do

Circle(0,y11,R*K);

If readkey=#0 then K:=ord(ReadKey);

CloseGraph

End

End.

GetViewSettings процедурасы

Ағымдағы графикалық терезенің координаталарын және бөлік белгілерін анықтайды. Процедураның жазылуы:

Procedure GetViewSettings(var ViewInfo: ViewPortType);

Мұндағы: ViewInfo-ViewPortType типі айнымалысы.Бұл тип Graph модулінде келесідей бейнемен анықталады:

Type

ViewPortType=record

X1,y1,x2,y2:Integer; {Терезе координаталары}

Clip: Boolean {Бөлік белгісі}

End;

 

MoveRel процедурасы

Көрсеткішке қатысты координатаның жай-күйін анықтайды. Процедураның жазылуы:

Procedure MoveRel(DX,DY:Integer);

Мұндағы: DX,DY-көрсеткіштің жаңа координаталарын енгізу.

 

GetAspectRatio процедурасы

Экран аймағы байланысын бағалайтын екі санды анықтайды. Процедураның жазылуы:

Procedure GetAspectRatio(var x,y:Word);

Мұндағы: х,у- Word типі айнымалысы.

 

SetAspectRatio процедурасы

Графикалық экранның масштабты қатынысын орнатады. Процедураның жазылуы: Procedure SetAspectRatio(x,y:Word);

Мұндағы: х,у-орнатылған байланыс аймағы.

 

ClearViewPort процедурасы

Графикалық терезені тазалайды.Тазалау барысында терезе палитраның 0 нөмірлі түсімен толтырылады.Көрсеткіш терезенің сол жақ жоғарғы бұрышына жылжиды. Процедураның жазылуы:

Procedure ClearViewPort;

 

ІІ ТАРАУ. ПАСКАЛЬ БАҒДАРЛАМАЛАУ ТІЛІНІҢ ГРАФИКАЛЫҚ МҮМКІНДІКТЕРІ

2.1 Жұлдыздардың бейнеленуі

1. Келесі бағдарламада экранда жұлдыз бейнеленеді және іші 12 типті сызықты пайдалана отырып боялады. Бағдарламадан шығу үшін ENTER клавишасын шертеміз.

Program Star;
   Uses Crt, Graph; 
   Const            
       TopsStar: Array[1..18] of Integer = (300, 125, 325, 225, 425, 250,
             325, 275, 300, 375, 275, 275, 180, 250, 275, 225, 300, 125);
   Var i, j, GrDriver, GrMode : Integer;
 BEGIN
   GrDriver := Detect;
   InitGraph(GrDriver, GrMode, 'C:\TP\BGI'); 
   SetTextStyle(DefaultFont, HorizDir, 2);   
                                             
   OutTextXY(220, 60, 'S T A R ');
   SetTextStyle(DefaultFont, VertDir, 2);
   OutTextXY(140, 150, 'S T A R ');
   SetTextStyle(DefaultFont, VertDir, 2);
   OutTextXY(500, 150, 'S T A R ');

 
   i:=0;
   Repeat
      j:=i mod 12;                        
      SetFillStyle(j, Random(13));        
      FillPoly(9, TopsStar);              
      Inc(i);                             
      Delay(500)
   until KeyPressed;             

 
   CloseGraph
 End.

 

2. Келесі бағдарламада экранда түрлі жұлдыздар бейнеленеді. Бағдарламадан шығу үшін ENTER клавишасын шертеміз.

Program Dragon10;

Uses CRT, Graph;

Const

m =8; {3..15}

Var

i, n, l: Integer;

x, y, c, r,ra,x1,y1: Real;

a, b: Array [0..m] of Real;

gd, gm: Integer;

Begin

gd:= Detect;

InitGraph(gd, gm, 'c:\bp\bgi');

For i:=0 to m-1 do Begin

a[i]:= cos(2*pi*i/m);

b[i]:= sin(2*pi*i/m);

End;

r:=sqrt(1.25*m);

x:= 1; y:= 1;

While not KeyPressed do Begin

l:=Random(m+1);

ra:=1/(sqrt(3*(x*x+y*y)));

If l mod 2 = 0 then Begin

x1:= -x/r + ra*y/r + a[l];

y1:= -ra*x/r - y/r + b[l];

End

Else Begin

x1:=x/r+ra*y/r+a[l];

y1:=-ra*x/r+y/r+b[l];

End;

x:=x1;

y:=y1;

 

PutPixel(Round(320+150*x),round(250+150*y),Random(16));

End;

ReadKey;

CloseGraph;

End.

 

3. Келесі бағдарламада экранда түрлі жұлдыздар бейнеленеді. Бағдарламадан шығу үшін ENTER клавишасын шертеміз.

Program STARSC;

Uses CRT, Graph;

Var

GD, GM:Integer;

nx, ny:Integer;

key:Char;

a,b,c,d,x,y:Real;

x1,y1,sx,sy,sx4,sy4:Real;

Begin

Randomize;

GD:=Detect;

InitGraph(GD, GM, 'c:\bp\bgi');

While key<>#27 Do Begin

a:=2*(0.5-Random);

b:=2*(0.5-Random);

c:=2*(0.5-Random);

d:=2*(0.5-Random);

x:=Random;

y:=Random;

While not KeyPressed Do Begin

sx:=pi*2*x;

sy:=pi*2*y;

sx4:=pi*4*x;

sy4:=pi*4*y;

x1:=a*sin(sx)+b*sin(sx)*cos(sy)+c*sin(sx4)+

d*sin(pi*6*x)*cos(sy4);

y1:=a*sin(sy)+b*sin(sy)*cos(sx)+c*sin(sy4)+

d*sin(pi*6*y)*cos(sx4);

nx:=Round(100*x1+320);

ny:=Round(100*y1+240);

PutPixel(nx,ny,getpixel(nx,ny)+1);

x:=x1;

y:=y1;

End;

Key:=Readkey;

ClearDevice;

End;

CloseGraph;

 

 

 

2.2 Бірінің ішіне бірі орналасқан түрлі - түсті 15 квадратты салу программасы

       Төмендегі бағдарламада бірінің ішіне бірі орналасқан түрлі - түсті 15 квадратты салу көрсетілген.

program pr2;

    uses Graph;

         var d,m,i,a:integer;

 begin

  d:=0;

  m:=0;

  InitGraph(d, m,'d:\bp\bgi');  

  setBkcolor(11);    

for i:=15 downto 0 do            

  begin

   SetFillStyle(1,i);    

   a:=i*10;

   Bar(320-a,240-a,320+a,240+a); 

end;

  readln;

  Closegraph;

  end.

 

2.3 Түрлі графикалық режимдегі бірнеше обьектілердің бейнеленуі

1. Графикалық режимдегі эллипстің салынуы. Келесі бағдарламада экранда эллипс терезесі құрылады. Кез келген пернені шерткен кезде терезе тазаланады. Бағдарламадан шығу үшін ENTER клавишасын шертеміз.

uses graph,crt;

var a,b,e:integer;

begin

a:=detect;

initgraph(a,b,'');

e:=graphresult;

if e<>grok then

writeln(grapherrormsg(e))

else

begin

repeat

setlinestyle(2,5,2*2+5);

setcolor(random(3));

ellipse(300,250,128,52,random(300),random(100));

setcolor(random(8));

ellipse(300,250,0,360,random(200),200);

until keypressed;

closegraph;

end

end.

 

2. Спираль. Келесі бағдарлама экран аймағында ортадан айнала шығатын спираль бейнеленеді Бағдарламадан шығу үшін ENTER клавишасын шертеміз.

.uses graph,crt;

var

chet,cv,k,n,x,y,p,t,i,dr,md:integer;

j:real;

begin

dr:=detect;

initgraph(dr,md,'');

n:=700;

k:=10;

randomize;

repeat

for i:=4100 downto 1 do begin

if keypressed then exit;

if i=1 then begin i:=4100;cv:=random(16);{if cv=0 then cv:=15;}end;

    begin

    chet:=chet+1;

    j:=i/n;

    x:=round(exp(j)*cos(k*j));

    y:=round(exp(j)*sin(k*j));

    putpixel(300+x,250+y,cv);

{    putpixel(200+x,250+y,cv);}

    end;

    delay(2);

    end;

until keypressed;

closegraph;

end.

 

. program ZDEMO3;

uses crt;

var

x,y,n,i:word;

gc,c:byte;

cc,nn,ee,xx,yy:real;

 

procedure setgra;assembler;

asm

   mov ax,13h

   int 10h

end;

 

procedure settext;assembler;

asm

   mov ax,2h

   int 10h

end;

 

procedure key;assembler;

asm

   mov ah,10h

   int 16h

end;

 

procedure ppixel(x,y:word;c:byte);assembler;

asm

   push 0a000h

   pop es

   mov ax,320

   mul [y]

   add ax,[x]

   mov di,ax

   mov al,c

   mov [es:di],al

end;

 

procedure lineh(x:word;c:byte);assembler;

asm

   push 0a000h

   pop es

   mov cx,200

   mov bl,c

@lineh:

   mov ax,320

   mul cx

   add ax,[x]

   mov di,ax

   mov [es:di],bl

   loop @lineh

end;

 

procedure gpixel(x,y:word);assembler;

asm

   push 0a000h

   pop es

   mov ax,320

   mul [y]

   add ax,[x]

   mov di,ax

   mov al,[es:di]

   mov [gc],al

end;

 

procedure fill(c:byte);assembler;

asm

   push 0a000h

   pop es

   xor di,di

   mov al,c

@fill:

   inc di

   mov [es:di],al

   cmp di,0FA00h

   jne @fill

end;

 

procedure addcolor(num:byte);assembler;

asm

   push 0a000h

   pop es

   xor di,di

   mov bl,num

@addcolor:

   inc di

   mov al,[es:di]

   cmp al,0

   je @add16

   jmp @addstd

@add16:

   mov al,16

@addstd:

   add al,bl

   mov [es:di],al

   cmp di,0FA00h

   jne @addcolor

end;

 

procedure go2color(num:byte);assembler;

asm

   push 0a000h

   pop es

   xor di,di

   mov bl,num

@addcolor:

   inc di

   mov al,[es:di]

   cmp al,0

   je @add16

   jmp @addstd

@add16:

   mov al,16

@addstd:

   add al,bl

   mov [es:di-1],al

   cmp di,0FA00h

   jne @addcolor

end;

 

procedure subcolor(num:byte);assembler;

asm

   push 0a000h

   pop es

   xor di,di

   mov bl,num

@subcolor:

   inc di

   mov al,[es:di]

   cmp al,16

   je @sub16

   jmp @substd

@sub16:

   mov al,255

@substd:

   sub al,bl

   mov [es:di],al

   cmp di,0FA00h

   jne @subcolor

end;

 

procedure go1color(num:byte);assembler;

asm

   push 0a000h

   pop es

   xor di,di

   mov bl,num

@hzcolor:

   inc di

   mov al,[es:di]

   cmp al,16

   je @hz16

   jmp @hzstd

@hz16:

   mov al,255

@hzstd:

   sub al,bl

   mov [es:di-1],al

   cmp di,0FA00h

   jne @hzcolor

end;

 

procedure go3color(num:byte);assembler;

asm

   push 0a000h

   pop es

   xor di,di

   mov bl,num

@hzcolor:

   inc di

   mov al,[es:di]

   cmp al,16

   je @hz16

   jmp @hzstd

@hz16:

   mov al,255

@hzstd:

   sub al,bl

   mov [es:di],al

   cmp di,0FA00h

   jne @hzcolor

end;

 

procedure drawcircle;

begin

for n:=1 to 120 do

begin

ee:=0;

while ee<7 do

 begin

 ee:=ee+0.005;

 xx:=cos(ee)*n;

 yy:=sin(ee)*n/1.2;

 c:=round(ee*15);

 if ee>6 then c:=c-16;

 if ee<1.1 then c:=c+80;

 i:=i+1;

 if i>=1360 then i:=1;

 ppixel(round(xx)+160,round(yy)+100,(c+i shr (i div c)) mod i);

 end;

end;

end;

 

begin

setgra;

ee:=0;

nn:=0;

i:=0;

{circle}

drawcircle;

{/circle}

while not keypressed do drawcircle;key;

while not keypressed do addcolor(1);key;

while not keypressed do subcolor(1);key;

while not keypressed do go1color(1);key;

while not keypressed do go2color(1);key;

while not keypressed do go3color(1);key;

{}

settext;

end.

3. Төмендегі бағдарламаның орындалуы нәтижесінде экранға баспалдақ бейнесі көрінеді. Бағдарламадан шығу үшін ENTER клавишасын шертеміз.

Uses Crt, Graph;

Const

max=2187;

Var

gd,gm:Integer;

C:Array [0..max] of Integer;

i:Integer;

x, y: Integer;

Procedure Draw(x: Integer; L: Word);

Var

s: Word;

Begin

If L > 0 then Begin

s:= L div 3;

Draw(x, s);

Draw(x + 2*L, s);

End

Else C[x]:=1;

End;

Begin

  gd:= Detect;

  For i:=0 to max do C[i]:=0;

  InitGraph(gd,gm,'c:\bp\bgi');

  Draw(0, max);

  For i:=1 to max do C[i]:=C[i-1]+c[i];

  For i:=0 to max do Begin

    x := Round(i/max*639);

    y := Round(C[i]/C[max]*479);

    Line(x, 479, x, 479 - y);

  End;

  ReadKey;

  CloseGraph;

End.

 

4. Төмендегі бағдарламаның орындалуы нәтижесінде ою бейнеленеленеді. Бағдарламадан шығу үшін ENTER клавишасын шертеміз.

Program MonkeyTree;

Uses CRT, Graph;

var

  gd, gm: Integer;

 

Procedure Draw(x, y, l, u : Real; t, q,s : Integer);

Procedure Draw2(Var x, y: Real; l, u : Real; t, q,s : Integer);

Begin

    Draw(x, y, l, u, t, q,s);

    x := x + l*cos(u);

    y := y - l*sin(u);

End;

Begin

  If t > 0 then Begin

    If q = 1 then Begin

      x := x + l*cos(u);

      y := y - l*sin(u);

      s:=-s;

      u:=u+pi;

    End Else

    If q = 3 then Begin

      x := x + l*cos(u);

      y := y - l*sin(u);

      s:=s;

      u:=u+pi;

    End Else

    If q = 2 then Begin

      s:=-s

    End Else

    If q = 0 then Begin

      s:=s

    End;

    l := l/3;

    Draw2(x, y, l,           u+s*pi/3,   t-1, 2,s);

    Draw2(x, y, l,           u+s*pi/3,   t-1, 1,s);

    Draw2(x, y, l,           u,          t-1, 0,s);

    Draw2(x, y, l,           u-s*pi/3,   t-1, 1,s);

    Draw2(x, y, l*sqrt(3)/3, u-s*7*pi/6, t-1, 1,s);

    Draw2(x, y, l*sqrt(3)/3, u-s*7*pi/6, t-1, 2,s);

    Draw2(x, y, l*sqrt(3)/3, u-s*5*pi/6, t-1, 3,s);

    Draw2(x, y, l*sqrt(3)/3, u-s*pi/2,   t-1, 3,s);

    Draw2(x, y, l*sqrt(3)/3, u-s*pi/2,   t-1, 0,s);

    Draw2(x, y, l,           u,          t-1, 3,s);

    Draw2(x, y, l,           u,          t-1, 0,s);

 

  End

  Else Line(Round(x), Round(y), Round(x+cos(u)*l), Round(y-sin(u)*l));

End;

 

Begin

  gd := Detect;

  InitGraph(gd, gm, 'c:\bp\bgi');

  Draw(50, 365, 430, 0, 3, 0, 1);

  ReadKey;              {^}

  CloseGraph

End.

 

 

 

ҚОРЫТЫНДЫ

       Қорыта келгенде бұл дипломдық жұмысымызда Паскаль бағдарламалау тілінің графикалық мүмкіншіліктерін жан- жақты қарастырдық.

         Жұмыстың құрылымы кіріспеден, екі тараудан, пайдаланылған әдебиеттерден тұрады. Кіріспеде жалпы Паскаль бағдарламалау тілінің шығу тарихы және қазіргі кездегі қолданылуы айтылған. Pascal программалау тілінде символдық режимнен бөлек графиктік режимінде жұмыс icтеуге болады. Онда әр түрлі графиктік кескіндер құрастыру мүмкіндігі бар.

Паскаль тілінің графикалық операторлары графикалық кез келген элементімен жұмыс істеуге және осы элементтердің түстерін меңгеруге мүмкіндік береді.

Бірінші тарауда Паскаль бағдарламалау тілінің негізгі графикалық операторлары, функциялары, процедуралары, графикалық режимдері және GRAPH модулі қарастырылды.

Екінші тарауда Паскаль бағдарламалау тілінде есептер шығаруда қолдану. Мұнда жұлдыздардың бейнеленуі, бірінің ішіне бірі орналасқан түрлі - түсті 15 квадратты салу программасы, әр түрлі графикалық режимдегі бірнеше обьектілердің бейнеленуі қарастырылды. Паскаль бағдарламалау тілінің графикалық мүмкіндіктерін өз жұмысымызда пайдаландық.

Жұмыс барысында Паскаль бағдарламалау тілінің графикалық мүмкіндіктерін зерттей отырып, негізгі графикалық обьектілерді салу операторлары және функцияларымен танысып, сондай-ақ оларды бағдарламалауда қолдандық.

 

 

ПАЙДАЛАНҒАН ӘДЕБИЕТТЕР

1. Абрамов В.Г. Введение в язык паскаль: Учебное пособие для вузов по спец. “Прикл. математика”/В.Г.Абрамов, Н.П. Трифонова.-М.: Наука, 1988. 

2. Белецкий Я. Турбо Паскаль с графикой для персональных компьютеров/ Белецкий Я.; Перевод с польского Д.И.Юренково.-М.: Машиностроение, 1991.

3. Боон К. Паскаль для всех / Боон К.-М.: Энергоавтомиздат, 1988.

4. Васюкова Н.А. Практикум по основам программирования. Язык  Паскаль: Учеб. пособие для учащихся сред.спец.учеб.зав./Васюкова Н.А., Тюляева В.В.- М.: Высш.шк., 1991.

5. Джонс Ж. Решение задач в системе Турбо Паскаль / Ж.Джонс; Пер. С англ. Предисл. Ю.П. Широкого .-М.:Финансы и статистика, 1991.

6. Камардинов О. Паскаль тілінде программалау: Оқу құралы / -Алматы: Республикалық баспа кабинеті,1994.

7. Омарова Н.Ы. Паскаль тілінде программалау негіздері: Оқу құралы/ Н.Ы.Омарова, К.У.Тұрмағамбетова, К.Н.Нуриденова. -Алматы:Білім, 1996.

8 Поляков Д.Б. Программирование в среде Турбо Паскаль (Версия 5.5): Справ.-метод.пособия / Поляков Д.Б.,Круглов И.Ю.-М.:Изд.МАИ,1992.

8. Фаронов В.В. Турбо Паскаль. Начальный курс: Учеб. Пособие /      Фаронов В.В. -7 изд., перераб.-М:Нолидж, 2001. (Росс. Ассоциация. Издателей компьютер. Литературы)

9. Фаронов В.В. Турбо Паскаль: Практика программирования: Учебное пособие / В.В.Фаронов.-7-е изд., перераб.-М.: Нолидж, 2000.

10. Шаметов Е.Б. Паскаль тілін үйренейік: оқу құралы / Е.Б.Шаметов.-Шымкент: ҚазХТИ, 1993.

11. Шаньгин В.Ф. Программирование на языке ПАСКАЛЬ / Шаньгин В.Ф., Подубная Л.М.-М.: Высш.шк., 1991.

12. Масанов Ж.Қ., Б.А.Бельгибаев, А.С.Бижанова, Қ.Қ.Мақұлов Turbo Pascal: Оқу құралы:- Алматы,2004.

13. Шелест В. Программирование – Санкт-Петербург «БХВ- Петербург», 2002.

14. Моргун А.Н. Решение задач средствами языка Паскаль 7.0 – Киев «Юниор», 2002.

15. Немнюгин С.А.  Turbo Pascal практикум – Санкт-Петербург «Питер», 2001.

16. WWW. Google.kz

17. WWW. Mail.ru

18. WWW. Bankreferatov.ru

19. WWW. Rambler.ru

20. WWW. Yandex.ru

Мәлімет сізге көмек берді ма

  Жарияланған-2013-06-07 23:57:48     Қаралды-7344

ГАЛАКТИКА ДЕГЕНІМІЗ НЕ?

...

Ежелгі гректер бұл жұлдыздар шоғырын Галактика деп атаған, ол Құс жолы дегенді білдіреді.

ТОЛЫҒЫРАҚ »

ҒАЛАМ ҚАЛАЙ ПАЙДА БОЛДЫ?

...

20 ғасырдың бірінші ширегіне дейін Әлемнің өзгермейтін, тұрақты және мәңгілік нәрсе ретіндегі идеясы болды.

ТОЛЫҒЫРАҚ »

ДҮНИЕЖҮЗІЛІК МҰХИТ ТУРАЛЫ НЕ БІЛЕМІЗ?

...

Дүниежүзілік мұхиттар – гидросфераның негізгі бөлігі

ТОЛЫҒЫРАҚ »

ЭЛЕКТР ҚУАТЫН КІМ АШТЫ?

...

Бенджамин Франклин есімді адам бірінші болып электр тоғының не екенін толық түсіндіруге тырысты.

ТОЛЫҒЫРАҚ »

ВЕЛОСИПЕДТІ АЛҒАШ КІМ ОЙЛАП ТАПТЫ?

...

Бұл скутер педальсыз велосипедке көбірек ұқсады...

ТОЛЫҒЫРАҚ »

КОФЕНІ ҚАШАН ЖӘНЕ КІМ ОЙЛАП ТАПТЫ?

...

Кофені кім және қашан ойлап тапқанын нақты айту мүмкін емес - бәрі аңыздан басталды.

ТОЛЫҒЫРАҚ »

ӘЛЕМДЕГІ АЛҒАШҚЫ СМАРТФОН

...

Сенсорлық экраны бар ең алғашқы смартфон IBM Simon болды.

ТОЛЫҒЫРАҚ »

СІЗ АУАНЫ КӨРЕ АЛАСЫЗ БА?

...

Ауаның мөлдір, түссіз, иіссіз екенін бәрі біледі.

ТОЛЫҒЫРАҚ »

ЕҢ БИІК ТАУ ҚАЙ ЖЕРДЕ?

...

Планетамыздағы ең биік тау құрлықта емес, Тынық мұхитының түбінде тұр

ТОЛЫҒЫРАҚ »