
- •Программирование и основы алгоритмизации Практикум
- •Введение
- •Лабораторная работа № 1 "простейшие вычисления"
- •Краткие теоретические сведения
- •Структура программы.
- •Константы и переменные
- •Операции
- •Выражения
- •Ввод и вывод
- •Функция вывода
- •Функция ввода
- •Постановка задачи
- •Варианты.
- •Методические указания
- •Постановка задачи
- •Варианты Задание 1.
- •Задание 2.
- •Лабораторная работа № 3 "вычисление функций их сумм и произведений при помощи циклических алгоритмов"
- •Краткие теоретические сведения Операторы циклов.
- •Цикл с предусловием
- •Цикл с постусловием
- •Цикл с параметром
- •Операторы передачи управления
- •Постановка задачи
- •Варианты Задание 1.
- •Задание 2.
- •Методические указания
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа № 4 "работа с одномерными массивами"
- •Краткие теоретические сведения.
- •Обработка одномерных массивов.
- •Формирование псевдодинамических массивов.
- •Использование датчика случайных чисел для формирования массива.
- •Перебор массива по два элемента.
- •Варианты
- •Методические указания
- •Двумерные массивы
- •Одномерные и двумерные массивы
- •«Многомерные массивы»
- •Определение количества элементов массива в программе.
- •Постановка задачи
- •Варианты
- •Дополнительные задания
- •«Динамические массивы»
- •Формирование динамических массивов с использованием операций new и delete.
- •Постановка задачи
- •Порядок выполнения работы
- •Варианты
- •«Работа со строками»
- •Постановка задачи
- •Варианты
- •«Структуры»
- •Инициализация структур
- •Присваивание структур
- •Доступ к элементам структур
- •Указатели на структуры
- •Постановка задачи.
- •Варианты
- •«Полиморфизм в объектно-ориентированном программировании. Перегрузка функций»
- •Постановка задачи
- •Варианты
- •«Функции с переменным числом параметров»
- •Постановка задачи
- •Варианты
- •Доступность компонентов класса.
- •Указатель this
- •Конструктор
- •Конструктор копирования
- •Деструктор
- •Указатели на компоненты-функции
- •Порядок выполнения работы.
- •Методические указания.
- •Варианты
- •Содержание отчета.
- •Контрольные вопросы
- •Лабораторная работа № 12
- •Краткие теоретические сведения.
- •Бинарные и унарные операции
- •Предопределенные значения операций
- •Операции и определяемые пользователем типы
- •Определяемое преобразование типа
- •Конструкторы
- •Перегрузка операций new и delete
- •Перегрузка операции приведения типа
- •Перегрузка операции вызова функции
- •Перегрузка операции индексирования
- •Порядок выполнения работы.
- •Варианты задания.
- •Методические указания. Пример решения задачи
- •Содержание отчета.
- •Контрольные вопросы
- •Лабораторная работа № 13 «наследование и виртуальные функции»
- •Краткие теоретические сведения.
- •Указатель this
- •Наследование
- •Конструкторы и деструкторы производных классов
- •Виртуальные функции
- •Абстрактные классы
- •Порядок выполнения работы.
- •Варианты заданий.
- •Методические указания.
- •Содержание отчета.
- •Контрольные вопросы.
- •Самостоятельная работа № 1 «шаблоны функций и классов»
- •Краткие теоретические сведения.
- •Основные свойства параметров шаблона функции
- •Шаблон класса
- •Основные свойства шаблонов классов
- •Компонентные функции
- •Порядок выполнения работы.
- •Варианты заданий.
- •Содержание отчета.
- •Контрольные вопросы
- •Самостоятельная работа № 2 «потоковые классы»
- •Краткие теоретические сведения.
- •Пример шаблона потокового класса.
- •Базовые потоки ввода-вывода
- •Форматирование
- •Манипуляторы
- •Определение пользовательских манипуляторов
- •Файловый ввод-вывод
- •Порядок выполнения работы.
- •Методические указания
- •Распечатка исходных данных и результатов выполнения программы.
- •Литература
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Технологический институт
Федерального государственного образовательного учреждения высшего профессионального образования
«Южный федеральный университет»
Е.Ю.КОСЕНКО
Е.С. Никул
Программирование и основы алгоритмизации Практикум
Таганрог 2008
УДК 681.3
Е.Ю.Косенко, Е.С. Никул. Программирование и основы алгоритмизации. Практикум: Учебное поcобие. - Таганрог: Изд-во Технологического института ЮФУ, 2008 - 242 с.
ISBN
Изложены основные сведения, необходимые при изучении дисциплины «Программирование и основы алгоритмизации». Рассматриваются основные материалы, необходимые для проведения практических и лабораторных работ по программированию на языке программирования Си и С++. Монография предназначена для студентов и аспирантов высших учебных заведений.
Табл. 11. Ил. 19. Библиогр.: 13 назв.
Рецензенты:
доктор технических наук, профессор, заведующий кафедрой информатики ТГПИ Ромм Я.Е.
доктор технических наук, профессор, заведующий кафедрой Автоматики и Телемеханики Ростовского Государственного Университета Путей Сообщения, Ковалев С.М.
ТТИ ЮФУ, 2008
Косенко Е.Ю., Никул Е.С., 2008
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 9
Лабораторная работа № 1 10
Краткие теоретические сведения 10
Структура программы. 10
Константы и переменные 13
Операции 13
Выражения 17
Ввод и вывод 17
Функция вывода 17
Функция ввода 18
Ввод и вывод в Си++ 18
Постановка задачи 19
Варианты. 20
Методические указания 23
Содержание отчета 23
Контрольные вопросы 23
Лабораторная работа № 2 25
Краткие теоретические сведения 25
Составные операторы. 25
Операторы выбора. 26
Постановка задачи 27
Варианты 27
Задание 1. 28
Задание 2. 31
Пример выполнения задания 39
Алгоритм решения задачи в виде блок-схемы 40
Алгоритм решения задачи в виде псевдокода 41
Программа решения задачи 41
Результаты работы программы 41
Содержание отчета 42
Контрольные вопросы 42
Лабораторная работа № 3 43
Краткие теоретические сведения 43
Операторы циклов. 43
Цикл с предусловием 44
Цикл с постусловием 44
Цикл с параметром 44
Операторы передачи управления 45
Постановка задачи 48
Варианты 48
Задание 1. 48
Задание 2. 51
Методические указания 54
Указания по вычисление очередного слагаемого по рекуррентной формуле 58
Методические указания по выполнению контрольного расчета 59
Содержание отчета 64
Контрольные вопросы 64
Лабораторная работа № 4 66
Краткие теоретические сведения. 66
Обработка одномерных массивов. 67
Формирование псевдодинамических массивов. 68
Использование датчика случайных чисел для формирования массива. 69
Перебор массива по два элемента. 70
Варианты 70
Методические указания 76
Пример выполнения лабораторной работы 77
Дополнительные задания 78
Одномерные массивы 78
Двумерные массивы 85
Одномерные и двумерные массивы 90
Содержание отчета 97
Контрольные вопросы 97
Лабораторная работа № 5 98
Краткие теоретические сведения 98
Определение количества элементов массива в программе. 100
Постановка задачи 100
Варианты 101
Дополнительные задания 104
Содержание отчета 106
Контрольные вопросы. 106
Лабораторная работа № 6 107
Краткие теоретические сведения 107
Формирование динамических массивов с использованием операций new и delete. 109
Постановка задачи 111
Порядок выполнения работы 111
Варианты 111
Содержание отчета 115
Контрольные вопросы. 115
Лабораторная работа № 7 116
Краткие теоретические сведения 116
Постановка задачи 122
Варианты 122
Содержание отчета 125
Контрольные вопросы 125
Лабораторная работа № 8 126
Краткое теоритическое введение 126
Понятие структуры. 126
Инициализация структур 127
Присваивание структур 128
Доступ к элементам структур 128
Указатели на структуры 129
Постановка задачи. 129
Варианты 129
Содержание отчета 139
Контрольные вопросы. 140
Лабораторная работа № 9 141
Краткое теоретическое введение 141
Постановка задачи 144
Варианты 144
Порядок выполнения работы. 148
Содержание отчета 148
Контрольные вопросы 148
Лабораторная работа № 10 149
Краткие теоретические сведения 149
Постановка задачи 150
Варианты 150
Содержание отчета 156
Контрольные вопросы 156
Лабораторная работа № 11 157
Краткие теоретические сведения. 157
Понятие класса. 157
Доступность компонентов класса. 161
Указатель this 163
Конструктор 163
Конструктор копирования 166
Деструктор 168
Указатели на компоненты-функции 169
Порядок выполнения работы. 169
Методические указания. 170
Варианты 172
Содержание отчета. 177
Контрольные вопросы 177
Лабораторная работа № 12 179
Краткие теоретические сведения. 179
Бинарные и унарные операции 183
Предопределенные значения операций 185
Операции и определяемые пользователем типы 186
Определяемое преобразование типа 187
Конструкторы 188
Перегрузка операций new и delete 189
Перегрузка операции приведения типа 191
Перегрузка операции вызова функции 191
Перегрузка операции индексирования 192
Порядок выполнения работы. 192
Варианты задания. 193
Методические указания. 196
Содержание отчета. 197
Контрольные вопросы 197
Лабораторная работа № 13 198
Краткие теоретические сведения. 198
Указатель this 200
Наследование 200
Конструкторы и деструкторы производных классов 202
Виртуальные функции 203
Абстрактные классы 204
Порядок выполнения работы. 207
Варианты заданий. 208
Методические указания. 209
Содержание отчета. 209
Контрольные вопросы. 210
Самостоятельная работа № 1 211
Краткие теоретические сведения. 211
Основные свойства параметров шаблона функции 211
Шаблон класса 212
Основные свойства шаблонов классов 213
Компонентные функции 215
Порядок выполнения работы. 215
Варианты заданий. 216
Содержание отчета. 218
Контрольные вопросы 218
Самостоятельная работа № 2 220
Краткие теоретические сведения. 220
Пример шаблона потокового класса. 221
Потоковые классы в С++ 221
Схема иерархии 222
Базовые потоки ввода-вывода 222
Форматирование 226
Манипуляторы 227
Определение пользовательских манипуляторов 227
Файловый ввод-вывод 230
Порядок выполнения работы. 232
Методические указания 233
Содержание отчета. 234
Контрольные вопросы. 234
Самостоятельная работа № 3 235
Краткое теоретическое введение. 235
Постановка задачи. 237
Варианты заданий 237
Содержание отчета 238
Пример выполнения задания 238
Распечатка исходных данных и результатов выполнения программы. 239
Литература 241