Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Программирование на языке Си

..pdf
Скачиваний:
15
Добавлен:
12.11.2023
Размер:
17.16 Mб
Скачать

ОГЛАВЛЕНИЕ

ПРЕДИСЛОВИЕ.......................................................................

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)

 

Оглавление

595

Глава 2. ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ

 

НА ЯЗЫКЕ Си............................................................

63

2.1. Структура и компоненты простой программы....

63

Текст программы и препроцессор (63). Структура прог­

 

раммы (66). Функция форматированного вывбда (69).

 

Программы печати предельных констант (72). Примени­

 

мость вещественных данных (74). Выделение лексем из

 

текста программы (76)

 

2.2. Элементарные средства программирования........

78

Деление операторов языка Си на группы,(78). Метки и

 

пустой оператор (82). Оператор перехода (82). Програм­

 

ма оценки машинного нуля (83). Ввод данных (85). Вы­

 

числение объема цилиндра (87). Сумма членов ряда Фи­

 

боначчи (88)

 

2.3. Операторы цикла.................................................

90

Три формы операторов цикла (90). Приближенное зна­

 

чение экспоненты (95). Оператор break (96). Сумма от­

 

резка степенного ряда (97). Оператор continue (100).

 

Суммирование положительных чисел (100)

 

2.4. Массивы и вложение операторов цикла.................

Ю1

Массивы и переменные с индексами (101. Вычисление

 

среднего и дисперсии (102). Вложенные циклы (ЮЗ).

 

Упорядочение в одномерных массивах (105). Инициали­

 

зация массивов (108)

 

2.5. Функции.........................................................................

110

Определение функций (110). Функция для вычисления объема цилиндра (112). Функция для вычисления скаляр­ ного произведения векторов (113). Обращение к функции и ее прототип (114). Вычисление биномиального коэффи­ циента (117). Вычисление объема цилиндра (118). Вычи­ сление площади треугольника (119). Скалярное произве­ дение векторов (122). Диаметр множества точек (123)

2.6. Переключатели.........................................................

126

Глава 3. ПРЕПРОЦЕССОРНЫЕ СРЕДСТВА................ .

131

3.1. Стадии и команды црепроцессорной обработки.. 132

Стадии препроцессорной обработки (132). Директивы препроцессора(133)

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

Соседние файлы в папке книги