Создание Windows приложений на C# (Си шарп)Математические возможности языка C# |
Содержание:
На первом занятии мы уже создавали простое приложение. Создадим ещё одно, назовём его Lesson2, и рассмотрим некоторые свойства формы и визуальных элементов. При этом мы будем создавать приложение "калькулятор". Итак, сначала присвоим форме заголовок "Калькулятор" (не путать с именем формы). Заголовок задаётся свойством Text. Панель свойств находится в правой части экрана. Покрасим форму, например, в темно-синий цвет. Для этого найдём в редакторе свойств строку BackColor и выпадающем списке выберем нужный цвет. Мы будем делать немного нетрадиционный калькулятор, в отличие, например от Windows калькулятора. Он будет иметь отдельные строки для ввода аргументов, знака математического действия и результата вычислений. Поставим на форму четыре текстовых поля textBox1 ... textBox4 сверху вниз. Напротив каждого текстового поля поставим метки Label и в свойстве Text меток введём надписи, показанные на рисунке. Цвет надписей меток можно изменить свойством ForeColor. Добавим кнопку и создадим событие на нажатие кнопки "Вычислить". Событие можно создать двойным щелчком на выделенной кнопке или, на панели свойств и событий, переключиться на раздел события (Properties) и выбрать событие Click. Так же, двойным щелчком следует создать событие button1_Click. Допишем в полученную функцию обработчика события следующие строки (помечены синим цветом): private void button1_Click(object sender, EventArgs e) { double x, y, z; string znak = ""; x = Convert.ToDouble(textBox1.Text); y = Convert.ToDouble(textBox3.Text); z = 0; znak = textBox2.Text; if (znak == "+") z = x + y; else if (znak == "-") z = x - y; else if (znak == "/") z = x / y; else if (znak == "*") z = x * y; else textBox4.Text = Convert.ToString(z); } Рассмотрим подробно все строки написанные в функции обработчика события. Строка double x, y, z; - объявляет три переменные x, y и z (x и y - для вводимых значений и z для хранения результата вычислений) типа double. Тип double выбран с тем расчётом, что калькулятор должен уметь вычислять максимально большие числа. При объявлении переменных любого типа им присваивается имя. Имя переменной должно начинаться с латинской буквы за которой могут следовать числа, например x256. Переменная может быть словом, например означающем назначение переменной input_x, out_y. Несколько переменных одного типа записываются через запятую. Выражение объявления переменных завершается точкой с запятой. При объявлении имени переменной и последующему её вызову в программе, регистр символов имеет значение. Так переменные Input_x и input_x являются независимыми, то есть это не одна переменная, а две. Следующая строка программы string znak = ""; объявляет переменную znak (для хранения знака математической операции) типа string - строка и сразу этой переменной присваивается начальное значение - пустая строка. Строка x = Convert.ToDouble(textBox1.Text); преобразует первую числовую строку введённую пользователем в textBox1 в число и присваивает это число переменной x. Аналогичное назначение следующей строки - преобразование и присваивание числа переменной y. В строке z = 0; присваиваем начальное значение переменной z. В языке C# принято инициализировать переменные до обращения к ним из программы. Если не написать эту строку то компилятор (компилятор - программа преобразующая текст программы в цифровой код понятный для ЭВМ) выдаст предупреждающее сообщение, но программа всё равно будет работоспособна. Строкой znak = textBox2.Text; мы получаем символ знака оперции введённый пользователем в textBox2 и присваиваем его переменной znak. Далее, нам нужно проверить какой знак операции ввёл пользователь. Строка if (znak == "+") z = x + y; определяет ввёл ли пользователь знак +. Прочитать эту строку можно так: Если (if) переменная знак (znak) равна символу "+" то результат вычисления будет z = x + y. В скобках выражения записана проверка истинности выражения. Для проверки истинности выражений в операторе if следует использовать следующие знаки сравнения: == проверка равенства != проверка неравенства < меньше > больше <= меньше или равно >= больше или равно Следующие три строки: if (znak == "-") z = x - y; else if (znak == "/") z = x / y; else if (znak == "*") z = x * y; else выполняют проверку на ввод остальных математических знаков и, соответственно, производят вычисления. Слово else в конце каждой строки означает "иначе", то есть, если условие не выполнено, то иначе нужно проверить следующее условие. И, наконец, строка textBox4.Text = Convert.ToString(z); выводит полученное значение z в textBox4. В связи с тем, что переменная z числового типа, а вывести в textBox4 мы можем только строковый тип, то нужно преобразовать число в строку функцией Convert.ToString. Калькулятор готов, можно проверить его работоспособность нажав клавишу F5. Примечание - при вводе чисел с плавающей запятой, в Windows принято вводить разделитель запятую, а не точку, как это принято в DOS. Известно, что при делении на 0 возникает ошибка. Попробуем исключить такую ошибку, если пользователь введёт знаменателем 0. Доработаем строку определяющую ввод знака деления: if ((znak == "/") && (y == 0)) MessageBox.Show("Ошибка! Деление на 0"); else z = x / y; В этой строке мы написали: если знак равен наклонной черте ((znak == "/") и && второй аргумент (знаменатель) равен 0 (y == 0) то выводится сообщение об ошибке MessageBox.Show("Ошибка! Деление на 0"); иначе else можно вычислить результат деления z = x / y;. Из этой строки видно, что сложные логические выражения записываются в скобках. В сложных логических конструкциях следует использовать следующие операторы: && - логическое "И" || - логическое "ИЛИ" Введя изменения, посмотрим, как работает программа в такой ситуации. Итак, калькулятор готов, но производить только арифметические действия не тнтересно, поэтому расширим возможности нашего калькулятора введя вычисление некоторых математических функций. Язык C# имеет большую коллекцию функций математической обработки данных, основные из них приведены в таблице:
Добавим в наш калькулятор, например, возведение в степень Y числа X. Нам нужно выбрать обозначение этой операции. Степень принято обозначать значком ^. Для расширения возможностей калькулятора добавим ещё строки в код обработчика события: if (znak == "^") z = Math.Pow(x, y); else Это уже известное нам выражение определяющее ввод знака ^ и если знак введён, то произвести вычисление степени. Запустим приложение и убедимся, что оно исправно работает. И, в заключение этого урока, добавим на форму ещё одну кнопку которая, для удобства пользователя, будет очищать все поля ввода и результата. Двойным щелчком на кнопки создадим функцию события нажатия на кнопку. Добавим код очистки всех текстовых полей: private void button2_Click(object sender, EventArgs e) { textBox1.Text = ""; textBox2.Text = ""; textBox3.Text = ""; textBox4.Text = ""; } |
©Гуков Константин Михайлович 2006 - 2012 Почта: [email protected] |