
- •1. ОБЩИЕ СВЕДЕНИЯ ОБ АЛГОРИТМАХ
- •1.1. Свойства алгоритма
- •1.2. Способы записи алгоритма
- •1.3. Блок-схемы
- •2. БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ КОНСТРУКЦИИ
- •2.1. Следование
- •2.2. Ветвление
- •2.3. Цикл
- •2.4. Примеры алгоритмов
- •Алгоритм №1
- •Алгоритм №2
- •Алгоритм №3
- •3. ВВЕДЕНИЕ В C++
- •3.1. Основные лексемы языка
- •3.1.1. Идентификаторы
- •3.1.2. Ключевые слова
- •3.1.3. Знаки операций
- •3.1.4. Константы
- •3.1.5. Комментарии
- •3.2. Типы данных
- •3.3. Выражения и операции
- •3.3.1. Арифметические операции
- •3.3.2. Операции сравнения
- •3.3.3. Логические операции
- •3.3.4. Побитовые логические операции
- •3.3.5. Операции сдвига
- •3.3.6. Приоритет операций
- •4. СТРУКТУРА ПРОГРАММЫ НА ЯЗЫКЕ C++
- •4.1. Функции
- •4.1.1. Функция main
- •4.2. Объявление переменных
- •4.3. Директивы препроцессора
- •5. ОПЕРАТОРЫ ЯЗЫКА C++
- •5.1. Оператор присваивания
- •5.2. Операторы передачи управления
- •5.2.1. Вызов функции
- •5.2.2. Возврат значения функции
- •5.2.3. Оператор безусловного перехода
- •5.3. Составной оператор
- •5.4. Условные операторы
- •5.4.1. Оператор if
- •5.4.2. Оператор switch
- •5.5. Операторы цикла
- •5.5.1. Цикл while с предусловием
- •5.5.2. Цикл do-while с постусловием
- •5.5.3. Арифметический цикл for
- •6. ЛАБОРАТОРНАЯ РАБОТА №1. Ветвящиеся вычислительные процессы
- •6.1. Цель работы
- •6.2. Постановка задачи
- •6.2.1. Варианты заданий
- •Вариант №1
- •Вариант №2
- •Вариант №3
- •Вариант №4
- •Вариант №5
- •Вариант №6
- •Вариант №7
- •Вариант №8
- •Вариант №9
- •Вариант №10
- •Вариант №11
- •Вариант №12
- •Вариант №13
- •Вариант №14
- •Вариант №15
- •6.3. Требования к оформлению отчета
- •6.4. Рекомендации по выполнению работы
- •6.4.1. Разработка алгоритма
- •6.4.2. Подготовка тестовых данных
- •6.4.3. Реализация операций ввода-вывода
- •6.4.4. Выполнение математических расчетов
- •7. ЛАБОРАТОРНАЯ РАБОТА №2. Циклические вычислительные процессы
- •7.1. Цель работы
- •7.2. Постановка задачи
- •7.2.1 Варианты заданий
- •7.3. Требования к оформлению отчета
- •8. КОНТРОЛЬНЫЕ ВОПРОСЫ
- •9. ЛИТЕРАТУРА

|
Наименование |
|
Обозначение |
|
Функция |
|
|
|
|||
|
|
|
|
Символ отображает выполнение |
|
|
|
|
|
||
|
Предопределен |
|
|
процесса, который определен в |
|
|
|
другом месте программы (обычно |
|||
|
ный процесс |
|
|
||
|
|
используется для обозначения |
|||
|
|
|
|
||
|
|
|
|
вызова функций). |
|
|
Данные |
|
|
Используется для обозначения |
|
|
|
|
|||
|
|
операций ввода-вывода. |
|||
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
Символ обозначает выход в часть |
|
|
|
|
|
||
|
|
|
|
схемы и вход из другой части этой |
|
|
Соединитель |
|
|
схемы. Используется для обрыва |
|
|
|
линии и продолжения ее в другом |
|||
|
|
|
|
||
|
|
|
|
месте (пример: разделение блок- |
|
|
|
|
|
схемы, не помещающейся на листе). |
|
|
|
|
|
Используется для более подробного |
|
|
|
|
|
||
|
Комментарий |
|
|
описания шага, процесса или |
|
|
|
|
|
группы процессов |
Перечень геометрические фигур, обозначающих функциональные блоки, их размеры, а также общие правила построения блок-схем определены государственным стандартом (ГОСТ 19.701-90. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения).
Основные элементы блок-схемы представлены в таблице 1.
2. БАЗОВЫЕ АЛГОРИТМИЧЕСКИЕ КОНСТРУКЦИИ
Различают три типа алгоритмических структур (конструкций): Следование, Ветвление, Цикл.
2.1. Следование
Структура «следование» используется для обозначения последовательно выполняющихся операций. Алгоритмы, в которых «следование» является единственной конструкцией, называют линейными.
7

Линейные алгоритмы предназначены для решения простейших задач, в которых не предусмотрен выбор направления хода программы или циклическое повторение операций.
Шаблон блок-схемы алгоритма, построенного с использованием структуры «следование» представлен на рисунке 1.
2.2. Ветвление
Рисунок 1. Структура «следование»
Структура «ветвление» (или «условие») обеспечивает выбор одного из альтернативных путей работы алгоритма в зависимости от результата проверки некоторого условия.
Для представления структуры «ветвление» на блоксхемах используется элемент «решение», внутри которого записывается условие. От элемента решение отходят две ветви, описывающие действия, которые необходимо выполнить в случае положительного и отрицательного результатов проверки условия.
На рисунке 2 представлен шаблон блок-схемы структуры «ветвление». Если условие, обозначенное в элементе «решение», окажется верным, исполнитель выполнит действие 1, указанное на ветви с пометкой «да». В противном случае, исполнитель перейдет к действию 2, размещающемуся на ветви с пометкой «нет».
8

Рисунок 2. Структура «ветвление»: Если-То-Иначе Рисунок 3. Структура
«ветвление»: Альтернативные пути выполнения алгоритма
Обратите внимание, что ветви, исходящие из элемента «решение», обязательно сходятся. В независимости, от того, какой из альтернативных путей был выбран исполнителем, после завершения структуры «ветвление» выполнение
Рисунок 4. Структура «ветвление»: Если-То
программы продолжится (рисунок 3).
В частном случае, один из альтернативных путей структуры «ветвление» может не содержать никаких действий (рисунок 4).
2.3. Цикл
Структура «цикл» обеспечивает многократное выполнение некоторого действия или совокупности действий.
В основе цикла лежит проверка некоторого условия. Пока условие, заданное для цикла, истинно, исполнитель будет вновь и вновь выполнять обозначенное в цикле действие. Следует отметить, что данное действие должно оказывать влияние на переменные, используемые в
9

условии цикла. В противном случае, цикл никогда не завершится в силу того, что условие всегда будет истинным.
Действия, выполняемые внутри цикла, принято называть телом цикла. Этап очередного выполнения действия в цикле принято называть итерацией цикла.
Проверка условия может осуществляться до или после выполнения тела цикла. В зависимости от момента проверки условия циклы классифицируются на две категории: циклы с предусловием и циклы с постусловием.
Рисунок 5. Цикл с предусловием |
Рисунок 6. Цикл с |
|
постусловием |
Вцикле с предусловием проверка условия выполняется
впервую очередь (рисунок 5). Только в том случае, если условие верно, программа перейдет к выполнению действия, обозначенного в теле цикла. После выполнения действия, программа снова проверит условие, и если оно по-прежнему верно, программа вновь выполнит заданное действие. Если условие больше не выполняется, цикл завершается, и программа переходит к следующим инструкциям.
Вцикле с постусловием проверка условия осуществляется после выполнения тела цикла (Рисунок 6). Программа вначале выполнит действие, и лишь затем
10

проверит заданное условие. Если условие верно, действие |
|||||
будет выполняться повторно, если нет – цикл завершится. |
|||||
Таким образом, тело цикла с постусловием, будет |
|||||
выполнено как минимум один раз. Тело цикла с |
|||||
предусловием может не быть выполнено ни одного раза (в |
|||||
том случае, если условие цикла изначально не верно). |
|
||||
В терминологии алгоритмических структур очень часто |
|||||
используются понятие «арифметического цикла». |
|
||||
Под арифметическим циклом подразумевается цикл с |
|||||
предусловием, количество итераций которого заранее |
|||||
известно или может быть вычислено. В арифметическом |
|||||
цикле обычно используется переменная-счетчик, которая |
|||||
определяет номер текущей итерации. На каждой итерации |
|||||
цикла |
значение |
счетчика |
увеличивается. |
Цикл |
|
выполняется до тех пор, пока счетчик не достигнет |
|||||
заданного максимального значения. |
|
||||
Пример арифметического цикла показан на рисунке 7. |
|||||
Здесь |
в |
качестве |
счетчика |
|
|
используется |
переменная i, для |
|
|
||
которой |
установлено |
начальное |
|
|
|
значение 1. В теле цикла |
|
|
|||
значение |
|
переменной |
|
|
|
увеличивается на единицу. Цикл |
|
|
|||
выполняется |
пока |
значение |
|
|
|
переменной i меньше или равно |
|
|
|||
заданного |
максимального |
|
|
||
значения |
N. |
Таким |
образом, |
|
|
легко почитать, что данный цикл |
|
|
|||
будет выполнен за N итераций. |
Рисунок 7. |
|
|||
|
|
|
|
Арифметический цикл |
11