Математика | ||||
Программирование в среде Turbo Pascal 7.0-Марченко А. И К.: ВЕК+, 1999. -464 с., ил. | ||||
Марченко А. И., Марченко Л. А.
МЗО Программирование в среде Turbo Pascal 7.0/ Марченко А. И., Марченко Л. А.: Под ред. Тарасенко В. П. — 5-е изд., доп. и перераб. — К.: ВЕК+, 1999. -464 с., ил. ISBN 5-88547-069-3 В книге описывается язык программирования Turbo Pascal версии 7.0 и программирование на этом языке. Книга построена на материалах лекций, практических и лабораторных занятии, проводимых на кафедре специализированных компьютерных систем факультета прикладной математики Национального технического университета Украины "Киевский политехнический институт". Ее можно рассматривать как учебное пособие по алгоритмизации и программированию вообще и как краткий справочник по процедурам и функциям языки Turbo Pascal 7.0. В книге, наряду с описанием всех синтаксических конструкций языка, детально рассматриваются такие общие для всех языков программирования темы как структуры данных, классические управляющие конструкции, рекурсия, способы и механизмы передачи параметров, алгоритмы сортировки и поиска. Особое внимание уделено объектно-ориентированной методологии разработки пррграмм и созданию динамически загружаемых библиотек (DLL). Рассмотрению стандартных приемов управления устройствами IBM-совместимых ПК посвящен отдельный раздел. Сделан акцент на нововведениях языка версии 7.0. Все вопросы рассматриваются на большом количестве примеров. В приложениях приведено описание процедур и функций стандартных модулей и описание интегрированной среды разработки Turbo Pascal 7.0. В пятом издании существенно расширена тема "Динамические структуры данных", а также переработаны и дополнены контрольные вопросы и задания. Книга может быть полезна всем, кто изучает и использует язык Turbo Pascal. ОГЛАВЛЕНИЕ Предисловие редактора............................................... 3 *-Y Часть 1. Обзор языка.................................................... 4 i • ГЛАВА i. УПРОЩЕННАЯ МОДЕЛЬ КОМПИЛЯТОРА........................................ s 1.1. ЛЕКСИЧЕСКИЙ АНАЛИЗАТОР............................................................................5 1.2. СИНТАКСИЧЕСКИЙ АНАЛИЗАТОР..........................................................'...L.V..6 1.3. ГЕНЕРАТОР КОДА..................................................................................................6 1.4. ТАБЛИЦЫ..................................................................................................:..........:...6 1.5. СТРУКТУРА ПРОФЕССИОНАЛЬНОЙ СРЕДЫ РАЗРАБОТКИ ПРОГРАММ BORLAND PASCAL WITH OBJECTS 7.0 ......*.......::.............................................6 Версии компилятора, работающие под управлением MS-DOS в реальном i режиме процессора (TURBO.EXE, ТРСЕХЕ)...............................................7 Версии компилятора, работающие под управлением MS-DOS в защищенном режиме процессора (ВР.ЕХЕ и ВРС.ЕХЕ)..................................................7 Версия компилятора, работающая под управлением Windows (BPW.EXE)...........9 КОНТРОЛЬНЫЕ ВОПРОСЫ........•................................:.........................................................9 V ' . ' ГЛАВА 2. НАБОР СИМВОЛОВ, ЛЕКСЕМЫ, РАЗДЕЛИТЕЛИ.,........................10 2.1. НАБОР СИМВОЛОВ.....................................................................................„.....„10 2.2. ЛЕКСЕМЫ........':.................................-.....................................................:................11 2.2. /. Специальные символы..............................................;.......................................11 2.2.2. Зарезервированные (ключевые) слова.,.......................:...................................12 2.2.1 Идентификаторы...........................................-..,..............................................13 2.2.4. Метки.................................................................................;............................../5 2.2.5. Числа.....................................!...........................I....;.-.........................................16 2.2.6. Строки..............................................................................................................18 2.2.7. Комментарии.........................................................................ч.....•..................19 2.3. РАЗДЕЛИТЕЛИ......................................................................................................20 КОНТРОЛЬНЫЕ ВОПРОСЫ.................................................................................................20 КОНТРОЛЬНЫЕ ЗАДАНИЯ..................................................................................................21 ГЛАВА 3. СТРУКТУРА ПРОГРАММЫ......;..............................:...........................22 3.1. ЗАГОЛОВОК ПРОГРАММЫ..............................',................................................Л2 3.2. РАЗДЕЛ УКАЗАНИЯ ИСПОЛЬЗУЕМЫХ МОДУЛЕЙ (ПРЕДЛОЖЕНИЕ ttSJ3s)......<.23 ?3.,РАЗДЕЛ ОПИСАНИЙ..................................,..,...„„,,..........,.............,............,;,...Л24 U I»3.3.h-Описаниеметок.........................................;.,....„.,.......................................I...2J З,2. Описание типов................................................................................................< 26 v '"si* i . -•.-••- • - - .- h Оганпяптныетипы............:...:.........................................................:..............,..„.............и;> .26 Группа целых типов.......:;,»—.*,.....«i..'....>J.',.4>v-;.....i....:.-...»'.................~..........„......;.........% Группа вещественных типов................................................................................................2! Группа булевских типов.......................................................................................................3 Символьный тип...................................................................................................................3' Строковые типы................................................................-..„,..„.;..........«.;.t.i...w,.».:.U.*.«.....3> Указательный тип......................................................................,...............•...;.....,.'•...............3; Текстовый тип...............................,.........................................л..........,.........;.......................3; Пользовательские типы...................................................„„..,.„.............,....,..,.....,.....;..;.....;3; Перечисляемый тип...............................................................................................................3> Интервальный тип................................................................................................................3' У казательные типы..............................................,.....;..,...,..,........................,......:.,...<......,...Л! Структурированные типы....................................................................................................3; Процедурный тип.....................................................—........................:.............................3' СИНТАКСИЧЕСКИЕ ДИАГРАММЫ ОПИСАНИЯ типов...................,...„.......,.........,;„.........4) 3.3.3. Описание констант.........................................................................<.......;.......4 Простые константы................................................................,...................л....'.;...................4 Типизированные константы.,,.,................................................у...,.:....;,.................:......'......4 Типизированные константы стандартных типов.,,............;...............................:.,;^.;.......4 Типизированные константы указательного типа................................................-.•••.-•.......-4 Типизированные константы структурированных типов..........................................-.„....^4 , Типизированные константы типа "массив"........................................................................4 Типизированные константы типа "множество".........,„.„...............;........."..'..................,...»4 Типизированные константы типа "запись"..........................,.....;.,.............................„.;.....4 Типизированные константы объектного типа.........;.....;...........................:.....v......,....;...;,.4 Типизированные константы процедурного типа.................«...................................^..:....S 3.3.4. Описание переменных......................................,..........................................^...5\ 3.3.5. Описание процедур и функций....„.......;..................,.,..„............;...........I........5- 3.3.6. Описание экспорта...............,..........................................................................5. 3.4. РАЗДЕЛ ОПЕРАТОРОВ (ОПЕРАТОРНЫЙ БЛОК)............................„„..!........5( Контюяьньш ВОПРОСЫ......................................................................,.,...„..„....„.........5' КОНТРОЛЬНЫЕ ЗАДАНИЯ..................................................................:.'.......:.....»...............5' ГЛАВА 4. ОПЕРАЦИИ и ВЫРАЖЕНИЯ..........................................................59 4.1. ПОНЯТИЯ ВЫРАЖЕНИЯ, ОПЕРАЦИИ, ОПЕРАНДА..»...........,.^,.Ь...\.........59 4.2. ПРИОРИТЕТ ОПЕРАЦИЙ И ИХ КЛАССИФИКАЦИЯ.....................................59 4.2.1. Приоритет операций.........................................................,.......;.;;.................59 4.2.2. Синтаксические диаграммы, описывающие выражение.............................60 4 2.3. Классификация операций............................__»..;...„.,..^...;.>.........................65 4.3. ОПИСАНИЕ ОПЕРАЦИЙ...............,................,..........................,...«,....................65 4.3.1. Арифметические операции.............................................................................65' 4.3.2. Операции отношения..................................„.............„...„........,<.....................66 43.3. Булевские (логические) операции...................;................................................67 4.3.4, Поразрядные (битовые) булевские и сдвиговые операции...........................68 • 4.3.5. Строкова^ операция..!-....,.,...;..............fT.....,...„..........,.';..,........................,.......,69 -. 4.3.6. Операции над множествами..........................................................................70,1 4.3.7. Операция взятия адреса (полученияуказателя)........................ КОНТРО||ЯЬНЫЕ ВОПРОСЫ............;............................................................................,». .74 5.1. ПРОСТЫЕ ОПЕРАТОРЫ .........................................^,....;^...., ..... _.......;..;...,.. 75 5.1.1. Оператор присваивания.. ....... ..... ............ . .............. , ....... ... ..... ..... ....... -.-. ...... ....75 5.1.2. Оператор процедуры. ....... ..... .... ....... ................. . ............. i.,.....:....... .............. ..76 5.1.3. Оператор JfepeJcoda....^........... .................... . ................. :.... ...... ...-, ......... '. ..... .,..76 5.2. СТРУКТУРНЫЕ ОПЕРАТОРЫ ........ . ........ . ............... ..... „.,.......„.,. ............. . ....... ..77 5.2.1. Составной оператор......... ....... ., ......................... ................ ................. ... ........ 77 5.2.2. Условные операторы ................... .г....... ........................ ..... .............................. 78 Условный оператор if.,... ...... ...................... , .................. ., ........... ............ ..... . ................. ...,78 Оператор выбора case........ .......... ...... . ............ ......... ......... . ...... .....v ........ ....... ............. . ......... 81 5.2.5. Операторы повторения ............ , .............. , ....... . ..................... .... .............. ....... 83 Оператор цикла с предусловием -while. .......... .. .......... .. ..................... ... ....... . .............. ... — 83 Оператор цикла с постусловием repeat ................................ ..... ................... . ................. 85 Оператор цикла со счетчиком (с параметром) for ........................................ ............. ...... 86 Сравнение работы операторов while, repeat и гог ................... . ............ ..... ............... 87 Оператор присоединения with ............. , ....................... .... ....... ... .......... ............... .............. 88 КОНТРОЛЬНЫЕ ВОПРОСЫ..... ........................ . ........... .. ........... ......... ........... . ..... „ ............... 90 КОНТРОЛЬНЫЕ ЗАДАНИЯ ........... . ................ . ..... ..... ..... . ....... ..... ......... ....... ..... . ................... 90 ГЛАВА 6. МОДУЛИ ............ .. ------- ..... ..... .. .......................... ... .............. ...... ........... 92 КОНТРОЛЬНЫЕ ВОПРОСЫ ...... ........ :... ........ . ....... . ............. ........ ....... . ........ ..... .................... 98 ГЛАВА 7. ДИНАМИЧЕСКИ СВЯЗЫВАЕМЫЕ БИБЛИОТЕКИ ...... . ....... ............... 99 7Л. СОЗДАНИЕ ДИНАМИЧЕСКИ СВЯЗЫВАЕМЫХ БИБЛИОТЕК ..... ............. 100 1.2. ИМПОРТ ПРОЦЕДУР И ФУНКЦИЙ ИЗ DLL . ............. ........ .................. ... ....... 102 7.2.1. Импорт по имени ................. ....„.., ................... . ......... .... ...................... '..' ........ 102 7.2.2. Импорт по новому имени ...... , .................... . .............................. ............ ,.:..!.. 1-02 7.2.3. Импорт по порядковому номе/у. .................................................................. 103 7.2.4. Модули импорта ...... ; ................... . .................... ,.....« ............. . ......... .. ............ 103 7.3. ОБЛАСТЬ ДЕЙСТВИЯ ПЕРЕМЕННЫХ В DLL ........... ... ............ ....... ............ .. 104 7.4. DLUJCOBMECTHO ИСПОЛЬЗУЕМЫЕ В ЗАЩИЩЕННОМ РЕЖИМЕ DOS И В WINDOWS ........................ ............ ....... 104 КОНТРОЛЬНЫЕ ВОПРОСЫ ............... ..... ............................... ..... .. ............. ......... ............. ..105 Часть 2. Структуры данных и работа с ними средствами языка TURBO PASCAL ............. ...... ..... 106 ГЛАВА 8. КЛАССИФИКАЦИЯ СТРУКТУР ДАННЫХ ..... ......... ............ ..... ........ 107 1.L ДАННЫЕ СТАТИЧЕСКОЙ СТРУКТУРЫ.........'..........- ..... . ........... . ............ ........ 107 х Ъ2. ДАННЫЕ ДИНАМИЧЕСКОЙ СТРУКТУРЫ .............. ...... .. .................. „..;....... 109 г, -^КОНТРОЛЬНЫЕ ВОПРОСЫ.... .............. ......^........... ...,.;....... ....... ............ ............... »«,•»»-? 1 1 ГЛАВА 9. ОБОБЩЕННЫЕ УПРАВЛЯЮЩИЕ КОНСТРУКЦИИ АЛГОРИТМОВ И ИХ РЕАЛИЗАЦИЯ СРЕДСТВАМИ ЯЗЫКА TURBO PASCAL---„.*...........---.....,„.„,„»--------,-.--112 9.1.КОНСТРУК1ЩИ УСЛОВИЯ (РАЗВЕТВЛЕНИЯ)......................:....................................Л13 9.2. КОНСТРУКЦИИ ПОВТОРЕНИЯ (ЦИКЛА, ИТЕРАЦИИ).,»............................................. 113 9.3. КОНСТРУКЦИИ ПЕРЕХОДОВ...................................................................................114 КОНТРОЛЬНЫЕ ВОПРОСЫ..........................................................................;..........,....:.... 116 ГЛАВА 10. РАБОТА С ДАННЫМИ СТАТИЧЕСКОЙ СТРУКТУРЬ» ...^.....„.„.„ 117 10.1. РАБОТА С ДАННЫМИ ПРОСТЫХ ТИПОВ..................................................Ш 10.1.1. Ввод-вывод значений переменных простых и строковых типс/р...........7/7 Ввод.................................................................................................„....;................,........,...Ш вывод........................................................................................:.............:...........:....>...........us 10.1.2. Основные встроенные процедуры и функции для работы со значениями простых типов...........................................................................л,....:. 121 Арифметические типы.............................................................................................'.......„.121 - Порядковые типы.........................................................................................„.,.................. 121 Указательные типы.............................................................................................................121 10.1.3. Особенности работы с пользовательскими простыми типами............122 10.1.4. Стандартные функции преобразования типов...,....................................'123. 10.2. РАБОТА С СОСТАВНЫМИ ДАННЫМИ ОДНОРОДНОЙ СТРУКТУРЫ....... 123 10.2.1. Массивы........................................................................................................123 Одномерный массив (вектор)..............................................;..:..'.................'.....„Л.............. 123 Двухмерный массив (матрица).......................................................................................... 1Д4 Трехмерный массив.................-.........„.................................................................................124 10.2.2. Сортировка массивов.................................................................„,.......!.....,725 Сортировка вставкой.................................................................................,...................^..125 Сортировка выбором......................,...............................................................................»., 127 Сортировка обменом ("пузырьковая" сортировка).........................................................129 Сравнение прямых методов сортировки.................................................................;;......130 10.2.3. Двоичный поиск (бинарный поиск, поиск делением пополам)...,..„..................130 10.2.4. Примеры работы с двумерными массивами (матрицами)......................732 10.2.5. Строки........................................................................................;..«...;..........735 Первый способ реализации строк ..^...............................................;..................................136 Второй способ реализации строк......................................................................................137 /0.2.6. Множества......,......,..:....................;....!...:;7,..;„:..„„..;.....^.„.....,....^............140 10.3. РАБОТА С СОСТАВНЫМИ ДАННЫМИ НЮдаОРОДНОЙ СТРУКТУРЫ.... 142 ю.3.1. Записи............................,;...........................;.......;.:..................L.;^..............142 Фиксированные записи .;.-.т...................................................................г............................142 Вариантные записи...............;..................,........................'.,................;...............................144 10.4. СОВМЕСТИМОСТЬ ТИПОВ..........................................................................146 10.4.1. Совместимость в выражениях....?,......................,.,<.....,..л........................146 10.4.2. Совместимость по присваиванию ..,.„..^.,.......].,........,...,„......................147 КОНТРОЛЬНЫЕ ВОПРОСЫ..........J..........„„..,............,.............„........:..,;..........:...............148 КОНТРОЛЬНЫЕ ЗАДАНИЯ.......................................................,....;,......!.;„...................... 149 Печать элементов односвязногосписжа от конт к начацу.............................................225 14.4,6. Работа с линейный двухсвязным списком.'.,......;............„.....».....„.......,...225 Вставка элемента в середину линейного двухсвязного списка после заданного k-to элемента...................,...............,......................„......227 Удаление 1-го элемента линейного двухсвязного списка..................,...,........................229 КОНТРОЛЬНЫЕ ВОПРОСЫ....................................................™.~.....................................230 КОНТРОЛЬНЫЕ ЗАДАНИЯ......................................'..........................................................231 Часть 3. Методологии разработки больших программных комплексов..........*»...,......................................,232 ГЛАВА 15. СТРУКТУРНАЯ МЕТОДОЛОГИЯ РАЗРАБОТКИ ПРОГРАММ......233 15.1. ИСТОРИЧЕСКИЕ ЗАМЕТКИ............................................................а.......;.....233 15.2. ЦЕЛИ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ........................................234 "Обеспечить дисциплину программирования..........................................................234 Улучшать читабельность программы.........................................,........................234 Повышать эффективность программы...............................................................234 Повышать надежность программы......................................................................234 Уменьшать времяи стоимость программной разработки................................234 15.3. ОСНОВНЫЕ ПРИНЦИПЫ СТРУКТУРНОЙ МЕТОДОЛОГИИ............ 235 Принцип абстракции...............................................................................................235 Принцип формальности...........................................................................................235 Принцип "разделяй и властвуй"......,......................................................................235 Принцип иерархического упорядочения'.........................:........................................235 15.4. МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ.......................................................,.236 Форма модульной программы.....................................................................).........-..237 15.5. СТАНДАРТЫ СТРУКТУРНОГО ПРОГРАММИРОВАНИЯ........................237 КОНТРОЛЬНЫЕ ВОПРОСЫ...............................................................................................238 ГЛАВА 16. ОБЪЕКТНО-ОРИЕНТИРОВАННАЯ МЕТОДОЛОГИЯ РАЗРАБОТКИ ПРОГРАММ............................................................................... 239 16.1. ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ.....................................;,....•.......239/ 162. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ СРЕДСТВА ЯЗЫКА TURBO PASCAL......241 16.2.1. Описание типов и экземпляров объектов..................................................241 16.3. ОБЪЕКТЫ И МОДУЛИ.....................................................................................246 J6.4. ДИРЕКТИВЫ PRIVATE И PUBLIC.........................................................................247 16.4.1. Директива private...................................................................................247 16.4.2. Директива public...............;......................................................................248 ', Ш. НАСЛЕДОВАНИЕ, ПРАВИЛА НАСЛЕДОВАНИЯ.......................................248 •-16.6, ВИРТУАЛЬНЫЕ И ДИНАМИЧЕСКИЕ МЕТОДЫ.........................................266 .1. Конструкторы............................................:.,........л....................................267 г Щ4.2. Отличие виртуальных и динамических методов..........'...........................270 ' *" ?; ДИНАМИЧЕСКИЕ ОБЪЕКТЫ...........;...:.......;.:;...........;:...............;:;.....;......,...270 16.8. СОВМЕСТИМОСТЬ ОБЪЕКТНЫХ ТИПОВ ............. ....... ...... ..... ...................273 16.8. 1. Совместимость между экземплярами-абъектов.. ,.;........... ..:.... ...;...:.....27J 16.8.2. Совместимость между указателями наэкземтяры объектов. ............ 274 16.8.3. Совместимость между формальными и фс^тескими параметрами. .....274 Ц. 9. ПРИМЕР-УПРАЖНЕНИЕ ПО ОБЪЕКТНО-ОРИЕНТИРОВАННО!^ ПРОГРАММИРОВАНИЮ.. ..... ........................................... .... ......... .„»1;'..1...275 . КОНТРОЛЬНЫЕ ВОПРОСЫ .................................. . ..... . ....... ..... ....... ... ......... .............284 Часть 4. Стандартные приемы работы с устройствами IBM-PC ........ ..... .......... ........^...^.. ...... ..........*.,..... 286 ГЛАВА 17. РАБОТА С КЛАВИАТУРОЙ, КУРСОРОМ И ЗВУКОМ...................... 287 17.1. КЛАВИАТУРА ..... ........... . .................. . ......... ...:.: ....... ......... .....:..............;..L....;287 17.2. КУРСОР ................... . ....... .....". .................. ;........„................;.. ............... ..:.л;...:....289 17.3. ЗВУК ......................................... . ............. ......... ...... .:..,.....,;;.. ........ .- ............ ..„ ...... 291 КОНТРОЛЬНЫЕ ВОПРОСЫ ............................ .............. ........ ....»;.... ........, .......... КОНТРОЛЬНЫЕ ЗАДАНИЯ ..... . ................... . ........ ., ............... .. ........ .............. .......... ...........293 ГЛАВА 18. РАБОТА В ТЕКСТОВОМ ВИДЕОРЕЖИМЕ ...... ...........................294 18.1. ЭКРАН В ТЕКСТОВОМ РЕЖИМЕ...., ............................................................. 294 18.2. КОНСТАНТЫ ЦВЕТА ....................................................................................... 294 18.3. ОКНА В ТЕКСТОВОМ РЕЖИМЕ ....................................... '. ............................ 297 18.4. ПРЯМОЙ ДОСТУП К ВИДЕОПАМЯТИ ....................... \ ...................... . .......... 300 КОНТРОЛЬНЫЕ ВОПРОСЫ ............................................................ ; ...... .... ....... л....„...,..„(304 КОНТРОЛЬНЫЕ ЗАДАНИЯ ........... .. ........................................... , ............................ :.,....,'..,304 ГЛАВА 19. РАБОТА В ГРАФИЧЕСКОМ ВИДЕОРЕЖИМЕ ...... ...» -------- ...... 306 19.1. ПРЕДОПРЕДЕЛЁННЫЕ КОНСТАНТЫ ...................................... „.. ........... .....306 19.1.1. Константы цвета ............... ; ...................... . ............ , ............................ ±......306 19.1.2. Константы типа линий и их толщины .................................................... .306 19.1.3. Константы типов закраски ..... : .......................................... .. .......... . .......... 306 19.1.4. Константы типа шрифта и выравнивания текста. ........ . ......... .. ........... 307 Константы типа шрифта . ............................................................... : ..... . ...... . ...................... 307 Константы выравнивания текста по горизонтали... ...... , ........ ...„,.. ......................... > ........ 307 Константы выравнивания текста по вертикали ............ , ........................... .,.„ .......... „ ....... 307 19. 1.5. Константы дм( процедуры SetViewPort ........ , .................................... ,.:.,.. 307 19.1.6. Константы для процедуры ВагЗО ...................... , ........ . ........ „ ....... : ........... 307^ 19. 1. 7. Константы для процедур Pvtlmage qSetWfiteMode., ............ „ ................. 308 19.2. ПРЕДОПРЕДЕЛЕННЬВ&ТИПЫ ......... ;....„ ...................... . ..... ..„,... ................... 308 19.2.1. Тип установки цветов палитры ........ ,.^г. .............. » ...... , ..... „...,..,... ............ 308, 19.2.2. Тип установки вида линий ............ ................ ................ .\ ........................ „...30S1 ' 19.2.3. Тип установки оформления текста 19.2.4. Типы установки вида закраски ............. .=. ..... „ ...... „,„.„.,(...,«*«*..у....4....,„^. 308 Цена: 150руб. |
||||