Turbo Pascal программалау тілі туралы түсінік


КІРІСПЕ
Turbo Pascal программалау тілінде символдық режимнен бөлек графиктік құрастыруға мүмкіндік береді. GRAPH модулінің процедураларыменен функцияларын қолданып, экран бетіндегі бейнелердің түстерін өзгертуге, толық бояп, мәтінді форматтауға болады. Turbo Pascal программалау тілінде әр түрлі геометриялық фигураларды экранға шығарып қана қоймай берілген тапсырма бойынша әр түрлі сол сияқты геометриялық фигуралардың орнын ауыстырып, жылжытуға болады.
І ЖАЛПЫ БӨЛІМ
1. 1 Пәндік аймақты сипаттау
Turbo Pascal-да графиктік режимде жұмыс істеуге арналған арнаулы функциялар мен процедуралар Graph кітапханалық модулінің құрамында жазылған. Graph модулі 80-ге жуық графикалық функциялар мен процедуралардан және оншақты стандартты тұрақтылардан тұрады.
Графиктік режимде жұмыс істеу алдында оған сәйкес келетін монитор режимін орнату керек. Қолданбалы программалар видеоадаптерлермен тікелей әрекет жасамай, арнайы программа - драйвер арқылы жұмыс атқарады. Әр бір адаптердің өзіне сай драйверлері болады. Драйвер қолданбалы программадан қажетті командаларды алып, мысалы, «x, y координаттарының нүктесін анықтау», видеоадаптердің мүмкіндігіне қарай элементарлы әрекеттердің тізбектелуін орындайды.
Turbo Pascal тілінде алдын ала бекітілген драйверлер саны бар. Олардың әрқайсысы үш түрлі режимдердің бірінде жұмыс істей алады. Драйвер типі мен оның режимі санмен немесе тұрақты түрінде берілген (Кесте 1) .
Кесте 1-Графиктік режимдер
Режим
Нүктелер саны
Файл
CGA
EGA
VGA
GRAPH модулі іске қосылысымен оның ішіндегі процедуралар мен функцияларды пайдалана беруге болды. Графиктік режимдегі іске қосатын процедура InitGraph, бұл процедураның жалпы жазылуы:
InitGraph (Var Driver, Mode: integer, Path: string) ;
Driver (типі integer) графиктік режимді анықтайтың параметр, Mode (типі integer) - орнатылған драйверге байланысты берілетін графиктік режим параметрі, ал Path (типі string) параметрі - драйвердін атауы орналасу жолы.
Driver мәні Graph модулінде хабарланған тұрақтылар жиынымен шектеледі (Кесте 2) :
Кесте 2- Тұрақтылар кестесі
Тұрақтының атауы
Сандық коды
Detect
0
CGA
1
MCGA
2
EGA
3
EGA64
4
EGAMono
5
IBM8514
6
HercMono
7
ATT400
8
VGA
9
PC3270
10
ТР-да әр түрлі типті видеоадаптерлердің драйверлері BGI каталогындағы, bgi кеңтарауымен берілген файлдарда орналасады. Мысалы, VGA адаптерінің драйвері egavga. bgi файлы болады.
Графиктік режимнің іске қосылу нәтижесін GraphResult функциясын қолдану арқылы тексеріледі. Егер режимді іске қосу сәтті орындалса, онда бұл функция grOk константасына сәйкес мәнді қайтарады. Төменде қателер коды көрсетілген (Кесте 3) .
Кесте 3-Қателер коды
Тұрақты атауы
Коды
Анықтамасы
grOk
0
Қате жоқ
grNolnitGraph
-1
Графиктік режим анықталмаған
grNotDetected
-2
Адаптер типі анықталмаған
grFileNotFound
-3
Драйвер файлы табылмады
grInvalidDrive
-4
Анықталған файлда драйвер табылмады
grNoLoadMem
-5
Драйверді жүктеуге жады көлемі жетпейді
grNoScanMem
-6
Аймақты қарастыруға жады көлемі жетпейді
grNoFloodMem
-7
Аймақты толтыруға жады көлемі жетпейді
grFondNotFound
-8
Шрифттің файлы табылмады
grNoFontMem
-9
Шрифттің файлы табылмады
grInvalidMode
-10
Анықталған драйверге сәйкес келмейтін режим
grError
-11
Жалпы қате
grlOerrer
-12
Енгізу-шығару қатесі
grInvalidFont
-13
Шрифттің дұрыс емес пішіні
grInvalidFondNum
-14
Шрифттің номері дұрыс емес
Жұмыс аяқталғаннан кейін графиктік режимді орналастырған программа компьютердің видеожүйесінің жұмыс істеу режимі алфавитті-сандық режимді қалпына келтіруі керек. Ол CloseGraph процедурасы арқылы іске асады.
Кез-келген суретті, схеманы сызу үшін әр түрлі геометриялық фигуралар қолданылады: нүктелер, сызықтар, дөңгелек, доғалар және т. б. Графиктік бейнелерді экранға шығару үшін шығару процедурлары қолданылады.
Графиктік программа монитордағы экранды жекелеген нүтелер арқылы қарастырады, оларды пиксель деп атайды. Пиксельдердің орналасу аумағы монитор экранында көлденең (Х) және тігінен (Ү) координаттарымен анықталады. Сол жақ жоғарғы пиксель (0, 0) координатын көрсетеді. Пиксель координаттары жоғарыдан төмен және солдан оңға өседі . Экрандағы пиксельдер саны экрандағы оң жақ төменгі нүктенің координатасының видеожүйенің жұмыс режиміне байланысты. Мысалы: VGA стандарттық режимде (қолдану аумағы 640х480) экрандағы оң жақ төменгі нүкте координатасы (639, 479) болады.
GetX және GetY функциясы ағымдағы нүктенің тік және көлденең координаталар мәнін қайтарады.
Функцияның жазылуы:
Function GetX: integer;
Function GetY: integer;
Көрсеткішті экранның керекті нүктесіне MoveTo процедурасын шақыру арқылы орналастыруға болады. Жазылуы: MoveTo (X, Y: integer) ;
Салынған нүктенің түсін GetPixel функциясымен қайтаруға болады, жазылуы:
GetPixel(X, Y: integer) : word;
PutРixel процедурасын монитор экранында нүктені шығару үшін шақыру керек. Нүктенің координатасы мен түсінің параметрлерін көрсетеміз.
PutPixel (X, Y: integer; Color :word) ;
Line сызықты сызу процедурасы.
Line (х1, у1, х2, у2: integer) ;
х1, у1 -түзудің бастапқы нүкте координатасы;
х2, у2 - түзудің соңғы нүкте координатасы.
LineTo процедурасы ағымдағы орыннан бастап берілген координатаға дейін түзу тұрғызады.
LineTo(X, Y: integer) ;
SetLineStyle түзудің жаңа түрін белгілейді.
SetLineStyle(Type, Pattern, Thick:word) ;
Мұндағы: Type - түзу типі(Кесте 4) ;
Pattern: түзу түрі;
Thick: түзу қалыңдығы.
Кесте 4-Түзу типтері
Константа
Сызық типі
SolidLn
Бірыңғай, үздіксіз
DottedLn
Шртихтары тұрақты ұзындықта, үздікті
CenterLn
Штрих - үздікті сызық
DashedLn
Үздікті сызық, DottedLn типті сызықтан аздап ұзынырақ болады
UserBitLn
Программист типімен анықталған сызық
Тік төртбұрыш шығару үшін Rectangle процедурасы қолданылады.
Rectangle(x1, y1, x2, y2: integer) ;
Мұндағы: x1, y1 - төртбұрыштың сол жақ жоғарғы бұрышының нүктесінің координаттары;
x2, y2 - төртбұрыштың оң жақ төменгі бұрышының нүктесінің координаттары;
Экранда боялған тік төртбұрыш салу үшін Bar процедурасы қолданылады.
Bar(х1, у1, х2, у2) ;
Мұндағы: x1, y1 - төртбұрыштың сол жақ жоғарғы бұрышының нүктесінің координаттары;
x2, y2 - төртбұрыштың оң жақ төменгі бұрышының нүктесінің координаттары;
Шеңберді сызу Cirсle процедурасы шақыру арқылы іске асырылады.
Cirсle (x, y: integer; r: word) ;
Мұндағы: x, y - шеңбердің центірінің координаты, r - шеңбердің радиусы.
Эллипс салу процедурасының жазылу түрі:
Ellipse(x, y, бастапқы бұрыш, соңғы бұрыш, РадиусХ, РадиусY) ;
мұндағы, x және y - эллипстің центрінің координатасы;
бастапқы бұрыш, соңғы бұрыш - эллипстің дөңгелек координаталары, олар сағат тіліне қарсы сызылады.
РадиусХ, РадиусY - эллипстің тігінен және көлденең радиусын көрсетеді.
x
90 0
РадиусX
y 180 0 0 0
360 0
Радиус Y 270 0
Сурет 1-Ellipse процедураларының параметрлері
Доғаны салу процедурасы - Arc. Жазылуы:
Arc(x, y, бастапқы бұрыш, соңғы бұрыш, Радиус) ;
мұндағы, x және y - доғаның центрінің координатасы;
бастапқы бұрыш, соңғы бұрыш - доға сызығының бастапқы және соңғы дөңгелек координаталары, олар сағат тіліне қарсы сызылады.
Радиус - доғаның радиусын көрсетеді.
Bar3D процедурасы параллеллепипед сызады. Жалпы жазылу түрі:
Bar3D(x1, y1, x2, y2, Тереңдігі, ЖоғарғыШегі) ;
x1, y1 параметрлері сол жақ жоғарғы, x2, y2 оң жақ төменгі параллелепипед
шекарасының жақын бұрышын көрсетеді. Тереңдік параметрді параллелепипедттің алдыңғы және артқы қабырғаларының ара қашықтығын, ал ЖоғарғыШегі параметрі (типі Boolean) параллелепипедтің артқы қабырғасының жоғарғы шекарасын сызу керек пе екендігін анықтайды.
PieSlise процедурасы дөңгелек және секторды сызады. Процедураны шақыру инструкциясы:
PieSlise(x, y, бұрыш1, бұрыш2, Радиус) ;
Іші боялған эллипс салу Sector процедурасымен іске асады. Жалпы жазылуы:
Sector(x, y, бұрыш1, бұрыш2, РадиусХ, РадиусY) ;
Программа алфавитті-сандық режимде жұмыс істеген кезде, монитор экранында курсор көрініп тұрады. Сол арқылы Write инструкциясының көмегімен шығарылған символдың экранның қай нүктесіне шығатынын көрсетеді. Графиктік режимде курсор экран бетінде көрініп тұрмайды. Мәтінді және графикті шығару инструкциялары орындалған кезде графиктік курсор экран бойымен жылжиды. X және Y осьтері бойынша шығару көрсеткішінің координаталарын алу үшін GetX және GetY функцияларын қолдану керек. Көрсеткішті қажетті орынға апару үшін MoveTo процедурасы қолданылады. Оның параметрі ретінде экран нүктелерінің координаттары көрсетіледі.
Мысалы,
MoveTo(310, 240) ;
OutText(‘Turbo Pascal 7. 0’) ;
инструкциясы хабарламаны экранның орта кезіне шығарады.
Көрсеткіштің ағымдағы орынын ауыстыру үшін MoveRel процедурасы қолданылады. Көрсеткішті қанша нүктенің орынына орналастыру анықталады. Процедураны шақырудың жалпы инструкциясы:
MoveRel(dx, dy) ;
Dx және dy параметрлері көрсеткішті тігінен және көлденеңнен орналасқан нүктелер санын анықтайды. Егер dx (dy) параметрінің мәні оң болса, онда көрсеткіш оңға (төмен) қарай орналастырады. Егер dx (dy) параметрінің мәні теріс болса, онда көрсеткіш солға (жоғары) қарай орналастырады.
Графиктік режимде мәтіндік ақпаратты шығару үшін OutText және OutTextXY
процедуралары қолданылады.
OutText процедурасы мәтінді шығару көрсеткіші орналасқан жерге шығарады. OutText процедурасы орындалғаннан кейін шығару көрсеткіші автоматты түрде ауданның оң жақ жоғарғы бұрышына, яғни жолдың ақырғы символы орналасқан жерге ауыстырады (2-сурет) .
Сурет 2 - Орындалғаннан кейін шығару көрсеткішінің орны
OutText(Text:String) ;
Мұндағы: Text- текст қатары.
OutTextXY процедурасы берілген координаталар бойынша шығарады.
OutTextXY(Х, Ү: integer; Text :String ) ;
Мұндағы: х, у- тексттің басталып жазылатың орнының координаты;
Text- текст қатары.
Графиктік режимде шығарылатың тексттердің стилін өзгерту үшін SetTextStyle процедурасы қолданылады.
SetTextStyle(Font, Direction, Size: word) ;
Мұндағы: Font - таңдалған шрифт түрі(Кесте 5),
Direction - тексттің жазылу бағыты(0 - көлденен, 1 - тігінен бағыт),
Size - символдар өлшемі(1 - биттік, 2 - екі еселенген, т. с. с. 10-ға дейін) .
Кесте 5-Шрифт түрлері
Тұрақты атауы
Коды
Файл (. CHR)
Қаріп көрінісі
DefaultFond
0
AaBbCc 12345
TriplexFont
1
TRIP
AaBbCc 12345
SmallFont
2
LITT
SansSerifFont
3
SANS
CothicFont
4
GOTH
TriplexFont, SmallFont, SansSerifFont және GothicFont константалары векторлық шрифттар деп аталады, онда орыс тілінің алфавиті болмайды. Сондықтан хабарламаларды орыс тілінде шығару үшін тек қана стандартты DefaultFont константасын пайдаланамыз. Векторлық шрифттармен мәтінді шығару үшін қолданылатын файлдар BGI каталогындағы CHR кеңтарауымен берілген файлдарда сақталады.
Бағыт параметрі шығарылатын мәтіннің бағытын ауыстырады. Параметр ретінде VertDir (1) және HorizDir (0) қолдануға болады (Сурет 3) .
Сурет 3-Тігінен бағытталған мәтін
Өлшем параметрі OutText және OutTextXY процедураларының көмегімен шыққан символдың өлшемін орнатады.
Шрифттің өлшемдерін пайдаланушының өзі SetUserCharSize процедурасының көмегімен орнатуға да болады, жазылуы:
SetUserCharSize(mx, dx, my, dy) ;
мұндағы, mx, dx - шрифттің горизонтальды өлшемін анықтайтын параметрлер. Mx/dx қатынасының қалыпты жағдайдағы шрифттің еніне көбейтіндісі жаңа шрифттің енінің шамасын береді.
my, dy - шрифттің вертикальды өлшемін анықтайтын параметрлер. Mx/dx қатынасының қалыпты жағдайдағы шрифттің еніне көбейтіндісі жаңа шрифттің енінің шамасын береді.
OutText процедурасы тексті SetTextStyle арқылы алдын ала берілген түрде шығарады. Текст биіктігі мен ұзындығын өзгерту үшін TextWidth және TextHeight процедуралары арқылы қолданылады.
Мысалы: x:=TextWidth(T) ;
y:=TextHeight(T) ;
Бір қатарда жазылған символдардың орналасуын өзгерту үшін SetTextJustify процедурасы қолданылады, жазылуы:
SetTextJustify(H, V) ;
мұндағы, H - символдарды горизонтальды бағытта түзету (0 - символды солға қарай жылжыту, 1 - ортаға қою, 2 - оңға қарай жылжыту) ;
V - символдарды вертикальды бағытта түзету (0 - символды төменге қарай жылжыту, 1 - ортаға қою, 2 - жоғары қарай жылжыту) ;
Ағымдағы түсті ауыстыру үшін SetColor процедурасы қолданылады, яғни керекті палитра түсін таңдау үшін оларға сандар беріледі. Мысалы: SetColor (4) инструкциясы графиктік бейненің ағымдағы түсі, төртінші нөмерге сәйкес келеді. Графиктік режимінде SetColor номерінің процедурасы белгілі бір көрсетілген нақты түспен анықталады. Төмендегі келтірілген тізім бойынша SetColor процедурасындағы белгілі бір константаны қолдануға болады(Кесте 6) .
Кесте 6-Түстер коды
Константа
Түс
Түстің номері
Black
Қара
0
Blue
Көк
1
Green
Жасыл
2
Cyan
Бирюзовый
3
Red
Қызыл
4
Magenta
Күлгін
5
Brown
Қоныр
6
LightGray
Ақ (ашық - сұр)
7
DarkGray
Сұр
8
LightBlue
Көгілдір
9
LightGreen
Ашық - жасыл
10
LightCyan
Ашық - бирюзовый
11
LightRed
Ашық - қызыл
12
LightMagenta
Ашық - күлгін
13
Yellow
Сары
14
White
Ақ
15
SetColor процедурасымен орнатылған түс кодының мәнін анықтау үшін GetColor процедурасы қолданылады. Ең үлкен түстің коды GetMaxColor процедурасымен анықталады. Түстерінің барлық мәндерін GetDefaultPalette процедурасы арқылы анықтауға болады.
Бір мезгілде түс кодтарын өзгерту керек болса, онда SetPalette процедурасын қолдану арқылы бірнеше түстердің, ал SetAllPalette процедурасымен барлық түстердің орналасуын өзгертіп жаңа түс алуға болады. Палитрадағы немесе жаңадан жасалған палитрадағы түстердің орналасуы мен олардың санын GetPalette процедурасын қолданып анықтауға болады.
Экранның фоны SetBkColor процедурансының көмегімен орнатылады, жазылуы: SetBkColor(соlor: word) ;
Мұндағы: сolor - түс коды 0 - 15-ке дейін өзгереді. Процедураның орындалу нәтижесінде экран берілген түске боялып шығады.
Фигуралардың ішін бояумен толтыру стилі SetFillStyle процедурасымен орнатылады, жазылуы: SetFillStyle(Pattern: word:Color) ;
Мұндағы: Сolor - түс коды;
Pattern - толтыру нұсқасы(Кесте 7) ;
Кесте 7- Толтыру нұсқасы
Тұрақты атауы
Коды
Толтыру нұсқасы
EmptyFill
0
Фонның түсімен толық толтырылады
SolidFill
1
Ағымдағы түспен толық толтырылады
LineFill
2
Сызықшалармен толтырылады
LtSlashFill
3
Көлбеу сызықтармен толтырылады
SlashFill
4
Жуан көлбеу сызықтармен толтырылады
BKSlashFill
5
Жуан кері көлбеу сызықтармен толтырылады
LtBKSlashFill
6
Кері көлбеу сызықтармен толтырылады
HatchFill
7
Тік бұрышты торлармен толтырылады
XhatchFill
8
+ символдарымен толтырылады
InterleaveFill
9
х символдарымен толтырылады
WideDotFill
10
Аралары жиі орналасқан нүктелермен толтырылады
CloseFill
11
Аралары алшақ орналасқан нүктелермен толтырылады
UserFill
12
Қолданушы анықтаған нұсқа бойынша толтыру
Программада биттік бейнені сипаттау FillPatternType типті массив түрінде жазылады, жалпы жазылу түрі келесідей болады:
FillPatternType=array[1. . 8] of byte;
Биттік бейнені сипаттау үшін константаларды қолданған жөн. Мысалы,
my_fill:FillPatternType=($00, $10, $10, $FE, $38, $28, $44, $00) ; инструкциясы
my_fill массив-константасын сипаттап және инициализациялайды.
Программистпен анықталған облысты толтыру стилі SetFillPattern процедурасының шақырылуымен орындалады, оның параметр ретінде биттік бейненің сипаттамасы және түсі көрсетіледі.
Графиктік режимде салынған шектеулі фигуралардың ішін бояу үшін FloodFill процедурасы қолданылады. Жалпы сипаттамасы:
FloodFill(x, y, түс) ;
мұндағы, x, y - шектелген фигураның ішінде жататын кез-келген нүктенің координаттары;
Көпбұрыштар салу үшін DrawPoly процедурасы, ал іші боялған көпбұрыш салу үшін FillPoly процедурасы қолданылады. Жалпы жазылу түрлері:
DrawPoly(N, P) ; FillPoly(N, P) ;
мұндағы, N - көпбұрыштың қабырғаларының қиылысу санын білдіретін бүтін шама;
P - көпбұрыштың бұрыштарының координаттарын білдіретін PointType - типті шама.
ТР-да әр түрлі геметриялық фигураларды экранға шығарып қана қоймай, сонымен қатар, осы бейнелердің орынын ауыстырып, жылжытуға болады. Бейнелердің орынын ауыстыру әдісі мультипликация деп аталады. Экранда бейнені қозғалту өте оңай. Ол үшін бейнені шығару керек, содан кейін оны бірнеше секундқа өшіріп, бейнені қайтадан басқа орыннан шығару керек.
Экранда фигуралардың жылжу эффектілері циклдік процестермен жүзеге асырылады. Цикл денесінде бірінші фигураны бояу стильдері орнатылады, одан
кейін жылжитын дене экранда алғашқы көрінетін орнының координаттарымен шығарылады. Сонан соң фигураның экранда кішкене уақыт көрініп тұруы үшін
Delay процедурасы қолданылады. Фигураны шығару процедурасының кемінде бір параметрі цикл параметрімен байланысты болуы тиіс. Сонда циклдің әр
орындалуында фигура жаңа орынға шығарылып тұрады. Ал циклдік программа толық орындалғанда фигура бір орыннан кішкене уақыт көрінгеннен кейін өшіріліп қалып, циклдің келесі мәнінде қайтадан жаңа орыннан кішкене уақыт көрініп өшіріліп қалып, әр қарай циклдің әр келесі мәндерінде дәл осындай процестер жүріп отырады да, сырт көзге фигура жылжып бара жатқан сияқты көрінеді. Дөңгелектің өшуі оның экран түсімен боялуы арқылы орындалады.
Көптеген элементтерден тұратын күрделі бейнелерді программалау кезінде «Базалық нүкте әдісі» деп аталатын әдіс қолданылады. Бұл әдіс былай орындалады. Ол үшін бейненің қандай да бір нүктесі таңдалады да, ол нүкте базалық деп есептеледі. Басқа нүктелердің координаттары базалық нүкте арқылы есептеледі.
Жазықтықтағы кездейсоқ бейнелер.
Праметрлері көрсетілмеген Randomize прцедурасы Turbo Pascal-да кездейсоқ бейнелермен жұмыс істеуге арналған Random функциясы келесідей сипатталады. Random[(pange: word) ] ;
1. 2 Бағдарламаның тіл элементтерін сипаттау
... жалғасы- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.

Ақпарат
Қосымша
Email: info@stud.kz