- •1. Краткие теоретические сведения
- •1.1. Алгоритмизация вычислительного процесса
- •1.2. Арифметические операции
- •1.2.1. Знаки операций
- •1.2.2. Операции
- •1.2.3. Арифметические операции
- •1.2.4.1. Операция присваивания
- •1.2.4.6. Операция sizeof
- •1.3. Порядок (старшинство) выполнения арифметических операций
- •1.4. Круглые скобки позволяют переопределить приоритет
- •{ // Начало главной функции double X, y, z, a, b, c, h; // Объявление переменных
- •1.6. Побитовые логические операции и операции сдвига
- •3.6. Использование операторов сдвига для организации ввода и вывода
- •2. Задание
- •2.12. Задания
- •2.12.1. Задание на алгоритмизацию вычислительных процессов (домашнее)
- •2.12.2.1. Формулировка задания
- •2.12.2.2. Варианты задания Варианты задания приведены в табл. 3.14. Вариант соответствует номеру в журнале группы.
- •2.12.2.3. Разработка алгоритма решения
- •2.12.2.4. Определение переменных программы
- •2.12.2.5. Разработка текста программы
- •2.12.2.6. Текст программы
- •При работе программы на экран было выдано следующее:
- •Варианты задания приведены в табл. 3.15. Вариант соответствует номеру в журнале группы.
- •2.12.3.3. Пример решения задачи для варианта № 30 Решение задачи предполагает создание двух программ: упаковки (см. 2.12.3.3.1) и распаковки (см. 2.12.3.3.2)
- •2.12.3.3.1. Программа упаковки
- •2.12.3.3.1.1. Разработка алгоритма решения
- •2.12.3.3.1.2. Определение переменных программы
- •2.12.3.3.1.3. Разработка текста программы
- •2.12.3.3.1.4. Программа
- •2.12.3.3.1.5. Отладка программы
- •2.12.3.3.1.6. Результаты работы программы
- •2.12.3.3.2. Программа распаковки
- •2.12.3.3.2.1. Разработка алгоритма решения.
- •2.12.3.3.2.4. Текст программы
- •2.12.3.3.2. 5. Отладка программы
- •2.12.3.3.2.6. Результаты работы программы
- •2.12.4. Домашнее задание
- •2.12.4.1. Текст программы
- •2.12.4.2. Результаты работы программы
- •3. Выводы
- •4. Требование к отчету
- •5. Вопросы для самоконтроля
- •Литература
- •Оглавление
- •1. Краткие теоретические сведения 2
- •1.1. Алгоритмизация вычислительного процесса 2
1.2.4.1. Операция присваивания
Операция присваивания = – это операция, вырабатывающая значение, которое может использоваться в выражениях. Например, a=a+b; или a+=b;
Множественное присваивание – присваивание одного и того же значения нескольким переменным. Например, a=b=c=1; или a=1; b=1; c=1;
Выражения – это переменные, функции и константы объединенные знаками операций. Переменные, функции и константы в записи выражения называются операндами. Например, в записи y=cos(x)+x выражением является cos(x)+x, где функция cos(x) – первый операнд, переменная x – второй операнд.
Подробнее о выражениях и операторе присваивания будет рассказано в лабораторной работе № 5.
1.2.4.2. Операции отношения
Операции отношения будут рассмотрены в лабораторной работе № 6.
1.2.4.3 Логические операции
Логические операции будут рассмотрены в лабораторной работе № 6.
1.2.4.4. Операция запятая
Операция запятая (,) или операция последовательного вычисления используется для связывания нескольких выражений в одно. Применение будет рассмотрено при изучении управляющих конструкций.
1.2.4.5. Операции инкремента и декремента
Специфическими для С++ являются операции инкремента (++) и декремента (--).
Операции инкремента (++) и декремента (-- ) унарные, прибавляют или вычитают единицу из значения своего операнда. Могут быть использованы перед или после своего операнда (в префиксной и постфиксной форме соответственно).
Операции ++ и -- применяются только к переменным и, соответственно, увеличивают или уменьшают значение переменной на 1.
Операции ++ и -- могут быть префексными и постфиксными. Постфиксные операции выполняются после того, как значение переменной было использовано в выражении. А префиксные – до того.
Данные операторы могут быть записаны в виде
i++; // операция инкремента (постфиксная)
++i; // операция инкремента (префиксная)
i--; // операция декремента (постфиксная)
--i; // операция декремента (префиксная)
Примечание: наличие в С/С++ операций ++ и -- связано с тем, что в системе команд микропроцессора имеются специальные операции для увеличения и уменьшения значения (обычно в регистре) именно на 1. Поэтому запись а++; предпочтительнее записи а=а+1; поскольку в большинстве случаев операции инкремента выполняются быстрее.
Префиксные и постфиксные операции выполняются по-разному в выражениях.
Например, выражение b = ++a означает выполнение двух операций в следующем порядке: a = a+1; b = a, а выражение b = a++ означает выполнение тех же операций, но в другом порядке: b = a; a = a+1.
Операция декремента выполняется аналогично.
Разницу между первой и второй формами записи данных операторов можно продемонстрировать на следующем примере:
int i=10,j=10;
int a = i++ //значение a = 10; i = 11;
int b =++j //значение b = 11; j = 11;
Из полученных результатов видно, что если оператор инкремента стоит после имени переменной, то сначала выполняется операция присваивания и только затем операция инкремента. Во втором случае наоборот, операция инкремента реализуется до присвоения результата другой переменной. Поэтому значение a = 10, а значение b = 11.
Пример 3.5. Операция ++ в постфиксной и префиксной формах
1) int a=3, b=2;
c=a++*b++;
В результате получим с=6, а=4, b=3
2) int a=3, b=2;
c=++a*++b;
В результате получим с=12, а=4, b=3
3) самостоятельно определите значение переменной d:
int a=5, b=1, c=4, d;
d=++a*b++-++c;
Операции инкремента и декремента подробнее будут рассмотрены в лабораторной работе № 5.