You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Læringsmål:

  • For-løkker
  • If-setninger

Pensum:

  • Kap 4.1 - 4.3
  • Kap 5.4


 

Legg inn funksjonen getCalendar (se vedlegg). Denne krever daysInMonth og getMonthStartDay, se PLACEHOLDER. Skuddår må være med i beregningene. Du kan bruke lene daysInMonth.m og isLeapYear.m . 

For å kunne denere funksjonen getMonthStartDay trenger vi først å vite hvilken dag året starter på.

a) Lag funksjonen getYearStartDay. Funksjonen skal ta inn et årstall som parameter og returnere hvilken ukedag året starter på (1 = Mandag, 2 = Tirsdag, ..., 7 = Søndag). 
Tips: Året 1900 startet på en mandag. For hvert år ytter startdagen seg med en dag. Det vil si at 1901 startet på en tirsdag. Hvis året er et skuddår, ytter startdagen i neste år seg med to dager.

 For å teste denne funksjonen kan du kjøre følgende skript:

getYearStartDay (1900) % skal skrive ut 1
getYearStartDay (1901) % skal skrive ut 2
getYearStartDay (1902) % skal skrive ut 3
getYearStartDay (1903) % skal skrive ut 4
getYearStartDay (1904) % skal skrive ut 5
getYearStartDay (1905) % skal skrive ut 7
getYearStartDay (1906) % skal skrive ut 1
getYearStartDay (2012) % skal skrive ut 7


b) Lag funksjonen getMonthStartDay. Den skal ta inn et årstall og et månedsnummer som parameter (1 = Januar, 2 = Februar, ..., 12 = Desember). Funksjonen skal returnere hvilken ukedag måneden starter på (1 = Mandag, 2 = Tirsdag, ..., 7 = Søndag). 

getMonthStartDay (2012 , 0) % skal skrive ut 0
getMonthStartDay (2012 , 1) % skal skrive ut 7
getMonthStartDay (2012 , 2) % skal skrive ut 3
getMonthStartDay (2012 , 3) % skal skrive ut 4
getMonthStartDay (2012 , 4) % skal skrive ut 7
getMonthStartDay (2012 , 5) % skal skrive ut 2
getMonthStartDay (2012 , 6) % skal skrive ut 5
getMonthStartDay (2012 , 7) % skal skrive ut 7
getMonthStartDay (2012 , 8) % skal skrive ut 3
getMonthStartDay (2012 , 9) % skal skrive ut 6
getMonthStartDay (2012 , 10) % skal skrive ut 1
getMonthStartDay (2012 , 11) % skal skrive ut 4
getMonthStartDay (2012 , 12) % skal skrive ut 6
getMonthStartDay (2012 , 13) % skal skrive ut 0

 

 

 

  • No labels