Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

инфа / Отчет лаба 6

.docx
Скачиваний:
19
Добавлен:
27.04.2015
Размер:
31.56 Кб
Скачать

Лабораторная работа №6

Выполнил студент группы БРТ 1301: Иванов Иван

  1. Тема работы: «Формы»

  1. Текст задания: Определить углы треугольника, длины сторон которого (a, b,c) заданы.

Применить теорему половинного угла:

tg(Y/2)=sqrt((p-a)*(p-b)/(p*(p-c))) где p=(a+b+c)/2

Y-угол, принадлежащей стороне C

  1. Формализация задачи: Определить углы треугольника, длины сторон которого (a, b,c) заданы.

Структурированный исходный текст программы:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace WindowsFormsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

}

private void button1_Click(object sender, EventArgs e)

{

double a, b, c;

a = double.Parse(textBox1.Text);

b = double.Parse(textBox2.Text);

c = double.Parse(textBox3.Text);

listBox1.Items.Clear();

Ramp ugli = new Ramp(a, b, c);

if (ugli.ok)

{

ugli.ReshZad();

listBox1.Items.Add("Для сторон a=" + ugli.a + " b=" + ugli.b + " c=" + ugli.c);

listBox1.Items.Add("Углы ua=" + ugli.ua + " ub=" + ugli.ub + " uc=" + ugli.uc);

}

else

listBox1.Items.Add("Плохие данные");

}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

{

}

private void label1_Click(object sender, EventArgs e)

{

}

private void Form1_Load_1(object sender, EventArgs e)

{

}

}

class Ramp

{

public double a, b, c;

public double ua, ub, uc;

public bool ok = true;

public double ugol(int n)

{

double a1, b1, c1;

switch (n)

{

case 1: { a1 = a; b1 = b; c1 = c; break; }

case 2: { a1 = c; b1 = a; c1 = b; break; }

default: { a1 = c; b1 = b; c1 = a; break; }

}

// Console.WriteLine("n="+n+" a1="+a1+" b1="+b1+" c1="+c1);

double p, y, t;

p = ((a1 + b1 + c1) / 2);

t = ((p - a1) * (p - b1) / (p * (p - c1)));

t = Math.Sqrt(t);

y = Math.Atan(t); ;

y = 2 * y;

return (y);

}

public double DAMN(double x)

{

return (180 * x) / Math.PI;

}

public void ReshZad()

{

this.ua = this.ugol(1);

this.ub = this.ugol(2);

this.uc = this.ugol(3);

}

public Ramp(double a, double b, double c)

{

if ((a < b + c && b < a + c && c < a + b))

{

this.a = a;

this.b = b;

this.c = c;

}

else

ok = false;

}

}

}

Результаты тестирования программы:

Соседние файлы в папке инфа