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

Теперь в шаблон файла 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();

Для вычисления степени или 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();

Для вычисления корней ( или sqrt(x); или x^(1/3); или 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();

Для вычисления корня или 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();

Для вычислений трех логарифмов или ln(x); или log(x); или 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 = "";) между кавычками мы можем записать другой текст, который будет чередоваться с первой надписью.


Наши рекомендации