440 страниц
Пособие Основы алгоритмизации и программирования. Язык СИ. 2-е изд. Демидов составлено на базе утилиты дисциплины "Основы алгоритмизации и программирования". В качестве базового языка выбран Си, потому как он заполучил последующее развитие в языках C++ и Java и широко применяется фирмами-разработчиками программного обеспечения. Для отработки практических знаний приведено большое число примеров, рассмотрены варианты и способы программирования той и одной же задачи. Книга предназначена для студентов высших учебных заведений технических специальностей, может оказаться полезна начинающим программистам, и всем желающим увеличить свое мастерство.
Содержание книги Основы алгоритмизации и программирования. Язык СИ. 2-е изд. Демидов
Оглавление Предисловие 8
1. Системы счисления. Перевод из одной системы счисления в другую. Операции над числами в двоичной и шестнадцатеричной системах счисления
1.1. Двоичная система счисления 11
1.2. Восьмеричная система счисления 11
1.3. Шестнадцатеричная система счисления 12
1.4. Перевод чисел из одной системы счисления в другую 13
1.5. Представление информации 16
2. Основные понятия
2.1. Программные модули 21
2.2. Препроцессор 22
2.3. Система программирования 23
3. Язык Си. Элементы языка Си
3.1. Алфавит языка 25
3.2. Идентификаторы 26
3.3. Ключевые слова 26
3.4. Типы данных 27
3.4.1. Переменные 27
3.4.2. Константы 35
4. Структура простой программы
4.1. Комментарии 39
4.2. Операции присваивания, арифметические, логические, битовые, условная, sizeof 41
4.2.1. Арифметические операции 43
4.2.2. Операции поразрядной арифметики 45
4.2.3. Логические операции 45
4.2.4. Операции отношения 46
4.2.5. Операции присваивания 47
4.2.6. Условная операция 48
4.2.7. Операция sizeof 49
4.3. Выражения. Приоритет операций. Последовательность выполнения операций 49
5. Функции ввода-вывода. Форматы преобразования данных
6. Понятие пустого и составного операторов. Операторы перехода ...
6.1. Оператор разветвления (if) 64
6.2. Конструкция if— else 65
6.3. Вложенные else — if 66
6.4. Оператор выбора switch 68
7. Операторы цикла
7.1. Оператор while 72
7.2. Оператор do … while 75
7.3. Оператор for 78
7.4. Выбор оператора цикла 81
7.5. Операция «запятая» 83
7.6. Вложенные циклы 84
7.7. Операторы break и continue 86
8. Массивы
8.1. Одномерные массивы 90
8.2. Примеры программ с использованием массивов 92
8.3. Многомерные массивы 99
8.4. Примеры программ с использованием матриц 101
8.5. Строки 107
8.6. Примеры программ с использованием строк 107
9. Указатели
9.1. Понятие указателя 112
9.2. Операции с указателями 112
9.3. Особый тип указателя — void* 115
9.4. Указатель на char 115
9.5. Использование указателей для получения результатов из функции 119
9.6. Связь между указателями и массивами 119
9.7. Использование указателей при работе с многомерными массивами ... 125
9.8. Указатель на указатель 127
9.9. Работа с видеобуфером 129
9.10. Примеры программ с использованием указателей 131
10. Функции
10.2. Прототип функции 141
10.3. Определение функции 142
10.4. Активизация функции 144
10.5. Связь по данным между функциями 145
10.6. Системные стек 149
10.7. Обработка в функции массивов данных 149
10.8. Примеры программ с использованием функций 151
10.9. Сортировки 166
10.9.1. Метод пузырька, или сортировка простым обменом 167
10.9.2. Сортировка выбором наименьшего элемента 168
10.9.3. Метод Шелла 168
10.9.4. Метод Хоара 170
10.9.5. Сортировка с помощью бинарного дерева 172
11. Классы памяти. Рекурсивные функции
11.1. Классы памяти 177
11.2. Рекурсивные функции 182
11.3. Примеры программ с использованием рекурсии 188
12. Указатели на функции. Массивы указателей на функции
12.1. Реализация методов нахождения корней уравнения 202
12.1.1. Метод половинного деления 202
12.1.2. Метод простой итерации 203
12.1.3. Метод хорд 203
12.1.4. Метод касательных (метод Ньютона) 205
12.2. Примеры программ с использованием указателей на функции 207
12.3. Указатели типа near и far 209
12.4. Сложные объявления языка 212
13. Функции с переменным числом параметров
13.1. Примеры программ с использованием функций с переменным числом параметров 225
14. Командная строка. Параметры функции main()
14.1. Примеры программ с использованием параметров командной строки 247
15. Структуры
15.1. Объявления шаблонов структур 261
15.2. Определение структур-переменных 262
15.3. Доступ к компонентам структуры 263
15.4. Инициализация структур 267
15.5. Копирование структур-переменных 267
15.6. Структуры как параметры функций 268
15.7. Размещение структурных переменных в памяти 270
15.8. Примеры программ с использованием структур 271
16. Поля битов в структурах
16.1. Размещение полей битов в памяти 285
16.2. Доступ к полям битов. Инициализация полей битов. Недопустимые действия 287
16.3. Примеры программ с использованием битовых полей 288
17. Объединения
17.1. Объявление объединения 293
17.2. Инициализация объединения 297
17.3. Указатель на объединение 297
17.4. Обращение к элементам (полям) объединения 298
17.5. Размещение объединений в памяти 300
17.6. Примеры программ с использованием объединений 301
18. Динамическое использование памяти. Библиотечные функции ...
18.1. Списки, Стеки, очереди, кольца 314
18.2. Деревья. Основные понятия 324
18.2.1. Бинарные деревья 325
18.3. Построение обратной польской записи 336
18.4. Нахождение кратчайшего пути на графе 340
18.4.1. Алгоритм Дейкстры 341
18.4.2. Алгоритм Форда 342
18.5. Обработка разреженных массивов. Хэширование 346
18.5.1. Создание телефонного справочника 348
18.6. Примеры программ с использованием динамической памяти 352
19. Файлы 387
19.1. Понятие файла и файловой системы 387
19.2. Текстовые и бинарные файлы 387
19.3. Работа с файлами средствами библиотеки языка Си 388
19.3.1. Открытие и закрытие файла 388
19.3.2. Чтение/запись в файл 390
19.3.3. Позиционирование в файле 392
19.3.4. Кратко о других функциях библиотеки языка Си для работы с файлами 394
19.4. Примеры программ с использованием файлов 395
Литература 439