Проект 2: Типове данни

 

Задача 1:

Да се въведат дължините на страните a и  b в две текстови полета, както и големината на ъгъла α  между тях в трето текстово поле.

Да се напише събитийна процедура, с която при кликване върху команден бутон да изведе в етикет дължината на страната с.

Упътване:

Да се използва косинусова теорема: а 2 = b 2 + c 2 – 2 bc. cos α

Math.Cos - изчислява косинус от ъгъл, зададен в радиани

Math.Sqrt - изчислява корен квадратен

 

Задача 2:

Нека  е даден вписан в окръжност триъгълник със страни а, b и c и ъгъла α срещу страна а.

Да се въведат дължина на страна a  и големината на ъгъла α   в две текстови полета.

Да се напише събитийна процедура, с която при кликване върху команден бутон да изведе в етикет дължината на радиуса R на описаната около триъгълника окръжност.

Упътване:

Math.Sin - изчислява синус от ъгъл, зададен в радиани

Да се използва синусова теорема:

 

Задача 3:

Даден е интервал от две цели числа (a,b) и трето цяло число x.  Да се въведат трите числа чрез три текстови полета и да се напише събитийна процедура, която при кликване върху команден бутон проверява дали числото х е в интервала. Резултатът да се изведе в етикет.

 

Решение на задача 3:

private void button1_Click(object sender, EventArgs e)
        {
            int a,b,x; 

            bool f;

                a = Convert.ToInt32(textBox1.Text);
                b = Convert.ToInt32(textBox2.Text);
                x = Convert.ToInt32(textBox3.Text);
                f=a<x && x<b;
                label1.Text = Convert.ToString( f);
           
        }

 

Задача 4:

Дадена е окръжност с координати на центъра (xc,yc) и дължина на радиуса r, дадена е точка с координати (x,y). Да се състави събитийна процедура, която въвежда петте входни данни в пет текстови полета,проверява дали точката е вътре в окръжността. Резултатът да се изведе в етикет.

Упътване:

Ако r*r>(xc-x)*(xc-x)+(yc-y)*(yc-y), то точката е в окръжността.

 

Задача 5:

Дадена е точка P с координати (xp,yp) и права L с уравнение Ax+By+C = 0. Да се състави програма, която изчислява разстоянието от точката до правата.


   

Решение на задача 1:

I начин:

private void button1_Click(object sender, EventArgs e)
        {
            double a,b,c,alpha;

         
                a = Convert.ToDouble(textBox1.Text);
                b = Convert.ToDouble(textBox2.Text);
                alpha = Convert.ToDouble(textBox3.Text);
                alpha = alpha * Math.PI / 180;
                c = Math.Sqrt(a * a + b * b - 2 * a * b * Math.Cos(alpha));
                label1.Text = "c=" + c;
           
        }

II начин:

private void button1_Click(object sender, EventArgs e)
        {
            double a,b,c,alpha;

            if (string.Compare(textBox1.Text, "") == 0) MessageBox.Show("ENTER a=");
            else
            if (string.Compare(textBox2.Text, "") == 0) MessageBox.Show("ENTER b=");
            else
            if (string.Compare(textBox3.Text, "") == 0) MessageBox.Show("ENTER alpha=");
            else
            {
                a = Convert.ToDouble(textBox1.Text);
                if (a < 0.0) MessageBox.Show("enter a=");
                b = Convert.ToDouble(textBox2.Text);
                if (b < 0.0) MessageBox.Show("enter b=");
                alpha = Convert.ToDouble(textBox3.Text);
                if (alpha < 0.0 || alpha>180.0) MessageBox.Show("enter alpha=");
                alpha = alpha * Math.PI / 180;
                c = Math.Sqrt(a * a + b * b - 2 * a * b * Math.Cos(alpha));
                label1.Text = "c=" + c;
            }
        }

За проверка на входните  данни се използва метод

MessageBox.Show(String1,String2, Бутони, Икона)

 

String1

- текст към потребителя, който се извежда  в прозореца

String2 

- надпис, който се извежда в заглавната лента  на прозореца със съобщение; не е задължително да се посочва.

Бутони

- бутони в долната част на прозореца - Yes, No - MessageBoxButtons.YesNo,

                                             бутони  - Yes, No, Cancel - MessageBoxButtons.YesNoCancel и т.н.

Ако не се посочат бутони се извежда по подразбиранесамо бутон  ОК.

Икона

- икона за предупреждение  MessageBoxIcon.Warning,

            икона за въпрос   MessageBoxIcon.Question и т.н.

По подразбиране не се извежда икона.

Примери:

Прозорец със съобщение  Код на С#
 MessageBox.Show("Dot Net Perls is awesome.");

 

 

 

 

MessageBox.Show("Dot Net Perls is awesome.",
		"Important Message");

 

 

DialogResult result1 = 
MessageBox.Show("Is Dot Net Perls awesome?",
		"Important Question",
		MessageBoxButtons.YesNo);

Може да се запомни бутон, избран от потребителя, какъвто е горният пример     DialogResult result1 = ...

 

 DialogResult result2 = 
MessageBox.Show("Is Dot Net Perls awesome?",
		"Important Query",
		MessageBoxButtons.YesNoCancel,
		MessageBoxIcon.Question);

 


DialogResult result3 = 
MessageBox.Show("Is Visual Basic awesome?",
		"The Question",
		MessageBoxButtons.YesNoCancel,
		MessageBoxIcon.Question,
		MessageBoxDefaultButton.Button2);

Може да се зададе бутон по подразбиране 

- MessageBoxDefaultButton.

 

 if (result1 == DialogResult.Yes &&
		result2 == DialogResult.Yes &&
		result3 == DialogResult.No)
	    {
MessageBox.Show("You answered yes, yes and no.");
	    }


 
MessageBox.Show("Dot Net Perls is the best.",
		"Critical Warning",
		MessageBoxButtons.OKCancel,
		MessageBoxIcon.Warning,
		MessageBoxDefaultButton.Button1,
		MessageBoxOptions.RightAlign,
		true);

 

MessageBox.Show("Dot Net Perls is super.",
		"Important Note",
		MessageBoxButtons.OK,
		MessageBoxIcon.Exclamation,
		MessageBoxDefaultButton.Button1);
	}

 

 

 

 

 

Търсене