На этом шаге мы приведем несколько примеров программ.
Рассмотрим несколько очень простых иллюстраций к тому, как базовые операторы языка C# могут использоваться на практике.
Задание 1. Создать программу, предназначенную для проверки введенного пользователем числа на предмет четиости/нечетности.
Раскрыть/скрыть решение и комментарии.
Программа выполняется просто: появляется диалоговое окно с полем ввода, в которое пользователю предлагается ввести целое число. Далее появляется еще одно диалоговое окно с сообщением о том, что пользователь ввел четное или нечетное число. Код программы представлен ниже.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using Microsoft.VisualBasic; namespace pr31_1 { class Program { static void Main() { // Целочисленные переменные: int number, reminder; // Считывание целого числа: number=Int32.Parse( Interaction.InputBox( // Текст в окне: "Введите целое число:", // Название окна: "Проверка") ); // Вычисляется остаток от деления на 2: reminder = number % 2; string txt = "Вы ввели "; // Использован тернарный оператор: txt+=(reminder==0?"четнoe":"нечетное")+" число!"; MessageBox.Show(txt); } } }
В программе используются две целочисленные переменные number и reminder - соответственно, для запоминания введенного пользователем числа и остатка отделения этого числа на 2. Для считывания числа использован статический метод InputBox() класса Interaction (для использования этого класса в заголовке программы взята инструкция using Microsoft.VisualBasic). Аргументами методу передается два текстовых значения: текст, отображаемый над полем ввода, и название (заголовок) для окна. Метод InputBox() значением возвращает введенное пользователем значение, но значение возвращается в текстовом формате. Для преобразования текстового представления числа в целое число используем статический метод Parse() из структуры Int32 (структура доступна после подключения пространства имен System командой using System). В частности, инструкция вызова метода InputBox() передана аргументом методу Parse() . Результат преобразования присваивается значением переменной number.
Командой reminder=number%2 в переменную reminder записывается остаток отделения значения переменной number на 2. Переменная reminder в принципе может принимать всего два значения: 0 при четном значении переменной number и 1 при нечетном значении переменной number.
Текстовая переменная txt объявляется с начальным значением "Вы ввели ". Нам эта переменная нужна для того, чтобы записать в нее текст, который затем будет отображаться во втором диалоговом окне. Следующей командой txt+=(reminder==0?"четное":"нечетное") + " число!" к текущему значению этой переменной дописывается недостающая часть. Здесь в подвыражении в правой части мы использовали тернарный оператор. Речь об инструкции reminder==0?"четное":"нечетное". Значение этого выражения определяется так: если значение переменной reminder равно 0, то значение выражения равно "четное". В противном случае (если значение переменной reminder отлично от 0) значение выражения равно "нечетное". Таким образом, в текстовое значение переменной txt включается слово "четное" или "нечетное" в зависимости от значения переменной reminder. После того как значение переменной txt сформировано, командой MessageBox.Show(txt) отображается диалоговое окно с соответствующим сообщением (для использования класса MessageBox используем инструкцию using System.Windows.Forms в заголовке программы).
При запуске программы на выполнение появляется окно с текстовым полем. На рисунке 1 показано такое окно с числом 123 в поле ввода.
Рис.1. В поле введено нечетное число
После щелчка но кнопке ОК появляется новое окно с сообщением о том, что число нечетное. Окно показано на рисунке 2.
Рис.2. Окно с сообщением о том, что было введено нечетное число
На рисунке 3 показано начальное диалоговое окно с числом 124 в поле ввода.
Рис.3. В поле введено четное число
Если так, то вторым появится окно с сообщением о том, что пользователь ввел четное число. Окно показано на рисунке 4.
Рис.4. Окно с сообщением о том, что было введено четное число
При этом стоит также заметить, что если пользователь в поле ввода в первом окне введет не число или вместо кнопки ОК щелкнет кнопку Отмена (или закроет окно с помощью системной пиктограммы), то в программе произойдет ошибка. В принципе, подобные ситуации легко обрабатываются. Но пока что нас этот вопрос занимать не будет.
Раскрыть/скрыть решение и комментарии.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using Microsoft.VisualBasic; namespace pr31_2 { class Program { static void Main() { // Целочисленные переменные: int number, hundreds; // Считывание целого числа: number=Int32.Parse( Interaction.InputBox( // Надпись над полем ввода: "Введите целое число:", // Заголовок окна: "Количество сотен") ); // Количество сотен в числе (для целочисленных // операндов деление выполняется нацело): hundreds=number / 100 % 10; // Текстовая переменная: string txt="B этом числе "+hundreds+" сотен!"; // Отображение окна с сообщением // (аргументы метода - сообщение и заголовок окна): MessageBox.Show(txt,"Сотни") ; } } }
Эта программа напоминает предыдущую - как минимум в части считывания целочисленного значения. Число, введенное пользователем, записывается в переменную number. Затем выполняется команда hundreds=number/100%10, благодаря чему в переменную hundreds записывается количество сотен в числе. Вычисления выполняются так: значение переменной number делится на 100. Здесь нужно учесть, что для целочисленных операндов выполняется целочисленное деление. Поэтому деление числа на 100 означает фактически отбрасывание двух последних цифр в представлении числа. Как следствие, третья справа цифра в значении переменной number "перемещается" на последнюю позицию (первую справа).
Далее вычисляется остаток от деления на 10 значения выражения number/100 (выражение number/100%10). Результат записывается в переменную hundreds.
В программе объявляется текстовая переменная txt со значением "В этом числе "+hundreds+" сотен!", в котором использована переменная hundreds. Переменную txt используем в команде MessageBox.Show(txt, "Сотни") для отображения окна с сообщением (первый аргумент определяет текст сообщения, а второй задает заголовок окна).
На рисунке 5 показано окно с нолем, содержащим введенное пользователем число.
Рис.5. В поле введено целое число для определения количества сотен в числе
После щелчка по кнопке ОК появляется окно с сообщением, показанное на рисунке 6.
Рис.6. Окно с сообщением о количестве сотен в числе
В данном случае мы ввели число 2567 и программа вычисляет корректное значение 5 для количества сотен в числе.
На следующем шаге мы подведем некоторые итоги.