
- •Федеральное агентство по образованию Российской Федерации
- •Программирование
- •Часть I
- •Предисловие
- •1. Основные понятия алгоритмизации и программирования
- •1.1. Этапы решения задач на эвм
- •1. Постановка задачи:
- •2. Формализация (анализ и исследование задачи, модели, представление ее в виде уравнений, соотношений, ограничений и т.П.):
- •Понятие моделирования
- •Отладка программы
- •Тест и тестирование программы
- •1.2. Основы алгоритмизации
- •Свойства алгоритма
- •Критерии качества алгоритма
- •Способы описания алгоритмов
- •Структурограмма
- •Синтаксическая диаграмма (формулы Бэкуса-Наура)
- •Базовые алгоритмические конструкции
- •Примеры команды если
- •1.3. Теоретические основы программирования
- •Арифметические выражения
- •Арифметические выражения записываются по следующим правилам:
- •Лабораторная работа № 1 Запись арифметических выражений
- •Задание I
- •Задание II
- •Контрольные вопросы
- •2. Программирование алгоритмов линейной структуры
- •2.2. Основные понятия языка
- •2.3. Данные и способы их организации
- •Порядок объявления и инициализации переменных
- •2.4. Стандартные простые типы данных
- •2.5. Структура программы
- •2.6. Операторы
- •Оператор «выражение»
- •2.7. Организация ввода/вывода данных
- •Лабораторная работа № 2 Программирование алгоритмов линейной структуры
- •Задание I
- •Задание II
- •Задание III
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Пример выполнения лабораторной работы
- •Решение
- •Математическая модель
- •Алгоритм (блок - схема)
- •3. Программа
- •4. Результат работы программы
- •Решение
- •Математическая модель
- •4. Результат работы программы:
- •3. Операторы ветвления
- •3.1. Простые и составные условия
- •Операция &&
- •Операция ||
- •Операция !
- •3.2. Составной оператор
- •3.3. Условная операция (?:)
- •3.4. Условный оператор if
- •If (условие) оператор 1; else оператор 2;
- •If (условие) оператор;
- •3.5. Оператор switch
- •3.6. Оператор перехода goto
- •Лабораторная работа № 3 Программирование алгоритмов разветвляющейся структуры
- •Задание I
- •Задание II
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Пример выполнения лабораторной работы
- •Решение
- •1. Математическая модель
- •4. Результат работы программы
- •Решение
- •1. Математическая модель
- •4. Результат работы программы
- •4. Циклы
- •4.1. Оператор цикла с параметром (for)
- •4.2. Оператор цикла с предусловием (while)
- •4.3. Оператор цикла с постусловием (do while)
- •Отличие оператора цикла while от оператора цикла do..While
- •4.4. Вложенные циклы
- •Математическая модель
- •Лабораторная работа № 4 Программирование алгоритмов циклической структуры
- •Задание I
- •Задание II
- •Задание III
- •Контрольные вопросы
- •Пример выполнения лабораторной работы
- •Решение
- •1. Математическая модель
- •4. Результат работы программы
- •Решение
- •1. Математическая модель
- •4. Результат работы программы
- •5. Подпрограммы
- •5.1. Понятие подпрограммы
- •5.2. Формальные и фактические параметры
- •5.3. Локальные и глобальные переменные
- •5.4. Функции
- •Лабораторная работа №5 Использование функций для решения прикладных задач
- •Задание I
- •Задание II
- •Контрольные вопросы
- •Пример выполнения лабораторной работы
- •Решение
- •1. Математическая модель
- •3. Программа 4. Результат работы программы:
- •6. Итерация и рекурсия
- •6.1. Понятие итеративного процесса
- •6.2. Понятие рекурсии
- •Лабораторная работа №6 Программирование рекурсивных алгоритмов
- •Задание
- •Контрольные вопросы
- •Пример выполнения лабораторной работы
- •Решение
- •1. Математическая модель
- •2. Алгоритм
- •3. Программа
- •4. Результат работы программы
- •7. Одномерные массивы
- •7.1. Понятие структурированного типа данных
- •7.2. Понятие и описание типа массив
- •7.3. Одномерные массивы
- •7.4. Основные действия над элементами массивов
- •1. Инициализация массива: присвоение каждому элементу начального значения:
- •2. Вывод массива на экран:
- •3. Обработка массива
- •Лабораторная работа №7 Использование числовых одномерных массивов
- •Задание I
- •Задание II
- •Контрольные вопросы
- •Пример выполнения задания II лабораторной работы
- •Решение
- •Математическая модель
- •4. Результат работы программы:
- •8. Двумерные массивы
- •Лабораторная работа №8 Двумерные массивы
- •Задание
- •Контрольные вопросы
- •Пример выполнения лабораторной работы
- •Решение
- •Математическая модель
- •9. Алгоритмы решения задач внутренней сортировки и алгоритмы поиска информации
- •9.1. Сложность алгоритмов
- •9.2. Постановка задачи поиска
- •9.3. Последовательный (линейный) поиск
- •9.4. Бинарный поиск
- •9.5. Постановка задачи сортировки данных
- •9.6. Прямые и быстрые методы внутренней сортировки
- •9.7. Сортировка вставками
- •9.8. Сортировка с помощью прямого выбора
- •9.9. Сортировка с помощью прямого обмена
- •Лабораторная работа № 9 Задачи сортировки и поиска
- •Контрольные вопросы
- •10. Указатели и массивы
- •10.1. Указатели
- •10.2. Взаимосвязь между массивами и указателями
- •10.3. Порядок объявления динамических массивов
- •10.4. Передача массивов в качестве параметров функции
- •Лабораторная работа №10 Применение массивов и указателей для решения прикладных задач
- •Задание I
- •Задание II
- •Задание III
- •11. Особенности работы с функциями
- •11.1. Способы передачи параметров в функцию
- •11.2. Передача имен функций в качестве параметров
- •11.3. Перегрузка функций
- •Лабораторная работа № 11 Исследование способов работы с функциями
- •Задание I
- •Задание II
- •12. Строки как массив элементов типа char
- •Лабораторная работа № 12
- •Задание I
- •Изучение способов формирования строк в языке Си
- •Применение функций работы со строками для обработки символьных массивов
- •Задание II
- •13. Строки как специальный класс string
- •Лабораторная работа № 13 Исследование способов работы с функциями
- •Задание I
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Форма отчета
- •14. Структуры
- •14.1. Изучение порядка объявления и инициализации структур
- •14.2. Программирование с использованием структур
- •14.3. Использование функций для работы с производными типами данных
- •Лабораторная работа № 14 Применение структур для решения прикладных задач
- •Задание I
- •15. Файлы
- •15.1. Подход с использованием возможностей языка Си
- •Ifstream идентификатор_потока(имя_файла,ключи_потока);
- •Лабораторная работа № 15 Исследование методов доступа к файлам данных
- •Задание I
- •1. Работа с неструктурированными данными
- •2. Работа со структурированными данными
- •Пример выполнения лабораторной работы
- •Литература
- •Приложение 1 Порядок выполнения лабораторных работ
- •Приложение 2 Базовые функции
Федеральное агентство по образованию Российской Федерации
Ставропольский государственный университет
Е. В. Непретимова
Программирование
Часть I
Учебное пособие
Ставрополь
2014
Печатается по решению
редакционно-издательского совета
Ставропольского государственного
университета
Непретимова Е. В., Саманчук Л.Ф. Программирование: Учебн. пособие. Ч1 – Ставрополь: СГУ, 2006.- 128 с.
Пособие соответствует государственному образовательному стандарту дисциплины «Информатика» раздел «Программирование» специальности 010400 –физика, а также может быть использовано при преподавании дисциплины «Алгоритмизация и программирование» для студентов специальности 010100 - математика и дисциплины «Информатика» специальности 010500 - прикладная математика и информатика.
В учебном пособии изложены основы работы в среде программирования Паскаль, вводятся и иллюстрируются примерами управляющие операторы языка, типы данных, процедуры и функции. Уделено внимание типам данных, определяемым программистом: перечисляемый, интервальный типы данных, одномерные и двумерные массивы. Кроме того, рассматривается реализация рекурсивных алгоритмов и основных подпрограмм графического модуля GRAPH.TPU. Приводится большое количество задач для самостоятельного решения.
Предназначено для студентов физико-математических специальностей СГУ. Может быть использовано учителями информатики при обучении программированию учащихся старших классов.
Рецензенты: 1. Торопцев Е.Л., доктор экономических наук, профессор, зав. каф. автоматизации учетно-финансовых информационных систем ФГОУ ВПО Ставропольского государственного аграрного университета,
2. Копыткова Л.Б., канд. физ.-мат.наук, доцент, зав. каф. алгебры Ставропольского государственного университета
© Ставропольский государственный университет, 2006
Содержание
Предисловие 7
1. Основные понятия алгоритмизации и программирования 10
1.1. Этапы решения задач на ЭВМ 10
1.2. Основы алгоритмизации 13
1.3. Теоретические основы программирования 22
1.4. Правила записи в С++ арифметических выражений 23
Лабораторная работа № 1 Запись арифметических выражений 26
2. Программирование алгоритмов линейной структуры 30
2.1. Общая характеристика языка программирования С++ 30
2.2. Основные понятия языка 30
2.3. Данные и способы их организации 34
2.4. Стандартные простые типы данных 36
2.5. Структура программы 40
2.6. Операторы 43
2.7. Организация ввода/вывода данных 45
Лабораторная работа № 2 Программирование алгоритмов линейной структуры 46
3. Операторы ветвления 57
3.1. Простые и составные условия 57
3.2. Составной оператор 58
3.3. Условная операция (?:) 59
3.4. Условный оператор if 59
3.5. Оператор switch 62
3.6. Оператор перехода goto 63
Лабораторная работа № 3 Программирование алгоритмов разветвляющейся структуры 66
4. Циклы 76
4.1. Оператор цикла с параметром (for) 77
4.2. Оператор цикла с предусловием (while) 79
4.3. Оператор цикла с постусловием (do while) 81
4.4. Вложенные циклы 83
Лабораторная работа № 4 Программирование алгоритмов циклической структуры 86
5. Подпрограммы 97
5.1. Понятие подпрограммы 97
5.2. Формальные и фактические параметры 97
5.3. Локальные и глобальные переменные 98
5.4. Функции 101
Лабораторная работа №5 Использование функций для решения прикладных задач 105
6. Итерация и рекурсия 111
6.1. Понятие итеративного процесса 111
6.2. Понятие рекурсии 111
Лабораторная работа №6 Программирование рекурсивных алгоритмов 114
7. Одномерные массивы 122
7.1. Понятие структурированного типа данных 122
7.2. Понятие и описание типа массив 122
7.3. Одномерные массивы 124
7.4. Основные действия над элементами массивов 125
Лабораторная работа №7 Использование числовых одномерных массивов 129
8. Двумерные массивы 136
Лабораторная работа №8 Двумерные массивы 141
9. Алгоритмы решения задач внутренней сортировки и алгоритмы поиска информации 146
9.1. Сложность алгоритмов 146
9.2. Постановка задачи поиска 147
9.3. Последовательный (линейный) поиск 147
9.4. Бинарный поиск 148
9.5. Постановка задачи сортировки данных 148
9.6. Прямые и быстрые методы внутренней сортировки 149
9.7. Сортировка вставками 150
9.8. Сортировка с помощью прямого выбора 151
9.9. Сортировка с помощью прямого обмена 152
Лабораторная работа № 9 Задачи сортировки и поиска 154
10. Указатели и массивы 155
10.1. Указатели 155
10.2. Взаимосвязь между массивами и указателями 156
10.3. Порядок объявления динамических массивов 159
10.4. Передача массивов в качестве параметров функции 160
Лабораторная работа №10 Применение массивов и указателей для решения прикладных задач 163
11. Особенности работы с функциями 170
11.1. Способы передачи параметров в функцию 170
11.2. Передача имен функций в качестве параметров 172
11.3. Перегрузка функций 173
Лабораторная работа № 11 Исследование способов работы с функциями 175
12. Строки как массив элементов типа char 181
Лабораторная работа № 12 186
13. Строки как специальный класс string 190
Лабораторная работа № 13 Исследование способов работы с функциями 193
Контрольные вопросы 195
Форма отчета 196
14. Структуры 197
14.1. Изучение порядка объявления и инициализации структур 197
14.2. Программирование с использованием структур 199
14.3. Использование функций для работы с производными типами данных 200
Лабораторная работа № 14 Применение структур для решения прикладных задач 202
15. Файлы 203
15.1. Подход с использованием возможностей языка Си 203
15.2. Подход с использованием возможностей языка С++ 206
Лабораторная работа № 15 Исследование методов доступа к файлам данных 208
Литература 210
Приложение 1 Порядок выполнения лабораторных работ 211
Приложение 2 Базовые функции 212