Lab 6 – 2018

Switch, math, uued funktsioonid [ Link ]

Ülesanne (3p+2p):

Kirjuta programm, mis võtab arvesse kõik Gregoriuse kalendri reeglid ning tagastab, kas tegemist on tõelise kuupäevaga või mitte.

  • Kasutaja sisestab mitu kuupäeva ta soovib sisestada (vahemikus 1..10)
  • Kasutaja sisestab kuupäeva numbrina formaadis “DDMMYYYY
    • Kuupäevad talletatakse massiivi
    • Aasta on liigaasta, kui seda saab jagada 4-ga.
    • Gregoriuse kalendris on 100-kordsed aastad liigaastad vaid siis, kui nad jaguvad ka 400-ga
      • 1600 ja 2000 on liigaastad;
      • 1700 ja 1800 ei ole.
    • Vihje: võid kasutada matemaatikat, et võtta välja erinevad kuupäeva osad(päev, kuu, aasta), kuna see on number.
  • Kuva ekraanil tekst, mis ütleb, kas tegu on tõese kuupäevaga või mitte (OK / FAIL)
  • BOONUS! määrata nädalapäev, kui antud kuupäev on tõene.
    • Kasutaja sisestab kuupäev 3 numbrina: päev, kuu, aasta;
      • Programm arvutab päeva numbri (Vt joonis);
      • Väljastab päeva nime (Monday, Tuesday, etc).
        • kasuta switch lauset.
    • Abiks: math.h viide
    • NB! Funktsioonis ei ole absoluutväärtused vaid ‘floor’ funktsioon.

mod” operaatorit kasutatakse selleks, et saada numbri jääk nii, et see oleks 0-6 vahemikus. Täpsemalt vaata google’st või eelmistelt slaididelt.

Näidislahendus:

Enter number of dates: 3
Enter date (DDMMYYYY): 99992001 
Enter date (DDMMYYYY): 11111990
Enter date (DDMMYYYY): 29021996
99992001 FAIL
11111990 OK Sunday
29021996 OK Thursday