Страница 1 из 56
Г Л А В А 8...............................................12
ВИДЕОФУНКЦИИ ТУРБО СИ.......................................12
В этой главе................................................12
Несколько слов о видеорежимах...............................14
Несколько слов о текстовых и графических окнах..............16
Что такое окно?.............................................16
Что такое viewport (графическое окно)?......................17
Координаты..................................................17
Программирование в текстовых режимах........................19
Функции ввода/вывода с консоли..............................19
Вывод текста и манипуляция с ним............................20
Управление режимами и окнами................................24
Управление атрибутами.......................................25
Запрос состояния............................................27
Текстовые окна..............................................29
Тип text_modes..............................................30
Цвета текста................................................32
Высокоэфективный вывод: переменная directvideo..............35
Программирование в графическом режиме.......................37
Функции графической библиотеки..............................40
Управление графической системой.............................40
Более подробное обсуждение..................................44
Рисование и закрашивание....................................47
Манипуляция экраном и графическим окном.....................51
Вывод текста в графическом режиме...........................55
Управление цветом..........................................60
Точки растра и палитры......................................61
Цвет фона и вычерчивания....................................63
Управление цветом на CGA....................................63
Низкое разрешение CGA.......................................64
Высокое разрешение CGA......................................67
Функции управления палитрой для CGA.........................68
Управление цветом на EGA и VGA..............................68
Обработка ошибок в графическом режиме.......................70
Запрос состояния............................................74
Г Л А В А 9................................................79
ЗАМЕЧАНИЯ ДЛЯ ПРОГРАММИСТОВ, РАБОТАЮЩИХ НА ТУРБО ПАСКАЛЕ....79
Структура программы.........................................81
Пример......................................................84
Сравнение базовых элементов.................................86
В ы в о д...................................................86
Т и п ы д а н н ы х.......................................90
Операции....................................................94
Ввод........................................................98
- 3,4 -
Блок операторов............................................101
Выполнение по условию.......................................102
Циклы (итерации)............................................109
Цикл while (пока)...........................................109
Цикл do...while (выполнять...пока)..........................110
Цикл for (для)..............................................112
Подпрограммы................................................116
Прототипы функций..........................................120
Основной пример.............................................123
ОБЗОР СТРУКТУР ДАННЫХ.....................................128
Pointers (Указатели)........................................128
Arrays (Массивы)............................................133
Strings (Строки)............................................136
Structures (Структуры)......................................143
Union (Объединение).........................................147
Выводы по программированию..................................150
Чувствительность к регистрам................................150
Приведение типов............................................151
Константы, переменные записи и инициализация................152
Типы констант...............................................153
Инициализация переменных....................................155
Переменные памяти...........................................156
Динамическое распределение памяти...........................157
Аргументы командной строки..................................161
Файлы ввода/вывода..........................................164
Общие ошибки Паскаль программистов при работе на Си.........169
Ошибка #1: Присваивание и сравнение.........................169
Ошибка #2: Забывание о передаче адреса......................171
(особенно, при использовании scanf).........................171
Ошибка #3: пропуск скобок при вызове функции................172
Ошибка #4: предупреждающие сообщения........................173
Ошибка #5: индексация в многомерных массивах................174
Ошибка #6: Забывание о различиях между символьными
массивами и символьными указателями.........................176
Ошибка #7: забывание о том, что Си чувствителен
к размеру букв (строчные-заглавные).........................178
Ошибка #8: пропуск точки с запятой в последнем
операторе блока.............................................179
Г Л А В А 10...............................................181
ИНТЕРФЕЙС МЕЖДУ ТУРБО СИ И ТУРБО ПРОЛОГОМ...................182
В этой главе................................................184
Компоновка Турбо Си и Турбо Пролога: обзор..................185
Пример 1: Сложение двух целых чисел.........................191
Исходный файл Турбо Си: CSUM.C..............................191
- 5,6 -
Компиляция CSUM.C в CSUM.OBJ.............................192
Исходный файл Турбо Пролога : PROSUM.PRO....................194
Компиляция PROSUM.PRO в PROSUM.OBJ..........................194
Компоновка CSUM.OBJ и PROSUM.OBJ............................196
Инициализация Турбо Пролога:................................196
Главный модуль Турбо Пролога:...............................196
Набор модулей:..............................................197
Модуль таблицы идентификаторов:.............................197
Имя выходного файла.........................................197
Библиотеки:.................................................198
Пример 2: Использование библиотеки математических функций...200
Компиляция CSUM1.C и FACTRL.C в .OBJ........................202
И с х о д н ы й ф а й л Турбо Пролога: FACTSUM.PRO.........203
Компиляция FACTSUM.PRO в FACTSUM.OBJ........................207
Компоновка СSUM1.OBJ, FACTRL.OBJ и FACTSUM.OBJ..............207
Пример 3: Шаблоны аргументов и распределение памяти.........209
Вызов Турбо Пролога из Турбо Си.............................214
Списки и функторы...........................................220
Компиляция DUBLIST.C........................................224
Пример 4. Рисование 3-х мерных диаграмм.....................225
Компиляция CBAR.C...........................................226
Программа Турбо Пролога: PBAR.PRO...........................226
Компиляция PBAR.PRO в PBAR.OBJ..............................228
Компоновка PBAR.OBJ с модулем CBAR.OBJ......................228
Р е з ю м е.................................................230
ГЛАВА 11....................................................231
РУКОВОДСТВО ПО ЯЗЫКУ ТУРБО СИ...........................231
В этой части................................................233
Комментарии (K&R 2.1).......................................233
Идентификаторы (K&R 2.2)....................................235
Ключевые слова (K&R 2.3)...................................236
Константы (K&R 2.4).........................................238
Целые константы (K&R 2.4.1).................................238
Символьные константы (K&R 2.4.3)............................241
Константы с плавающей точкой (K&R 2.4.4)....................244
Строки (K&R 2.5)............................................245
Зависимость от аппаратных средств (K&R 2.6).................247
Преобразования (K&R 6)......................................249
Char, int и enum (K&R 6.1)..................................249
Указатели (K&R 6.4).........................................250
Арифметические преобразования (K&R 6.6).....................251
Операторы (K&R раздел 7.2).................................254
Спецификаторы типов и модификаторы (K&R 8.2)................255
Тип enum....................................................256
- 7,8 -
Тип void....................................................257
Модификатор signed..........................................259
Модификатор const...........................................260
Модификатор volatile........................................262
Модификаторы cdecl и pascal.................................264
pascal......................................................265
cdecl.......................................................266
Модификаторы near, far и huge...............................267
Структуры и объединения (K&R раздел 8.5)..................270
Выравнивание слов...........................................270
Поля бит....................................................271
Операторы (K&R 9)...........................................273
Определения внешних функций (K&R 10.1)......................273
Модификаторы типа функции (K&R 10.1.1)......................274
Модификатор функции pascal..................................274
Модификатор функции cdecl...................................276
Модификатор функции interrupt...............................278
Модификаторы функций near, far и huge.......................279
Прототипы функций (K&R 10.1.2)..............................280
Правила видимости (K&R 11)..................................290
Команды управления трансляцией (K&R 12).....................292
Замена лексем (K&R 12.1)....................................292
Включение файла (K&R 12.2)..................................295
Условная компиляция (K&R 12.3)..............................297
Управление строками (K&R 12.4)..............................299
Директива error (ANSI Си 3.8.5).............................299
Директива pragma (ANSI Си 3.8.6)............................301
#pragma inline..............................................301
Директива null (ANSI Си 3.7)................................305
Встроенные макроимена (ANSI Си 3.8.8).......................305
Встроенные макросы Турбо Си.................................308
Анахронизмы (K&R 17)........................................310
Г Л А В А 12...............................................311
УГЛУБЛЕННЫЙ КУРС ПО ТУРБО СИ................................311
Модели памяти...............................................312
Регистры микропроцессора 8086...............................312
Регистры общего назначения..................................316
Сегментные регистры.........................................317
Регистры специального назначения............................317
Сегментация памяти..........................................319
Вычисление адреса...........................................320
Указатели типа NEAR, FAR И HUGE.............................322
Указатели типа NEAR.........................................323
Указатели типа FAR..........................................323
- 9,10 -
Указатели типа HUGE.........................................326
Шесть моделей памяти в Турбо Си.............................329
Крохотная...................................................329
Малая.......................................................329
Средняя.....................................................330
Компактная..................................................330
Большая.....................................................331
Огромная....................................................331