Skip to content

Latest commit

 

History

History
90 lines (69 loc) · 2.81 KB

76.md

File metadata and controls

90 lines (69 loc) · 2.81 KB

Pergunta

76 - Adiciona dois métodos à classe criada no exercício anterior:

  1. O primeiro retorna todas as estatísticas de um número variável de doubles (média, mediana, moda, máximo e mínimo) num tuplo.
  2. O segundo retorna todas as estatísticas de um número variável de doubles (média, mediana, moda, máximo e mínimo) em parâmetros out.

Ambos os métodos devem fazer uso dos métodos já existentes para cálculo das estatísticas.

Atualiza o método Main() da classe Program para testar os dois métodos novos.

Soluções

Solução 1

  1. Método TupleStats():
public static Tuple<double, double, double, double, double>
    TupleStats(params double[] nums)
{
    return new Tuple<double, double, double, double, double>
        (Minimo(nums), Maximo(nums), Media(nums),
        Mediana(nums), Moda(nums));
}
  1. Método OutStats():
public static void OutStats(out double minimo, out double maximo,
    out double media, out double mediana, out double moda,
    params double[] nums)
{
    minimo = Minimo(nums);
    maximo = Maximo(nums);
    media = Media(nums);
    mediana = Mediana(nums);
    moda = Moda(nums);
}

Classe Program:

class Program
{
    static void Main(string[] args)
    {
        double[] nums1 = new double[10] { 2, 1, 3, 23, 5, 6, 7, 4, 1, 1 };
        double[] nums2 = new double[9] { 2, 1, 3, 4, 5, 4, 4, 6, 1 };
        Tuple<double, double, double, double, double> tupStats1;
        Tuple<double, double, double, double, double> tupStats2;

        double minimo1, minimo2, maximo1, maximo2, media1, media2,
            mediana1, mediana2, moda1, moda2;

        Stats.OutStats(out minimo1, out maximo1, out media1, out mediana1, 
            out moda1, nums1);
        Stats.OutStats(out minimo2, out maximo2, out media2, out mediana2, 
            out moda2, nums2);

        Console.WriteLine($"Minimo1: {minimo1}\nMaximo1: {maximo1}\n" +
            $"Media1: {media1}\nMediana1: {mediana1}\nModa1: {moda1}\n");

        Console.WriteLine($"Minimo2: {minimo2}\nMaximo2: {maximo2}\n" +
            $"Media2: {media2}\nMediana2: {mediana2}\nModa2: {moda2}\n");

        tupStats1 = Stats.TupleStats(nums1);
        tupStats2 = Stats.TupleStats(nums2);

        Console.WriteLine($"Minimo1: {tupStats1.Item1}\nMaximo1: " +
            $"{tupStats1.Item2}\nMedia1: {tupStats1.Item3}\nMediana1: " +
            $"{tupStats1.Item4}\nModa1: {tupStats1.Item5}\n");

        Console.WriteLine($"Minimo1: {tupStats2.Item1}\nMaximo1: " +
            $"{tupStats2.Item2}\nMedia1: {tupStats2.Item3}\nMediana1: " +
            $"{tupStats2.Item4}\nModa1: {tupStats2.Item5}\n");
    }
}

Nota: Código de teste para este exercício encontra-se neste repositório.

Por Pedro Inácio.