Выполнение расчетов

 

Вычисление процентов

Теперь в шаблон файла Form7.cs необходимо написать нашу часть кода для выполнения расчетов на калькуляторе. Для решения первой задачи на проценты (при помощи первой кнопки со знаком “=” на данной форме Form7) дважды щелкаем эту кнопку (рис. 12.1). Появляется файл Form7.cs с шаблоном, в который записываем:

double mul1, mul2, mul3;

mul1 = Convert.ToDouble(textBox1.Text);

mul2 = Convert.ToDouble(textBox2.Text);

mul3 = mul1 * mul2/100;

textBox3.Text = mul3.ToString();

textBox4.Focus();

Для решения второй задачи на проценты (при помощи второй кнопки со знаком “=” на данной форме Form7) дважды щелкаем эту кнопку в режиме проектирования (рис. 12.1). Появляется файл Form7.cs с шаблоном, в который записываем:

double mul1, mul2, mul3;

mul1 = Convert.ToDouble(textBox4.Text);

mul2 = Convert.ToDouble(textBox5.Text);

mul3 = mul1/mul2*100;

textBox6.Text = mul3.ToString();

textBox7.Focus();

Для решения третьей задачи на проценты (при помощи третьей кнопки со знаком “=” на данной форме Form7) дважды щелкаем эту кнопку в режиме проектирования (рис. 12.1). Появляется файл Form7.cs с шаблоном, в который записываем:

double mul1, mul2, mul3;

mul1 = Convert.ToDouble(textBox7.Text);

mul2 = Convert.ToDouble(textBox8.Text);

mul3 = mul1/mul2*100;

textBox9.Text = mul3.ToString();

textBox10.Focus();

Для решения четвертой задачи на проценты (при помощи четвертой кнопки со знаком “=” на данной форме Form7) дважды щелкаем эту кнопку в режиме проектирования (рис. 12.1). Появляется файл Form7.cs с шаблоном, в который записываем:

double mul1, mul2, mul3;

mul1 = Convert.ToDouble(textBox10.Text);

mul2 = Convert.ToDouble(textBox11.Text);

mul3 = mul1*(1 + mul2/100);

textBox12.Text = mul3.ToString();

textBox13.Focus();

Для решения пятой задачи на проценты (при помощи пятой кнопки со знаком “=” на данной форме Form7) дважды щелкаем эту кнопку в режиме проектирования (рис. 12.1). Появляется файл Form7.cs с шаблоном, в который записываем:

double mul1, mul2, mul3;

mul1 = Convert.ToDouble(textBox13.Text);

mul2 = Convert.ToDouble(textBox14.Text);

mul3 = mul1*(1 - mul2/100);

textBox15.Text = mul3.ToString();

Аналогично (как в предыдущей главе) разработаем циклическое изменение цвета шрифта (текста) всех элементов управления, которые имеются на данной форме (например, с целью выделить эти тексты). Как сделать мигающим текст только для одного элемента управления, мы уже показали выше для переключателя и далее будем показывать (в последующих главах) для других элементов управления.

Напомним, что цвет шрифта (текста) элементов управления на форме устанавливается в панели Properties (с заголовком Form7) в свойстве BackColor и по умолчанию имеет значение Control. Алгоритм данной анимации формулируем так:

после появления формы цвет текста на всех элементах управления, которые расположены на данной форме, начинает циклически изменяться, например, с черного на белый и обратно, с заданным нами выше в панели Properties интервалом времени для компонента Timer1.

Для программной реализации этого алгоритма дважды щелкаем значок timer1 (ниже формы в режиме проектирования). Появляется файл с шаблоном, который после записи нашего кода принимает следующий вид:

//Объявляем булеву переменную myColor со значением false:

bool myColor = false;

private void timer1_Tick(object sender, EventArgs e)

{

//Вводим анимацию:

if (myColor == false)

{

//Выводим черный цвет текста

//для всех элементов на форме:

this.ForeColor = System.Drawing.Color.Black;

//Изменяем значение myColor на противоположное:

myColor = true;

}

else

{

//Выводим белый цвет текста

//для всех элементов на форме:

this.ForeColor = System.Drawing.Color.White;

//Изменяем значение myColor на противоположное:

myColor = false;

}

}

Степени, корни, логарифмы и факториалы

Теперь в шаблон файла Form9.cs необходимо написать нашу часть кода для выполнения расчетов. Для возведения числа “x” в различные степени (при помощи первой кнопки со знаком “=” на данной форме Form9) дважды щелкаем эту кнопку (рис. 13.1). Появляется файл Form9.cs с шаблоном, в который записываем:

double x, x2, x3, x4, x5;

x = Convert.ToDouble(textBox1.Text);

x2 = Math.Pow(x,2);

textBox2.Text = x2.ToString();

x3 = Math.Pow(x,3);

textBox3.Text = x3.ToString();

x4 = Math.Exp(x);

textBox4.Text = x4.ToString();

x5 = Math.Pow(10,x);

textBox5.Text = x5.ToString();

textBox6.Focus();

Для вычисления степени clip_image002 или x^y (при помощи второй кнопки со знаком “=” на данной форме Form9) дважды щелкаем эту кнопку в режиме проектирования (рис. 13.1). Появляется файл Form9.cs с шаблоном, в который записываем:

double x, y, x2;

x = Convert.ToDouble(textBox1.Text);

y = Convert.ToDouble(textBox6.Text);

x2 = Math.Pow(x,y);

textBox7.Text = x2.ToString();

textBox11.Focus();

Для вычисления корней (clip_image004 или sqrt(x); clip_image006 или x^(1/3); clip_image008 или x^(1/y) при помощи третьей кнопки со знаком “=” на форме Form9, дважды щелкаем эту кнопку (рис. 13.1). Появляется файл Form9.cs с шаблоном, в который записываем:

double x, x2, c, x3, x4, y;

x = Convert.ToDouble(textBox1.Text);

x2 = Math.Sqrt(x);

textBox8.Text = x2.ToString();

c = 1/3.0;

x3 = Math.Pow(x,c);

textBox9.Text = x3.ToString();

y = Convert.ToDouble(textBox6.Text);

if (y!=0)

{

c = 1/y;

x4 = Math.Pow(x,c);

}

else x4 = 0;

textBox10.Text = x4.ToString();

textBox11.Focus();

Для вычисления корня clip_image010 или a^(x/y) при помощи четвертой кнопки со знаком “=” на форме Form9 дважды щелкаем эту кнопку (рис. 13.1). Появляется файл Form9.cs с шаблоном, в который записываем:

double x, y, a, c, x4;

x = Convert.ToDouble(textBox1.Text);

y = Convert.ToDouble(textBox6.Text);

a = Convert.ToDouble(textBox11.Text);

if (y!=0)

{

c = x/y;

x4 = Math.Pow(a,c);

}

else x4 = 0;

textBox12.Text = x4.ToString();

textBox13.Focus();

Для вычислений трех логарифмов clip_image012 или ln(x); clip_image014 или log(x); clip_image016 или log[y](x) при помощи пятой кнопки со знаком “=” на форме Form9, дважды щелкаем эту кнопку (рис. 13.1). Появляется файл Form9.cs с шаблоном, в который записываем:

double x, x2, x3, x4=0, x5=1, x6, y;

x = Convert.ToDouble(textBox1.Text);

y = Convert.ToDouble(textBox6.Text);

if (x!=0)

{

x2 = Math.Log(x);

}

else x2 = 0;

textBox13.Text = x2.ToString();

if (x!=0)

{

x3 = Math.Log10(x);

}

else x3 = 0;

textBox14.Text = x3.ToString();

if (x!=0) x4 = Math.Log10(x);

if (y!=0) x5 = Math.Log10(y);

x6 = x4/x5;

textBox15.Text = x6.ToString();

textBox16.Focus();

Для вычисления факториалов n!, где n – целое положительное число (при n=0, n!=1) при помощи шестой кнопки со знаком “=” на форме Form9 дважды щелкаем эту кнопку (рис. 13.1). Появляется файл Form9.cs с шаблоном, в который записываем:

long i, n, Fac=1;

n = Convert.ToInt64(textBox16.Text);

for (i=2; i<=n; i++)

Fac = Fac*i;

textBox17.Text = Fac.ToString();

В предыдущих главах мы разработали все основные эффекты анимации, которые связаны с пошаговыми изменениями свойств самой формы. А теперь приступим к разработке эффектов анимации, которые связаны с пошаговыми изменениями свойств элементов управления, которые мы размещаем на форме. И на данной форме эффект анимации разработаем для элемента управления, который мы, как правило, первым размещаем на панели, а именно, для рамки группы GroupBox. Создадим циклическое изменение (мигание) надписи при рамке группы (когда, например, мы хотим выделить эту надпись для пользователя).

Алгоритм данной анимации формулируем так:

после появления формы на ней начинает циклически изменяться (мигать) надпись, например, “Powers, Roots, Logarithms and Factorials” при рамке группы (с заданным нами выше в панели Properties интервалом времени для компонента Timer1).

Для программной реализации этого алгоритма (по разработанной в главе 2 методике) дважды щелкаем значок для компонента Timer ниже формы в режиме проектирования. Появляется файл с шаблоном, в который записываем:

//Объявляем булеву переменную myText со значением false:

bool myText = false;

private void timer1_Tick(object sender, EventArgs e)

{

//Вводим анимацию:

if (myText == false)

{

//Выводим название рамки:

this.groupBox1.Text =

"Powers, Roots, Logarithms and Factorials";

//Изменяем значение myText на противоположное:

myText = true;

}

else

{

//Удаляем название рамки:

this.groupBox1.Text = "";

//Изменяем значение myText на противоположное:

myText = false;

}

}

В этом коде в строке (this.groupBox1.Text = "";) между кавычками мы можем записать другой текст, который будет чередоваться с первой надписью.

Предлагаю ознакомиться с аналогичными статьями: