C# Перегрузить функцию triangle вычисления площади треугольников: равностороннего (по...

+591 голосов
4.1m просмотров

C# Перегрузить функцию triangle вычисления площади треугольников: равностороннего (по стороне), равнобедренного (по основанию и высоте), обычного (по трем сторонам)


Информатика | 4.1m просмотров
Дан 1 ответ
+153 голосов

Ответ:

--- С# 7.3 ---

using System;

namespace CSLear

{

   class Program

   {

       static void Main(string[] args)

       {

           //какойтокод

       }

        //Для равностороннего

       public static double TriangleArea(double a)

       {

           return ((a * a) * Math.Sqrt(3)) / 4;

       }

        //Для равнобедренного

       public static double TriangleArea(double h, double a)

       {

           return (h * a) / 2;

       }

        // Для обычного

       public static double TriangleArea(double a, double b, double c)

       {

           var p = (a + b + c) / 2;

           return Math.Sqrt(p * (p - a) * (p - b) * (p - c));

       }

   }

}

Объяснение:

(1.6k баллов)
+91

Вы не перегрузили метод Triangle. Вы создали три разных метода. Перегрузка подразумевает несколько реализаций одного и того же метода - с различным числом и типами входных параметров, но имеющие одинаковое название. Что, собственно, я и сделал.

+63

(etisos ihol)

+116

Часть 3:

Console.WriteLine("[Введите высоту h]");
h = Convert.ToDouble(Console.ReadLine());
Program aia = new Program();
Console.WriteLine("\nПлощадь равностороннего треугольника: {0} ", aia.TriangleAreaRs(a));
Console.WriteLine("Площадь равнобедренного треугольника: {0} ", aia.TriangleAreaRb(h,a));
Console.WriteLine("Площадь обычного треугольника: {0} ", aia.TriangleAreaC(a,b,c,p));
}
}
}

+125

Часть 2:

static void Main(string[] args)
{
double a, b, c, h,p;
Console.WriteLine("[Введите данные треугольника]\n");
Console.WriteLine("[Введите длину катета a]");
a = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("[Введите длину катета b]");
b = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("[Введите длину катета c]");
c = Convert.ToDouble(Console.ReadLine());
p = (a + b + c) / 2;
Console.WriteLine("\nПолумериметр треугольника: "+p+" \n");

+171

Вот полное решение, сама доделала
Пользуйтесь, ребятки ;з

using System;

namespace kp9p_pr_4_zad_6

{
class Program

{
public double TriangleAreaRs(double a) // площадь обычного треугольника

{
return ((a * a) * Math.Sqrt(3)) / 4;
}

public double TriangleAreaRb(double h, double a) // площадь равнобедренного треугольника

{
return (h * a) / 2;
}

public double TriangleAreaC(double a, double b, double c, double p) // площадь обычного треугольника

{
return (Math.Sqrt(p * (p - a) * (p - b) * (p - c)));
}