Новосибирск : Изд-во НГТУ , 2014г. 644 стр.
учебное пособие.
Программирование на языке C (Си) для 2-3 семестрового учебного курса, материал содержит около 250 программных заготовок на Си/Си++ и около 500 тестовых примеров («Вопросы без ответов»).
Может быть использован для:
1. получения навыков практического программирования «с нуля».
2. изучения особенностей программирования на Си в специфических и.
архитектурно-ориентированных областях.
3. освоения стандартных технологических приемов и решений, наиболее часто.
используемых в программах на уровне модуля.
Основной акцент сделан не столько на языке, сколько на практике программирования.
Read me first или Аннотация.
Введение.
1. Язык программирования и программа.
1.1. Структура программы и языка программирования.
1.2. Внутреннее представление программы.
1.3. Описание данных. Типы данных и переменные.
1.4. Обработка данных. Операции. Выражения.
1.5. Алгоритм. Операторы.
1.6. Функции. Структура программы.
1.7. Трансляция, компоновка, исполнение. Связывание.
1.8. Если все сразу.
2. Анализ программ.
2.1. Зачем читать чужие программы ?
2.2. "Исторический" и логический анализ программы.
2.3. Очевидность,убеждение, доказательство.
2.4. Стандартные программные контексты.
2.5. О вещах, видимых и невидимых невооруженным глазом.
3. Проектирование программ.
3.1. Этапы проектирования программы.
3.2. «Историческое» проектирование.
3.3. Структурное программирование.
3.4. Модульное программирование.
3.5. Неправильное программирование.
3.6. Примеры проектирования программ.
3.7. Инвариант цикла.
3.8. Прописные истины теории алгоритмов.
4.Традиционные задачи на массивах.
4.1. Трудоемкость программ.
4.2. Арифметические задачи.
4.3. Итерационные циклы и приближенные вычисления.
4.4. Символы. Строки. Текст.
4.5. Последовательные текстовые файлы.
4.6. Сортировка и поиск.
5. Модульное проектирование алгоритма и данных.
5.1. Модульность, иерархия, абстрагирование.
5.2. Указатели и ссылки.
5.3. Структурированный тип.
5.4. Иерархия типов данных и функций.
5.5. Типы данных и переменные.
5.6. Динамические переменные и массивы.
5.7. Модульная организация программы.
6. Линейные структуры данных.
6.1. Переменные и структуры данных.
6.2. Массивы указателей.
6.3. Линейные списки.
7. Алгоритмы. Рекурсия.
7.1. Цикл, итерация, рекурсия.
7.2. Рекурсивные алгоритмы сортировки.
7.3. Технология проектирования рекурсивных алгоритмов.
7.4. Рекурсия и поисковые задачи.
7.5. Рекурсия, стек, очередь.
7.6. Рекурсия и синтаксический анализ.
7.7 Эффективность алгоритмов.
8. Деревья.
8.1. Деревья и рекурсивные алгоритмы.
8.2. Рекурсивный обход дерева.
8.3. Линейные структуры данных на деревьях.
8.4. Деревья, упорядоченные в глубину.
8.5. Двоичное дерево.
8.6. Графы.
8.7. Эффективность хранения и поиска данных.
9. Машинно-зависимое программирование.
9.1. Биты. Байты. Машинные слова.
9.2. Преобразование указателей и работа с памятью на низком уровне.
9.3. Указатель на функцию. Динамическое связывание.
9.4. Двоичные и текстовые файлы.
9.5. Структуры данных в двоичном файле.
10. Эпизодическое объектно-ориентированное программирование.
10.1. Объекты и классы.
10.2. Программирование методов.
10.3. Переопределение операций.
10.4. Класс – тип данных, определенный программистом.
10.5. Шаблоны. Классы структур данных.
11. Тотальное объектно-ориентированное программирование.
11.1. Что такое тотальное ООП?
11.2. Иерархия объектов. Наследование.
11.3. Средства времени выполнения и исключения.
11.4. Полиморфизм.
11.5. Взаимодействие объектов в программе.
11.6. Финал-апофеоз. Пример проектирования.
Эпилог. Беседа о главном программисте.
Измерение производительности программ.
Программные заготовки (Папка Programms).