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

Compare with Current View Page History

« Previous Version 28 Next »

Læringsmål:

  • If-setninger
  • Tilfeldige tall

Pensum

  • Kap 1.6
  • Kap 2.1.3
  • Kap 3.7
  • Kap 4.1 - 4.3


En sprø professor har et frivillig fag om "tilfeldighet". Han bedømmer eksamen etter to faktorer: En tilfeldig poengsum og en svært uformell gruppering av håndskrift: fin eller stygg. Fin skrift trekker en hel karakter opp, mens stygg skrift trekker en hel karakter ned. Han gir ikke ut karakterer over A eller lavere enn F. 
Det skal lages et program som skriver ut hvor mange poeng en elev fikk, karakteren dette tilsvarer, og hvorvidt håndskriften trakk eleven opp eller ned. En eksempelutskrift fra å kjøre programmet kan være som følger:

"Du fikk 87 poeng på eksamen, en B. Fordi du skrev stygt ble dette en C."

Vi skal gjøre dette ved å bryte ned problemet i mindre deler. 

a) Lag en funksjon som returnerer en bokstavkarakter basert på antall poeng. Prototypen skal se slik ut: "function [grade] = num2grade(points)" 

Poenggrensene er som følger:

ABCDEF
100-8988-7776-6564-5352-4140-0

Skriv ut en feilmelding om antall poeng ikke er et heltall eller er utenfor skalaen. 

Tips: Bruk Matlabs innebygde funksjon error().

b) Skriv funksjonen evaluateGrade(points, handWriting). Den skal ha to parametre: en poengsum (heltall) og en boolsk verdi for kvaliteten på håndskriften. Fin håndskrift = true, stygg håndskrift = false.                                        Den skal deretter returnere hva en bokstavkarakter

Tips: Bruk num2grade og det at 'B' + 1 = 'A'.

c) Det er behov for en funksjon randomPoints() som generer en tilfeldig poengsum (heltall!) fra 0 til 100, og returnerer denne. Lag denne og test at den funker med: num2grade(randomGrade)

d) Lag også en funksjon randomHandW() som returnerer en tilfeldig håndskrift, true (fin) eller false (stygg).

e) num2grade(points), evaluateGrade(points, handWriting), randomHandW() og randomPoints() skal settes sammen. Funksjonen grades() skal bruke funksjonene fra de tidligere deloppgavene til å generere en tilfeldig poengsum og håndskrift, og deretter skrive ut til brukeren hva poengsummen ble, hvilken karakter det tilsvarer, og hvordan håndskriften påvirket karakteren.

     Eksempel på kjøring av grades():

         grades()

                   Du fikk 70 poeng på eksamen, en C. Fordi du skrev fint ble dette en B.

  • No labels