Скачать презентацию Управляющие операторы языка Реализуют логику выполнения программы Скачать презентацию Управляющие операторы языка Реализуют логику выполнения программы

lec_2C#.ppt

  • Количество слайдов: 11

Управляющие операторы языка Реализуют логику выполнения программы: • следование • ветвление • цикл • Управляющие операторы языка Реализуют логику выполнения программы: • следование • ветвление • цикл • передача управления 1

Блок (составной оператор) o Блок — последовательность операторов, заключенная в операторные скобки: n n Блок (составной оператор) o Блок — последовательность операторов, заключенная в операторные скобки: n n o o begin { end } – в Паскале - в С-подобных языках Блок воспринимается компилятором как один оператор и может использоваться всюду, где синтаксис требует одного оператора, а алгоритм — нескольких. Блок может содержать один оператор или быть пустым. 2

Оператор «выражение» o o Любое выражение, завершающееся точкой с запятой, рассматривается как оператор, выполнение Оператор «выражение» o o Любое выражение, завершающееся точкой с запятой, рассматривается как оператор, выполнение которого заключается в вычислении выражения. i++; // выполняется операция инкремента a *= b + c; // выполняется умножение с присваиванием fun( i, k ); // выполняется вызов функции 3

Пустой оператор o o пустой оператор ; используется, когда по синтаксису оператор требуется, а Пустой оператор o o пустой оператор ; используется, когда по синтаксису оператор требуется, а по смыслу — нет: while ( true ); Это цикл, состоящий из пустого оператора (бесконечный) ; ; ; Три пустых оператора o 4

Операторы ветвления: o o развилка (if) переключатель (switch) 5 Операторы ветвления: o o развилка (if) переключатель (switch) 5

Условный оператор if if ( выражение ) оператор_1; [else оператор_2; ] if ( a Условный оператор if if ( выражение ) оператор_1; [else оператор_2; ] if ( a < 0 ) b = 1; if ( a < b && (a > d || a == 0)) else { b *= a; a = 0; } if ( a < b ) if ( a < c ) m = a; else m = c; else if ( b < c ) m = b; else m = c; ++b; 6

Пример y -2 using System; namespace Console. Application 1 { class Class 1 { Пример y -2 using System; namespace Console. Application 1 { class Class 1 { static void Main() { Console. Write. Line( "Введите координату x" ); double x = Convert. To. Double(Console. Read. Line() ); 1 2 -2 Console. Write. Line( "Введите координату у" ); double y = double. Parse(Console. Read. Line() ); if ( x * x + y * y <= 1 || x <= 0 && y >= - x – 2 ) Console. Write. Line( " Точка попадает в область " ); else Console. Write. Line( " Точка не попадает в область " ); }}} 7 x

Пример 2 y 1 -2 if if if ( ( ( x x x Пример 2 y 1 -2 if if if ( ( ( x x x -1 2 x < -2 ) y = 0; >= -2 && x < -1 ) y = -x - 2; >= -1 && x < 1 ) y = x; >= 1 && x < 2 ) y = -x + 2; >= 2 ) y = 0; if ( x <= -2 ) y = 0; else if ( x < -1 ) y = -x - 2; else if ( x < 1 ) y = x; else if ( x < 2 ) y = -x + 2; else y = 0; y if if = 0; (x> (x> -2 ) y = -x - 2; -1 ) y = x; 1 ) y = -x + 2; 2 ) y = 0; 8

Проверка вещественных величин на равенство o Из-за погрешности представления вещественных значений в памяти следует Проверка вещественных величин на равенство o Из-за погрешности представления вещественных значений в памяти следует ее избегать, вместо этого лучше сравнивать модуль разности с некоторым малым числом. o float a, b; … o if ( a == b ) … o if ( Math. Abs(a - b) < 1 e-6 ) … o o // не рекомендуется! // надежно! Значение величины, с которой сравнивается модуль разности, следует выбирать в зависимости от решаемой задачи и точности участвующих в выражении переменных. Снизу эта величина ограничена определенной в классах Single и Double константой Epsilon. Это минимально возможное значение переменной такое, что 1. 0 + Epsilon != 1. 0 9

Оператор выбора switch ( выражение ){ case константное_выражение_1: [ список_операторов_1 ] case константное_выражение_2: [ Оператор выбора switch ( выражение ){ case константное_выражение_1: [ список_операторов_1 ] case константное_выражение_2: [ список_операторов_2 ] case константное_выражение_n: [ список_операторов_n ] [ default: операторы ] } 10

Пример: Калькулятор на четыре действия using System; namespace Console. Application 1 { class Class Пример: Калькулятор на четыре действия using System; namespace Console. Application 1 { class Class 1 { static void Main() { Console. Write. Line( "Введите 1 й операнд: " ); double a = double. Parse(Console. Read. Line()); Console. Write. Line( "Введите знак" ); char op = (char)Console. Read(); Console. Read. Line(); Console. Write. Line( "Введите 2 й операнд: " ); double b = double. Parse(Console. Read. Line()); double res = 0; bool ok = true; switch (op) { case '+' : res = a + b; break; case '-' : res = a - b; break; case '*' : res = a * b; break; case '/' : res = a / b; break; default : ok = false; break; } if (ok) Console. Write. Line( "Результат: " + res ); else Console. Write. Line( "Недопустимая операция" ); }}} 11