Операторы в C++
В этом руководстве мы узнаем о различных типах операторов в C++ с помощью примеров. В программировании оператор – это символ, который работает со значением или переменной.
Например, + – это оператор, используемый для сложения, а – – оператор, используемый для вычитания.
Операторы в С++ можно разделить на 6 типов:
- Арифметические;
- Операторы присваивания;
- Операторы отношения;
- Логические;
- Побитовые;
- Другие.
1. Арифметические операторы
Арифметические операторы используются для выполнения арифметических операций с переменными и данными. Например:
a + b;
Здесь оператор + используется для добавления двух переменных a и b . Точно так же в С++ есть и другие арифметические операторы.
+ | Дополнение |
– | Вычитание |
* | Умножение |
/ | Деление |
% | Операция по модулю (остаток после деления) |
» c для avr (Функция)» Уроки программирования микроконтроллеров avr на си
Пример 1
#include using namespace std; int main() < int a, b; a = 7; b = 2; // printing the sum of a and b cout a + b = 9 a — b = 5 a * b = 14 a / b = 3 a % b = 1
Здесь операторы +, – и * вычисляют сложение, вычитание и умножение соответственно, как мы могли ожидать.
Оператор деления /
Обратите внимание на операцию (a / b) в нашей программе. Оператор / является оператором деления.
Как видно из приведенного выше примера, если целое число делится на другое целое число, мы получим частное. Однако, если либо делитель, либо делимое является числом с плавающей запятой, мы получим результат в десятичном формате.
In C++, 7/2 is 3 7.0 / 2 is 3.5 7 / 2.0 is 3.5 7.0 / 2.0 is 3.5
Оператор по модулю %
Оператор по модулю % вычисляет остаток. Когда a = 9 делится на b = 4, остаток равен 1.
Примечание. Оператор % можно использовать только с целыми числами.
Операторы увеличения и уменьшения
C++ также предоставляет операторы увеличения и уменьшения: ++ и – соответственно. ++ увеличивает значение операнда на 1, а – уменьшает его на 1.
int num = 5; // increasing num by 1 ++num;
Здесь значение num увеличивается до 6 с его начального значения 5.
Пример 2
// Working of increment and decrement operators #include using namespace std; int main() < int a = 10, b = 100, result_a, result_b; // incrementing a by 1 and storing the result in result_a result_a = ++a; cout result_a = 11 result_b = 99
В приведенной выше программе мы использовали операторы ++ и – в качестве префиксов. Мы также можем использовать эти операторы как постфиксные.
Подробно про функции на C++
Есть небольшая разница, когда эти операторы используются в качестве префикса, по сравнению с тем, когда они используются в качестве постфикса.
2. Операторы присваивания
В C++ операторы присваивания используются для присвоения значений переменным. Например:
Логические операции. Операторы сравнения, равенства, объединения, инверсия. C++ Урок #11.
// assign 5 to a a = 5;
Здесь мы присвоили переменной a значение 5.
= | a = b; | a = b; |
+ = | a += b; | a = a + b; |
-= | a -= b; | a = a – b; |
*= | a *= b; | a = a * b; |
/= | a /= b; | a = a / b; |
%= | a %= b; | a = a % b; |
Пример
#include using namespace std; int main() < int a, b, temp; // 2 is assigned to a a = 2; // 7 is assigned to b b = 7; // value of a is assigned to temp temp = a; // temp will be 2 cout temp = 2 a = 9
3. Операторы отношения
Оператор отношения используется для проверки связи между двумя операндами. Например:
// checks if a is greater than b a > b;
Здесь > – оператор отношения. Он проверяет, больше ли a чем b или нет.
Если отношение true, оно возвращает 1, тогда как если отношение false, оно возвращает 0.
== | Равно | 3 == 5 дает false |
!= | Не равно | 3! = 5 дает true |
> | Лучше чем | 3> 5 дает false |
Меньше, чем | 3 | |
> = | Больше или равно | 3> = 5 дает false |
Меньше или равно | 3 |
Пример
#include using namespace std; int main() < int a, b; a = 3; b = 5; bool result; result = (a == b); // false cout b; // false cout 5 is » = b; // false cout = 5 is » << result << endl; result = a <= b; // true cout
3 == 5 is 0 3 != 5 is 1 3 > 5 is 0 3 < 5 is 1 3 >= 5 is 0 3
Примечание. Операторы отношения в C++ используются при принятии решений и в циклах.
Наследование классов в C++
4. Логические
Логические операторы используются для проверки того, является ли выражение true или false. Если выражение true, оно возвращает 1, тогда как если выражение false, оно возвращает 0.
выражение 1 выражение 2 | Логическое AND. True, только если все операнды верны. | |
|| | выражение1 || выражение2 | Логическое OR. True, если хотя бы один из операндов True. |
! | ! выражение | Логическое NOT. True, только если операнд false. |
В С++ логические операторы обычно используются при принятии решений. Чтобы лучше понять, давайте посмотрим на следующие примеры:
Suppose, a = 5 b = 8 Then, (a > 3) (b > 5) evaluates to true (a > 3) (b < 5) evaluates to false (a >3) || (b > 5) evaluates to true (a > 3) || (b < 5) evaluates to true (a < 3) || (b < 5) evaluates to false !(a == 3) evaluates to true !(a >3) evaluates to false
Пример
#include using namespace std; int main() < bool result; result = (3 != 5) (3 < 5); // true cout 5); // false cout 5) is » 5); // true cout 5) is » 5); // false cout 5) is » << result << endl; result = !(5 == 2); // true cout << «!(5 == 2) is » << result << endl; result = !(5 == 5); // false cout
(3 != 5) (3 < 5) is 1 (3 == 5) (3 < 5) is 0 (3 == 5) (3 >5) is 0 (3 != 5) || (3 < 5) is 1 (3 != 5) || (3 >5) is 1 (3 == 5) || (3 < 5) is 0 !(5 == 2) is 1 !(5 == 5) is 0
Пояснение к программе логического оператора:
- (3! = 5) (3 <5) оценивается как 1, потому что оба операнда (3! = 5) и (3 <5) равны 1 (true).
- (3 == 5) (3 <5) оценивается как 0, потому что операнд (3 == 5) равен 0 (false).
- (3 == 5) (3> 5) оценивается как 0, потому что оба операнда (3 == 5) и (3> 5) равны 0 (false).
- (3! = 5) || (3 <5) оценивается как 1, потому что оба операнда (3! = 5) и (3 <5) равны 1 (true).
- (3! = 5) || (3> 5) оценивается как 1, потому что операнд (3! = 5) равен 1 (true).
- (3 == 5) || (3> 5) оценивается как 0, потому что оба операнда (3 == 5) и (3> 5) равны 0 (false).
- ! (5 == 2) оценивается как 1, потому что операнд (5 == 2) равен 0 (false).
- ! (5 == 5) оценивается как 0, потому что операнд (5 == 5) равен 1 (true).
Оператор switch в C++
5. Побитовые
В C++ побитовые операторы используются для выполнения операций с отдельными битами. Их можно использовать только вместе с типами данных char и int.
> | Двоичный сдвиг вправо |
Помимо описанных выше операторов, есть несколько других операторов, таких как sizeof. и т.д., которые нельзя аккуратно отнести к тому или иному типу.
- Цикл for в C++
- Преобразование типов в C++
- Оператор if … else в C++
Источник: calmsen.ru
Цикл for в C#
В программировании порой необходимо выполнить набор инструкций определенное количество раз. Возможное решение — скопировать код. Но есть проблема: количество этих наборов мы можем либо не знать, либо их может быть очень много (10000, к примеру).
Решение проблемы — циклы. В программировании циклы используются для многократного выполнения блока кода. Цикл работает до тех пор, пока заданное условие истинно.
Цикл for
Для инициализации цикла используется ключевое слово for.
Синтаксис цикла
for (счетчик; условие; итератор)
// тело цикла
>
Как работает цикл for
- В цикле for три переменные: счетчик , условие и итератор .
- Объявление счетчика происходит в самом начале и лишь раз. Обычно он инициализируется сразу после объявления.
- Затем проверяется условие. Условие — булево выражение. То есть, возвращает true или false .
- Если условие определяется как true :
• Выполняются инструкции внутри цикла.
• После этого инициализируется итератор — обычно изменяется значение этой переменной.
• Условие проверяется снова.
• Процесс повторяется до тех пор, пока условие не будет определено как false . - Если условие определится как false , цикл завершается.
Блок-схема работы цикла
Пример 1. Итерации цикла for
using System; namespace Loop < class ForLoop < public static void Main(string[] args) < for (int i=1; i», i); > > > >
Вывод:
Цикл for C#: итерация 1
Цикл for C#: итерация 2
Цикл for C#: итерация 3
Цикл for C#: итерация 4
Цикл for C#: итерация 5
В этой программе:
- счетчик — int = 1 ,
- условие — i
- итератор — i++ ,
После запуска программы происходит следующее:
- Объявляется и инициализируется переменная i . Ей присваивается значение 1.
- После этого проверяется условие i
- Если проверка условия возвращает `true`, выполняется тело цикла. Оно печатает строку «Цикл for C#: итерация 1».
- Затем определяется значение итератора ( i++ ). Значение i увеличивается до 2.
- Условие ( i
- Когда значение i станет равняться 6, условие оценится как false . Следовательно, цикл завершится.
Пример 2. Вычисляем сумму первых n натуральных чисел
using System; namespace Loop < class ForLoop < public static void Main(string[] args) < int n = 5, sum = 0; for (int i=1; iConsole.WriteLine(«Сумма первых натуральных чисел = «, n, sum); > > >
Вывод:
Сумма первых 5 натуральных чисел = 15
В этой программе объявляются две переменные — sum и n . Их значения равны 0 и 5 соответственно. Значение счетчика i в самом начале равно 1.
Внутри цикла значение переменной sum увеличивается на i — sum = sum + i . Цикл продолжается до тех пор, пока значение счетчика i меньше или равно n .
Давайте посмотрим, что происходит на каждой итерации цикла.
Изначально i = 1, sum = 0 и n = 5.
Итерация
Значение i
Значение sum
То есть, финальное значение sum будет равняться 15.
Несколько выражений внутри цикла for
Внутри цикла for может быть несколько выражений. Это значит, что мы можем инициализировать несколько счетчиков и итераторов. Давайте разберем следующий пример.
Пример 3. Цикл for с несколькими выражениями
using System; namespace Loop < class ForLoop < public static void Main(string[] args) < for (int i=0, j=0; i+jи j = «, i,j); > > > >
Вывод:
i = 0 и j = 0 i = 1 и j = 1 i = 2 и j = 2
В этой программе мы объявили и инициализировали 2 переменных-счетчика — i и j .
В части итератора у нас также два выражения. То есть, на каждой итерации цикла i и j увеличиваются на 1.
Цикл for без объявления счетчика и итератора
Объявление счетчика, условия и итератора в цикле for не обязательно. Запустить цикл for мы можем и без них.
В таких случаях цикл for работает так же, как и while. Давайте рассмотрим.
Пример 4. Цикл for без объявления счетчика и итератора
using System; namespace Loop < class ForLoop < public static void Main(string[] args) < int i = 1; for ( ; i», i); i++; > > > >
Вывод:
Цикл for C#: итерация 1
Цикл for C#: итерация 2
Цикл for C#: итерация 3
Цикл for C#: итерация 4
Цикл for C#: итерация 5
В этом примере мы не объявляли счетчик и итератор.
Переменная i объявлена до цикла for и ее значение увеличивается внутри тела цикла. Эта программа практически идентична той, о которой мы говорили в первом примере.
Условие цикла также является необязательным параметром. Но без условия цикл будет бесконечным.
Бесконечный цикл for
Если условие выполнения цикла всегда true , то он будет выполняться бесконечно. Это называется бесконечным циклом.
Пример 5. Бесконечный цикл for
using System; namespace Loop < class ForLoop < public static void Main(string[] args) < for (int i=1 ; i >0; i++) < Console.WriteLine(«Цикл for C#: итерация «, i); > > > >
В этом примере i было присвоено значение 1. Условие — i > 0 . На каждой итерации цикла значение `i` увеличивается на 1. Из-за этого условие цикла никогда не примет значение false . Именно поэтому цикл будет выполняться бесконечно.
Инициализировать бесконечный цикл можно и заменой условия пробелом. Например:
for ( ; ; )
// тело цикла
>
for (счетчик; ; итератор)
// тело цикла
>
Источник: codechick.io
Оператор выбора if else
В некоторых источниках говорится, что оператор выбора if else — самостоятельный оператор. Но это не так, if else — это всего лишь форма записи оператора выбора if . Оператор if else позволяет определить программисту действие, когда условие истинно и альтернативное действие, когда условие ложно. Тогда как if позволял определить действие при истинном условии.
Синтаксис записи оператора выбора if else :
if (/*проверяемое условие*/) < /*тело оператора выбора 1*/; >else < /*тело оператора выбора 2*/; >
Читается так: «Если проверяемое условие истинно, то выполняется тело оператора выбора 1, иначе (то есть проверяемое условие ложно) выполняется тело оператора выбора 2«. Обратите внимание на то, как записан оператор if else . Слово else специально сдвинуто вправо для того чтобы программный код был понятен и его было удобно читать.
Рассмотрим задачу с предыдущей темы, с использованием if else . Напомню условие задачи: «Даны два числа, необходимо их сравнить».
// if_else.cpp: определяет точку входа для консольного приложения. #include «stdafx.h» #include using namespace std; int main(int argc, char* argv[]) < int a, b; cout > a; cout > b; if ( a >= b) // если a больше либо равно b, то < cout = » else // иначе < cout << a << » <= » system(«pause»); return 0; >
В данном коде нас интересуют строки 14-20 . Эти строки читаются так: если a (первое число) больше либо равно b (второе число), то выполнить оператор вывода в строке 16
cout = »
иначе выполнить оператор вывода в строке 19
cout
cout
А вот так сработала программа (см. Рисунок 1).
CppStudio.com
Vvedite pervoe chislo: 15 Vvedite vtoroe chislo: -4 15 >= -4 Для продолжения нажмите любую клавишу . . .
Рисунок 1 — Оператор выбора if else
Покажу еще один пример использования операторов выбора if else (так называемые вложенные операторы if else для множественного выбора).
Условие задачи:
Составить алгоритм находящий значение y, если у=х, при х=30;
// inif_else.cpp: определяет точку входа для консольного приложения. #include «stdafx.h» #include using namespace std; int main(int argc, char* argv[]) < int x, y; cout > x; if (x < 0) < y = x; // выполняется, если х меньше нуля >else < if ( (x >= 0) (x < 30) ) < y = 0; // выполняется, если х больше либо равно нуля и меньше 30 >else < if (x >= 30) < y = x * x; // выполняется, если х больше либо равен 30 >> > cout
В данной задаче возможны три случая:
1-й случай: х < 0 ;
2-й случай: х лежит в пределах от 0 (включая 0) до 30;
3-й случай: х больше или равен 30.
Разбор частного случая:
Допустим, пользователь ввел число 31. Начиная со строки 12, выполняется проверка условий. Читается так: «Если х (31 в нашем случае) < 0, то выполнить оператор в строке 14». Но так как 31 > 0 условие ложно мы переходим к слову else (иначе) строка 15. Дальше проверяем, входит ли число 31 в заданный интервал.
Читается так: если х>=0 и х то выполнить оператор в строке 19 . Но так как число 31 не входит в заданный интервал, то условие ложно. Подробно строка 17: программа сначала проверит первое простое условие х >= 0 – оно истинно, а если первое истинно, то программа перейдет к проверке второго простого условия х < 30 – оно ложно.
Следовательно всё составное условие ложно, ведь в составном условии у нас используется логическая операция , а это значит, что все составное условие истинно только в том случае, когда истинны оба простых условия. Переходим к else (иначе ), здесь у нас последний if , (строка 22).
Выполняется проверка х >= 30 . Читается так: Если х >= 30 то выполнить оператор, находящийся в строке 24 . Наконец-то условие истинно, итак выполнился оператор в строке 24. И строка 28 печатает получившееся значение. Ну, все, рассмотрели программу по мельчайшим деталям. Результат работы программы, в случае, если пользователь ввел число 31 (см. Рисунок 2)
CppStudio.com
Vvedite x: 31 y=961 Для продолжения нажмите любую клавишу . . .
Рисунок 2 — Оператор выбора if else
Источник: cppstudio.com
Чему равно c в этой программе
Математическая функция (математическая запись) | Запись на Си (в записи указаны типы возвращаемых значений и типы аргументов, при написании программ записи типов опускаются) |
Модуль целого числа х — (|x|) | int abs(int x) |
Модуль вещественного числа x -( |x|) | float fabs(float x) |
Арккосинус угла x (arccos x) | double acos(double x) |
Арксинус угла x (arcsin x) | double asin(double x) |
Арктангенс угла x (arctan x) | double atan(double x) |
Косинус угла x (cos x) | double cos(double x) |
Синус угла x (sin x) | double sin(double x) |
Тангенс угла x (tg x) | double tan(double x) |
Число е в степени x (e x ) | double exp(double x) |
Логарифм натуральный числа x (ln x) | double log(double x) |
Логарифм десятичный числа x (log10 x) | double log10(double x) |
Корень квадратный из числа x | double sqrt(double x) |
Число x в степени y | double pow(double x, double y) |
Числовые значения тригонометрических функций должны быть выражены в радианах. Для преобразования радиан в градусы можно воспользоваться следующей формулой: 3.14*x/180. Для примера вычисления синуса в градусах напишем такую программу:
#include
#include
void main()
float x,z;
clrscr();
x = 90;
z = sin(3.14*x/180);
printf(«Sinus(90)= %fn»,z);
>
Результат работы программы:
Для того, что бы дискриминант уравнения d был положительной величиной, желательно вводить значение c со знаком минус. При отрицательном дискриминанте вычисление квадратного корня из d будет невозможно, и программа завершится с ошибкой:
Источник: hi-intel.ru