Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Программирование C++ 2014n.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
979.32 Кб
Скачать

Министерство образования и науки Российской Федерации

Федеральное государственное автономное образовательное учреждение

высшего профессионального образования

«Североавказский федеральный университет»

Непретимова Е. В., Корнеев П.К., Ионисян А.С.

алгоритмизация и программирование

Учебное пособие

Ставрополь

2014

Печатается по решению

редакционно-издательского совета

Северо-Кавказского федерального

университета

Непретимова Е. В., Корнеев П.К., Ионисян А.С. Алгоритмизация и программирование: Учебное пособие. – Ставрополь: Издательство Северо-Кавказского федерального университета, 2014.– 183 с.

Пособие соответствует государственному образовательному стандарту дисциплины «Информатика» раздел «Программирование» специальности 010400 –физика, а также может быть использовано при преподавании дисциплины «Алгоритмизация и программирование» для студентов специальности 010100 - математика и дисциплины «Информатика» специальности 010500 - прикладная математика и информатика.

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

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

Содержание

Предисловие 6

1. Основные понятия алгоритмизации и программирования 8

1.1. Этапы решения задач на ЭВМ 8

1.2. Основы алгоритмизации 10

1.3. Теоретические основы программирования 18

1.4. Правила записи в С++ арифметических выражений 19

Лабораторная работа № 1 Запись арифметических выражений 21

Контрольные вопросы 23

2. Программирование алгоритмов линейной структуры 25

2.1. Общая характеристика языка программирования С++ 25

2.2. Основные понятия языка 25

2.3. Данные и способы их организации 28

2.4. Стандартные простые типы данных 30

2.5. Структура программы 33

2.6. Операторы 36

2.7. Организация ввода/вывода данных 38

Лабораторная работа № 2 Программирование алгоритмов линейной структуры 46

Контрольные вопросы 52

Пример выполнения лабораторной работы 54

3. Операторы ветвления 57

3.1. Простые и составные условия 57

3.2. Составной оператор 58

3.3. Условная операция (?:) 59

3.4. Условный оператор if 59

3.5. Оператор switch 62

3.6. Оператор перехода goto 63

Лабораторная работа № 3 Программирование алгоритмов разветвляющейся структуры 65

Контрольные вопросы 71

Пример выполнения лабораторной работы 71

4. Циклы 75

4.1. Оператор цикла с параметром (for) 76

4.2. Оператор цикла с предусловием (while) 77

4.3. Оператор цикла с постусловием (do while) 78

4.4. Вложенные циклы 79

Лабораторная работа № 4 Программирование алгоритмов циклической структуры 81

Контрольные вопросы 86

Пример выполнения лабораторной работы 86

5. Подпрограммы 92

5.1. Понятие подпрограммы 92

5.2. Формальные и фактические параметры 92

5.3. Локальные и глобальные переменные 93

5.4. Функции 95

Лабораторная работа №5 Использование функций для решения прикладных задач 98

Контрольные вопросы 100

Пример выполнения лабораторной работы 100

6. Итерация и рекурсия 103

6.1. Понятие итеративного процесса 103

6.2. Понятие рекурсии 103

Лабораторная работа №6 Программирование рекурсивных алгоритмов 105

Контрольные вопросы 109

Пример выполнения лабораторной работы 109

7. Одномерные массивы 112

7.1. Понятие структурированного типа данных 112

7.2. Понятие и описание типа массив 112

7.3. Одномерные массивы 113

7.4. Основные действия над элементами массивов 115

Лабораторная работа №7 Использование числовых одномерных массивов 119

Контрольные вопросы 122

Пример выполнения задания II лабораторной работы 122

8. Двумерные массивы 124

Лабораторная работа №8 Двумерные массивы 128

Контрольные вопросы 131

Пример выполнения лабораторной работы 131

9. Алгоритмы решения задач внутренней сортировки и алгоритмы поиска информации 133

9.1. Сложность алгоритмов 133

9.2. Постановка задачи поиска 134

9.3. Последовательный (линейный) поиск 134

9.4. Бинарный поиск 135

9.5. Постановка задачи сортировки данных 135

9.6. Прямые и быстрые методы внутренней сортировки 136

9.7. Сортировка вставками 137

9.8. Сортировка с помощью прямого выбора 138

9.9. Сортировка с помощью прямого обмена 139

Лабораторная работа № 9 Задачи сортировки и поиска 141

Контрольные вопросы 141

10. Указатели и массивы 142

10.1. Понятие статической и динамической переменной 142

10.2. Указатели 142

10.3. Взаимосвязь между массивами и указателями 143

10.4. Порядок объявления динамических массивов 146

10.5. Передача массивов в качестве параметров функции 146

Лабораторная работа №10 Применение массивов и указателей для решения прикладных задач 149

Контрольные вопросы 154

Пример выполнения задания III лабораторной работы 154

11. Особенности работы с функциями 159

11.1. Способы передачи параметров в функцию 159

11.2. Передача имен функций в качестве параметров 160

11.3. Перегрузка функций 161

Лабораторная работа № 11 Исследование способов работы с функциями 164

Контрольные вопросы 168

12. Строки как массив элементов типа char 169

12.1. Способы представления строк в СИ; реализация некоторых типовых операций над строками 169

12.1. Основные функции Си для работы со строками 171

Лабораторная работа № 12 Обработка символьных массивов 173

Контрольные вопросы 175

Пример выполнения задания II лабораторной работы 176

13. Строки как объект специального класса string 179

13.1. Описание строк в С++ и типовые операции над ними 179

13.2. Основные функции класса string для работы со строками 180

182

Контрольные вопросы 186

Пример выполнения лабораторной работы 186

14. Структуры 187

14.1. Порядок объявления и инициализации структур 187

14.2. Программирование с использованием структур 188

14.3. Использование функций для работы с производными типами данных 189

Лабораторная работа № 14 Применение структур для решения прикладных задач 191

Контрольные вопросы 195

Пример выполнения задания I лабораторной работы 195

15. Файлы 199

15.1. Подход с использованием возможностей языка Си 199

15.2. Подход с использованием возможностей языка С++ 202

Лабораторная работа № 15 Исследование методов доступа к файлам данных 204

Контрольные вопросы 207

Лабораторная работа № 16 Исследование связанных списков данных 208

Литература 212

Приложение 1 Порядок выполнения лабораторных работ 213

Приложение 2 Базовые функции 214