Untitled

 avatar
unknown
plain_text
5 months ago
1.7 kB
4
Indexable
using System;

try
{
    // Kontrola počtu argumentů
    if (args.Length != 3)
    {
        throw new ArgumentException("Aplikace vyžaduje přesně 3 číselné parametry.");
    }

    // Převod argumentů na čísla s kontrolou pomocí moderní C# syntaxe
    if (!args.Select(arg => double.TryParse(arg, out _)).All(result => result))
    {
        throw new ArgumentException("Všechny parametry musí být platná čísla.");
    }

    // Převod na čísla - už víme, že konverze bude úspěšná
    double[] cisla = args.Select(double.Parse).ToArray();

    // Výpočet součtu pomocí LINQ
    double soucet = cisla.Sum();
    Console.WriteLine(soucet);

    // Výpočet součinu
    double soucin = cisla.Aggregate((x, y) => x * y);
    Console.WriteLine(soucin);

    // Výpočet podílu součtu prvních dvou čísel a třetího čísla
    if (cisla[2] == 0)
    {
        throw new DivideByZeroException("Nelze dělit nulou.");
    }

    double podil = (cisla[0] + cisla[1]) / cisla[2];
    Console.WriteLine(podil);

    // Úspěšné ukončení
    return 0;
}
catch (ArgumentException ex)
{
    Console.WriteLine($"Chyba vstupních parametrů: {ex.Message}");
    VypisNapovedu();
    return 1;
}
catch (DivideByZeroException ex)
{
    Console.WriteLine($"Chyba při výpočtu: {ex.Message}");
    return 2;
}
catch (Exception ex)
{
    Console.WriteLine($"Neočekávaná chyba: {ex.Message}");
    return 3;
}

static void VypisNapovedu()
{
    Console.WriteLine("\nPoužití aplikace:");
    Console.WriteLine("NactiData.exe <cislo1> <cislo2> <cislo3>");
    Console.WriteLine("\nPříklad:");
    Console.WriteLine("NactiData.exe 10 20 5");
}
Editor is loading...
Leave a Comment