Практическо ръководство по програмиране на Паскал
СЪДЪРЖАНИЕ
ПРАКТИЧЕСКО РЪКОВОДСТВО ПО ПРОГРАМИРАНЕ НА ПАСКАЛ
СЪДЪРЖАНИЕ
Списък на съкращенията...................................................................... 2
Предговор ............................................................................................3
1. Скаларни типове данни в Борланд Паскал.
Съвместимост................................................................................. 7
1.1 Основни елементи на езика....................................................... 7
1.1.1 Основни знакове.......................................................................... 7
1.1.2 Идентификатори........................................................................... 7
1.1.3 Служебни думи............................................................................ 7
1.1.4 Величини......................................................................................8
1.1.5 Обща структура на програмата..................................................... 8
1.1.6 Изрази......................................................................................... 9
1.2 Скаларни типове данни............................................................. 9
1.2.1 Стандартни скаларни типове данни............................................. 10
1.2.2 Целочислени типове................................................................... 11
1.2.3 Приближени (реални) типове....................................................... 12
1.2.4 Логически тип............................................................................. 14
1.2.5 Знаков тип.................................................................................. 15
1.2.6 Явно изброим тип........................................................................ 15
1.2.7 Ограничен тип............................................................................. 15
1.3 Съвместимост...........................................................................16
1.4 Задачи и упражнения....................................................................16
2. Оператори..................................................................................18
2.1 Прости оператори.................................................................... 18
2.2 Структурирани оператори....................................................... 21
3. Линейни алгоритми................................................................... 22
4. Разклонени алгоритми............................................................. 26
4.1 Логически изрази....................................................................... 26
4.2 Оператор IF – THEN – ELSE...................................................... 29
4.3 Оператор за избор на варианти CASE..................................... 34
5. Оператор за цикъл FOR............................................................ 38
6. Цикли с условия. Итерационни алгоритми........................... 45
6.1 Цикли с условия......................................................................... 45
6.1.1 Цикълът WHILE..DO................................................................... 45
6.1.2 Цикълът REPEAT..UNTIL............................................................ 46
6.2 Оператори BREAK и CONTINUE................................................ 47
6.3 Итерация. Рекурентни редици................................................. 48
6.4 Безкрайни суми......................................................................... 50
6.5 Задачи за самостоятелно решаване....................................... 52
7. Явно изброими и ограничени типове данни....................... 55
7.1 Явно изброим тип данни.......................................................... 55
7.1.1 Операции.................................................................................. 56
7.1.2 Стандартни функции.................................................................. 57
7.2 Ограничен тип данни............................................................... 58
7.3 Задачи:....................................................................................... 59
8. Подпрограми............................................................................. 61
8.1 Процедури.................................................................................. 61
8.2 Функции..................................................................................... 62
8.3 Формални и фактически параметри....................................... 63
8.4 Локални и глобални обекти на подпрограма.
Област на действие.......................................................................64
8.5 Подпрограмите като параметри............................................ 66
8.6 Странични ефекти на функциите.......................................... 67
9. Рекурсия. Рекурсия и итерация........................................... 75
9.1 Рекурсивни подпрограми........................................................... 75
9.2 Взаимно–рекурсивни подпрограми. Предварително
деклариране на подпрограми......................................................76
9.3 Механизъм на действие на рекурсията............................... 77
9.4 Примерни задачи, които се решават с рекурсия................ 77
9.5 Рекурсия и итерация............................................................ 82
10. Общи задачи и тестове..................................................... 86
10.1 Задачи................................................................................. 86
10.2 Тестове............................................................................... 91
11. Масиви................................................................................. 94
11.1 Дефиниране на тип масив................................................. 94
11.2 Операции с масиви............................................................ 97
11.3 Задачи с едномерни масиви (вектори)............................. 98
11.4 Задачи с двумерни масиви (матрици)............................. 106
11.5 Общи задачи...................................................................... 117
11.6 Типизирани константи масиви......................................... 123
12. Сортировка и търсене. Комбинаторика........................ 125
12.1 Сортировка....................................................................... 125
12.1.1 Метод на простото вмъкване.............................................. 126
12.1.2 Метод на мехурчето........................................................... 127
12.1.3 Шейкер сортировка............................................................ 128
12.1.4 Метод на пряк избор (пряка селекция)................................ 129
12.1.5 Сортировка на Шел............................................................ 131
12.1.6 Бърза сортировка.............................................................. 132
12.1.7 Метод на пирамидата........................................................ 133
12.2 Двоично търсене в подреден масив............................... 134
12.3 Комбинаторика................................................................. 137
12.3.1 Пермутации....................................................................... 137
12.3.1.1 Алгоритъм за лексикографско пораждане........................ 137
12.3.1.2 Алгоритъм с най-малък брой трансформации................... 139
12.3.2 Пораждане на всички подмножества.................................. 141
12.3.3 Комбинации без повторения............................................... 142
13. Текстов тип (тип знаков низ)........................................... 147
13.1 Дефиниране на текстов тип............................................ 147
13.2 Операции с низове.......................................................... 148
13.2.1 Присвояване на стойност на текстова променлива.............. 148
13.2.2 Въвеждане и извеждане на данни от текстов тип................ 148
13.2.3 Достъп до отделните компоненти (знакове) на низ............... 149
13.2.4 Конкатенация (слепване).................................................... 149
13.2.5 Сравнение (>, <, =, < >, >=, <=).......................................... 149
13.3 Стандартни функции........................................................ 150
13.3.1 Конкатенация...................................................................... 150
13.3.2 Дължина (брой знакове)...................................................... 150
13.3.3 Извличане на подниз.......................................................... 150
13.3.4 Търсене на подниз.............................................................. 150
13.4 Стандартни процедури..................................................... 150
13.4.1 Изтриване на подниз........................................................... 150
13.4.2 Вмъкване на низ................................................................. 151
13.4.3 Преобразуване на число в низ............................................. 151
13.4.4 Преобразуване на низ в число............................................. 151
13.5 Тестове и задачи............................................................ 152
14. Множества........................................................................ 161
14.1 Дефиниране на тип множество....................................... 161
14.2 Операции с множества.................................................... 162
14.2.1 Теоретико-множествени операции....................................... 162
14.2.2 Релации............................................................................. 162
14.2.3 Установяване на принадлежност:....................................... 163
14.3 Задачи и тестове.............................................................. 164
15. Записи................................................................................ 172
15.1 Дефиниране на тип запис............................................... 172
15.2 Операции със записи...................................................... 173
15.2.1 Достъп до полета на запис................................................. 173
15.2.2 Присвояване на стойност на поле от запис..........................173
15.2.3 Въвеждане и извеждане на стойности................................ 173
15.2.4 Участие на полетата в изрази............................................. 173
15.3 Оператор за присъединяване WITH................................ 174
15.4 Вложени записи................................................................. 174
15.5 Вариантни записи.............................................................. 175
15.6 Задачи и тестове............................................................... 176
16. Масиви с елементи от тип запис. Хеш-таблици.......... 179
16.1 Масиви с елементи от тип запис...................................... 179
16.2 Хеш–таблици с възможност за колизии.......................... 185
17. Файлове............................................................................. 201
17.1 Дефиниране на тип файл................................................ 201
17.2 Стандартни процедури и функции................................. 201
17.2.1 Процедури........................................................................ 201
17.2.2 Функции........................................................................... 203
17.3 Текстови файлове............................................................ 204
17.4 Безтипови файлове........................................................... 206
17.5 Търсене на входно–изходни грешки................................. 207
17.6 Задачи............................................................................... 207
18. Указатели............................................................................ 221
18.1 Създаване и унищожаване на динамични променливи. 222
18.2 Списък............................................................................... 224
18.2.1 Операции със списък........................................................ 225
18.2.2 Задачи върху списък........................................................ 227
18.3 Стек.................................................................................. 230
18.3.1 Операции със стек........................................................... 230
18.4 Опашка............................................................................ 233
18.4.1 Операции с опашка......................................................... 233
18.5 Двусвързан списък......................................................... 235
18.5.1 Операции с двусвързан списък....................................... 235
18.5.2 Задачи върху двусвързан списък.................................... 236
18.6 Граф................................................................................ 236
18.6.1 Представяне на граф чрез матрица на инцидентност.........237
18.6.2 Представяне на граф чрез матрица на съседство............ 237
18.6.3 Представяне на граф чрез списъци на инцидентност....... 238
18.6.4 Задачи върху граф......................................................... 238
18.7 Двоично дърво............................................................... 243
18.7.1 Операции с двоично дърво............................................. 244
18.7.2 Двоични дървета за търсене.......................................... 244
18.7.3 Задачи върху двоични дървета...................................... 250
18.8 Динамични масиви......................................................... 252
19. Модули............................................................................ 254
19.1 Структура на модула..................................................... 254
19.1.1 Заглавна част................................................................. 255
19.1.2 Интерфейсна част........................................................... 255
19.1.3 Реализационна част........................................................ 255
19.1.4 Инициализационна част................................................... 255
19.2 Видове модули............................................................... 255
19.3 Задачи............................................................................. 261
20. Общи задачи................................................................... 268
Приложения.............................................................................. 286
ЛИТЕРАТУРА........................................................................... 302
Съдържание............................................................................. 303