Læringsmål:
- Structs
- Utskrift
- Input/Output
- Betingelser
- While-løkkerStrukt
Pensum:
- 3.3 - Input and Output
- 3.7 - User-Defined Functions That Return a Single Value
- 4.1 - The if statement
- 4.2 - The if-else statement
- 4.3 - Nested if-else statements
- 5.3 - While loops
- 8.2 - Structures Kap 8
a)
Lag variabelen date. Dette skal være en
...
struct med feltene day, month og year. Disse feltene skal være satt til 20, 5 og 1992.
Code Block | ||
---|---|---|
| ||
>> ???????????????????
date =
struct with fields:
day: 20
month: 5
year: 1992 |
b)
Lag funksjonen printDate. Den tar
...
inn datostruktur date, fra oppgåve a) som parameter og skriver ut datoen slik:
Code Block | ||
---|---|---|
| ||
>> printDate(date) 20.05. |
...
1992 |
c)
...
Lag variabelen person som en
...
struct med feltene name, phone
...
og dateOfBirth med verdiene 'Avogadro',
...
60221413
...
og
...
structen date
...
. date skal ha verdiene
...
9,
...
8 og 1776 for variablene day, month og year.
Code Block | ||
---|---|---|
| ||
>> ?????????????????
person =
struct with fields:
name: 'Avogrado'
phone: 60221413
dateOfBirth: [1×1 struct] |
d)
Lag funksjonen printPerson(person)
. Den tar inn en personstruktur som parameter og skriver ut navn, fødselsdato og telefonnummeret til person.
Utskirften Utskriften skal se slik ut:
Avogadro, 09.08.1776, 60221413
Tips: Gjenbruk tidligere funksjonfunksjoner.
e)
Lag funksjonen promptPerson()
. Denne ber brukeren om navn, dag, måned, år og telefonnrtelefonnummer. Funksjonen skal returnere en personstruktur med gitt navn, fødselsdag og telefonnummer.
Eksempel på et kall av denne funksjonen:
Code Block | ||
---|---|---|
| ||
>> promptPerson Hva heter du? Avogadro Hvilken dag er du født? 09 Hvilken måned er du født? 08 Hvilket år er du født? 1776 Hva er telefonnummeret ditt? 60221413 ans = name: 'Avogadro' dateOfBirth: [1x1 struct] phone: 60221413 |
f)
Lag funksjonen getAge(person)
som returnerer ,
som tar inn en person-struct som parameter og returnerer alderen til personen.
Dagens dato finnes slik: [Y M D] = datevec(now);
Code Block | ||
---|---|---|
| ||
getAge ( struct ('name', 'Per', 'dateOfBirth ', struct ('day ', 20, 'month ', 5, 'year', 1992), 'phone', 199041545045 ') )) % skal skrive ut 23returnere 25 getAge ( struct ('name', 'Mis', 'dateOfBirth ', struct ('day ', 1530, 'month ', 1210, 'year', 1994), 'phone', 199094255783 ') )) % skal skrive ut 22returnere 23 |
g)
Lag funksjonen batchRegisterPersons()
. Denne ber brukeren om å registrere en person. Deretter skal funksjonen spørre om brukeren vil registrere flere personer og gjenta dette til brukeren er ferdig. Da skal en vektor med de registrerte personene returneres.
Eksempel på kall av funksjonen:
Code Block | ||
---|---|---|
| ||
Hva heter du? PerErling Hvilken dato er du født? 1518 Hvilken måned er du født? 74 Hvilket år er du født? 19901994 Hva er telefonnummeret ditt? 48151623 Skal du registrere flere personer (ja/nei)? ja Hva heter du? PålMis Hvilken dato er du født? 1330 Hvilken måned er du født? 410 Hvilket år er du født? 19911994 Hva er telefonnummeret ditt? 4943243494255783 Skal du registrere flere personer (ja/nei)? nei ans = 1x2 struct array with fields: name dateOfBirth phone |
h)
Lag funksjonen listPersons(listOfPersons)
som tar enn en vektor med personer person-structer som parameter og skriver ut hver person slik oppgave på samme måte som i oppgave d) viser.