O týždeň

Naučíte sa:

Pri pracovných a školských úlohách je častý termín odovzdania o týždeň. Vytvorte program, ktorý Vám pomôže odhadnúť dátum odovzdania Vášho zadania.

Program načíta ľubovoľný dátum a k nemu vypočíta dátum o týždeň.

Preštudujte si

Pri riešení môžte využiť časť štandardnej knižnice pre prácu s časom a dátumom. Budete potrebovať tieto dva dátové typy:

Je možné zmeniť celé číslo na štruktúru alebo na reťazec? Pomôžu Vám tieto funkcie:

Pri štúdiu technickej dokumentácie sa sústreďte na:

Zopakujte si

Pri štúdiu týchto funkcií a dátových typov môžte vidieť, že sa často pracuje s adresou premennej namiesto jej hodnoty. Na uloženie adresy je dobré používať tzv. smerníkovú premennú, ktorú vyznačíte pomocou * pri vyhradení pamäte.

struct tm* adresa_tm;

je premenná pre uloženie smerníka na premennú kde je uložená hodnota typu struct tm.

Adresu premennej zistíte pomocou operátora *.

Takto si pomocou operátora & poznačíte adresu premennej typu int:

int moja_premenna = 1;
int* adresa_mojej_premennej_int = &moja_premenna;

Obsah pamäte s danou adresou zistíte pomocou operátora *.

int moja_premenna = 1;
int* adresa_mojej_premennej_int = &moja_premenna;
int hodnota_mojej_premennej = *adresa_mojej_premennej_int;

K jednotlivým členom štruktúry pristupujete pomocou operátora . alebo -> v prípade smerníkovej premennej.

Budete potrebovať aj tieto funkcie:

Príkaz na načítanie jedného riadka do 100 znakov môže vyzerať takto:

char riadok[100];
memset(riadok,0,100);
int r = fgets(riadok,100,stdin);
if (r){
    puts("Nacitanie sa podarilo");
}

Návrh riešenia

Riešenie je možné vyjadriť pomocou postupu:

  1. Najprv načítajte jeden riadok ľubovoľného textu.
  2. Skúste text premeniť do štruktúrovanej reprezentácie.
  3. Ak sa konverzia nepodarila, vypíšte chybové hlásenie.
  4. Ak bola konverzia úspešná, skúste čas premeniť do celočíselnej reprezentácie.
  5. V celočíselnej reprezentácii vypočítajte čas o týždeň.
  6. Celočíselnú reprezentáciu premeňte do štruktúrovanej a vypíšte výsledok.

Odovzdanie

Domácu úlohu odovzdajte na GIT súboru program.c v adresári du3 za 7 bodov.