Компьютерная графика, мультимедиа и игры на Visual C#

       

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


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

Содержание раздела