Variablar, matematiske operatorar og funksjonen print() - Naturfag (PB) - NDLAHopp til innhald
Verktøy og mal
Variablar, matematiske operatorar og funksjonen print()
Nokre av dei enklaste programma vi kan lage, er slike som reknar ut arealet av til dømes eit rektangel og skriv ut resultatet til skjermen.
Eit veldig kort program
Nedanfor kan du køyre eit program som berre har éi linje med kode i ein interaktiv programmeringseditor, ein trinket. Trykk på avspelingsknappen (den svarte trekanten til høgre over der det står "main.py") for å køyre programmet. Resultatet av programmet blir vist i det høgre feltet i programmeringsvindauget. Programmet er skrive i programmeringsspråket Python. (NB: Det kan ta litt tid frå du trykker på avspelingsknappen til programmet blir køyrd.)
Vart resultatet som forventa? Kva gjer programmet når koden til programmet berre inneheld kommandoenprint(6*8)? (Sjå bort ifrå reklameteksten på første linje.)
I Python er det funksjonen print() som sørgjer for at noko blir skrive ut på skjermen. Sjå boksen "Pythonkode å lære seg" nedanfor.
Eit litt større program
Vi ønskjer å lage eit program som reknar ut arealet av eit rektangel med lengde lik 6 og og breidde lik 8. Prøv å skrive ned algoritmen til eit program som gjer dette.
Løysingsforslag
Algoritmen kan sjå slik ut:
Set lengda av eit rektangel til 6.
Set breidda av rektangelet til 8.
Multipliser lengda og breidda og kall svaret areal.
Skriv resultatet til skjermen.
Skilnaden mellom denne algoritmen og algoritmen til det første programmet er ikkje så stor – i praksis. Skilnaden er at her betyr tala noko fysisk, og då blir algoritmen litt annleis fordi han må seie noko om kva tala betyr.
Programmet kan sjå slik ut:
Klarer du å forstå kva desse fire kodelinjene betyr? Skriv ned det du trur skjer i dette programmet på kvar linje.
Løysing
På den første linja lagar vi ein såkalla variabel (= ein lagringsplass, sjå lenger ned) med namnet lengde og set han lik det heile talet 6.
På den andre linja lagar vi ein annan variabel med namnet breidde og set han lik (det heile talet) 8.
På den tredje linja lagar vi ein variabel med namnet areal og set han lik produktet av variablane lengde og breidde. areal får verdien 48 sidan verdien av lengde og breidde er 6 og 8.
På den fjerde linja bruker vi funksjonen print() (sjå lenger ned), som betyr at noko skal skrivast ut til skjermen. Det som skal skrivast ut, er det som står i parentesen til funksjonen og blir kalla argumentet til funksjonen. Sidan argumentet er variabelen areal, vil verdien til variabelen skrivast ut. På skjermen vil det derfor stå "48". (Dette er det einaste som vil visast på skjermen. Alt det andre går føre seg internt i datamaskina.)
Nedanfor har vi ein ny interaktiv programmeringseditor der du kan prøve å køyre programmet ovanfor. Det gjer du ved å skrive eller kopiere koden frå programmet inn i feltet til venstre nedanfor og trykkje på avspelingsknappen. Du kan òg skrive programmet inn i eit anna programmeringsmiljø dersom du bruker det (Spyder, PyCharm eller liknande). Fungerer programmet slik det skal?
Pythonkode å lære seg
Vis innhald
Variablar
Ein variabel er ein intern lagringsplass for ein verdi internt i datamaskina. Oppretting av ein variabel skjer ved å gi han ein verdi.
Eksempel:
breidde = 8
Variabelen breidde blir oppretta, får verdien 8 og blir med det ein heiltalsvariabel sidan 8 er eit heilt tal.
breidde = 8.5
Variabelen breidde blir oppretta, får verdien 8,5 og blir med det ein flyttalsvariabel sidan 8,5 er eit tal med desimalar. Merk at Python, som GeoGebra, vil ha punktum som desimalteikn.
setning = "Her er vi"
Variabelen setning blir oppretta, får verdien "Her er vi" og blir med det ein tekststrengvariabel (eller berre "strengvariabel") fordi innhaldet er tekst.
Dette er dei fire aritmetiske operatorane pluss, minus, gange og dele.
Andre matematiske operatorar
Potens
**
Operatoren for å opphøge i noko er to stjerneteikn.
Eksempel:
2**3
Dette betyr "2 opphøgd i 3" og returnerer 8.
Heiltalsdivisjon og rest
// og %
Døme:
7//2 gir heiltalsdelen til svar, altså 3.
7%2 gir resten vi får ved manuell deling, altså 1.
Forklaring: Vi har at , og dersom vi deler manuelt,
7:2=361
får vi resten 1.
print()
Funksjonen skriv ut til skjermen det som står mellom parentesane.
Eksempel:
print(8)
Funksjonen skriv ut 8 på skjermen.
print(areal)
Funksjonen skriv ut verdien av variabelen areal på skjermen.
print("Hei")
Funksjonen skriv ut teksten "Hei" (utan hermeteikna) på skjermen.
print("Breidda av rektangelet er", breidde, ".")
Funksjonen skriv ut teksten "Breidda av rektangelet er 8 ." på skjermen (dersom verdien av variabelen breidde er 8). Merk at vi bruker komma til å skilje tekststrengen og variabelen.
print(f"Breidda av rektangelet er {breidde}.")
Ein alternativ måte å lage same utskrift på er vist over. Her bruker vi ein såkalla f-streng. Koden blir ofte betre lesbar på denne måten sidan vi no kan bruke variablar med sløyfeparentes rundt direkte i setninga.
print("Denne setninga er så lang at vi har" " skrive kommandoen på to linjer.")
Vi kan skrive ein print()-kommando over to linjer ved å dele tekstrengen og setje inn ekstra hermeteikn.
Aktivitetar
a) Algoritme
Vi ønskjer å skrive om programmet over slik at det reknar ut arealet av eit anna rektangel. Vel storleik på det nye rektangelet sjølv, og skriv om algoritmen frå det originale programmet.
b) Koding
Endre programmet etter den nye algoritmen, og køyr det for å teste at det fungerar. Bruk gjerne den interaktive programmeringseditoren som du brukte ovanfor.
c) Algoritme
Vi ønskjer no å lage eit program som kan rekne ut breidda i eit rektangel når vi kjenner arealet og lengda i rektangelet. Vel passande mål på arealet og lengda, og skriv algoritmen for eit slik program.
Tips til aktivitet c)
Formelen for arealet A av eit rektangel med lengde l og breidde b er
Lag programmet etter algoritmen i c), og test at det fungerer. Prøv òg med andre tal for areal og lengde.
Grublisar
1. Tenk deg at du er ein brukar som skal køyre eitt av programma på denne sida. Til vanleg når eit program blir køyrt, vil ikkje brukaren av programmet sjå sjølve programmeringskoden. Vi ser for eksempel ikkje programkoden til spelet Tetris når vi speler det.
Kva er hovudproblemet med programma på denne sida?
Kommentar til grublis 1
Det einaste programma gir av tilbakemelding på skjermen, er eit talsvar. Det står ingen ting om kva dette talet er for noko. Ein brukar av programmet vil ikkje skjøne stort av kva som skjer.
Den som lagar eit program, må sørgje for å lage utskrifter til skjermen som fortel brukaren kva programmet gjer. Dette får du øvd på i øvingsoppgåvene til denne sida. Dei finn du i artikkelen Programmering med variablar, operatorar og funksjonen print()
2. Kvifor bruker vi variablane lengde, breidde og areal i programma på denne sida? Treng vi dei?
Kommentar til grublis 2
Som det første programmet på sida viser, kan vi rekne ut arealet utan å bruke variablar, men vi skal òg lage program der brukaren av programmet sjølv skal kunne skrive inn måla på figuren (utan å endre programkoden). Då er det praktisk å bruke variablar.
Løysingsforslag til aktivitetane
Løysingsforslag aktivitet a)
Vi set måla på rektangelet til 12 x 10. Algoritmen kan sjå slik ut:
Set lengda av eit rektangel til 12.
Set breidda av rektangelet til 10.
Multipliser lengda og breidda og kall svaret areal.
Skriv resultatet til skjermen.
Løysingsforslag aktivitet b)
Programmet kan sjå slik ut i Python:
Løysingsforslag aktivitet c)
Vi vel at arealet av rektangelet skal vere 48 og lengda 6. Algoritmen kan sjå slik ut:
Set lengda av eit rektangel til 6.
Set arealet av rektangelet til 48.
Divider arealet med lengda og kall svaret breidde.