Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛЕКЦИИ Программирование и основы алгоритмизации...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.5 Mб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ

РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ

БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ВЯТСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

В.В. Чуркин технологии программирования

(конспект лекций)

Учебно-методическое пособие

Киров

2014

УДК 004.42(07)

Чуркин В.В.

Технологии программирования (конспект лекций): учебно-методическое пособие для студентов направления 230400 «Информационные системы и технологии», профиль «Информационные системы и технологии», всех форм обучения / В. В. Чуркин. – Киров: ФГБОУ ВПО «ВятГУ», 2014. – 121 с.

В издании излагаются основные разделы дисциплины «Технологии программирования».

Содержание

стр

Введение..............................................................................................................7

Указатели. Операции над указателями ……………………………...………8

Операции адресации и разыменования………………………………..8

Арифметические операции……………………………………………..8

Присваивание указателей………………………………………………9

Сравнение указателей…………………………………………………..9

Смещение и индексирование указателей……………………………...9

Функции……………………………………………………………………....10

Объявление функции (прототип)……………………………………..10

Параметры функции…………………………………………………...10

Встроенные функции………………………………………………….12

Функции с параметрами со значениями по умолчанию…………….12

Параметры функции main……………………………………………..12

Рекурсивные функции…………………………………………………13

Перегрузка функций…………………………………………………..14

Шаблоны функций…………………………………………………….15

Указатели на функции………………………………………………...15

Объявление и инициализация массива указателей на функции……15

Передача в функцию указателя на функцию………………………..16

Указатель на функцию как возвращаемое функцией значение……16

Выделение и освобождение динамической памяти…………………..……17

Символьные и строковые данные…………………………………………..20

Символьные константы……………………………………………….20

Строковые константы (строки)……………………………………….20

Символьные переменные……………………………………………..20

Строки-переменные…………………………………………………...21

Специальные функции ввода-вывода строк…………………………21

Ввод-вывод символов в языке С++…………………………………..22

Ввод-вывод строк в языке С++……………………………………….23

Стандартная библиотека функций языка С………………………………..24

Функции и макросы проверки и преобразования символов……….24

Функции для работы со строками……………………………………24

Файлы…………………………………………………………………………25

Потоковый ввод-вывод в языке С. Функции

верхнего уровня файлового ввода-вывода…………………………..25

Открытие и закрытие потока………………………………………….26

Текстовый режим……………………………………………………...27

Бинарный режим………………………………………………………27

Режимы с “+”………………………………………..…………………27

Ошибки…………………………………………………………………27

Закрытие файла……………………………………………..…………27

Функции в языке С для работы с файлами…………………………..28

Двоичный (бинарный) режим обмена с файлами………………...…28

Строковый обмен с файлами………………………………………….28

Форматный обмен с файлами…………………………………………29

Позиционирование в потоке………………………………...………...30

Ввод-вывод нижнего уровня…………………………...……………..32

Открытие/закрытие файла……………………...……………………..32

Чтение и запись данных……………………………………………….33

Произвольный доступ к файлу……………………………..………...34

Файлы в С++……………………………..……………………………35

Режимы открытия………………………………………..……………35

Позиционирование файлов……………………………………………36

Сортировки числовых массивов. Принцип наименьших

привилегий……………………………………………………...…………….37

Обменная сортировка (SwapSort)…………………………………….37

Сортировка выбором (SelectSort)……………………………………..40

Пузырьковая сортировка (BubbleSort)………………………..……...41

Сортировка вставками (InsertSort)………………………………..….44

Быстрая сортировка(QuickSort)………………………………………45

Поиск в числовых массивах…………………………………………………47

Структуры…………………………………………………………………….49

Форматы определения структурных типов……………………...…..49

Форматы определения объектов структурных типов……………….50

Операции над объектами структурного типа………………………..50

Доступ к элементам объектов структурного типа…………………..50

Структуры, массивы и указатели……………………………………..51

Объединения (смеси)……………………………………..………………….51

Тип-перечисление……………………………………………………………52

Оператор switch (переключатель)…………………………………….53

Динамические структуры данных…………………………………..……….54

Стек…………………………………………………..………………...54

Реализация стека с помощью массива………………………………..57

Очередь……………………...………………………………………….58

Очередь приоритетов………………………………………………….60

Реализация очереди с помощью массива………………………...…..60

Линейные списки………………………………………………………61

Функции для работы с двунаправленным линейным

списком……………………………………………...………………….62

Реализация списка с помощью массива…………………………...…68

Поиск хэшированием………………………………...………………..69

Бинарные деревья………………..……………………………………71

Бинарное упорядоченное дерево (дерево поиска)………………….71

Идеально сбалансированное дерево…………………………………72

Операции с бинарным упорядоченным деревом……………………72

Реализация дерева с помощью массивов……………………………79

Вывод динамических структур в файл и

чтение их из файла………………………………………………….79

Сбалансированные (AVL) деревья……………………………………..…80

Алгоритм AVL- вставки…………………………………………….82

Повороты……………………………………………………………..84

Классы и объектно-ориертированное программирование……………….87

Объявление класса……………………………………………………87

Определение класса (реализация класса)……………………………88

Использование класса (драйвер класса)……………………………..88

Доступ к элементам класса……………………………………………89

Отделение интерфейса от реализации………………………………..90

Обслуживающие функции-утилиты………………………………....91

Конструкторы………………………………………………………….91

Windows-программы в Builder………………………………………..92

Структура головного файла проекта……………………………...….93

Структура заголовочного файла модуля формы (“Unit1.h”)……….94

Структура файла реализации модуля формы (“Unit1.cpp”)……..…95

Области видимости (или области действия) переменных

в блоках. Время жизни переменных………………………………….96

Доступ к свойствам и функциям-элементам (методам)

объектов, переменным и функциям в приложении,

содержащем одну форму………………..……………………………97

Доступ к свойствам и функциям-элементам (методам)

объектов, переменным и функциям в приложении,

содержащем несколько форм…………………………………………97

Константные объекты и константные функции-элементы………....98

Перегрузка операций………………………………………………….99

Перегрузка унарных операций………………………………………100

Перегрузка бинарных операций…………………………………….101

Перегрузка операции присваивания……………………………….101

Перегрузка операции приведения типа……………………………102

Перегрузка операции индексирования……………………………..102

Композиция классов………………………………………….……..103

Дружественные функции класса……………………………………104

Дружественный класс………………………………………………..105

Использование указателя this………………………………………..105

Статические элементы класса…………………………..…………..107

Шаблон класса для статически и динамически

создаваемых объектов……………………………………………….109

Конструктор 1……………………………………..…………………110

Деструктор……………………………………………………………110

Вызовы конструкторов и деструкторов…………………………….111

Перегруженная операция присваивания…………………………....112

Конструктор 2 (конструктор копирования,

конструктор копии)…………………………………………………..113

Наследование. Иерархия классов………………….………………115

Ключи доступа………………………………………………………116

Пример простого наследования (точка, круг)……………………..117

Правила наследования функций-элементов. Вызовы

конструкторов и деструкторов в иерархии………………………..118

Виртуальные функции и полиморфизм……………………………119

Правила определения и наследования виртуальных функций……120

Позднее (динамическое) связывание……………………………….120

Полиморфизм. Абстрактные и конкретные классы……………….121

Учебная литература (основная)……………………………………………122

Учебная литература (для углубленного изучения)……………………….122

Учебно-методические издания………………………….…………………122