- •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. ЛИТЕРАТУРА
++c; // префиксный инкремент c++; // постфиксный инкремент
Префиксная операция выполняется до того, как значение переменной будет использовано в выражение, а постфиксная – после того. Разница между префиксной и постфиксной формой показана в таблице 13.
Таблица 13. Префиксная и постфиксная форма операций инкремента и декремента
Инструкция С |
Последовательность действий |
x = c++; |
x = c; |
|
с = c + 1; |
x = ++c; |
c = c + 1; |
|
x = c; |
x = c--; |
x = c; |
|
с = c - 1; |
x = --c; |
с = c - 1; |
|
x = c; |
5.2. Операторы передачи управления
5.2.1. Вызов функции
Оператор вызова функции передает управление заданной функции. Оператор имеет следующий синтаксис:
имя_функции(параметр1, параметр2, ...);
После завершения работы функции, выполнение программы продолжается с оператора, следующего за оператором вызова функции.
Оператор вызова функции может использоваться в виде самостоятельной инструкции:
function1();
function2(1,2,3);
function3(a,b,c);
В случае если функция возвращает какое-либо значение, оператор вызова функции может использоваться в выражениях:
a = function4(a,b) + function5(c,d,1,2);
29
5.2.2. Возврат значения функции
Возврат управления и значения функции осуществляется при помощи оператора return;
Для функций типа void, не возвращающих определенного значения, оператор return применяется без параметров:
void function1()
{
//...
return;
}
Для остальных функций в операторе return указывается возвращаемое значение. Возвращаемое значение должно соответствовать типу данных функции:
int function2()
{
//...
return 10;
}
5.2.3. Оператор безусловного перехода
Оператор безусловного перехода – оператор goto –
позволяет передать управление заданной инструкции программы внутри функции. Для использования оператора goto необходимо определить метки. Метка – это идентификатор, связанный с некоторым оператором, которому планируется передавать управление.
// ...
goto label1;
// ...
label1: a = 5;
// ...
Следует отметить, что использование оператора goto считается «дурным тоном» в программировании. Любой алгоритм можно реализовать без применения оператора безусловного перехода.
30