dodání ihned! nové
Black Friday je tu! Využij jedinečnou příležitost a získej až 80 % znalostí navíc zdarma! Více zde
BF
Avatar
sonnys
Člen
Avatar
sonnys:26.5.2014 9:28

Ahoj
Jak lze naprogramovat za pomocí výčtového typu jednoduchý kalendář,když zadám datum,aby mi vypsal co to bylo za den (Pondělí,Úterý­...),jsem začátečník a nevím si rady s logikou programu.

 
Odpovědět
26.5.2014 9:28
Avatar
Odpovídá na sonnys
Libor Šimo (libcosenior):26.5.2014 11:06

Ja by som to riešil asi takto:

#include <stdio.h>

typedef enum {
    nedela, pondelok, utorok, streda, stvrtok, piatok, sobota
} DEN;

// algoritmus nájdený na stránke: http://rosettacode.org/wiki/Day_of_the_week
int den_v_tyzdni(int den, int mesiac, int rok)
{
    int nastavenie, mm, rr;
    nastavenie = (14 - mesiac) / 12;
    mm = mesiac + 12 * nastavenie - 2;
    rr = rok - nastavenie;
    return (den + (13 * mm - 1) / 5 + rr + rr / 4 - rr / 100 + rr / 400) % 7;
}

int main()
{
    DEN den;
    char *nazvy[] = { "nedela", "pondelok", "utorok", "streda", "stvrtok", "piatok", "sobota"};
    int dd, mm, rrrr;

    printf("Zadajte datum vo formate dd mm rrrr: ");
    scanf("%d%d%d", &dd, &mm, &rrrr);
    den = den_v_tyzdni(dd, mm, rrrr);
    printf("Bol(a) to %s.\n", nazvy[den]);

    return 0;
}
Nahoru Odpovědět
26.5.2014 11:06
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
sonnys
Člen
Avatar
sonnys:26.5.2014 12:00

Dobrý nápad, takhle to bude asi nejjednodušší a i pro začínající programátora k pochopení

 
Nahoru Odpovědět
26.5.2014 12:00
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na sonnys
Libor Šimo (libcosenior):26.5.2014 12:05

Ak chceš niečomu rozumieť, musíš sa aj niečo naučiť.
Začínajúci nezvykne hneď riešiť výčtový typ.

Nahoru Odpovědět
26.5.2014 12:05
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
sonnys
Člen
Avatar
sonnys:26.5.2014 20:13

Zkusil jsem ten tvůj kód,ale vyhazuje mi to chybu,můžeš poradit?

 
Nahoru Odpovědět
26.5.2014 20:13
Avatar
Odpovídá na sonnys
Libor Šimo (libcosenior):3.6.2014 10:53

Písal som to v Code:Blocks a tam to funguje bez problémov.

Nahoru Odpovědět
3.6.2014 10:53
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.