лекции. Закон рф от 27 июля 2006 г. 149фз Об информации, информационных технологиях и о защите информации
Скачать 422.2 Kb.
|
Операторы передачи управленияВ С# есть пять операторов, изменяющих естественный порядок выполнения вычислений: оператор безусловного перехода goto ; оператор выхода из цикла break ; оператор перехода к следующей итерации цикла continue ; оператор возврата из функции return ; оператор генерации исключения throw. Задания: 1. Вывод суммы 5+2 int a = 5; int b = 2; int c = a + b; Console.WriteLine(c); Console.ReadKey(); 2. Запросить у пользователя значения а и б { string a; Console.WriteLine("Введите a"); a = Console.ReadLine(); int a1 = Convert.ToInt32(a); string b; Console.WriteLine("Введите b"); b = Console.ReadLine(); int b1 = Convert.ToInt32(b); int c = a1 + b1; Console.WriteLine(c); Console.ReadKey(); } 3. Корни квадратного уравнения { double a, b, c; Console.WriteLine("Введите a"); a = double.Parse(Console.ReadLine()); Console.WriteLine("Введите b"); b = double.Parse(Console.ReadLine()); Console.WriteLine("Введите c"); c = double.Parse(Console.ReadLine()); double d = b * b - 4 * a * c; if (d >= 0) { double x1 = (-b + Math.Sqrt(d)) / (2 * a); double x2 = (-b - Math.Sqrt(d)) / (2 * a); Console.WriteLine("x1 = " + x1); Console.WriteLine("x2 = " + x2); } else { Console.WriteLine(" Уравнение не имеет корней"); } Console.ReadKey(); } } Условный оператор if Условный оператор if используется для разветвления процесса вычислений на два направления. Структурная схема оператора приведена на рис. 4.1. Рис. 4.1. Структурная схема условного оператора Формат оператора: if ( логическое_выражение ) оператор_1; [ else оператор_2; ] Сначала вычисляется логическое выражение. Если оно имеет значение true, выполняется первый оператор, иначе — второй. После этого управление передается на оператор, следующий за условным. Ветвь else может отсутствовать. Напишите консольную программу, в которую пользователь вводит с клавиатуры два числа. А программа сранивает два введенных числа и выводит на консоль результат сравнения (два числа равны, первое число больше второго или первое число меньше второго). using System; namespace ConsoleApp5 { class Program { static void Main(string[] args) { Console.WriteLine("Введите первое число: "); int num1 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Введите второе число: "); int num2 = Convert.ToInt32(Console.ReadLine()); if (num1 > num2) Console.WriteLine("Первое число больше второго"); else if (num1 < num2) Console.WriteLine("Первое число меньше второго"); else Console.WriteLine("Оба числа равны"); Console.ReadKey(); } } } Корни квадратного уравнения { double a, b, c; Console.WriteLine("Введите a"); a = double.Parse(Console.ReadLine()); Console.WriteLine("Введите b"); b = double.Parse(Console.ReadLine()); Console.WriteLine("Введите c"); c = double.Parse(Console.ReadLine()); double d = b * b - 4 * a * c; if (d >= 0) { double x1 = (-b + Math.Sqrt(d)) / (2 * a); double x2 = (-b - Math.Sqrt(d)) / (2 * a); Console.WriteLine("x1 = " + x1); Console.WriteLine("x2 = " + x2); } else { Console.WriteLine(" Уравнение не имеет корней"); } Console.ReadKey(); } } Оператор выбора switch Оператор switch (переключатель) предназначен для разветвления процесса вычислений на несколько направлений. Структурная схема оператора приведена на рис. 4.3. Рис. 4.3. Структурная схема оператора switch Формат оператора: switch ( выражение ){ case константное_выражение_1: [ список_операторов_1 ] case константное_выражение_2: [ список_операторов_2 ] ... case константное_выражение_n: [ список_операторов_n ] [ default: операторы ] } Выполнение оператора начинается с вычисления выражения. Тип выражения чаще всего целочисленный (включая char ) или строковый. Затем управление передается первому оператору из списка, помеченному константным выражением, значение которого совпало с вычисленным. Если совпадения не произошло, выполняются операторы, расположенные после слова default, а при его отсутствии управление передается следующему за switch оператору. Каждая ветвь переключателя должна заканчиваться явным оператором перехода, а именно одним из операторов break, goto или return: Напишите консольную программу, которая выводит пользователю сообщение "Введите номер операции: 1.Сложение 2.Вычитание 3.Умножение". Рядом с названием каждой операции указан ее номер, например, операция вычитания имеет номер 2. Пусть пользователь вводит в программу номер операции, и в зависимости от номера операции программа выводит ему название операции. Для определения операции по введенному номеру используйте конструкцию switch...case. Если введенное пользователем число не соответствует никакой операции (например, число 120), то выведите пользователю сообщение о том, что операция неопределена. using System; namespace ConsoleApp5 { class Program { static void Main(string[] args) { Console.WriteLine("Введите номер операции: 1.Сложение 2.Вычитание 3.Умножение"); int operation = Convert.ToInt32(Console.ReadLine()); switch (operation) { case 1: Console.WriteLine("Сложение"); break; case 2: Console.WriteLine("Вычитание"); break; case 3: Console.WriteLine("Умножение"); break; default: Console.WriteLine("Неизвестная операция"); break; } Console.ReadKey(); } } } Измените предыдущую программу. Пусть пользователь кроме номера операции вводит два числа, и в зависимости от номера операции с введенными числами выполняются определенные действия (например, при вводе числа 3 числа умножаются). Результат операции выводиться на консоль. using System; namespace HelloApp { class Program { static void Main(string[] args) { Console.WriteLine("Введите первое число: "); int num1 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Введите второе число: "); int num2 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Введите номер операции: 1.Сложение 2.Вычитание 3.Умножение"); int operation = Convert.ToInt32(Console.ReadLine()); int result = 0; switch (operation) { case 1: result = num1 + num2; Console.WriteLine(result); break; case 2: result = num1 - num2; Console.WriteLine(result); break; case 3: result = num1 * num2; Console.WriteLine(result); break; default: Console.WriteLine("Неизвестная операция"); break; } Console.ReadKey(); } } } Операторы цикла и передачи управления Операторы цикла используются для вычислений, повторяющихся многократно. Блок, ради выполнения которого и организуется цикл, называется телом цикла. Остальные операторы служат для управления процессом повторения вычислений: это начальные установки, проверка условия продолжения цикла и модификация параметра цикла ( рис. 4.4). Один проход цикла называется итерацией. Цикл с предусловием while while ( выражение ) оператор рассмотрим программу, которая считает количество цифр во введенном числе using System; namespace ConsoleApp5 { class Program { static void Main(string[] args) { int value = int.Parse(Console.ReadLine()); int count = 0; if (value == 0) count = 1; // проверка на ввод 0 while (value > 0) { value = value / 10; count++; // Оператор инкремента ++ увеличивает операнд на 1 } Console.WriteLine(count); } } } Цикл с постусловием do do оператор while ( выражение ); пример определения количества цифр в числе с использованием цикла с постусловием using System; namespace MyProgram { class Program { static void Main(string[] args) { int value = int.Parse(Console.ReadLine()); int count = 0; do { value = value / 10; count++; } while (value > 0); Console.WriteLine(count); Console.ReadKey(); } } } Цикл с параметром for for ( инициализация; выражение; модификации ) оператор; пример вычисления суммы цифр от 1 до введенного числа n using System; namespace MyProgram { class Program { static void Main(string[] args) { int n = int.Parse(Console.ReadLine()); int sum = 0; for (int i = 1; i <= n; i++) sum += i; //сложение с присваиванием Console.WriteLine(sum); Console.ReadKey(); } } } Операторы передачи управления В С# есть пять операторов, изменяющих естественный порядок выполнения вычислений: оператор безусловного перехода goto ; оператор выхода из цикла break ; оператор перехода к следующей итерации цикла continue ; оператор возврата из функции return ; оператор генерации исключения throw. Введение в Windows Presentation Foundation. Особенности платформы WPF |