Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 14.12.2013, 00:44   #1
Legioner_93
Новичок
Джуниор
 
Регистрация: 14.12.2013
Сообщений: 2
По умолчанию Герон на C#

Есть такая задача: 2. Два треугольника заданы длинами своих сторон a, b и с. Определить треугольник с большей площадью, вычисляя площади треугольников по формуле Герона s = Math.Sqrt(p * (p - a) * (p - b) * (p - c)) , где p = (a + b + c)/2.
Накидал такой код, но не могу сделать это для двух треугольников. Может кто нибудь помочь?

Код:
namespace ConsoleApplication8
{
    class Program
    {
        static double plos(double a, double b, double c)
        {           
            double p = (a + b + c) / 2;
            double s = Math.Sqrt(p * (p - a) * (p - b) * (p - c));
            return s;
        }
        static void Main()
        {
            double a, b, c, s;

            Console.WriteLine("Введите длины (a,b,c) сторон треугольника");
            a = double.Parse(Console.ReadLine());
            b = double.Parse(Console.ReadLine());
            c = double.Parse(Console.ReadLine());
            s = plos(a, b, c);
            Console.WriteLine("Площадь = {0}",s);
            Console.ReadKey();
        }
    }

}
Legioner_93 вне форума
Старый 14.12.2013, 09:09   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,883
По умолчанию

Код:
namespace ConsoleApplication8
{
    class Program
    {
      public struct Triangle{  
      public double a, b, c;
      public double Square()
        {           
            double p = (a + b + c) / 2;
            double s = Math.Sqrt(p * (p - a) * (p - b) * (p - c));
            return s;
        }
      }
        static void Main()
        {
            Triangle[] triagles = new Triagle[2];
            for(int i = 0; i<triagles.Length; i++){
            Console.WriteLine("Введите длины (a,b,c) сторон треугольника {0}", i + 1);
            triagles[i].a = double.Parse(Console.ReadLine());
            triagles[i].b = double.Parse(Console.ReadLine());
            triagles[i].c = double.Parse(Console.ReadLine());
            }
            for(int i = 0; i<triagles.Length; i++){
            Console.WriteLine("Площадь {0}-го треугольника = {1}", i+1, triagles[i].Square());
            }
            int maxSquaredTriIdx = 0;
            for(int i = 1; i<triagles.Length; i++){
            if (triagles[i].Square() > triagles[maxSquaredTriIdx].Square())
                 maxSquaredTriIdx = i;
            }
            Console.WriteLine("Макс площадь у{0}-го треугольника", maxSquaredTriIdx + 1);

            Console.ReadKey();
        }
    }
}
Как-то так, работу не проверял, прямо тут напечатал. Можно ещё эффективнее сделать, используя Linq- выражения, но это наверное не примут ))
phomm вне форума
Старый 14.12.2013, 09:52   #3
Legioner_93
Новичок
Джуниор
 
Регистрация: 14.12.2013
Сообщений: 2
По умолчанию

phomm, всё прекрасно работает. Огромное спасибо за помощь.
Legioner_93 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц