Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПргЯВУ_ЛК_СтефановаИА.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
4.41 Mб
Скачать

7.4. Приоритеты операций

1. Вычисления в ( ) // Сначала вычисления в самых внутренних ()

2. ! унарные + / - // Отрицание операнда и добавление знака +/-

3. * / // Операции типа умножения * /

4. +  // Операции типа сложения + -

5. < > <= >= // Операции типа сравнения, отношения

6. == != // Операции типа сравнения, эквивалентность

7. & // Операция логического умножения И

8. | // Операции логического сложения ИЛИ

Лекция 4

7.0. Операторы

Оператор – это запись инструкций по выполнению некоторой последовательности действий. Операторы используются для выполнения вычислений, присвоения значений, проверки на равенство и неравенство и т. д.

В языке C# имеется большой набор операторов. Они представляют собой символы, определяющие операции, которые необходимо выполнить с выражением.

Операторы в выражениях исполняются с приоритетами:

  • высший приоритет имеют основные операторы,

  • далее мультипликативные (типа умножения),

  • затем аддитивные (типа сложения) и

  • далее отношения (типа сравнения).

7.1. Основные операторы

Оператор

Действие

x.y

Оператор "точка" используется для доступа к членам класса. Формат - Класс.Член.

(x)

Круглые скобки (…) используются для указания порядка выполнения операций в выражении. Наивысший приоритет – операции в самых внутренних скобках.

A[x]

Квадратные скобки [ ]. Используются для доступа к элементу массива, его индекс необходимо заключить в скобки. Для одномерных массивов A[1]. Для многомерных массивов индексы разделяются запятыми B[1,2].

new

Используется для создания экземпляра класса.

Class1 Имя = new Class1();

Typeof(имя типа)

Используется для получения типа объекта.

System.Type type = typeof(имя типа);

Пример1:

private void button1_Click(object sender, EventArgs e)

{

button1.Visible = false;

label1.Text = "Студент";

textBox1.Text = "Группа ПИЭ-01";

}

П ример2:

double x, a, z;

a = 0.6; x = 0.5;

z = (Math.Pow(Math.Sin(x + 5), 2) - Math.Abs(x)) /

(Math.Exp(-a * x) + Math.Pow(x,3));

Console.WriteLine("z={0:E}", z);

Console.ReadKey();

7.2. Унарные операторы

Оператор

Действие

+ X

Унарный плюс. Это знак числа X. Он использован по умолчанию.

++X

Префиксная форма инкремента. Увеличение X на 1 перед использованием.

X ++

Постфиксная форма инкремента. Увеличение X на 1 после использования.

- X

Унарный минус. Это знак числа X.

-- X

Префиксная форма декремента. Уменьшение X на 1 перед использованием.

X --

Постфиксная форма декремента. Уменьшение X на 1 после использования.

! X

Логическое отрицание. Унарный оператор, который выполняет над операндом X операцию НЕ. Он задан для типа bool и меняет значение операнда true на false, или наоборот.

~X

Поразрядное дополнение. Инвертирование каждого бита целого X.

(T) x

Явное преобразование x в тип T

П ример3:

int x=10, y1, y2, y3;

y1 = ++x; //x=11

y2 = x++; //x=11

y3 = x; //x=12

Console.WriteLine("y1= " + y1);

Console.WriteLine("y2= " + y2);

Console.WriteLine("y3= " + y3);

В обоих случаях переменная х получит значение 11. Разница состоит лишь в том, в какой момент она станет равной 11 (до присвоения ее значения переменной y или после).

Пример4:

int x=10, y1, y2;

y1 =x + ++x;

y2 = x;

Console.WriteLine("y1= " + y1);

Console.WriteLine("y2= " + y2);

Console.ReadKey();

Инструкция x + ++x выполняется следующим образом: сначала запоминается исходное значение х=10, затем инкрементируется х (х=10+1=11). Далее суммируются новое значение x с исходным (11+10=21), а результат суммирования присваивается y.

Пример5:

int x = 10, y1, y2;

y1 = x + x++;

y2 = x;

Console.WriteLine("y1= " + y1);

Console.WriteLine("y2= " + y2);

Console.ReadKey();

Инструкция x + x++ выполняется следующим образом: сначала суммируются х+х (10+10=20), результат суммирования присваивается y, затем инкрементируется переменная х (10+1=11) для дальнейшего использования в программе.

Пример6

int x=6, y1, y2;

y1 =x + --x;

y2 = x;

Console.WriteLine("y1= " + y1);

Console.WriteLine("y2= " + y2);