Автор работы: Пользователь скрыл имя, 28 Апреля 2014 в 01:25, курсовая работа
Берілген курстық жұмыста Паскаль программалау тілінде түрлі
графикалық обьектілерді құру мүмкіндіктері қарастырылған. Graph модулін
пайдалана отырып оның түрлі сипаттағы функциялары мен процедуралары
программалау кезінде қолданылды. Паскаль программалау тілінде графикалық
жұмыстар екі режимде іске асады
Кіріспе....................................................................................................................
1. 1. Паскаль программалау тіліндегі фрактальді графика........................
1. 1 Базалық процедуралар мен функциялар.......................................................
1. 2 Фрактальді графикалық режимдегі экран мен терезелер...........................
1. 3 Фрактальді графикада қарапайым фигураларды шығару...........................
1. 4 Графикалық процедуралар………………………………………………….
1. 5 Graph модулі…………………………………………………………………
1. 6 Мәтінмен жұмыс………………………………………………………….....
2. Фрактальді графика мүмкіндіктерін программалауда жүзеге асыру.
2. 1 Функцияның графигін тұрғызу……….........................................................
2. 2 Графикадағы циклдер. Кездейсоқ процесстердiң құрастыру….................
2. 3 Жұлдызды аспан программасы......................................................................
Қорытынды...........................................................................................................
Қолданылған әдебиеттер....................................................................................
Қазақстан Республикасының Білім және Ғылым Министрлігі
Еуразия Академиясы
“Информатика және есептеу техникасы”
мамандығы деканаты
«Алгоритмдеу және программалау тілдері» пәнінен
КУРСТЫҚ ЖҰМЫС
Тақырыбы: “ Pascal программалау тіліндегі фрактальді графика”
Орындаған: «Ақпараттық жүйелер»
мамандығының сырттай оқу бөлімінің
ИС711 тобының студенті Салимова Б.А.
Тексерген: аға оқытушы Абдрахманова Д.Ж.
Орал, 2012
Мазмұны |
|
Кіріспе....................... |
3 |
1. 1. Паскаль программалау
тіліндегі фрактальді графика....................... |
5 |
1. 1 Базалық процедуралар
мен функциялар................ |
5 |
1. 2 Фрактальді графикалық
режимдегі экран мен терезелер. |
7 |
1. 3 Фрактальді графикада қарапайым
фигураларды шығару........................ |
8 |
1. 4 Графикалық процедуралар……………………………………………… |
13 |
1. 5 Graph модулі……………………………………………………………… |
17 |
1. 6 Мәтінмен жұмыс…………………………………………………………... |
|
2. Фрактальді графика мүмкіндіктерін программалауда жүзеге асыру. |
24 |
2. 1 Функцияның графигін тұрғызу……….................... |
24 |
2. 2 Графикадағы циклдер. Кездейсоқ процесстердiң құрастыру…................. |
26 |
2. 3 Жұлдызды аспан программасы................... |
28 |
Қорытынды..................... |
30 |
Қолданылған әдебиеттер.................... |
32 |
Кіріспе
Берілген курстық жұмыста Паскаль программалау тілінде түрлі графикалық обьектілерді құру мүмкіндіктері қарастырылған. Graph модулін пайдалана отырып оның түрлі сипаттағы функциялары мен процедуралары программалау кезінде қолданылды. Паскаль программалау тілінде графикалық жұмыстар екі режимде іске асады. Олардың бірі мәтіндік болса, екіншісі графикалық болып табылады. Мәтіндік режимде монитор экраны жолдар мен бағандарға бөлінген, яғни әрбір ұяшығында бір символдан орналасқан торды көрсетеді. Ал бұл кестенің өлшемі таңдалған режимге байланысты болып келетіндігін көрсетеді. Сондықтан да мәтіндік режимдегі графикалық суреттер символдардың үйлесімі арқылы жүзеге асады. Бұндай суреттерді кей жағдайда “псевдографика” деп те атайды.
Мәтіндік режимге қарағанда графикалық режимде монитордың экранында саны өте көп нүктелердің (пиксельдердің) үйлесімін көруге болады. Нүктелердің әртүрлі түстермен үйлесімі арқылы графикалық фигуралар құралады. Нүктелердің көлденең және тігінен орналасуына байланысты, экранның өлшемі бейнеадаптердің таңдалған режиміне сай келеді.
Курстық жұмысымды жазу кезіндегі негізгі мақсат: Паскаль программалау тіліндегі фрактальді графикамен таныс бола отырып, оның мүмкіндіктерін көрсету болатын. Программалауда график тұрғызудың маңызы өте зор, сонымен қатар түрлі фигураларды салу, олардың қозғалысын бейнелеу қызықты да, бейнетті іс деп айтуға болады, себебі көптеген суреттер және графикалар бұндай программалардың көмегінсіз жүзеге аспайтын еді. Функцияның графигін тұрғызу, не болмаса сурет салу қажетті мақсатқа қол жеткізіп қана қоймай, графикалық режимдегі процесті қызықты ете түседі, ал бұл қызығушылықтың арқасында программаны игеру де соғұрлым тезірек іске асады. Функцияның графигін тұрғызуда тек теориялық ережелерге ғана сүйеніп қоймай, практикаға да зор мән беру қажет. Программалау кезінде графикада алуан түрлі әрлеу жұмыстары жасалады, бұл процестерді жүзеге асыру үшін Graph модулі ең қажетті функция болып есептеледі.
Курстық жұмыстың негізгі міндеттері келесі қағидалардан тұрады:
Геометриялық обьектілердің орны мен пішіні нүктенің координаталарымен берілетіндігі геометриядан белгілі. Өз кезегінде, графикалық қорытындыны программалау үшін графикалық обьектілердің координаталарын беруді үйрену қажет. Көптеген процедуралар мен функциялар экрандағы қадамын бағыттаушыны қолданады, оның ерекшелігі мәтіндік курсорға қарағанда көрінбейді.Бұл бағыттаушының орны экрандағы кез келген координата секілді сол жақ жоғарғы бұрышқа қатысты координаталарға ие болады. Осылайша экранның тігінен орналасқан координатасы солдан оңға қарай өседі, ал көлденең орналасқан координата жоғарыдан төменге қарай өседі. GetMaxX және GetMaxYфункциялары берілген режимде тігінен және көлденеңі бойынша экран координаталарының максималды мәндерін құрайды. SetViewPort процедурасы графикалық режимде тікбұрышты терезе құрады. ClearDevice процедурасы графикалық экранды тазартады. Осы процедураға жүгінгеннен соң бағдарша сол жақ жоғарғы бұрышқа орнығады, ал экран SetBkColor процедурасы арқылы берілген фонмен толтырылады. PutPixel процедурасы координатасы бойынша берілген нүктенің түсін шығарады. Жазылымы: Procedure PutPixel(X, Y: I eder; Color: word); X, Y – нүктенің координаталары, ал Color – нүктені түсі.
1. Паскаль программалау тіліндегі фрактальді графика
1. 1 Базалық процедуралар мен функциялар
Паскаль программалау тіліндегі дисплей экраны көп нүктеден құралған тіктөртбұрышты алаңды сипаттайды. Дисплей мәтіндік және графикалық режимдерде жұмыс істейді. Алайда мәтіндік режимге қарағанда графикалық режимде әрбір нүктенің түсін өзгертуге мүмкіндік бар.
Графикалық программалау процесін әсерлі ете түсу үшін Borland International компаниясы арнайы Graph (бұл кітапханалық модуль 79 графикалық процедура, функция, түрлі стандартты константалар мен берілген типтерден құралады) кітапханасын, түрлі монитор типтерімен жұмыс жасауға мүмкіндік беретін драйверлерді теру, графикалық экранға әр түрлі биіктіктегі және пішіндегі мәтіндерді шығару үшін қаріптерді теруді жасап шығарды.
Графиканың аппаратты қолдауы екі негізгі модульмен: видеомонитормен және видеоадаптермен қамтамасыз етіледі. Компьтерде қандай да болмасын адаптер орнатылғанымен, негізгі адаптерге соңғы күйге келтіру автоматты түрде орындалатындықтан Турбо Паскальдің графикалық процедуралары мен функцияларының арқасында сол бір терулерді қолдануға болады. Бұл күйге келтіруді графикалық драйверлер іске асырады.
Графикалық жүйеде қосылу мен жұмысын аяқтау келесі түрде жүзеге асады:
var gd, gm: integer;
gd:=Detect;(gm мәні gd:=detect командасынан кейін; автоматты түрде анықталады)
InitGraph(gd, gm драйверге жолды нұсқайды, дәлірек болған сайын жақсы)
Осы сәттен бастап қолданушыға барлық графикалық құрылғыларға қолжетімді болады.
3. Графикалық жүйедегі жұмысты аяқтау: CloseGraph;
Базалық процедуралар мен функциялар.
Экранға суретті тұрғызу үшін координаталар жүйесі қолданылады. Санау координаталары (0,0) болатын экранның сол жақ жоғарғы бұрышынан басталады. Х (баған) мәні солдан оңға қарай өседі, Y (жол) мәні жоғарыдан төмен қарай өседі. Суретті тұрғызу үшін бастапқы нүктені белгілеу керек. Мәтіндік режимде аталған нүктені экрандағы меңзер нұсқайды. Ал графикалық режимде көрінетін меңзер жоқ, бірақ көрінетін CP (Current Pointer) нұсқауы бар. Бұл дәл сол меңзер, алайда ол көрінбейді.
Кесте 1.
Graph модулі графиктік функциялар мен процедураларды
Процедура |
Формат |
Әрекет |
SetColor |
SetColor(a: word); |
Сурет салынатын түсті қояды |
SetBkColor |
SetBkColor(a: word); |
Экран фонының түсін қояды |
SetFillStyle |
SetFillStyle(a, b: word); |
Облысты бояудың түсі мен стилін қояды |
SetLineStyle |
SetLineStyle(a, b, c: word); |
Сызық стилін және қалыңдығын қояды |
SetTextStyle |
SetTextStyle(a, b, c: word); |
Текстің шрифтін, стиль және өлшемін қояды |
SetFillPattern |
SetFillPattern(Pattern: FillpatternType; Color: word); Pattern - маска |
Қолданушы анықтаған толтыру шаблонын таңдайды |
ClearDivice |
ClearDivice; |
Экранды тазалайды және ағымдағы бағыттауышты басына қояды |
SetViewPort |
SetViewPort(x1, y1, x2, y2: integer, Clip: boolean); |
Графиктік шығару үшін ағымдағы терезені қояды |
ClearViewPort |
ClearViewPort |
Терезені тазалайды |
PutPixel |
PutPixel(a, b, c: integer); |
Берілген түске боялған нүкте салады |
Line |
Line(x1, y1, x2, y2: integer); |
(x1, y1) ден (x2,y2) дейін сызық сызады |
Rectangle |
Rectangle(x1, y1, x2, y2: integer); |
(x1, y1) ден (x2, y2) дейін диоганалымен төртбұрыш сызады |
Bar |
Bar(x1, y1, x2, y2: integer); |
Боялған төртбұрыш салады |
Bar3D |
Bar3D(x1, y1, x2, y2, d: integer; a: boolean); |
Үш өлшемді жолақ салады (параллелепипед) |
Circle |
Circle(x, y, r: word); |
(x, y) нүктесінде радиусы r шеңбер салады |
Arc |
Arc (x, y, a, b, R: integer); |
Радиусы R шеңбер доғасын салады |
Ellipse |
Ellipse(x, y, a, b, Rx, Ry: integer); |
Эллипсті доға салады |
FillEllipse |
FillEllipse(x, y, Rx, Ry: integer); Rx, Ry – жарты осьтер |
Боялған эллипс салады |
MoveTo |
MoveTo(x, y: integer); |
Ағымдағы бағыттауышты жылжытады |
MoveRel |
MoveRel(x, y: integer); |
Берілген қашықтыққа горизонталь және вертикаль бойынша ағымдағы бағытауышты жылжытады |
OutText |
OutText(text: string); |
Ағымдағы бағыттауыштан мәтін шығарады |
OutTextxy |
OutTextxy(x, y: integer; text: string); |
(x, y) - тен мәтін шығарады |
Sector |
Sector(x, y, a, b, Rx, Ry: integer); |
Эллипс секторын салады және толтырады |
Кесте 2.
Graph модулінің қызметі
GetBkColor |
Ағымдағы фондық түсті қайтарады |
GetColor |
Ағымдағы түсті қайтарады |
GetX |
Ағымдағы позицияның X координатасын қайтарады |
GetY |
Ағымдағы позицияның Y координатасын қайтарады |
GetPixel |
(x, y)нүктесінің түсін қайтарады |
1. 2 Фрактальді
графикалық режимдегі экран
Анология бойынша графикалық экран мәтіндік режиммен біртұтас үлкен немесе өлшемі жағынан кіші терезе ретінде қарастырылуы мүмкін. Терезені орнатқаннан кейін экранның қалған ауданы бұрын болмағандай және барлық енгізу-шығарулар терезе арқылы іске асады. Әрбір сәтте тек бір ғана терезе жұмыс жасай алады. Егер терезелер саны бірнешеу болса, қажет емес терезеге енгізу-шығаруларды қосып отыруға программисттің жауап береді.
Негізінен терезе тұтас экранды алып тұрады, оның сол жақ жоғарғы және оң жақ төменгі бұрыштарының координаталары InitGraph процедурасының инициализациясымен автоматты түрде орнатылады.
Егер терезе құруға тура келсе, SetViewPort (x1, y1, x2, y2 : integer, Clip:boolean) процедурасын қолднаған жөн; мұндағы x1, y1 – сол жақ жоғарғы бұрыштың координаталары, x2, y2 – оң жақ төменгі бұрыштың координаталары. Clip параметрі сурет терезенің сыртына шығып кеткен жағдайда қиылысадыма (Clip:= True) әлде жоқпа (Clip:=False), соны анықтайды. Терезе құрылғаннан кейін координатасы (0, 0) болатын терезенің сол жақ жоғарғы бұрышындағы нүкте санаққа кіріседі.
Толық экранның координаталар жүйесін қайта қалпына келтіруге болады, негізінен ClearDevice немесе процедураға терезенің орындалуын жүктеген кезде максимальді мүмкін мәндерге SetViewPort( 0, 0, GetMaxX, GetMaxY, true) жатады.
Мәтіндік терезеге қарағанда графикалық терезеде SetBkColor фонымен процедураны орнатқан кезде және ClearViewPort көмегімен тазарту нәтижесінде экранның бүкіл фонымен бірге фоны ауысып кететіндігін есте сақтау қажет. Сондықтан графикалық терезенің фонын SetFillStyle немесе SetFillPattern процедураларының көмегімен орнатқан жөн.
Нүктені шығару.
Экранға қандай да болмасын бейнені шығармаса да, олардың барлығы нүктелерден құралған, кез келген бейнені экранның керекті жеріне белгілі бір түстегі нүктелерден тұрғызу арқылы теориялық тұрғыда құруға болады. Graph кітапханасында нүктені шығару келесі процедура арқылы іске асады:
Информация о работе Pascal программалау тіліндегі фрактальді графика