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

100

Структурное программирование

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

Часть I. Структурное программирование

Автор: доцент Шустова л.И.

Часть I. Основы языка Си++ 3

Понятие системы программирования 3

Типы и назначение файлов 3

Краткая характеристика языка С++ 5

Основные средства препроцессора языка С++ 5

Директива #include 6

Директива #define 6

Директива условной генерации 7

Структура С++ программы 7

Основы ввода/вывода 8

Вывод данных 9

Ввод данных 10

Правила вычисления выражений в С++. Преобразования типов. 11

Определение и использование функций 12

Описание массива 14

Многомерные массивы 15

Массивы символов 15

Понятие указателя в С. Адресная арифметика 15

Часть II. Структуры данных 16

Уровни представления информации 16

Абстрактные структуры данных 17

Определение 17

Базовые структуры данных 17

Внутренние структуры данных 20

Векторы 21

Списки 22

Сети 24

Отображение абстрактных структур данных на внутренние 25

Строки 25

Стеки 36

Очереди 39

Деревья 45

Таблицы 47

Классификация таблиц 47

Просматриваемые таблицы 51

Упорядоченные таблицы 60

Таблицы произвольного доступа 65

Перемешанные таблицы 66

Деревья поиска 75

Бинарное дерево 75

Многоходовые деревья 84

B-дерево 85

В+ дерево 92

Часть III. Методы сортировки 97

Введение 97

Классификация методов внутренней сортировки 98

Сравнительные сортировки 98

Обменная сортировка (погружением) 98

Сортировка вставками 98

Сортировка просеиванием 99

Сортировка Шелла 99

Быстрая сортировка 100

Распределительные сортировки 100

Сортировка поразрядным группированием 100

Сортировка вычислением адреса 100

  1. Основы языка Си++

    1. Понятие системы программирования

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

Любая задача, решаемая с использованием ЭВМ, проходит ряд очевидных этапов. Сначала текст программы записывается в файлы (один или несколько) с использованием соответствующих редакторов, возможно, являющихся частью системы программирования, как это имеет место в BorlandC++ илиVisualC++. В дальнейшем мы будем говорить о системе программирования C++, но с ориентацией на структурное программирование. Подготовленный файл (файлы) обрабатываются компилятором языка. Важно выделить в компиляторе два этапа обработки исходного текста: сначала текст обрабатываетсяпрепроцессоромязыка, который находит в тексте собственные директивы (директивы препроцессора) и сразу же выполняет их (препроцессор языка построен по принципу интерпретатора). В результате получается текст на исходном языке, не содержащий ни одной директивы препроцессора (“чистый” С++ текст), который непосредственно компилируется, в результате чего создаетсяобъектный модуль. Даже если исходный файл не содержит ни одной директивы препроцессора, препроцессор языка С++ будет работать.

Если исходная программа состоит из нескольких файлов, каждый файл компилируется независимо от других файлов; в результате получаем несколько файлов – объектных модулей. Полученные объектные модули поступают на вход компоновщика, который объединяет все эти файлы, а кроме того, еще и объектные модули из стандартной библиотеки, в единый исполняемый модуль, готовый к выполнению на ЭВМ.

На каждом этапе обработки (препроцессор, компилятор и компоновщик) могут быть обнаружены свои ошибки; некорректно использованные директивы препроцессора могут привести к синтаксическим ошибкам в С++ программе, которых, на первый взгляд, в программе нет. Если компиляция в целом закончена без ошибок, могут быть обнаружены ошибки в структуре программы (это не синтаксические ошибки!) на этапе компоновки.

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