МАЗМҰНЫ
I ТАРАУ. ПАСКАЛЬ БАҒДАРЛАМАЛАУ ТІЛІНІҢ ГРАФИКТІК РЕЖИМІ 3
1.1 Паскаль бағдарламалау тілі 3
1.4 Процедуралар мен функциялар. 9
ІІ ТАРАУ. ПАСКАЛЬ БАҒДАРЛАМАЛАУ ТІЛІНІҢ ГРАФИКАЛЫҚ МҮМКІНДІКТЕРІ 29
2.1 Жұлдыздардың бейнеленуі 29
2.2 Бірінің ішіне бірі орналасқан түрлі - түсті 15 квадратты салу программасы 32
2.3 Түрлі графикалық режимдегі бірнеше обьектілердің бейнеленуі 32
КІРІСПЕ
Қазіргі кезде кеңінен қолданылатын программалау жүйесінің бірі – 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 Қаралды-7900
АРА НЕ БЕРЕДІ?
Аралар - біздің әлемде маңызды рөл атқаратын кішкентай, бірақ өте маңызды жәндіктер.
КЕМПРҚОСАҚ ДЕГЕНІМІЗ НЕ?
Адамдар бұл ең әдемі табиғат құбылысының табиғаты туралы бұрыннан қызықтырды.
АЮЛАР НЕГЕ ҚЫСТАЙДЫ?
Ұйықта қысқы ұйқы аюларға қыстың аш маусымынан аман өтуіне көмектеседі.
АНТИБӨЛШЕКТЕР ДЕГЕНІМІЗ НЕ?
«Анти» сөзінің мағынасын елестету үшін қағаз парағын алып...
- Құқық, Қоғам, Криминалистика
- Информатика
- Туризм
- Өндіріс, Өнеркәсіп, Құрылыс, Мұнай-газ, Электротехника
- Психология, Педагогика
- География, Экономикалық география, Геология, Геодезия
- Экономика, макроэкономика, микроэкономика
- Экология
- Тіл ғылымы, Филология
- Қаржы, салық және салық салу, банк ісі, ақша несие және қаржы
- Биология
- Ветеринария
- Ауыл шаурашылық саласы