Язык Си для профессионалов Москва1991 385стр. Предисловие
Если вы хотите создавать программы мирового уровня, написанные на Си, то эта книга - для вас!
Что делает одни программы более удачными, чем другие, аналогичные им? Удачные программы были написаны людьми, которые не только имели крепкую хватку в специальной области, но и в совершенстве освоили оборудование компьютера, включая операционную систему и аппаратное обеспечение. Только программист, осуществляющий полный контроль над ними, может писать программы с дружелюбным интерфейсом пользователя, которые эффективно выполняются и дают пользователям большую гибкость.
Эта книга открывает многие секреты, используемые мастерами программирования для достижения профессиональных результатов. С ее помощью вы расширите подходы и методы, которые делают программы интересными. После прочтения книги вы будете способны писать программы, которые заслужат внимание. Здесь рассматриваются следующие вопросы:
# Прямой доступ к памяти экрана для быстрого отображения
# Исчезающие и иерархические (popup и pulldown) меню
# Процедуры работы с окнами
# Завершение программ и оставление их в памяти
# Интерфейс с мышью
# Графические функции, включая вращение объектов
# Языковые интерпретаторы
# Передача файлов через последовательный порт
Эта книга для любого и каждого программиста на Си, от новичка до профессионала. Даже если вы начинающий, вы можете использовать функции и программы из этой книги без понимания отдельных деталей их работы. Более подготовленные читатели могут использовать эти программы как основу для своих приложений.
Исходные тексты этой книги соответствуют стандарту ANSI, кроме некоторых функций, специфичных для ПК. Таким образом все эти программы можно компилировать на любом компиляторе, который поддерживает стандарт. Для их разработки использовался Турбо Си и Microsoft Си.
Содержание
ПРЕДИСЛОВИЕ ..................................................... 6
ГЛАВА 1. ИСЧЕЗАЮЩИЕ И ИЕРАРХИЧЕСКИЕ МЕНЮ................... 7
Что такое исчезающие и иерархические меню? ....................... 7
Работа видеоадаптеров............................................ 8
Доступ к экрану через BIOS ....................................... 10
Использование int86<) ............................................ 10
Сохранение части экрана ......................................... 11
Восстановление экрана........................................... 13
Создание исчезающих меню....................................... 13
Высвечивание меню.............................................. 14
Высвечивание рамки ............................................. 15
Ввод выбора пользователя......................................... 16
Функция popup О ................................................ 19
Общий обзор.................................................... 20
Прямой доступ к видео памяти..................................... 26
Определение расположения видео памяти............................ 26
Изменение save_videoO' и restore_video()............................. 27
Создание иерархических окон .1................................... 35
Фреймы меню................................................... 35
Создание фрейма меню........................................... 36
Функция pulldown ().............................................. 37
Восстановление экрана ........................................... 38
Простая программа, использующая процедуру pulldown................ 38
ГЛАВА 2. ВСПЛЫВАЮЩИЕ ОКНА..................................... 48
Теория всплывающих окон........................................ 48
Оконные структуры.............................................. 49
Создание структуры окна .........................................50
Активирование и деактивирование окна............................. 51
Оконные функции ввода/вывода ................................... 53
Функция позиционирования курсора в окне..........................53
Функция window_getche().........................................54
Функция window_gets<)...........................................56
Функция window_putchar()........................................56
Функция window_puts ............................................58
Дополнительные функции управления экраном.......................58
Изменение размера и положения окна во время выполнения программы-----60
Создание прикладных программ, использующих всплывающие окна.....63
Программа преобразования из десятиричной в шестнадцатиричную
систему счисления............................................... 64
Калькулятор с четырьмя функциями................................ 64
Всплывающая записная книжка.................................... 67
Совместное использование всех программ............................ 69
Модификации программ управления окнами......................... 87
ГЛАВА 3. ПРОГРАММЫ, ОСТАЮЩИЕСЯ РЕЗИДЕНТНЫМИ ПОСЛЕ ЗАВЕРШЕНИЯ И ФОРМИРУЮЩИЕ ПРИ ИХ ВЫЗОВЕ ВСПЛЫВАЮЩИЕ
ИЗОБРАЖЕНИЯ НА ЭКРАНЕ ДИСПЛЕЯ '............................... 91
Что такое TSR-программа? ........................................ 92
Прерывания в семействе процессоров 8086........................... 92
Прерывания против DOS и BIOS: Тревога в стране DOS................ 92
Модификатор функций прерывания Турбо Си........................ 93
Общий план TSR-программы ...................................... 94
Использование прерывания печати экрана........................... 94
Раздел инициализации ........................................... 95
Прикладная часть TSR-программы.................................. 96
Использование прерывания по нажатию клавиши.....................109
Буфер символов, введенных с клавиатуры............................110
Функция инициализации.........................................111
Прикладная часть TSR-программы..................................112
Тайна 28-го прерывания ..........................................127
Проблемы при создании TSR-программ..............................128
ГЛАВА 4. ГРАФИКА..................................................129
Видеорежимы и цветовая палитра..................................130
Запись точки растра..............................................131
Работа адаптеров CGA/EGA в графическом режиме..................132
Вычерчивание линий.............................................134
Изображение и закрашивание прямоугольников ......................136
Вычерчивание окружностей.......................................136
Простейшая тестовая программы...................................138
Сохранение и загрузка графических изображений.....................143
Дублирование части экрана .......................................145
Вращение точки в плоскости экрана.................................146
Вращение объекта................................................148
Сборка подпрограмм..............................................156
ГЛАВА5.ВИДЕОИГРЫ ...............................................176
Спрайты........................................................176
Поле игры......................................................177
Мультипликация на Экране........................................177
Мультипликация спрайта .........................................184
Организация данных в видеоиграх..................................186
Контроль границ.................................................186
Изменение цвета.................................................186
Табло счета активного противника..................................187
Разработка видеоигры ............................................187
Тело главной программы..........................................189
Программа генерации движения спрайта компьютера................., 193
Программа контроля касания спрайтов.............................,196
Полный текст программы игры TAG ................................197
Некоторые соображения по возможной модификации программы ........ 209
ГЛАВА 6. ИСПОЛЬЗОВАНИЕ ПОСЛЕДОВАТЕЛЬНОГО ПОРТА: ПЕРЕДАЧА
ФАЙЛОВ И ПРОСТЕЙШИЕ ЛВС........................................211
Асинхронная последовательная передача данных...................... 212
Стандарт RS-232.................................................213
Аппаратное подтверждение связи...................................214
Проблемы передачи данных....................................... 214
Переполнение регистра-приемника.....................•...........215
Доступ к последовательному порту компьютера через BIOS .. V.......... 215
Инициализация порта............................................216
Передача байтов................................................. 218
Контроль состояния порта.........................................218
Прием байтов ...................................................219
Передача файлов между компьютерами............................. 220
Программное подтверждение связи .................................221
Семь и восемь бит данных.........................................222
Перекачка файла................................................222
Прием файла....................................................225
Перекачка программы'............................................226
Использование средств перекачки программ..........................230
Дальнейшее совершенствование программы..........................231
Простейшая ЛВС ................................................231
Файловый сервер................................................232
Загрузка удаленных файлов в узел сети..............................242
Хранение файлов................................................ 245
Использование ЛВС..............................................249
Совершенствование ЛВС..........................................249
ГЛАВА 7. ИНТЕРПРЕТАТОРЫ ЯЗЫКА..................................251
Синтаксический разбор выражений.................................252
Выражения.....................................................252
Дексемы........................................................253
Порядок построения выражений....................................257
Синтаксический анализатор выражений.............................259
Как анализатор обрабатывает переменные -----.'......................266
Интерпретатор языка SMALL BASIC ................................267
Основной цикл работы анализатора.................................269
Команда присваивания значений...................................270
Команда PRINT..................................................271
Команда INPUT .................................................272
Команда GOTO..................................................273
Оператор IF.....................................................277
ЦиклРОК .......................................................277
Оператор GOSUB................................................279
Полный файл интерпретатора......................................281
Пример использования интерпретатора SMALL BASIC.................291
Расширение возможностей интерпретатора ..........................292
IA 8. О МАНИПУЛИРОВАНИИ ЭКРАНОМ И ГЕНЕРАЦИИ ЗВУКА......293
Использование цвета в текстовом режиме............................294
Атрибутный байт текстового режима................................294
Отображение строки в определенном цвете...........................295
Использование цвета .............................................297
Изменение размера курсора.......................................298
Скроллинг части экрана...........................................299
Простейшая демонстрационная программа.......:...................300
Сохранение копии экрана в дисковом файле..........................305
А теперь добавим звук............................................ 306
Программируемый таймер 8253....................................306
Простейший способ проверки слуха.................................308
Имитация звука сирены и взрывы..................................309
Создание "космической музыки"...................................312
IA 9. ИНТЕРФЕЙС С "МЫШЬЮ"..................................314
Некоторые начальные сведения о "мыши" ...........................315
Виртуализация и реальный экран ..................................316
Библиотека поддержки "мыши"....................................316
Функции поддержки "мыши" верхнего уровня .......................318
Простейшая демонстрационная программа...........................321
Ввод информации с помощью "мыши" в программе рисования..........325
Основной цикл работы программы..................................327
Определение объектов с помощью "мыши"...........................333
Полный текст модифицированной программы рисования...............336
Некоторые возможности расширения выполняемых функций
программы .....................................................357
А10. СОЗДАНИЕ КОММЕРЧЕСКИХ ДИАГРАММ...................358
Нормализация данных............................................358
Разработка функций построения диаграмм...........................359
Программа вычерчивания диаграмм ................................368
Отображение диаграмм на экране дисплея...........................381
Некоторые интересные идеи по модификации программ................383
Hosted by uCoz