книги / Программирование на языке Си
..pdfОГЛАВЛЕНИЕ
ПРЕДИСЛОВИЕ....................................................................... |
3 |
РАЗДЕЛ I. ПОЛНЫЙ КУРС ПРОГРАММИРОВАНИЯ |
|
НА ЯЗЫКЕ СИ......................................................... |
7 |
Глава 1. БАЗОВЫЕ ПОНЯТИЯ ЯЗЫКА.............................. |
9 |
1.1. Алфавит, идентификаторы, служебные слова..... |
10 |
Алфавит.(Ю). Идентификатор (11). Служебные (ключе |
|
вые) слова.(11) |
|
1.2. Константы и строки..................................................... |
15 |
Символы или символьные константы (15). Целые кон- |
|
станты.(17). Вещественные константы (17). Предельные |
|
значения и типы арифметических констант (18). Нулевой |
|
указатель (20). Константы перечисляемого типа (20). |
|
Строки, или строковые константы (21) |
|
1.3. Переменные и именованные константы................ |
23 |
Переменная как объект (23). Определение переменных |
|
(23). Предельные значения переменных (26). Инициали |
|
зация переменных (27). Именованные константы (27) |
|
1.4. Операции................. |
33 |
Знаки операций (33). Унарные.(одноместные) операции |
|
(34). Бинарные (двуместные) операции (36) |
|
1.5.Разделители.,............................................................... 43
Квадратные скобки (44). Круглые скобки (44). Фигур ные скобки (45). Запятая (46). Точка с запятой (47). Двоеточие (48). Многоточие (48). Звездочка (48). Обо значение присваивания (49). Признак препроцессорных средств(49)
1.6.Выражения и приведение арифметических
типов............................................................................... . |
50 |
Отношения и логические выражения (52). Присваивание |
|
(выражение и оператор) (53). Приведение типов (55). |
|
Правила преобразования типов (56). Выражения с пораз |
|
рядными операциями (59). Условное выражение (61) |
|
596 |
Программирование на языке Си |
|
Глава 3. ПРЕПРОЦЕССОРНЫЕ СРЕДСТВА |
|
|
3.2. Замены в тексте............................................................... |
136 |
|
|
Директива #define (136). Цепочка подстановок (136)....... |
|
3.3. Включение текстов из файлов.................................... |
142 |
|
3.4. Условная компиляция................................................. |
146 |
|
|
Директивы ветвлений (146). Операция defined (150)........ |
|
3.5. Макроподстановки средствами препроцессора.... |
151 |
|
|
Моделирование многомерных массивов (153). Отличия |
|
|
макросов от функций (155). Препроцессорные операции |
|
|
в строке замещения (157) |
|
3.6. Вспомогательные директивы.................................... |
158 |
|
|
Препроцессорные обозначения строк (158). Реакция на |
|
|
ошибки (159). Пустая директива (160). Прагмы (160) |
|
3.7. Встроенные (заранее определенные) |
|
|
|
макроимена..................................................................... |
161 |
Глава 4.УКАЗАТЕЛИ, МАССИВЫ, СТРОКИ....................... |
164 |
|
4.1. Указатели на объекты............................. |
164 |
|
|
Адреса и указатели (164). Операции над указателями |
|
|
(168). Арифметические операции и указатели (171). Ука |
|
|
затели и отношения (172) |
|
4.2. Указатели и массивы................................................... |
175 |
|
|
Указатели и доступ к элементам массивов (175). Масси |
|
|
вы динамической памяти (179). Массивы указателей и |
|
|
моделирование многомерных массивов (184). "Матрица" |
|
|
со строками разной длины (188) |
|
4.3. |
Символьная информация и строки........................ |
192 |
|
Ввод-вывод символьных данных (192). Внутренние коды |
|
|
и упорядоченность символов (194). Строки, или строко |
|
|
вые константы (195). Строки'и указатели (200) |
|
Глава 5. ФУНКЦИИ...................................................................... |
203 |
|
5.1. Общие сведения о функциях....................................... |
203 |
|
|
Определение функции (203). Описание функции и ее тип |
|
|
(206). Вызов функции (207) |
|
5.2. Указатели в параметрах функций............................. |
210 |
|
|
Указатель-параметр (210). Имитация подпрограмм (213) |
|
Оглавление |
597 |
Глава 5. ФУНКЦИИ |
|
5.3. Массивы и строки как параметры функций......... |
216 |
Массивы в параметрах (216). Строки как параметры |
|
функций (218). Резюме по строкам-параметрам (226) |
|
5.4. Указатели на функцЦи................................................. |
227 |
Указатели при вызове функций (227). Массивы указате |
|
лей на функции (231). Указатели на функции как пара |
|
метры (233). Указатель на функцию как возвращаемое |
|
функцией значение (236). Библиотечные функции с ука |
|
зателями на функции в параметрах (238) |
|
5.5. Функции с переменным количеством |
|
параметров............................................................. ........ |
243 |
Доступ к адресам параметров из списка (244). Макро |
|
средства для переменного числа параметров (249). При |
|
меры функций с переменным количеством параметров |
|
(253) |
|
5.6. Рекурсивные функции.................... ............................ |
258 |
5.7. Классы памяти и организация программ.............. |
262 |
Локализация объектов (262). Глобальные объекты (264). |
|
Динамическая память (266). Внешние объекты (269) |
|
5.8. Параметры функции main( ) ..................................... |
271 |
Глава 6. СТРУКТУРЫ И ОБЪЕДИНЕНИЯ......................... |
275 |
6.1. Структурные типы и структуры.............................. |
275 |
Производные типы (275). Структурный тип (276). Опре |
|
деление структур (280). Выделение памяти для структур |
|
(283). Инициализация и присваивание структур (285). |
|
Доступ к элементам структур (286) |
|
6.2. Структуры, массивы и указатели............................. |
289 |
Массивы и структуры в качестве элементов структур |
|
(289). Массивы структур (292). Указатели на структуры |
|
(295). Указатели как средство доступа к компонентам |
|
структур (296). Операции над указателями на структуры |
|
(298) . Указатели на структуры как компоненты структур |
|
(299) |
|
6.3. Структуры и функции................................................. |
301 |
‘ Имитация абстрактных типов данных (302) |
|
598 |
Программирование на языке Си |
|
Глава 6. СТРУКТУРЫ И ОБЪЕДИНЕНИЯ |
|
|
6.4. Динамические информационные структуры....... |
306 |
|
|
Статическое и динамическое представление данных (306). |
|
|
Односвязный список (307). Рекурсия при обработке спи |
|
|
ска (310) |
|
6.5. Объединения и битовые поля..................................... |
315 |
|
|
Объединения (315). Объединяющий тип (317). Битовые |
|
|
поля (320) |
|
Глава 7. ВВОД И ВЫВОД.......................................................... |
325 |
|
7.1. Потоковый ввод-вывод............................................... |
325 |
|
|
7.1.1. Открытие и закрытие потока.................................... |
327 |
|
7.1.2. Стандартные файлы и функции для работы с ними.. 331 |
|
|
7.1.3. Работа с файлами на диске......................................... |
353 |
7.2. Ввод-вывод нижнего уровня............................. |
369 |
|
|
7.2.1. Открытие/закрытие файла.......................................... |
370 |
|
7.2.2. Чтение и запись данных........................................... |
376 |
|
7.2.3. Произвольный доступ к файлу................................. |
380 |
Глава 8. ПРИМЕРЫ РАЗРАБОТКИ ПРОГРАММ............. |
382 |
|
8.1. Программа с объектами разных классов |
|
|
|
памяти............................................................................ |
382 |
|
Постановка задачи (382). Программная ревлизация (385) |
|
8.2. Структуры и обработка списков в основной |
|
|
|
памяти........................ |
395 |
|
Постановка задачи (395). Функция main() (401). Функ |
|
|
ция init() - "Инициализировать базу данных" (403). Функ |
|
|
ция delete() - "Удвлить все сведения о сотруднике из |
|
|
базы данных" (405). Функция fr() - "Возвратить освобо |
|
|
жденный элемент в список свободных элементов" (410)., |
|
|
Функция input() - "Ввести в базу данных сведения о но |
|
|
вом сотруднике" (410). Функция print() - "Печать списка |
|
|
занятых элементов (412). Сохранение (восстановление) |
|
|
базы данных (413) |
|
8.3. |
Сортировка на основе бинарного дерева............ |
423 |
|
Статические и динамические данные (423). Управление |
|
|
динамической памятью (425). Сортировка с помощью |
|
|
бинарногодерева (426). Печать результатов сортировки(438) |
Оглавление |
|
599 |
РАЗДЕЛ II. ВЫПОЛНЕНИЕ ПРОГРАММ В |
|
|
РАЗНЫХ ОПЕРАЦИОННЫХ СИСТЕМАХ. |
.. |
441 |
Глава 9. ПОДГОТОВКА И ВЫПОЛНЕНИЕ . |
|
|
ПРОГРАММ.............................................................. |
|
443 |
9.1. Подготовка программ в операционной |
|
|
системе UNIX................................................................ |
|
447 |
9.1.1. Команда make...................................................... |
|
451 |
9.1.2. Библиотеки объектных модулей............................ |
456 |
|
9.2. Сборка и выполнение программ в |
|
|
интегрированной среде Turbo С 2.0......................... |
|
463 |
9.2.1. Состав системы программирования Turbo С 2.0..... |
|
463 |
9.2.2. Экран интегрированной среды Turbo С 2.0............... |
|
464 |
9.2.3. Система меню среды Turbo С 2.0.............................. |
|
466 |
9.2.4. Настройка среды Turbo С .......................................... |
|
470 |
9.3. Сборка и выполнение программ в |
|
|
интегрированной среде Borland C++3.1............ |
|
479 |
9.3.1. Состав системы программирования BorlandC++3.1.. |
479 |
|
9.3.2. Экран интегрированной среды............................... |
480 |
|
9.3.3. Система меню интегрированной среды................. |
481 |
|
9.3.4. Настройка интегрированной среды Borland C++3.1... |
483 |
|
РАЗДЕЛ III. ПРАКТИКУМ ПО ПРОГРАММИРОВАНИЮ |
|
|
НА ЯЗЫКЕ СИ.............................................. |
|
491 |
Глава 10. ЗАДАЧИ ПО ПРОГРАММИРОВАНИЮ............ |
|
493 |
10.1. Ознакомительная работа............................................ |
|
493 |
10.2. Итерационные методы и ряды................................... |
|
496 |
10.3. Работа со строками. Указатели, динамические |
|
|
одномерные массивы................................................ |
|
504 |
10.3.1. Варианты задач по обработке строк......................... |
|
505 |
10.3.2. Рекомендации по обработке строк........................... |
|
520 |
10.3.3. Пример выполнения задания по обработке строк... |
|
523 |
10.4. Многомерные динамические массивы с |
|
|
переменными размерами............................................ |
|
525 |
10.4.1. Варианты задач для 1-й части задания по |
|
|
многомерным массивам........................................... |
|
527 |
600 |
Программирование на языке Си |
|
Глава 10. ЗАДАЧИ ПО ПРОГРАММИРОВАНИЮ |
|
|
|
10.4.2. Варианты для 2-й части задания по многомерным |
|
|
массивам............................ |
529 |
|
10.4.3. Пример выполнения задания по многомерным |
|
|
динамическим массивам.......................................... |
532 |
|
10.5. Функции и указатели.......................................... |
534 |
|
10.6. Функции и массивы.................................................. |
537 |
|
10.7. Работа со структурами................................................. |
540 |
|
10.7.1. Варианты структур для выполнения работы.......... |
541 |
|
10.8. Списки и деревья......................................................... |
543 |
|
10.8.1. Списки............................................................... |
544 |
|
10.8.2. Деревья.................................................................... |
549 |
Приложение 1. Таблицы кодов ASCII.................................... |
553 |
|
Приложение 2. Константы предельных значений............... |
559 |
|
Приложение 3. Стандартная библиотека функций |
562 |
|
|
языка Си......................................................... |
|
ЛИТЕРАТУРА............................................................................... |
577 |
|
УКАЗАТЕЛЬ ОПЕРАЦИЙ И РАЗДЕЛИТЕЛЕЙ.................. |
578 |
|
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ................................................... |
580 |