Характеристики

ISBN/ISSN 5-94157-555-Х (БХВ-Петербург)
Год издания 2004
Автор Романов Е.Л.
Вид издания уч.НГТУ
Кафедра ВТ
Факультет АВТФ

Практический курс программирования на Си/Си++ для начинающих. Содержит более 200 стандартных программных решений и более 300 тестовых заданий по 22 темам: от простейших вычислительных задач до двоичных файлов и наследования. Отдельная глава посвящена навыкам «чтения» и анализа готовых программ, «словарному запасу» программиста - стандартным программным контекстам и их использованию в традиционной технологии структурного программирования.
Рекомендуется студентам направления «Информатика и вычислительная техника», а также всем самостоятельно изучающим язык Си и технологию программирования на нем. Книга будет полезна при постановке 2-3-семестрового курса программирования, включающего лабораторный практикум.
Издание подготовлено совместно с издательством БХВ-Питер.

Практический курс программирования на Си/Си++ для начинающих. Содержит более 200 стандартных программных решений и более 300 тестовых заданий по 22 темам: от простейших вычислительных задач до двоичных файлов и наследования. Отдельная глава посвящена навыкам «чтения» и анализа готовых программ, «словарному запасу» программиста - стандартным программным контекстам и их использованию в традиционной технологии структурного программирования.
Рекомендуется студентам направления «Информатика и вычислительная техника», а также всем самостоятельно изучающим язык Си и технологию программирования на нем. Книга будет полезна при постановке 2-3-семестрового курса программирования, включающего лабораторный практикум.
Издание подготовлено совместно с издательством БХВ-Питер.




Содержание

13. Стандартные программные контексты
СПК - счетчик (контрольные вопросы)
СПК - накопитель (контрольные вопросы)
СПК - минимум/максимум (контрольные вопросы)
СПК - признак (контрольные вопросы)
СПК - три стакана (контрольные вопросы)
Включение в односвязный список с сохранением порядка
СПК - текущий, предыдущий (контрольные вопросы)
Удаление слова с заданным номером
СПК - сдвиг в массиве (контрольные вопросы)
"Переворот" строки
Слияние последовательностей
Разделение последовательностей
Поиск подстроки в строке
Сортировка вставками
Сортировка списка вставками
СПК - точка остановки цикла (контрольные вопросы)
СПК - условия существования и всеобщности (контрольные вопросы)
СПК - логические операции (контрольные вопросы)
Удаление и вставка символа в строке

14. Процесс проектирования программы
Сортировка погружением

15. Структурное программирование
Сортировка выбором

16. Модульное программирование
Функция проверки, является ли число простым
Супер простое число разрядности n
Обменная сортировка
Сортировка Шелла
"Грязная" программа поиска цепочки одинаковых символов
Сворачивание цепочек одинаковых символов

17. Логическое и историческое в программе
Пословный просмотр строки
Удаление комментариев из строки
Сортировка простой вставкой

21. Арифметические задачи
"Счастливые" билеты
Простые множители числа
Простые числа
Умножение дробей
Добавление к дате заданного числа дней
Поиск числа, подобного 512
Пример выполнения тестового задания
Тестовые задания

22. Итерационные циклы
Корень функции методом середины интервала
Корень функции методом последовательных приближений
Степенной полином
Вычисление функции sin через степенной ряд
Пример выполнения тестового задания
Тестовые задания

23. Последовательность, стек, очередь
Стек
Циклическая очередь
Тестовые задания

24. Символы,строки,текст
Удаление лишних пробелов
Поиск слова максимальной длины
Поиск слова максимальной длины
Сортировка слов по длине
Преобразование целого char[] - int
Преобразование целого int - char[]
Сравнение строк по весам кодов
Сравнение строк по таблице символов
Поиск самой внутренней скобки
Поиск первой пары скобок
'Выкусывание' вложенных фрагментов
Пример выполнения тестового задания
Тестовые задания

25. Сортировка и поиск
'Дилетантская' сортировка
Проверка упорядоченности массива
Двоичный поиск значения
Двоичный поиск места вставки
Сортировка выбором
'Законспирированная' сортировка выбором
Простая вставка
Вставка погружением
Обменная сортировка ('пузырек')
Обменная сортировка с границей
Сортировка подсчетом (неполная)
'Быстрая' сортировка разделением
Однократное слияние
Циклическое слияние
Тестовые задания

26. Указатели
Результат функции - указатель на минимальный элемент
Функция возвращает ссылку на минимальный элемент массива
Функция возвращает указатель на минимальный элемент массива
Симметричная перестановка символов строки
Поиск в строке заданного фрагмента
Поиск всех вхождений фрагмента в строке
Поиск слова максимальной длины
Сортировка слов в строке в порядке убывания
Контрольные вопросы
Пример выполнения тестового задания
Тестовые задания

27. Структурированные типы
Массив структур
Тестовые задания
Контрольные вопросы: определить значение выражений

28. Типы данных, переменные, функции
Контрольные вопросы: контекстный тип данных объекта
Контрольные вопросы: абстрактный тип данных
Контрольные вопросы: определение, объявление, вызов функции
Контрольные вопросы: результат цепочки операций

31. Указатели и управление памятью
Упаковка массива с нулевыми элементами
Сумма произвольного количества параметров по счетчику
Сумма произвольного количества ненулевых параметров
Функция с параметром форматной строкой (printf)
Распределение long по байтам
Пример выполнения тестового задания
Тестовые задания: данные, определенные форматом
Пример выполнения тестового задания
Тестовые задания: функции со списком параметров

32. Динамические переменные и массивы
Динамический массив заданной размерности
Динамический массив простых множителей
Динамический массив произвольной длины
Пример выполнения тестового задания
Тестовые задания

33. Указатели на функции и динамическое связывание
Вызов функции по имени через массив указателей
Вычисление определенного интеграла
Итераторы foreach,firstthat, поиска и сортировки
Тестовые задания
Головоломка: кто кого и где вызывает ?
Головоломка: что бы это значило ?

34. Рекурсия
Генерация повторяющихся фрагментов в строке
Задача о восьми ферзях
Лабиринт
Обход конем шахматной доски
Линейный кроссворд
Линейный кроссворд
Поиск минимального пути (значение)
Линейный кроссворд минимальной длины
Поиск минимального пути (порядок обхода)
Синтаксический анализ. Рекурсивынй спуск
Нисходящий разбор с возвратами
Тестовые задания

35. Массивы указателей
Сортировка массива и массива указателей (МУ)
Создание динамического массива указателей (ДМУ)
Матрица произвольной размерности на основе МУ
Создание "безразмерного" ДМУ на строки (realloc)
Создание "безразмерного" ДМУ на строки (new/delete)
Отсортированный МУ на слова в строке
Пример выполнения тестового задания
Тестовые задания

36. Линейные списки
Движение по односвязному списку
Включение с начало списка (способы передачи заголовка)
Включение в упорядоченный односвязный список
Удаление по логическому номеру
Включение в упорядоченный циклический список
Представление очереди односвязным списком
Сортировка односвязного списка вставками
Включение в упорядоченный двусвязный список
Пример выполнения тестового задания
Тестовые задания
Головоломка

37. Деревья
Линейная рекурсия в списке
Ветвь минимальной длины
Включение на заданную глубину
Поиск строки длиной больше заданной
Поиск максимального значения
Обход с нумерацией
Извлечение по номеру (полный обход)
Извлечение по номеру (счетчики вершин)
Обход, поиск, включение в двоичное дерево
Обход двоичного дерева с нумерацией вершин
Рекурсивный обход графа
Включение в дерево по логическому номеру
Двоичное дерево в динамическом массиве
Пример выполнения тестового задания
Тестовые задания

38. Иерархические структуры данных
Двухуровневый массив указателей
Пример выполнения тестового задания
Тестовые задания

39. Биты, байты, слова
Формирование маски заданном диапазоне
Подсчет количества единичных битов
Определение разрядности числа
Упаковка 5-битным кодом
Поразрядная сортировка разделением
Упаковка целых различной размерности
Поразрядная распределяющая сортировка
Сложение целых произвольной разрядности
Инвертирование целых произвольной разрядности
Сдвиг целых произвольной разрядности
Умножение целых произвольной разрядности
Инкремент числа во внешней форме представления
Сложение чисел во внешней форме представления
Контрольные вопросы
Контрольные вопросы
Пример выполнения тестового задания
Тестовые задания

310. Двоичные файлы
Генерация повторяющихся вложенных фрагментов
Постраничный просмотр файла
Файл записей фиксированной длины
Записи переменной длины
Таблица произвольной размерности
Создание массива указателей в двоичном файле
Создание массива указателей в двоичном файле (*)
Загрузка массива указателей из двоичного файла
Создание дерева в двоичном файле "хвостом вперед"
Создание дерева в двоичном файле "головой вперед"
Загрузка дерева из двоичного файла
Поиск в двоичном дереве по образцу
Добавление в двоичное дерево
Массив указателей в двоичном файле: загрузка строки
Массив указателей в двоичном файле: загрузка и вставка строки(*)
Односвязный список в файле
Кэширование строк: массив указателей
Пример выполнения тестового задания
Тестовые задания

41. Программирование объектов. Конструкторы
Структурированный тип - дата
Конструктор копирования для класса строк
Класс "разделяемых" строк
Матрица с динамическим массивом указателей на строки
Односвязный список всех объектов класса строк

42. Программирование методов
Переопределение операций в классе - дата
Класс - строки
Тестовые задания

4.3. Шаблоны. Классы структур данных
Шаблон - динамический массив указателей
Шаблон с параметром-константой
Класс структуры данных - массив указателей
Класс структуры данных - циклический список
Класс структуры данных - двоичное дерево
Шаблон - односвязный список элементов

4.4. Наследование
Комплексный пример
Тестовые задания

45. Взаимодействие объектов в программе
Система объектов, управляемых сообщениями

Тесты по Си++
Переопределение операторов. Класс целых чисел
Переопределение операторов. Класс строк
Конструктор копирования
Статические члены класса
Наследование
Управление доступом
Виртуальные функции
Шаблоны
Исключения



Данные подготавливаются.

Вернуться к списку