IN1000 høst2024
Introduksjon til objektorientert programmering (Python)
02.06: Differansen mellom to heltall
Filnavn: differanse.py
Lag en prosedyre som ber om og leser inn to heltall. Prosedyren skal deretter regne ut differansen mellom de to tallene og skrive ut svaret. Kjør programmet for å sjekke at alt fungerer som det skal.
Her er et eksempel på hvordan en kjøring av programmet kan se ut:
Oppgi verdien til x:
> 25
Oppgi verdien til y:
> 19
Differansen mellom x og y er 6.
Du behøver ikke tenke på at det første tallet kan være mindre enn det andre. Det er ikke nødvendig å regne ut absoluttverdien av differansen (men prøv gjerne å finne ut hvordan det gjøres, dersom du ønsker en ekstra utfordring).
def differanse():
inp = input("Oppgi verdien til x:\n> ")
x = int(inp)
inp = input("Oppgi verdien til y:\n> ")
y = int(inp)
print("Differansen mellom x og y er", x - y)
differanse() # Husk å kalle prosedyren!
02.14 Kodeflyt igjen
Dette er en penn- og papiroppgave
Forklar i hvilken rekkefølge de forskjellige linjene utføres når vi kjører programmet, ved å skrive tall foran linjene i programmet.
Hvis en linje kjøres flere ganger (for eksempel ved flere kall på samme funksjon) kan du skrive flere tall ved siden av setningen.
def kvadrat():
tall = input("Tall: ")
tall = int(tall)
print(tall, "*", tall, "=", tall * tall)
a = True
b = False
if a:
kvadrat()
if b:
kvadrat()
print("En gang til:")
kvadrat()
Visualisering med Python Tutor
5,12| def kvadrat():
6,13| tall = input("Tall: ")
7,14| tall = int(tall)
|
8,15| print(tall, "*", tall, "=", tall * tall)
|
1| a = True
2| b = False
|
3| if a:
4| kvadrat()
|
9| if b:
| kvadrat()
|
10| print("En gang til:")
11| kvadrat()
NB: Merk at programmet egentlig leser inn def kvadrat()
først slik at når prosedyren er kalt, vet programmet hvilket linje å hoppe tilbake til. Derfor ville det også vært riktig å skrive '1' ved den første linjen. Det viktigste med oppgaven er å vise at du har forstått hvordan og hvor koden flyter inn i prosedyren.
02.22: Kodeflyt med prosedyrer
Dette er en penn- og papiroppgave
Forklar i hvilken rekkefølge de forskjellige linjene utføres når vi kjører programmet, ved å skrive tall foran linjene i programmet.
Hvis en linje kjøres flere ganger (f.eks. ved flere kall på samme prosedyre) kan du skrive flere tall ved siden av linjen.
def prosedyre_a():
navn = input("Navn: ")
print("Hei,", navn)
def prosedyre_b():
alder = int(input("Alder: "))
print("Om ti år er din alder", alder)
def start():
a = 5
b = 5
if a > b:
b = 10
elif b > a:
prosedyre_a()
else:
prosedyre_b()
print(a + b)
start()
prosedyre_a()
14|def prosedyre_a():
15| navn = input("Navn: ")
16| print("Hei,", navn)
|
9|def prosedyre_b():
10| alder = int(input("Alder: "))
11| print("Om ti år er din alder", alder)
|
2|def start():
3| a = 5
4| b = 5
|
5| if a > b:
| b = 10
6| elif b > a:
| prosedyre_a()
7| else:
8| prosedyre_b()
|
12| print(a + b)
|
1|start()
13|prosedyre_a()
NB: Merk at programmet egentlig leser inn definisjonene av prosedyrene først slik at når en prosedyre er kalt, vet programmet hvilket linje å hoppe tilbake til. Derfor ville det også vært riktig å skrive '1' ved def prosedyre_a():
, '2' ved def prosedyre_b():
, og '3' ved def start():
. Det viktigste med oppgaven er å vise at du har forstått hvordan og hvor koden flyter inn i prosedyren.