- •Сведения об авторах
- •1. Знакомство с языком С++
- •1.1 Первая программа на С++
- •1.2 Среда программирования Qt Creator
- •2. Общие сведения о языке С++
- •2.1 Алфавит языка
- •2.2 Данные
- •2.2.1 Символьный тип
- •2.2.2 Целочисленный тип
- •2.2.3 Вещественный тип
- •2.2.4 Логический тип
- •2.2.5 Тип void
- •2.3 Константы
- •2.4 Структурированные типы данных
- •2.5 Указатели
- •2.6 Операции и выражения
- •2.6.1 Операции присваивания
- •2.6.2 Арифметические операции
- •2.6.3 Логические операции
- •2.6.4 Операции отношения
- •2.6.5 Условная операция
- •2.6.6 Операция преобразования типа
- •2.6.7 Операция определения размера
- •2.6.8 Операции с указателями
- •2.7 Стандартные функции
- •2.8 Структура программы
- •2.9 Ввод и вывод данных
- •2.9.1 Функции ввода - вывода
- •2.10 Задачи для самостоятельного решения
- •2.10.2 Операции целочисленной арифметики.
- •2.10.3 Встроенные математические функции
- •3. Операторы управления
- •3.1 Основные конструкции алгоритма
- •3.2 Составной оператор
- •3.3 Условные операторы
- •3.3.1 Условный оператор
- •3.3.2 Оператор варианта
- •3.4 Операторы цикла
- •3.4.1 Оператор цикла с предусловием
- •3.4.2 Оператор цикла с постусловием
- •3.4.3 Оператор цикла с параметром
- •3.4.4 Операторы передачи управления
- •3.5 Решение задач с использованием циклов
- •3.6 Задачи для самостоятельного решения
- •3.6.1 Разветвляющийся процесс. Вычисление значения функции.
- •3.6.2 Разветвляющийся процесс. Попадание точки в плоскость.
- •3.6.3 Разветвляющийся процесс. Пересечение линий и решение уравнений.
- •3.6.4 Циклический процесс. Вычисление значений функции
- •3.6.6 Циклический процесс. Последовательности произвольных чисел
- •3.6.7 Циклический процесс. Работа с цифрами в числе
- •3.6.8 Вложенные циклы
- •4. Использование функций при программировании на С++
- •4.1 Общие сведения о функциях. Локальные и глобальные переменные
- •4.2 Передача параметров в функцию
- •4.3 Возврат результата с помощью оператора return
- •4.4 Решение задач с использованием функций
- •4.5 Рекурсивные функции
- •4.6 Перегрузка функций
- •4.7 Шаблоны функций
- •4.8 Область видимости переменных в функциях
- •4.9 Функция main(). Параметры командной строки
- •4.10 Задачи для самостоятельного решения
- •4.10.1 Применение функций при работе с последовательностями чисел
- •4.10.2 Применение функций для вычислений в различных системах счисления
- •4.10.3 Применение функций для решения нелинейных уравнений
- •5. Массивы
- •5.1 Статические массивы в С(С++)
- •5.1.1 Описание статических массивов
- •5.1.2 Основные операции над массивами
- •5.2 Динамические массивы в С(С++)
- •5.2.1 Функция malloc
- •5.2.2 Функция calloc
- •5.2.3 Функция realloc
- •5.2.4 Функция free
- •5.2.5 Операторы new и delete
- •5.3 Основные алгоритмы обработки массивов
- •5.3.2 Вычисление суммы элементов массива
- •5.3.3 Вычисление произведения элементов массива
- •5.3.4 Поиск максимального элемента в массиве и его номера
- •5.3.5 Удаление элемента из массива
- •5.3.6 Сортировка элементов в массиве
- •5.3.6.1 Сортировка методом «пузырька»
- •5.3.6.2 Сортировка выбором
- •5.3.6.3 Сортировка вставкой
- •5.4 Указатели на функции
- •5.5 Совместное использование динамических массивов, указателей, функций в сложных задачах обработки массивов
- •5.6.1 Основные операции при работе с массивами
- •5.6.2 Применение функций для обработки массивов.
- •5.6.3 Работа с группами элементов в массиве
- •5.6.4 Сортировка элементов массива
- •6. Статические и динамические матрицы
- •6.1 Статические матрицы С(С++)
- •6.2 Динамические матрицы
- •6.2.1 Использование указателей для работы с динамическими матрицами
- •6.2.2 Использование двойных указателей для работы с динамическими матрицами
- •6.3 Обработка матриц в С(С++)
- •6.4 Решение некоторых задач линейной алгебры
- •6.5 Задачи для самостоятельного решения
- •6.5.1 Основные операции при работе с матрицами
- •6.5.2 Работа со строками и столбцами матрицы
- •6.5.3 Решение задач линейной алгебры
- •7. Организация ввода-вывода в C++
- •7.1.2 Использование манипуляторов форматирования
- •7.2 Работа текстовыми файлами в C++
- •7.2.1 Запись информации в текстовый файл
- •7.2.2 Чтение информации из текстового файла
- •7.3 Обработка двоичных файлов
- •8. Строки в языке С++
- •8.1 Общие сведения о строках в С++
- •8.2 Операции над строками
- •8.3 Тип данных string
- •8.4 Задачи для самостоятельного решения
- •9. Структуры в языке С++
- •9.1 Общие сведения о структурах
- •9.2 Библиотеки для работы с комплексными числами
- •9.3 Задачи для самостоятельного решения
- •9.3.1 Структуры. Операции над комплексными числами
- •9.3.2 Работа с библиотекой комплексных чисел
Алексеев Е.Р., Чеснокова О.В. Самоучитель по программированию на C/C++. |
42 |
3. Операторы управления
В этой главе описаны основные операторы языка C++: условный оператор if, оператор выбора switch, операторы цикла while, do…while и for. Изложена ме-
тодика составления алгоритмов с помощью блок-схем. Приводится большое количество примеров составления программ различной сложности.
3.1Основные конструкции алгоритма
При разработке простейших программ несложно перейти от словесного описания к написанию программы. Однако большинство реально разрабатываемых программ довольно сложные и их словесное описание может занять не одну страницу. Поэтому, как правило, созданию программы предшествует разработка алгоритма15. Алгоритм это четкое описание последовательности действий, которые необходимо выполнить, для того чтобы при соответствующих исходных данных получить требуемый результат. Одним из способов представления алгоритма является блок-схема. При составлении блоксхемы все этапы решения задачи изображаются с помощью различных геометрических фигур. Эти фигуры называют блоками и, как правило, сопровождают надписями. Последовательность выполнения этапов указывают при помощи стрелок, соединяющих эти блоки. Типичные этапы решения задачи изображаются следующими геометрическими фигурами:
•блок начала-конца (рис. 3.1). Надпись внутри блока: «начало» («конец»);
•блок ввода-вывода данных (рис. 3.2). Надпись внутри блока: ввод (вывод или печать) и список вводимых (выводимых) переменных;
•блок решения или арифметический (рис. 3.3). Внутри блока записывается действие, вычислительная операция или группа операций;
•условный блок (рис. 3.4). Логическое условие записывается внутри блока. В результате проверки условия осуществляется выбор одного из возможных путей (ветвей) вычислительного процесса.
Рис. 3.1. |
|
|
|
Блок начала- |
Рис. 3.2. Блок |
Рис. 3.3. |
|
конца |
ввода-вывода |
Арифметичес |
Рис. 3.4. Условный |
алгоритма |
данных |
кий блок |
блок |
Рассмотренные блоки позволяют описать три основные конструкции алгоритма: линейный процесс, разветвляющийся процесс и циклический процесс.
Линейный процесс это конструкция, представляющая собой последовательное выполнение двух или более операторов (рис. 3.5). Разветвляющийся процесс задает выполнение одного или другого оператора в зависимости от выполнения условия (рис. 3.6). Циклический процесс задает многократное выполнение оператора или группы операторов (рис. 3.7).
15 От algorithmi, algorismus, первоначально латинская транслитерация имени математика аль-Хорезми.