Læringsmål:
- Kap løkker PLACEHOLDER
Oktober 2014 ma ti on to fr lo so 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Dette problemet må brytes ned i mindre oppgaver. Fra utskriften ser man at den består av tre deler:
- Månedsnavn og årstall. Første rad.
- Dagsnavn. Andre rad.
- Datoer for alle dager på riktig plass. Tredje til syvende rad.
a) Andre rad er en enkel iterasjon gjennom en liste av navn på dagene. De siste radene er mer bry: Disse utgjør en 6x7 matrise hvor radene er uker og kolonnene er ukedager. Denne matrisen kan se slik ut:
month = 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 0 0 0 0 0 0 0
Tallet 0 representerer dager som ikke nnes i måneden.
Neste steg er å denere en funksjon som lager denne matrisen. Det gjør følgende funksjon:
function calendar = getCalendar ( year , month ) startDay = getMonthStartDay ( year , month ); numDays = daysInMonth ( year , month ); calendar = zeros ( 6, 7 ); date = 0; for week = 1:6 for day = 1:7 if ( date == 0 ) if ( week == 1 && day == startDay ) date = 1; end else if ( date < numDays ) date = date + 1; else date = 0; end end calendar (week , day ) = date ; end end end