• Zadání: Vytvořte strukturu casovyOkamzik, která pomocí vlastní metody převede zadaný celkový počet sekund na hodiny, minuty a sekundy a vypočtené hodnoty vypíše v hlavní metodě Main (pomocí metod VratHodiny, VratMinuty, VratSekundy implementovaných ve struktuře). To znamená, ve třídě Program deklarujte strukturu s názvem Cas. Tato struktura bude obsahovat následující celočíselné atributy: hodiny - počet hodin; minuty - počet minut; sekundy - počet sekund. Tyto atributy budou přístupné pouze v rámci struktury. V rámci struktury vytvořte metodu, se shodným názvem jako struktura, pro inicializaci datových složek. Tato metoda přijímá celočíselný vstupní argument sek představující celkový počet sekund. V konstruktoru převeďte celkový počet sekund na hodiny, minuty, sekundy
  • Řešení:
    • Struktura:
//Deklarace datového typu struktura
struct Cas
{
    //Deklarace celočíselných datových složek
    private int hodiny, minuty, sekundy;
 
    //Deklarace vlastního konstruktoru
    public Cas(int sek)
    {
        //Převod sekund na celé hodiny -> nastavení datové složky
        this.hodiny = sek / (60 * 60);
        //Zbytek sekund po odebrání celých hodin
        sek = sek % (60 * 60);
        //Převod sekund na celé minuty -> nastavení dat. složky
        this.minuty = sek / 60;
        //Zbytek sekund po odebrání celých minut -> nastavení dat. složky
        this.sekundy = sek % 60;
    }
 
    //Deklarace metody ve struktuře - navrací hodnotu datové složky 'hodiny'
    public int VratHodiny()
    {
        //Navrácení hodnoty datové složky
        return this.hodiny;
    }
 
    //Deklarace metody navracející počet minut uložených v datové složce
    public int VratMinuty()
    {
        return this.minuty;
    }
 
    //Deklarace metody navracející počet sekund uložených v datové složce
    public int VratSekundy()
    {
        return this.sekundy;
    }
}
    • Hlavní program - Main:
static void Main(string[] args)
{
    //Deklarace proměnné typu struktura, včetně zavolání vlastního konstruktoru
    Cas casovyOkamzik = new Cas(37000);
    //Výpis jednotlivých hodnot v datových složkách
    Console.WriteLine("Je právě: {0} hodin, {1} minut, {2} sekund", casovyOkamzik.VratHodiny(), casovyOkamzik.VratMinuty(), casovyOkamzik.VratSekundy());
    //Čekání na stisk klávesy -> ukončení programu
    Console.ReadKey();
}

  • Výstup programu:
Je právě: 10 hodin, 16 minut, 40 sekund

Última modificación: lunes, 3 de febrero de 2020, 21:11