Console.WriteLine(x); ////напечатается 2.5
Оператор уменьшения (--) уменьшает свой операнд на 1. Оператор уменьшения может находиться как до, так и после операнда: и --variable и variable--. Первой формой является префиксная операция уменьшения. Результатом этой операции является значение операнда после его уменьшения. Второй формой является постфиксная операция уменьшения. Результатом этой операции является значение операнда до его уменьшения.
Комбинированные операторы присваивания
Также имеется возможность комбинировать оператор присваивания с арифметическими операторами для образования составных операторов присваивания:
+=-=*=/=%=Пример:
i += 7 * j; // Эквивалентно i = i + 7 * j;
m /= 3 + k; // Эквивалентно m = m / (3 + k);
Логические операторы
Логические операции (&&, ||, !, ^) применимы только к значениям типа bool. Их результатом также служат величины типа bool.
Оператор Операция Пример! лог. отрицание F=! C;&& лог. умножение F=D && T;|| лог. сложение F=A || B;^ исключающее или F=A ^ B; Таблица истинности О п е р а ц и иОперанды || & & ^true,true true true falsetrue,false true false truefalse,true true false truefalse,false false false false !true falsefalse trueНаряду с && и ||можно использовать & и | соответственно. Отличие &от && состоит в том, что & может выполнять побитовую операцию И для целых чисел, но также работает и с логическим типом, например 5 & 3 = 1 .
Отличие | от || состоит в том, что | может выполнять побитовую операцию ИЛИ для целых чисел, но также работает и с логическим типом.
Операторы отношения
Операции отношения (==, !=, >, <, <=, >=) применимы ко всем базовым типам. Их результатами также являются значения типа bool.
Оператор Операция Тип операндов Тип рез. Пример== равно простой bool F= C == 7;!= не равно простой bool F= X != Y;< меньше простой bool F= X < Y;> больше простой bool F= L > 0;<= меньше или равно простой bool F= C <= I;>= больше или равно простой bool F= I >= 1;Пример: Попадает ли Х в интервал от 0 до 1 или в интервал от 3 до 5
z = x > 0 && x < 1 || x > 3 && x < 5;
Уровни значимости операторов
Если выражения содержат операторы различных категорий, они вычисляются по следующим правилам:
Если в выражении расставлены скобки, то вычисления производятся в порядке, известном всем еще с начальной школы: чем меньше глубина вложенности скобок, тем позже вычисляется заключенная в них операция. Если же скобок нет, то сначала вычисляются значения операций с более высоким приоритетом, затем - с менее высоким. Несколько подряд идущих операций одного приоритета вычисляются в последовательности "слева направо".
- x++, x--
- унарные + и - , !, ++x, --x
- /, *, %
- +, -
- < , > , <= , >=
- ==, !=
- ^
- &&
- ||
- = , *= , /= , %= , += , -=
Стандартные функции
- Math.Abs(x) Модуль числа
- Math.Exp(x) Вычисляется е в степени х
- Math.Floor(x) Возвращает наибольшее целое число, которое меньше или равно указанному числу.
- Math.Log(x) Натуральный логарифм числа х
- Math.Log10(x) Десятичный логарифм числа х.
- Math.Pow(B,E) Возводит B в любую степень
- Math.Round(x) Округляет значение до ближайшего целого или указанного количества десятичных знаков
- Math.Truncate(x) Вычисляет целую часть числа
- Math.Ceiling(x) Возвращает наименьшее целое число, которое больше или равно заданному числу.
- Math.PI Число 3,1415...
- Math.E Число 2,7128...
- Math.Sin(x) Math.Cos(x) Синус, косинус в радианах
- Math.Atan(x) Арктангенс в радианах
- Math.Sqrt(x) Квадратный корень числа Х.
Пример: Реализовать в виде оператора следующее выражение:
R=((a+b)*Math.Sin(Math.Pow(x,2))+a*b)/
Math.Sqrt(Math.Pow(Math.Cos(x+Math.PI/2),2)-b)
Составной оператор
Этот оператор, строго говоря, оператором не является. Дело в том, что также как арифметические действия иногда бывает необходимо заключать в скобки, последовательности команд (операторов) тоже иногда требуют объединения. Это позволяют сделать так называемые операторные скобки. Формат (общий вид) составного оператора таков:
{ <Оператор 1>; //Разделителем является точка с запятой <Оператор 2>; ...... <Оператор N>;}Возможно, такая структура напоминает основную структуру программы. По своей сути вся программа представляет собой большой составной оператор. Составной оператор предоставляет возможность выполнить произвольное количество команд там, где подразумевается использование только одного оператора. Такая необходимость встречается довольно часто.
ПРИМЕР
Составить программу для вычисления значения y(x) и для некоторых x произвести вычисления
Double x, y; string s; //Описываем переменные
Console.Write("Введите x="); //Выдаём приглашение для ввода х
s = Console.ReadLine(); //Вводим строку s
x = Convert.ToDouble(s); //Преобразовываем строку в х
y = (x / 2 * Math.Exp(x) + Math.Log(1 + Math.Exp(x))) / (Math.Pow(Math.Sin(x), 2) + Math.Sin(Math.Sqrt(x)));//Вычисляем y согласно формуле
Console.Write("y(x)={0}", y); //Печатаем полученный результат
Console.ReadKey(); //Ожидаем нажатия на любую клавишу в конце программы
РАЗДЕЛ: Условные операторы
Оператор условия (if)
Условные операторы позволяют осуществить ветвление алгоритма и делают возможность выбрать для выполнения один из операторов.
Синтаксис оператора if можно представить следующим образом:
if (выражение_лог_типа) оператор; //сокращенная форма if (выражение_лог_типа>) оператор1; else оператор2; // полная формаВ выражении должен получаться результат, имеющий логический тип. Если результатом выражения является истинное значение (True), то выполняется оператор, следующий за условием в скобках. Если результатом выражения является значение False и присутствует ключевое слово else, то выполнятся оператор, следующий за ключевым словом else. Если ключевое слово else отсутствует, то никакой оператор не выполняется. В предшествующем else операторе точка с запятой указывается. В общем случае ключевое слово else связывается с ближайшим ключевым словом if, которое еще не связано с ключевым словом else. Если вместо указанных операторов1,2 требуется выполнить несколько операторов используются операторные скобки {}.
Пример 1:
if (x < 1.5)
z = z + y;
else
z = 3.4;
Пример 2:
if (a > b)
if (b > c) b = b + 1;
else b = b - 1;
else b = b - 1;
Пример 3:
if (a > b)
if (b > c) b = b + 1;
else;
else b = b - 1;
Пример4:
if (a > b)
{
if (b > c) b = b + 1;
else b = b - 1;
c = c + b + 1;
}
else
{
c = 0;
a = 1;
b = 2;
}
Пример 5:
if (a > b) ; else
if (b > c) ; else b = b + 1;
Пример 6: Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной большее из этих значений, а если равны, то присвоить переменным нулевые значения. Вывести новые значения переменных A и B.
int A, B; string s;
Console.Write("Введите A=");
s = Console.ReadLine();
A = Convert.ToInt32(s);
Console.Write("Введите В=");
s = Console.ReadLine();
B = Convert.ToInt32(s);
if (A != B)
if (A > B) B = A;
else A = B;
else { A = 0; B = 0; }
Console.WriteLine("A={0} B={1}", A, B);
Console.ReadKey();
Пример 7: Даны a,b,c - коэффициенты квадратного уравнения. Получить корни уравнения.