Dette er oppgaver som er ment som mengdetrening i programmering. Det legges ut løsningsforslag etter at vi har gått gjennom og løst oppgavene i webinaret. Se Blackboard for mer informasjon om tidspunkt for dette.
Oppgavene er strukturert på samme måte som i øvingene: Det er tre kategorier: 1(grunnleggende), 2(forventet), 3(avansert). Kategori 1 og 3 har én oppgave hver, imens kategori 2 har fire oppgaver. Oppgavene i kategori 2 er det forventet at man klarer å løse.
Står du fast? Prøv å google problemet, eller spør om tips eller hjelp på Slack :)
Temaene disse ukene er:
Hva er feil eller dårlig med variabelnavnene under? Gi en kort forklaring og gi dem til bedre variabelnavn.
a) Et tall = 123
b) 3variabelen = 3
c) Variabel1 = "teksten skal hit"
d) detførstetallet = "1"
e) %AvTallet = 15
f) SummenAvRegnestykketEr = 16
Oppgave a) «Et tall», er ugyldig fordi det ikke er lov med mellomrom i variabelnavn. Her kunne man heller brukt bare «tall» eller «EtTall», hvis det er beskrivende og unikt i programmet du skal lage. Generelt er slike vanlige ord ikke så lurt å bruke, da man lett kan glemme hva variabelen er siden navnet er lite beskrivende.
Oppgave b) «3variabelen» er ugyldig fordi man ikke kan bruke tall som første tegn i et variabelnavn. Hvis man vil ha en variabel som kun er et tall, slik som her, kan man for eksempel kalle den for «Treer» eller noe som beskriver hvilken funksjon den har i koden, for eksempel «konstant» eller «multiplikator».
Oppgave c) er et gyldig navn, men det er lite beskrivende og kan derfor være vanskelig å huske funksjonen til i koden. Oppgave d) er også et gyldig navn, men det er vanlig å skille de ulike ordene med enten å bruke Kamel-metoden (DetFørsteTallet), eller bruke understrek mellom ordene (det_første_tallet).
Oppgave e) er ugyldig på grunn av to ting: man ikke kan bruke andre tegn enn understrek og bokstaver som første tegn i et variabelnavn, og man kan ikke bruke spesialtegn noe sted i et variabelnavn.
Oppgave f) er et gyldig navn, men det burde forkortes siden det vil ta lang tid å skrive og man kan lett feilstave det. Det er praktisk å bruke korte, beskrivende navn, og her kunne det holdt å bare kalle variabelen for «summen» (vi kan ikke bruke «sum») siden det er et reservert ord i python.
Skriv et program som skriver "5 ganger 10 er 50" til konsoll ved å bruke variabler for tallene 5, 10 og 50.
## 1.2 Skriv kode her
fem = 5
ti = 10
femti = fem * ti
print(str(fem)+' ganger '+str(ti)+' er '+str(femti))
Skriv et program som bruker variablene under (erstatt variabelnavnene med mer passende navn) til å skrive forslag til e-post adresser til konsoll.
Kriterier:
Epostadressene skal bestå av fornavn og etternavn, separert med punktum, etterfulgt av @ og et valgfritt domene, for eksempel "test.testesen@bedrift.no".
Epostadressene som skrives ut skal være uten mellomrom.
Variabelen som inneholder "domene" skal ikke inneholde "@".
Epostadressen skal lagres i en egen variabel, og denne nye variabelen skal printes ut
var1 = fornavn
var2 = etternavn
var3 = domene
## 2.1 Skriv kode her
fornavn = 'Elise'
etternavn = 'Vonstad'
domene = 'ntnu.no'
epost = fornavn+'.'+etternavn+'@'+domene
print(epost.lower())
a) Hvorfor blir ikke regnestykket under regnet ut når print-setningen kjøres?
print("4 + 6")
b) Skriv et program som lagrer tallet 42 i en variabel, og skriver "Svaret på alt er 42" til konsoll ved å bruke variabelen med tallet 42.
c) Hvorfor blir to forskjellige tall printet når koden under kjøres?
a = 3.4
b = 20.5
total = a * b
print(total)
print(int(total))
### Skriv kode her
# a) Regnestykket blir ikke regnet ut fordi innholdet i print-setningen er definert som tekst.
# Da blir tallene bare skrevet ut til konsoll uten at regnestykket kjøres.
# b)
alt = 42
print('Svaret på alt er',alt)
# c) I den første print-setningen skrives "total" ut slik den er regnet ut i variabelen.
# I den andre print-setningen blir "total" definert som et heltall (int), og da brukes ikke desimalene i tallet.
Hva er feil med print-setningen under? Rett den opp og print den ut.
print('Jeg leser sannsynligvis' + antall + bøker i løpet av sydenturen, ca + int('2') ' i uka.'
# "Antall" var ikke definert som variabel. Det mangler skiller mellom de to siste elementene (int('2')) 'i uka').
# "bøker i løpet av sydenturen" er ikke definert som tekst. "ca" er ikke definert som variabel, men ska være en del
# av teksten. Det mangler slutt-parentes på print-setningen. "int('2')" prøver å definere teksten "2" som et heltall,
# og når print-setningen skiller elementene med et plusstegn må alle elementene være definert som tekst. "Antall" må
# også defineres som tekst.
### Skriv kode her
antall = 4
print('Jeg leser sannsynligvis ' + str(antall) + ' bøker i løpet av sydenturen ca 2 i uka.')
Skriv et program som lager romkoder i en kontorbygning ved å bruke informasjonen under. Romkoden er satt sammen slik: (etasjenummer)(romtype-forkortelse)(romnummer), for eksempel 03K03, som betyr etasje nr 3, K for Kontor og 03 for kontor nr 3.
Mulige verdier i variablene:
Etg: 1-6
Romtype: Kontor, møterom, lager, samtalerom
Romnummer: 1-25
Skriv ut tre eksempler på romnummer, kalt rom1, rom2 og rom3 ved å lage tre variabler som har verdier fra listen over.
## 2.2 Skriv kode her
etg1 = 2
romt1 = 'K'
romnr1 = 20
rom1 = str(etg1)+romt1+str(romnr1)
print('Rom 1:',rom1)
etg2 = 6
romt2 = 'L'
romnr2 = 1
rom2 = str(etg2)+romt2+str(romnr2)
print('Rom 2:',rom2)
etg3 = 1
romt3 = 'M'
romnr3 = 4
rom3 = str(etg3)+romt3+str(romnr3)
print('Rom 3:',rom3)