Лабораторные работы си шарп. Пользовательские функции»
Приложения для Windows forms
Lab 8. Пользовательские функции
Выполнить: Создайте проект для вычисления факториала числа. Вычисление должно быть оформлено в виде пользовательской функции. Запускать функции следует по щелчку на кнопке Вычислить (btnCalc
). Выводить результата следует в текстовое поле (txtFactorial
).
[Solution and Project name: Lab8
, file name Lab8.cs
]
✍ Решение:
- Создайте новый проект и самостоятельно разработайте интерфейс новой формы.
- Необходимо создать функцию пользователя. Щёлкните дважды по кнопке. Во открывшемся окне добавьте код перед кодом для кнопки:
- В тело функции необходимо поместить следующий код:
- Теперь, чтобы вычислить значение факториала при нажатии кнопки Вычислить, необходимо запрограммировать событие Click кнопки следующим образом:
- Запустите и отладьте приложение.
- Программа работает, но есть недостаток. Так как наша функция описана с помощью оператора Private, то доступна она будет только из модуля данной формы. Для того чтобы сделать ее доступной для любого модуля нашего приложения, необходимо описать ее в стандартном модуле, исправив Private на Public:
- С помощью меню Project (Проект) и пункта Add Class (Добавить класс) добавьте в Ваш проект стандартный класс, изменив ключевое слово private на public и добавив static.
- В коде для кнопки измените вызов функции на
Class1.Factorial(numb).ToString()
. - Запустите и отладьте программу.
private long Factorial(int n) { //... } |
Как мы видим из описания функции, ее аргументом будет являться целое число (n), а значение (возвращаемое значение) будет типа Long.
long p = 2; for (int i = 3; i <= n; i++) p = p * i; return p; |
int numb; if (int.TryParse(txtN.Text, out numb)) { txtFactorial.Text = Factorial(numb).ToString(); } else MessageBox.Show("введите число"); |
Метод
TryParse()
используется для проверки введенного числа. Если введено действительно число, то результат преобразования в целое число сохранится в переменной numb. При вводе неверного значения выводится сообщение.class Class1 { public static long Factorial(int n) { long p = 2; for (int i = 3; i <= n; i++) p = p * i; return p; } } |
Дополнительное задание:
- Добавьте в стандартный модуль описание следующей функции: xn, n – натуральное число. Измените внешний вид формы.