Операторы

  • doc
  • 29.04.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 24. Практическая работа по теме Операторы.doc

Практическая работа №4

Тема: Операторы

Цель: Формирование навыков применения различных операторов

Вид работы: индивидуальный.

Время выполнения: 4 часа.

Теоретический материал

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

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

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

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

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

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

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

Основные операторы представлены в таблице №5.

Таблица №5

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

Оператор

Действие

x.y

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

(x)

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

A[x]

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

new

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

Class1 Имя = new Class1();

Typeof(имя типа)

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

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

Унарные операторы представлены в таблице №6.

Таблица №6

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

Оператор

Действие

+ 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

Мультипликативные операторы представлены в таблице №7.

Таблица №7

Мультипликативные операторы

Оператор

Действие

X * Y

Умножение. Вычисляет произведение двух операндов.

X / Y

Деление. Делит X на Y. При делении целых чисел результат всегда является целочисленным. Остаток отбрасывается.

X % Y

Остаток. Вычисляет остаток после деления X на Y.

X & Y

Логическое умножение (И - AND). Вычисляет X и Y независимо от X.

X && Y

Условное логическое умножение (И - AND). Вычисляет Y в зависимости от X. Если X предопределяет результат, то Y не вычисляется.

Аддитивные операторы представлены в таблице №8.

Таблица №8

Аддитивные операторы

Оператор

Действие

X + Y

Сложение. Для числовых типов он вычисляет сумму X + Y.

Для строкового типа он объединяет X и Y.

X - Y

Вычитание. Для числовых типов вычисляет разность X - Y.

X | Y

Логическое сложение (ИЛИ - OR). Вычисляет X и Y независимо от значения X.

X || Y

Условное логическое сложение (ИЛИ - OR). Вычисляет Y в зависимости от X. Если X предопределяет результат, то Y не вычисляется.

X ^ Y

Сложение по модулю 2 (Исключающее ИЛИ - XOR).

Вычисляет X и Y независимо от значения X.

Операторы отношений представлены в таблице №9.

Таблица №9

Операторы отношений

Оператор

Действие

X == Y

Равно. Возвращает значение true, если X == Y, в противном случае возвращается значение false.

X != Y

Не равно. Возвращает значение true, если X != Y, в противном случае возвращается значение false.

X < Y

Меньше. Возвращает значение true, если X < Y, в противном случае возвращается значение false.

X > Y

Больше. Возвращает значение true, если X > Y, в противном случае возвращается значение false.

X <= Y

Меньше или равно. Возвращает значение true, если X <= Y, в противном случае возвращается значение false.

X >= Y

Больше или равно. Возвращает значение true, если X >= Y , в противном случае возвращается значение false.

Результат выполнения операторов отношений и логических операторов имеет тип bool.

В C# на равенство (==) и не равенство (!=) можно сравнивать все объекты, но операторы сравнения (<, >, <=, >=) можно применять только к типам, которые поддерживают только отношение упорядочения, т.е к числовым типам. Например, x>2, z==0, Math.Sin(x)<=5.

Операторы присваивания задают новое значение переменной. Имя переменной и результат вычисления выражения должны быть одного типа или совместимыми по присваиванию.

Присваивание бывает простое и сложное. При простом присваивании оператор состоит из одного символа (=).

Можно использовать явное преобразование, используя синтаксис:

ИмяПеременной = (тип переменной слева от =) выражение; Например :        

          double x = 2.5; float y=0;

          y = (float) (x * x);

или

          double x = 2.5; int y=0;

          y = (int) (x * x);                 

Оператор сложного присваивания (см. табл. №10) состоит из нескольких знаков без разделителей. Правый символ – знак простого присвоения, слева дополнительный символ, указывающий на тип дополнительной операции, выполняемой перед присваиванием.

Таблица №10

Операторы сложного присваивания

Составные операторы

Действие

X += Y

X = X + Y

X –= Y

X = X – Y

X *= Y

X = X * Y

X /= Y

X = X / Y

X %= Y

X = X % Y

X &= Y

X = X & Y

X |= Y

X = X | Y

Условный оператор в программе– это выражение логического типа (Bool), которое может принимать одно из двух значений True (истина) или False(ложь).

Примеры простых условий:

(Summa<1000)                    // значение переменной Summa < 1000?

(Math.Pow(x,2)-10*x>=5)  // выражение x2 -10·x³5 ?

(x % 2 = 0)                          // остаток от деления x на 2 равен 0?

Примеры сложных условий:

(Day==6 | Day==7)           // день суббота или воскресенье

(Sum>100 & Day==7)      //скидка на товар стоимостью более 100у.е. в воскресный день

(m==1 & d>=1 & d<=10)  //дни с 1 по 10 в первом  месяце года.

Оператор перехода goto

Он предназначен  для изменения  порядка   выполнения операторов программы. Инструкция goto используется следующим образом:

-     В коде программы создается метка с именем (например, M).

-     Организуется переход на эту метку инструкцией goto M.

-     Имя метки M в коде обязательно должно заканчиваться двоеточием (:). Оно указывает на точку в программе, с которой будет выполняться программа после использования инструкции goto.

Ход работы:

Выполнить задание, примеры с комментариями записать в тетрадь, ответить на вопросы.

Задания

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();

3. Скомпилировать следующий алгоритм и определить, какие унарные операции выполняются.

        int x=10, y1, y2;

        y1 = ++x;                       //x=11

        y2 = x++;                       //x=11

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

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

       Console.ReadKey();

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

4.   Скомпилировать следующий алгоритм, комментарий записать.

  int x=10, y1;

        y1 =x + ++x;

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

 Console.ReadKey();

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

5. Скомпилировать следующий алгоритм, комментарий записать.

 int x=10, y2;

 y2 =x + x++;

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

Console.ReadKey();

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

6. Скомпилировать следующий алгоритм, результат записать.

int  ires, ioct;

   double dres, doct;

   ires = 10 / 3;

   ioct = 10 % 3;

   dres = 10.0 / 3.0;

   doct = 10.0 % 3.0;

   Console.WriteLine("Результат и остаток от деления 10/3=" + ires + " " + ioct);

   Console.WriteLine("Результат и остаток от деления 10.0/3.0=" + dres + " " + doct);

7. Скомпилировать следующий алгоритм, определить какие операторы используются.

int a, b;

a = 3; b=0;

if (a==b) Console.WriteLine("Переменные равны");

else if (a>=0) Console.WriteLine("Значение а неотрицательно");

Console.ReadKey();

8. Скомпилировать следующий алгоритм, результат записать в тетрадь.

public static int Main()

     {

            int i = 0;

        M: Console.WriteLine("i: {0 } ", i);        

            i = i + 1;

            if (i < 10) goto M;

                        }                 

     }       

Контрольные вопросы:

1)       К какому типу операторов относятся инкремент и декремент?

2)       С какой целью используется оператор new?


Скачано с www.znanio.ru