...
Code Block | ||
---|---|---|
| ||
function name = getMonthName( month ) switch (month) case 1 name = 'Januar'; case 2 name = 'Februar'; case 3 name = 'Mars'; case 4 name = 'April'; case 5 name = 'Mai'; case 6 name = 'Juni'; case 7 name = 'Juli'; case 8 name = 'August'; case 9 name = 'September'; case 10 name = 'Oktober'; case 11 name = 'November'; case 12 name = 'Desember'; otherwise name = 'Ikke en gyldig maaned'; end end |
b) Bare å kopiere fra oppgavebeskrivelsen.
c)
Her holder det at studenten skriver end de første 12 iterasjonene. Poenget er å vise forståelse for hva som skjer (hvordan variablene week, day og date) endres.
Iterasjon | week | day | date |
---|---|---|---|
1 | 1 | 1 | 0 |
2 | 1 | 2 | 0 |
3 | 1 | 3 | 1 |
4 | 1 | 4 | 2 |
5 | 1 | 5 | 3 |
6 | 1 | 6 | 4 |
7 | 1 | 7 | 5 |
8 | 2 | 1 | 6 |
9 | 2 | 2 | 7 |
10 | 2 | 3 | 8 |
11 | 2 | 4 | 9 |
12 | 2 | 5 | 10 |
13 | 2 | 6 | 11 |
14 | 2 | 7 | 12 |
15 | 3 | 1 | 13 |
16 | 3 | 2 | 14 |
17 | 3 | 3 | 15 |
18 | 3 | 4 | 16 |
19 | 3 | 5 | 17 |
20 | 3 | 6 | 18 |
21 | 3 | 7 | 19 |
22 | 4 | 1 | 20 |
23 | 4 | 2 | 21 |
24 | 4 | 3 | 22 |
25 | 4 | 4 | 23 |
26 | 4 | 5 | 24 |
27 | 4 | 6 | 25 |
28 | 4 | 7 | 26 |
29 | 5 | 1 | 27 |
30 | 5 | 2 | 28 |
31 | 5 | 3 | 29 |
32 | 5 | 4 | 30 |
33 | 5 | 5 | 31 |
34 | 5 | 6 | 0 |
35 | 5 | 7 | 0 |
36 | 6 | 1 | 0 |
37 | 6 | 2 | 0 |
38 | 6 | 3 | 0 |
39 | 6 | 4 | 0 |
40 | 6 | 5 | 0 |
41 | 6 | 6 | 0 |
42 | 6 | 7 | 0 |
cd)
Code Block | ||
---|---|---|
| ||
function day = getYearStartDay ( year ) day = 1; for i = 1900:( year -1) if isLeapYear (i) day = day + 2; else day = day + 1; end if day >= 8 day = day - 7; end end end |
de)
Code Block | ||
---|---|---|
| ||
function day = getMonthStartDay ( year , month ) if month > 0 && month < 13 day = getYearStartDay ( year ); for i = 1 : month -1 day = day + daysInMonth (yeari , iyear); end while ( day > 7) day = day - 7; end else day = 0; end end |
eller
f)
Code Block | ||
---|---|---|
| ||
function printDays ( days ) for week = 1:6 for day = getMonthStartDay ( year , month ) if month > 0 && month < 13 day = getYearStartDay ( year ) - 1 1:7 if days (week , day ) == 0 fprintf (' '); else if days (week , day ) < 10 fprintf (' '); end fprintf ('%d ', days (week , day )); end end fprintf ('\n'); end end |
g)
Code Block | ||
---|---|---|
| ||
function printCalendar ( year , month )
monthName = getMonthName ( month );
days = getCalendar ( year , month );
fprintf (' %s %d\n', monthName , year );
fprintf ('ma ti on to fr lo so\n');
printDays ( days );
end |
h)
Nye funksjoner:
Code Block | ||
---|---|---|
| ||
function weekNumber = getWeekNumber(year, month, day) daysSoFar = day; ; for i = 1 : ( month -1 ) day daysSoFar = daydaysSoFar + daysInMonth (year i, iyear); end daydayOfWeek = mod (day (getMonthStartDay(year, month) + day - 1, 7); day = day + 1; else day = 0; end end if dayOfWeek == 0 dayOfWeek = 7; end weekNumber = floor((daysSoFar - dayOfWeek + 10) / 7); if weekNumber < 1 weekNumber = getWeekNumber(year - 1, 12, 31); end end |
Endrede funksjoner:e)
Code Block | ||
---|---|---|
| ||
function printDays (days, daysmonth, year) for week = 1:6 day = 1 + (week - 1) * 7; weekNumber = getWeekNumber(year, month, day); fprintf('%i\t', weekNumber); for day = 1:7 if days (week , day ) == 0 fprintf (' '); else else if days (week , day ) < 10 fprintf (' '); end end fprintf ('%d ', days (week , day )); end end end end fprintf ('\n'); end end |
...
endend |
Code Block | ||
---|---|---|
| ||
function printCalendar ( year , month ) monthName = getMonthName ( month ); days = getCalendar ( year , month ); fprintf (' %s\t%s %d\n', monthName , year ); fprintf ('maUke\tma ti on to fr lo so\n'); printDays (days, daysmonth, year); end |