На главную

Зачетный проект  5 (windows forms). Do..while loop

 

ПРИЛОЖЕНИЯ ДЛЯ WINDOWS FORMS

Лабораторная работа 5. Do..while loop

Выполнить: Создайте приложение Windows Forms Application , которое вычисляет сумму ряда x + x/2 + x/3 + x/4 + … для (|x| < 1) и количество слагаемых в этой сумме. Расчет производится пока приращение не будет меньше заданной точности.
  
[Solution and Project nameLab7, form name Lab7.cs]
  
Пример выполнения:
https://labs-org.ru/wp-content/uploads/885-1.png

 Алгоритм:

Инструментарий:

элемент управления

значение свойства name

значение свойства text

form

Lab7

Сумма ряда

button

btnCalc

Вычислить

textbox 1

txtX

0

textbox 2

txtPrecision

0

Label

lblResult

0

Labels

1.    Внимание! Свойства name всех элементов управления должны быть заданы в соответствии с таблицей.

2.    Создайте новый проект (Файл → Создать → Проект → Windows Forms Application ), дайте ему имя — Lab7; свойство name формы должно быть Lab7 (окно Свойства window → (Name)).

3.    Расположите элементы управления, как на рисунке.

4.    Запрограммируйте событие Click для кнопки. Для того чтобы это сделать дважды щелкните по кнопке на форме.

5.    Объявите переменные для хранения значений: количество слагаемыхсуммы и само слагаемое:

private void btnCalc_Click(object sender, EventArgs e)
  {
    // здесь ваш код
    int counter=0; // количество слагаемых
    double sum=0; // сумма
    double summand=0.0; // слагаемое
    double x;
   //...
}

6.    Для вычисления суммы ряда будем использовать цикл do..while. Каждое слагаемое — это результат операции деления x на counter. Для того, чтобы избежать появления ошибки в случае неверного значения для x, будем использовать процедуру TryParse():

//...
do
            {
                counter++;
                if (double.TryParse(txtX.Text, out x)){
                    summand = double.Parse(txtX.Text) / counter;
                }
                sum += summand;
            } while (Math.Abs(summand) > double.Parse(txtPrecision.Text));

7.    Результат будем размещать в метке lblResults. Для этого после цикла добавьте код:

lblResult.Text = "сумма = " + sum + ", количество = " + counter;

8.    Запустите приложение, используйте запятую в качестве плавающей точки, например0,3.

9.    Изменим условие цикла так, чтобы при вводе некорректного значения для приращения, не возникала бы ошибка. Будем использовать логическую переменную. Добавьте код непосредственно перед циклом:

bool f = false;
            if (double.TryParse(txtPrecision.Text, out precision)) {
                f = true;
            }

переменная f — индикатор того, правильно ли введено значение для приращения. Если значение верное, то f = true.

10.        Изменяем условие цикла:

//..
while (f && Math.Abs(summand) > precision);

Проверяем значение «индикатора» f. Если true, то приращение задано верно, можем продолжить выполнение тела цикла. Ну и кроме того слагаемое должно быть больше приращения (по условию задания).

11.        В том случае, если пользователь вводит некорректное значение, будем информировать его об этом, используя класс Messagebox и оператор if. Измените код вывода результатов:

if (f) { 
                lblResult.Text = "сумма = " + sum + ", количество = " + counter;
            }
            else
            {
                MessageBox.Show("введите числовое значение!");
            }

12.        Запустите приложение.

На главную