Проект 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);
}
|

