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

Учебное пособие.

Подбельский В. , Фомин С. «Программирование на языке Си» Финансы и статистика, 2004 год, 600 стр., ISBN 5-279-02180-6; (3,52 мб. djvu)

Представленное учебное пособие предназначено для изучения основ программирования на стандартном языке Си (C). Подается материал по синтаксису и семантике конструкций языка. Показаны примеры практического использования при решении стандартных задач программирования. Изложены методика и принципы корректного, структурированного программирования на языке Си (C).

Демонстрационные примеры, иллюстрирующие базовые конструкции и возможности языка, написаны максимально структурировано, понятно и доступно для читателя. Возможности современных компиляторов языка Си таковы, что они позволяют генерировать весьма эффективный код по тексту хорошо структурированной программы без специальных ухищрений программиста, направленных на повышение быстродействия или незначительную экономию памяти.

За основу учебника взят курс лекций, прочитанных в МИЭМе на факультете прикладной математики, автоматики и вычислительной техники и факультете повышения квалификации инженеров. Материал пособия соответствует учебной программе дисциплины «Алгоритмические языки и программирование». Изучение указанной дисциплины, в частности языка Си (C), служит основой для курсов по математическому обеспечению ПЭВМ и сетей, по операционным системам, построению компиляторов и системному программированию. Учебное пособие подойдет как для ВУЗа, так и для самостоятельного изучения. Для закрепления материала учебника, необходимо обязательно самостоятельно выполнять примеры и задачи практикума.

Оглавление книги

Содержание.

Глава 1. Базовые понятия языка 9
1.1. Алфавит, идентификаторы, служебные слова 10
Алфавит 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. Разделители Квадратные скобки 44
Круглые скобки 44
Фигурные скобки 45
Запятая 46
Точка с запятой 47
Двоеточие 48
Многоточие 48
Звездочка 48
Обозначение присваивания 49
Признак препроцессорных средств 49
1.6. Выражения и приведение арифметических типов 50
Отношения и логические выражения 52
Присваивание выражение и оператор 53
Приведение типов 55
Правила преобразования типов 56
Выражения с поразрядными операциями 59
Условное выражение 61

Глава 2. Введение в программирование на языке Си (C) 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. Массивы и вложение операторов цикла 101
Массивы и переменные с индексами 101
Вычисление среднего и дисперсии 102
Вложенные циклы 103
Упорядочение в одномерных массивах 105
Инициализация массивов 108
2.5. Функции 110
Определение функций 110
Функция для вычисления объема цилиндра 112
Функция для вычисления скалярного произведения векторов 113
Обращение к функции и ее прототип 114
Вычисление биномиального коэффициента 117
Вычисление объема цилиндра 118
Вычисление площади треугольника 119
Скалярное произведение векторов 122
Диаметр множества точек 123
2.6. Переключатели 126

Глава 3. Препроцессорные средства 131
3.1. Стадии и команды препроцессорной обработки 132
Стадии препроцессорной обработки 132
Директивы препроцессора 133

Глава 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

Глава 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
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

Раздел II. Выполнение программ в разных операционных системах 441

Глава 9. Подготовка и выполнение программ 443
9.1. Подготовка программ в операционной системе Unix 447
9.1.1. Команда make 451
9.1.2. Библиотеки объектных модулей 456
9.2. Сборка и выполнение программ в интегрированной среде Turbo C 2.0 463
9.2.1. Состав системы программирования Turbo C 2.0.463
9.2.2. Экран интегрированной среды Turbo C 2.0 464
9.2.3. Система меню среды Turbo C 2.0 466
9.2.4. Настройка среды Turbo C 470
9.3. Сборка и выполнение программ в интегрированной среде Borland C++3.1 479
9.3.1. Состав системы программирования Borland C++ 3.1 479
9.3.2. Экран интегрированной среды 480
9.3.3. Система меню интегрированной среды 481
9.3.4. Настройка интегрированной среды Borland C++ 3.1 483

Раздел III. Практикум по программированию на языке Си (C) 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

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

Скачать техническую литературу бесплатно3,52 мб. djvu

Похожая литература