ebook img

Borland Pascal 7.0. Программалоонун негиздери. Окуу китеби. II бөлүк PDF

304 Pages·2.566 MB·Kirghiz
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Borland Pascal 7.0. Программалоонун негиздери. Окуу китеби. II бөлүк

ОООсссмммооонннааалллиииеееввв ААА...БББ... АААррркккааабббаааеееввв ННН...ККК... BBBooorrrlllaaannnddd PPPaaassscccaaalll 777...000 Программалоонун негиздери 2 – БӨЛҮК Ош ш., 2010-ж. УДК 004 ББК 32.973 – 10 О – 74 Рецензенттер: Ош технологиялык университетинин 1-проректору, ф.-м.и.д., профессор А.Сопуев. Ош мамлекеттик университетинин «Информациялык техноло- гиялар жана автоматташтырылган системалар» кафедрасынын доценти, ф.-м.и.к. А.О. Кыбыраев. Осмоналиев А.Б., Аркабаев Н.К. О – 74 Borland Pascal 7.0. Программалоонун негиздери. Окуу китеби: II бөлүк. 2010, – 304 б. ISBN 978 – 9967 – 03 – 452 – 5 Бул китеп “Borland Pascal 7.0. Программалоо тилдери” окуу китебинин экинчи бөлүгү болуп Borland Pascal 7.0 тилинде программалоону өздөштүрүү улантылат. Китепте динамикалык структурадагы берилгендер менен иштөө, программаларды талдап-иштеп чыгуунун объекттик-ориентирленген методологиясы, IBM биргелешүүчү компьютерлердин түзүлүштөрүн башкаруудагы стандарттык ыкмалар жана стандарттык модулдардын процедуралары жана функциялары менен иштөөгө карата көрсөтмөлөр ошондой эле ал процедуралар менен функциялардын толук тизмеги берилди. Андан сырткары объекттик-ориентирленген тилдер чөйрөсүндөгү проблемалар жана везенспрограммалоо боюнча маалыматтар келтирилди. Китеп жогорку окуу жайларда компьютердик илимдер жаатындагы адистиктер боюнча окуган студенттер, орто мектептердин жогорку класстарынын окуучулары жана жалпы эле Borland Pascal 7.0 тилинин чөйрөсүндө прграммалоону окуп үйрөнүүчүлөр үчүн арналып жазылды. Китеп боюнча окурмандардын суроолору, сын-пикирлери жана каалоолору чоң ыраазычылык менен төмөнкү даректер аркылуу кабыл алынат: [email protected], [email protected]. Окуу китеби Ош МУ нун Окумуштуулар Кеңешинин чечими менен жарык көрүүгө сунушталды. Токтом №8, 26.06.2008-ж. О 2404090000-08УДК 004 ББК 32,973 – 01 ISBN 978 – 9967 – 03 – 452 – 5 © Осмоналиев А.Б., © Аркабаев Н.К., 2010 2 МАЗМУНУ КИРИШҮҮ ......................................................................................................... 7 1. ДИНАМИКАЛЫК СТРУКТУРАДАГЫ БЕРИЛГЕНДЕР МЕНЕН ИШТӨӨ ........................................................................................................... 9 1.1. Эстин бөлүштүрүлүшү ............................................................................ 9 1.2. Көрсөткүчтөр менен болгон жөнөкөй аракеттер ............................ 10 1.3. Байланылбаган динамикалык берилгендер .................................... 11 1.4. Байланылган динамикалык берилгендер ........................................ 13 1.4.1. Негизги аныктоолор ........................................................................ 13 1.4.2. Байланылган динамикалык берилгендерде өз ара байланыштарды уюштуруу ........................................................... 14 1.4.3. Кезектер менен иштөө ................................................................... 15 1.4.4. Стек менен иштөө .......................................................................... 20 2. ПРОГРАММАЛАРДЫ ТАЛДООНУН СТРУКТУРАЛЫК УСУЛИЯТЫ ................................................................................................. 27 2.1. Тарыхый маалыматтар ........................................................................ 27 2.2. Структуралык программалоонун максаттары ............................... 28 2.3. Структуралык методологиянын негизги принциптери ............... 29 2.4. Модулдук программалоо ..................................................................... 31 2.5. Структуралык программалоонун стандарттары ........................... 33 3. ПРОГРАММАЛАРДЫ ТАЛДООНУН ОБЪЕКТТИК - ОРИЕНТИРЛЕНГЕН МЕТОДОЛОГИЯСЫ ........................................ 35 3.1. Негизги түшүнүктөр жана аныктамалар ......................................... 35 3.2. Turbo Pascal тилинин объекттик ориентирленген каражаттары 38 3.2.1. Объекттердин типтерин жана нускаларын (көчүрмөлөрүн) баяндоо ............................................................................................... 38 3.3. Объекттер жана модулдар ................................................................... 44 3.4. Private жана public директивалары ................................................... 46 3.4.1. Private директивасы ......................................................................... 46 3.4.2. Public директивасы .......................................................................... 47 3.5. Мурастоо жана мурастоо эрежелери ................................................. 48 3.6. Виртуалдык жана динамикалык усулдар ........................................ 72 3.6.1. Конструкторлор .............................................................................. 73 3.6.2. Виртуалдык жана динамикалык усулдардын айырмасы ......... 77 3.7. Динамикалык объекттер ..................................................................... 78 3.7.1. Деструкторлор ................................................................................. 79 3 3.8. Объекттик типтердин биргелешүүчүлүгү ....................................... 82 3.8.1. Объекттердин нускаларынын ортосундагы биргелешүүчүлүк ............................................................................................................. 82 3.8.2. Объекттердин нускаларына болгон көрсөткүчтөрдүн ортосундагы биргелешүүчүлүк...................................................... 83 3.8.3. Формалдык жана иш жүзүндөгү (фактические) параметрлердин ортосундагы биргелешүүчүлүк ...................... 83 3.9. Объекттик-ориентирленген программалоого карата мисал- көнүгүү .................................................................................................... 84 4. КЛАВИАТУРА, КУРСОР ЖАНА ҮН МЕНЕН ИШТӨӨ ................... 95 4.1. Клавиатура ............................................................................................. 95 4.2. Курсор ...................................................................................................... 98 4.3. Үн ............................................................................................................ 100 5. ТЕКСТТИК ВИДЕОРЕЖИМДЕ ИШТӨӨ .......................................... 103 5.1. Тексттик режимдеги экран ............................................................... 103 5.2. Түстүн константалары ....................................................................... 104 5.3. Тексттик режимдеги терезелер ......................................................... 107 5.4. Видеоэске түз кайрылуу ..................................................................... 111 6. ГРАФИКТИК ВИДЕОРЕЖИМДЕ ИШТӨӨ....................................... 117 6.1. Алдын ала аныкталган константалар ............................................ 117 6.1.1. Түстүн константалары ............................................................... 117 6.1.2. Боёо типтеринин константалары ............................................ 117 6.1.3. Шрифттин тибинин жана текстти түздөө константалары ........................................................................................................... 118 6.1.4. SetViewPort процедурасы үчүн константалар .......................... 118 6.1.5. Bar3D процедурасы үчүн константалар ................................... 119 6.1.6. PutImage жана SetWriteMode процедуралары үчүн константалар ................................................................................ 119 6.2. Алдын ала аныкталган типтер ........................................................ 119 6.2.1. Палитранын түстөрүн коюу тиби ............................................ 119 6.2.2. Сызыктардын көрүнүшүн коюу тиби ........................................ 119 6.2.3. Тексттин жасалгасын берүү тиби ............................................ 120 6.2.4. Боёо көрүнүшүн коюу типтери .................................................. 120 6.2.5. GetViewSettings проседурасы үчүн тип ....................................... 120 6.2.6. Arc жана Ellipse проседуралары менен иштөө үчүн тип ....... 120 6.2.7. Экранда чекиттердин координаталарын берүү үчүн тип .... 120 6.3. Графиктик драйверлер жана режимдер ......................................... 121 6.3.1. Графиктик драйверлердин константалары ............................. 121 6.3.2. Графиктик режимдердин константалары .............................. 121 4 6.4. Координаталар системасы ................................................................. 122 6.5. Учурдагы көрсөткүч ........................................................................... 123 6.6. Графиктик режимди инициялизациялоо ....................................... 123 6.7. Графиктик режимди инициалдаштыруу каталары жана аларды иштеп чыгуу ......................................................................................... 124 6.8. Жөнөкөй графиктик фигуралар....................................................... 126 6.9. Графиктик режимде текстти чыгаруу ............................................ 129 6.10. Графиктик режимдеги кыймыл эффекти .................................... 133 7. PASCAL ЖАНА АССЕМБЛЕР .............................................................. 138 7.1. asm оператору ....................................................................................... 138 7.2. assembler директивасы ....................................................................... 140 7.3. {$L aт} жана external директивалары ............................................. 142 7.4. inline оператору .................................................................................... 143 7.5. inline директивасы ............................................................................... 144 8. СТАНДАРТТЫК МОДУЛДАР .............................................................. 146 8.1. SYSTEM модулунун процедуралары жана функциялары ......... 146 8.2. DOS модулунун процедуралары жана функциялары .................. 174 8.3. WinDOS модулунун процедуралары жана функциялары .......... 185 8.4. CRT модулунун процедуралары жана функциялары ................. 192 8.5. WinCRT модулунун процедуралары жана функциялары .......... 198 8.6. WinPRN модулунун процедуралары жана функциялары .......... 202 8.7. GRAPH модулунун процедуралары жана функциялары ........... 204 8.8. OVERLAY модулунун процедуралары жана функциялары ...... 221 8.9. STRINGS модулунун процедуралары жана функциялары ........ 224 8.10. WinAPI модулунун процедуралары жана функциялары ......... 230 9. ОБЪЕКТТИК-ОРИЕНТИРЛЕНГЕН ПРОГРАММАЛООНУН ПРОБЛЕМАЛАРЫ. ВЕЗЕНСПРОГРАММАЛОО ............................ 247 9.1. Программалоо тилдеринин тарыхы ................................................ 247 9.2. Айрым объекттик-ориентирлеген тилдер боюнча баяндама ..... 249 Simula .......................................................................................................... 249 Smalltalk ...................................................................................................... 250 Delphi (Object Pascal) ................................................................................ 250 С++ ........................................................................................................... 252 Java ........................................................................................................... 257 9.3. Компиляция же интерпретация ....................................................... 258 9.4. Объекттик-ориентирлеген тилдердин жетишпестиктери .......... 259 Өзү уюшулуучу системаларды баяндоо ................................................ 259 Тилдик деңгээлдеги объекттер жана аткаруу убактысынын объекттери ..................................................................................... 260 5 Программанын операциялык система менен өз ара аракеттениши ........................................................................................................... 261 9.5. Биологиядан алынган бир нече терминдер ................................... 261 9.6. Везенспрограммалоо (Wesensprogramming) .................................. 262 Негизги түшүнүктөр .............................................................................. 262 Жандыктын өмүрү ................................................................................... 264 Жандыктардын ар түрдүү тилдерде баяндалышы ........................... 266 Жалпы көрүнүш ........................................................................................ 267 9.7. Биз жасабаган дагы эмне калды ...................................................... 267 1 – ТИРКЕМЕ. КАТАЛАР ........................................................................... 269 Программалардагы каталардын категориялары ............................... 270 Каталар жөнүндө билдирүүлөр ............................................................... 271 Компилятордун билдирүүлөрү .............................................................. 271 Аткаруу убактысынын каталары ........................................................... 280 DOS тун каталары .................................................................................. 280 Кийрүү-чыгаруу каталары ....................................................................... 281 Критикалык каталар ................................................................................. 282 Фаталдык каталар ..................................................................................... 282 Корголгон режимдеги (DPMI) DOS интефейсинин каталары .......... 284 Орнотуу каталары (DPMIINST) ........................................................... 284 Аткаруу этабы администраторунун каталары ................................ 285 DPMI - сервердин каталары ................................................................... 286 2 – ТИРКЕМЕ. КОМПИЛЯТОРДУН ДИРЕКТИВАЛАРЫ ................. 289 3 – ТИРКЕМЕ. ASCII КОДУНУН СИМВОЛДОР ТАБЛИЦАСЫ ..... 298 4 – ТИРКЕМЕ. КЛАВИАТУРАНЫН КОДДОР ТАБЛИЦАСЫ ......... 300 Клавиатуранын кеңейтирилген коддору .............................................. 300 Клавиатуранын сурамжылоо (опрос) коддору ..................................... 301 АДАБИЯТТАР ............................................................................................... 303 6 КИРИШҮҮ Дүйнөнү күч башкарбай акыл башкарат, бирок акыл күчкө таянат. (Б. Паскаль) Урматтуу окурман! Бул колуңуздагы китеп 2008-жылы жарык көргөн «Borland Pascal 7.0 Программалоонун негиздери» - окуу китебинин 2-бөлүгү болуп саналат. Сиздер байкагандай биринчи бөлүктө Pascal тили жөнүндө, алгоритмдердин жалпыланган конструкциялары жана алардын Borland Pascal тилинин чөйрөсүндөгү реализацияланыш каражаттары жөнүндө сөз болуп, статикалык структурадагы берилгендер менен иштөөгө басым жасалган эле. Экинчи бөлүктө динамикалык структурадагы берилгендер менен иштөө үчүн арналган Borland Pascal тилинин каражаттары, чоң программалык комплекстерди талдап иштеп чыгуу методологиясы, анын ичинде структуралык программалоонун максаты, принциптери жана модулдук программалоо маселелери каралды. Андан сырткары IBM PC нин түзүлүштөрү менен иштөөдөгү стандарттык ыкмалар, атап айтканда, клавиатура, курсор жана үн менен иштөө, тексттик видеорежимде иштөө, графиктик видеорежимде иштөө боюнча маалыматтар киргизилди. Дагы бир белгилеп өткөнгө арзый турган нерсе – программаларды талдап иштеп чыгуунун объекттик-ориентирленген методологиясы, Borland Pascal тилинин объекттик-ориентирленген каражаттары, объекттер жана модулдар менен иштөө, мурастоо, усулдар, виртуалдык жана динамикалык усулдар, конструкторлор жана деструкторлор сыяктуу ООП методологиясынын негизги түшүнүктөрү боюнча маалыматтардын берилиши болуп эсептелет. Бул келтирилген маалыматтар азыркы башка объекттик-ориентирленген программалоо тилдерин (Java, Delphi, C++ ж.б.) окуп үйрөнүү үчүн абдан жакшы даярдык боло алат деп эсептейбиз. Ошондой эле китептин бул бөлүгүндө Borland Pascal тилинин стандарттык процедуралары жана модулдарынын тизмеги, алардын пайдалануу форматтары, эрежелери жана түшүндүрмөлөрү менен кеңири берилди. Көпчүлүк каралган тилдик каражаттар үчүн атайын тандалган мисалдар келтирилди. Бул окуу китепти алгоритмдештирүү жана жалпы эле программалоо назарияты боюнча окуу курал катары ошол эле учурда Borland Pascal тилинин айрым каражаттары боюнча сурап-билме (справочниги) катары пайдаланууга болот. Алыбетте, бул китеп эң 7 оболу жогорку окуу жайларда компъютердик техника жаатында профессионалдык билим алып алып жаткан студенттер үчүн окуу китеп катары арналып жазылды. Бирок, орто мектептерде информатика боюнча атайын курстарды жана факультативдик сабактарды өтүүдө да кеңири пайдаланууга болот. Андан сырткары дегеле Borland Pascal тилинин чөйрөсүндө программалоону үйрөнүүнү каалаган жалпы эле пайдалануучулар үчүн зор пайдасын тийгизе алат деп ишенебиз. Бул китептин жарыкка чыгышына салымдарын кошкон айрым коллегаларыбызга, сын пикирлерин айткан физика-математика илимдеринин доктору, профессор А.Сопуевге, физика-математика илимдеринин кандидаты, доцент А.Кыбыраевге чоң ыраазычылыктарыбызды билдирүүнү өзүбүздүн сыймыктуу милдетибиз деп эсептейбиз. Китеп боюнча окурмандардын суроолору, сын-пикирлери жана каалоолору чоң ыраазычылык менен төмөнкү даректер боюнча кабыл алынат: [email protected], [email protected] . Авторлор 8 1. ДИНАМИКАЛЫК СТРУКТУРАДАГЫ БЕРИЛГЕНДЕР МЕНЕН ИШТӨӨ Өзгөнүн кеңешин ук, бирок өзүңдүн пикириңден тайба. (В. Шекспир) Берилгендердин, ошонун ичинде динамикалык структурадагы берилгендердин классификациясы окуу китептин 1-бөлүгүндө келтирилген 1.1. Эстин бөлүштүрүлүшү Динамикалык структурадагы берилгендерди жарыялоо, баяндоо бөлүгүндө кандайдыр бир типтеги өзгөрүлмөнүн өзү эмес ага болгон көрсөткүч (шилтеме) көрсөтүлөт. Натыйжада көрсөткүч кадимкидей өзгөрүлмө болуп, ал эми ал көрсөткүч көрсөтүп турган өзгөрүлмө динамикалык болуп калат. P: ^Char; P^:Char Var P:^Char; адрес ‘*’ Begin P^:='*'; . . . end. Программада көрсөткүчтүн идентификаторун пайдалануу ал көрсөткүч көрсөтүп турган эстин уячасынын(ячейкасынын) адресине кайрылууну билдирет. Көрсөткүч көрсөтүп турган уячанын мазмунуна кайрылуу үчүн анын идентификаторунан кийин @ символун коюу талап кылынат. Бул амал – атсыздаштыруу (разыменование) амалы деп аталат. Динамикалык өзгөрүлмөлөр үчүн эсти бөлүү жана бошотуу New, Dispose, GetMen, FreeMen, Mark, Release процедураларынын жардамы менен программа иштеп жаткан учурда аткарылат. Р көрсөткүчтүк өзгөрүлмөсү үч абалда болушу мүмкүн: 1) Эбак эсте орун бөлүнүп коюлган кандайдыр бир өзгөрүлмөнүн адресин кармап турган болушу мүмкүн. P P^ адрес 9 2) Атайын nil бош адресин кармап турган болушу мүмкүн. Р Nil ● 3) Аныкталбаган абалда болушу мүмкүн. P ? ? Көрсөткүч мындай аныкталбаган абалда программанын ишинин башында ага биринчи ирет конкреттү адрести же nil бош адресин ыйгарганга чейин, ошондой эле ал көрсөтүп турган эстин областы бошогондон кийин болот. Nil абалы менен аныкталбаган абалдардын ортосундагы айырманы төмөнкү схемадан көрүгө болот: P1 P2 P1 P2 nil ● ● nil ? ? ? ● ? P1 = P2 P1<>P2 1.2. Көрсөткүчтөр менен болгон жөнөкөй аракеттер Аракет Жыйынтык 1. Жарыялоо type a ? ? PInt=^integer; var a,b: PInt; b ? ? 2. Эсти бөлүп алуу New(a); a a^ адрес 1 New(b); b b^ адрес 2 3. Информацияны киргизүү a^: = 1; a 1 1 a^ адрес b^: = 2; b 2 2 b^ адрес 10

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.