Пример 1. Даны вещественные числа a,b,c. Найти наибольшее из них.
Рисунок 6.3 – Схема алгоритма к примеру 1
На этой схеме показано, что после ввода трех исходных чисел выполняется сравнение первых двух: a и b. Наибольшее из них присваивается переменной Max. После чего переменная Max сравнивается с переменной c. В том случае, если Max<c, значение Max корректируется заменой его на значение с. В заключение найденное наибольшее значение из трех исходных чисел выводится на экран монитора.
Листинг 1 – К примеру 1
using System;
namespace ConsoleApplication1
{ class Program
{ public static void Main()
{ double a, b, c, max;
Console.Write("Enter A: ");
a = Convert.ToDouble(Console.ReadLine());
Console.Write("Enter B: ");
b = Convert.ToDouble(Console.ReadLine());
Console.Write("Enter C: ");
c = Convert.ToDouble(Console.ReadLine());
if (a < b) max = b;
else max = a;
if (c > max) max=c;
Console.WriteLine("{0},{1},{2},{3}", a, b, c, max);
}
}
}
Пример 2. Переменная целого типа I определяет порядковый номер месяца невысокосного года. Оператор Switch по порядковому номеру месяца выводит количество дней в данном месяце.
Листинг 2 – К примеру 2
using System;
namespace ConsoleApplication1
{ class Program
{ static void Main(string[] args)
{ string buf;
Console.Write("Введите номер месяца: ");
buf = Console.ReadLine();
int a = Convert.ToInt32(buf);
switch (a)
{
case 1: Console.WriteLine ("В месяце 31 день"); break;
case 3: Console.WriteLine ("В месяце 31 день"); break;
case 5: Console.WriteLine ("В месяце 31 день"); break;
case 7: Console.WriteLine ("В месяце 31 день"); break;
case 8: Console.WriteLine ("В месяце 31 день"); break;
case 10: Console.WriteLine ("В месяце 31 день"); break;
case 12: Console.WriteLine ("В месяце 31 день"); break;
case 2: Console.WriteLine ("В месяце 28 дней"); break;
default: Console.WriteLine ("В месяце 30 дней");break;
}
}
}
}
В программе, решающей сформулированную задачу, введенное значение I используется для отыскания требуемого оператора вывода. Выбирается такой оператор Console.WriteLine, перед которым за словом case есть введенное значение I. Поскольку в данной программе нет защиты от некорректной работы пользователя, то любое введенное значение I>12 или I<1 также приведет к выводу следующего сообщения: 'В месяце 30 дней', так как именно оно помещено в ветвь default.
В данном примере I – это переменная целого типа, но вместо нее может быть использовано и выражение, выдающее порядковое значение.
Подчеркнем, что значения констант селектора, помещенные в любую ветвь выбора, не следует смешивать с метками операторов для работы с операторами перехода Goto.