# data[].attributes.body
Programmering i Sinus 1T fra Cappelen Damm:

Formelregning og potenser

Se eksempel på side 30 og 31, gjør oppgave 1.59

Andregradsformelen

Se eksempel på side 115, og gjør oppgave 3.64 og 3.65.

Prosentvis endring

Se eksempel på side 199, og gjør oppgave 5.55 og 5.56.

Finne kvadratrot

Se eksempel på side 265 - 267, gjør oppgave 6.83, 6.84, 6.85.

# data[].attributes.body
Programmering i Sinus 1P fra Cappelen Damm:

Merverdiavgift - Regneark og Python

Se eksempel på side 66-69 i den nye 1P boka fra Cappelen, gjør så oppgave 2.63 og 2.64.

Prosentvis endring i flere perioder

Gjør oppgave 3.72, 3.73 og 3.74 på side 106.

Omgjøring av enheter

Se eksempel på side 152-153, gjør så oppgave 4.77 og 4.78.

# data[].attributes.headline
Utforskning av oppgaver tilpasset realfagslærere

# data[].attributes.subject
Utforskning av oppgaver tilpasset realfagslærere

# data[].attributes.body
Nedenfor ligger mange oppgaver dere kan gruble på. Målet er at alle disse skal gi inspirasjon til bruk i fagene våre.

Jobb gjerne sammen med sidemann/kvinne. Husk at dere ikke trenger å gjøre disse oppgavene i rekkefølge, hopp gjerne til en oppgave som ser spennende ut!

# data[].attributes.body
log
log10
log(x,a)
exp(a) # e^a
sqrt(a)
sin, cos, tan
arcsin, arccos, arctan

# data[].attributes.headline
Matematiske biblioteker - For realfagslærere

# data[].attributes.subject
Matematiske biblioteker - For realfagslærere

# data[].attributes.body
Koden nedenfor vil importere et bibliotek (ferdigskrevet kode).

Matanalogi: Biblioteker er litt som ferdige sauser fra Toro, de kan du bruke med en gang, enten alene, eller sammen med andre oppskrifter. Du slipper å lage de selv.

Kodeeksempel:

import math

a = math.pi # Bruker math-biblioteket slik at vi får verdien til PI.
b = math.cos(0.5) # Bruker cos fra math-biblioteket
c = math.log(2) # Naturlige logaritmen fra math-biblioteket
d = math.log10(100) # Biggske logaritmen, fra math-biblioteket
x = 128
grunntall = 2
d = math.log(x, grunntall) # Logaritmer med valgfritt grunntall.

print(a, b, c)
print("Logaritmer med grunntall: ", grunntall, ", x = " , x, " blir: " , d)

Oppgave:
1. Kopier koden ovenfor, kjør koden. Hva ble utskriften?
2. Utforsk forskjellige tall i de forskjellige funksjonene.
3. Lag egne variabler der du kombinerer de matematiske funksjonene sammen med matematiske operatorer.
4. Hvilke andre matematiske funksjoner bruker du i undervisningen, som kunne vært nyttige?

# data[].attributes.body
Programmere: Instruksjoner til en datamaskin.

Kan sammenliknes med en oppskrift som man følger fra start til slutt.

Programmeringsspråket vi skal se på heter Python

Alle programmeringsspråk har et vokabular (ord)

Programmets ord forteller, eller styrer hva programmet gjør

Kan se kryptisk ut i starten, men vil gi mening etterhvert

Når du programmerer, skriver du en oppskrift med programmeringsspråket. Det du skriver kaller vi kode

Litt om Python

Wiki

Tenke algoritmisk: Å skrive programmer er som å lage en oppskrift

Planlegging:

Kan være lurt å starte med å planlegge programmet på norsk, før man skriver det i Python.

Dette kalles pseudokode, man skriver "kode", eller oppførsel uten å tenke på korrekt syntax (rettskriving).

Eksempel: Et program som legger sammen to tall kan formuleres slik:

Lag to variabler som begge har et tall som verdi, legg tallene sammen i en ny variabel, skriv ut summen.

tall_en = 4
tall_to = 3
sum = tall_en + tall_to
print(sum)

Eksempel: Et program som sjekker om et tall er større enn et annet kan formuleres slik:

Lag to variabler som begge har et tall som verdi, sjekk om det første tallet er større enn det andre tallet. Skriv ut "ja", dersom det er større

tall_en = 3
tall_to = 4
if tall_en > tall_to:
   print("ja")

Eksempel: Et program for å summere tall som et menneske skriver inn kan formuleres slik:

Så lenge brukeren ikke skriver inn "avslutt" gjør følgende: Les inn nye tall fra brukeren, husk summen og legg til det nye tallet. Dersom brukeren skriver inn avslutt, skriv ut summen, og avslutt programmet.

sum = 0
input_fra_bruker = input("Skriv inn tall, eller avslutt:")
while(input_fra_bruker != "avslutt"):
    sum += int(input_fra_bruker)
    input_fra_bruker = input("Skriv inn tall, eller avslutt:")
print(sum)

Skrive kode selv:

Da vi ikke får lov å installere Python på Vikenmaskinene enda, skal vi alle registrere oss, og bruke en online Python interpreter.
https://repl.it/

Kopier koden fra eksemplene ovenfor, kjør programmene på repl.it.

# data[].attributes.body
for x in range (0,3):

i = 2
while(i < 100):
print("Hei verden, yay!")
i += 1

# data[].attributes.body
En funksjon er et lite dataprogram vi kan kalle om og om igjen, fra forskjellige plasser.

def min_funksjon():
print("Dette er min funksjon")

# data[].attributes.body
Syntax i Python for dette:

min_alder = 33
if min_alder == 33:
print("Ja, den er 33!")
else:
print("Nei, den er ikke 33")

Er min_alder lik 33?

==

Er min_alder ulik 33?

!=

Er min_alder større enn 33?

>

Er min_alder mindre enn 33?

<

Er min_alder større ELLER LIK 33?

>=

Er min_alder mindre ELLER LIK 33?

<=

Programmering i Python: If else
Prøv følgende kode på deres pc'er!

M = 12
if M == 12:
     print("M er 12!")

if 0:
    print('yes')
else:
    print('no')

min_tekst = "hei der!"
if "er" in my_string:
    print('yes')
else:
    print('no')

if 5 > 8:
    print('større')
else:
    print('mindre')

my_list = [ "cat", 2, "dog", 4]
if 2 in my_list:
    print('yes')
else:
    print('no')

my_list = [ 'dog', 'cat', 'worm', 'cow']
if 'w' in my_list:
    print('true')
else:
    print('false')

# data[].attributes.body
Hvis a, så gjør du gjøre b.

# data[].attributes.headline
Programmering - Basics 3 - Keywords og statements

# data[].attributes.subject
Programmering - Basics 3 - Keywords og statements

# data[].attributes.body
Keywords er ord som allerede er definert og brukt i språket.

Variabler kan ikke hete det samme som et keyword!

Noen eksempler:

def

if

True

False

>>> import keyword
>>> print(keyword.kwlist)
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>> len(keyword.kwlist)
33
>>>

Likhetstegnet
Likhetstegnet "=" betyr bare at vi får en variabel til å peke på en verdi som er i minnet til pc'en.

Programmering i Python:

# data[].attributes.headline
Programmering - Basics 2 - Variabler og typer

# data[].attributes.subject
Programmering - Basics 2 - Variabler og typer

# data[].attributes.body
Variabler

>>> a = 2
>>> b = 3
>>> a + b
5
>>> c = a
>>> print(c)
2
>>> c = (a + b)
>>> print(c)
5

>>> a = "hei"

>>> b = "alle sammen"

>>> a+b

'heialle sammen'

>>> a = True
>>> print(a)
True
>>> b = False
>>> print(b)
False

Variabler som a og b lagres i RAM og kan hentes frem når man ønsker det.

Programmering i Python: Variabler
Prøv følgende kode og se hva som skjer:

Y = 2.3
y = "dog"
print(Y)

M = 12
print(m)

Hva skjer med denne:
2x = 4
print(2x)

my_variable = 4

print(my_variable)

my variable = 5

print(my variable)

A_2 = "HELLO"

print(A_2)

y = "kode"
x = "python"
c = y + x
print(c)

Les og lagre fra tastaturet:
my_name = input()

print(my_name)

# data[].attributes.body
Installasjon og oppsett av Python og IDLE

1. Last ned Python 3.6.2 fra: https://www.python.org/downloads/

2. Installer Python 3.6.2 (Se figuren til høyre!)

3. Start opp Python IDLE fra windows startmenyen

# data[].attributes.body
Programmeringskonsepter og noen av ordene i Python:

Variabler: Bruker til å få datamaskinen til å huske ting. Vi bruker variabler ganske likt som i matematikken: x = 2, a = 12, eller ab = 27.3

Kan også være andre typer enn tall, for eksempel tekst (kalles strenger): x = "kjeld", ab = "Dette er en setning."

Eller boolsk (fra logikken): a = False, ab = True

Variable kan endres underveis i programmet

Bytte ut verdien med noe nytt

Matematiske operatorer: +, -, *, /, og andre.

Lagring  av data(tall, ord, eller annet) i variabler er litt av nøkkelen til å programmere.

Kommentarer

Kode som blir ignorert

Brukes til å dokumentere, eller kommentere hva programmet gjør

Eksempel:

tall_en = 4
tall_to = 3
# Neste linje legger sammen tallene ovenfor!
sum = tall_en + tall_to
print(sum)

Matematiske operasjoner (aritmetikk)

Addisjon (+), Subtraksjon (-), Divisjon (/), Multiplikasjon (*), Potens (**)

Vi ønsker noen ganger å gjøre noe med verdien til en variabel:

a += 12
a *= 2
# osv.

Datamaskiners måte å skrive standard form:

0.002 --> 2*10^-3: Skrives: 2e-3.

# Skrive a = 0.002 på standardform:
a = 2e-3

Skriv til skjerm:

print("hei verden!"): Kan leses som "skriv hei verden til skjermen"

print("En måte å skrive ut variabler og tekst ", a, " - separer de med komma): For å "binde" sammen en setning kan man bruke komma for å separere hva som skal skrive ut.

Eksempel:

x = 14
KjeldSittFulleNavn = "Kjeld Karim Berg Massali"
y = 33
abc = 4.0
print(x, y, abc, KjeldSittFulleNavn)

Les inn data fra brukeren:

a = input(): En funksjon som leser inn strenger fra brukeren

Dersom vi ønsker å konvertere til heltall: b = int(a)

Dersom vi ønsker å konvertere til desimaltall: b = float(a)

Programflyt:

while (betingelse): Kan leses som "Gjør noe så lenge betingelse er sann.

if (betingelse): Kan leses som "Hvis betingelse er sann, gjør følgende."

else: Bruker i kombinasjon med if. Kan leses som "Hvis betingelse er sann, gjør følgende, ellers gjør dette."

for løkker: Ofte ønsker vi å gjøre det samme x antall ganger, her bruker vi for løkker. for x in range(6): kan leses som "Gjør følgende 6 ganger."

Øvelser:
Jobb gjerne sammen med sidemann/kvinne!

Oppgave 1:
Gå til oppgave 2.

Oppgave 2
a) Lag et program som adderer to tall, og skriver ut summen.
b) Utvid programmet: Bruk variable til å "huske" de to tallene du bruke i a)
c) Utvid programmet slik du bruker alle de matematiske operatorene nevnt ovenfor.

Oppgave 3
Arealet av et rektangel er høyde * bredde, og omkretsen er 2*(høyde + bredde). Definer to variabler med variabelnavn hoyde og bredde. Lag kode som:
a) Regner ut arealet av rektangelet med teksten: Arealet er [areal]
b) Regner ut omkretsen av rektangelet med teksten: Omkretsen er [omkrets]

Oppgave 4
Koden:

import random
a = 0
b = 4
c = random.randint(a, b)
print(c)

lager tilfeldige tall der a <= C <= b, altså C >= a og c <= b. Lag kode som:
a) Trekker et tilfeldige tall mellom 1 og 6, som en terning.
b) Trekker et tilfeldig tall mellom 0 til og med 10.
c) Trekker et tilfeldig tall mellom 10 til og med 20.
d) Utvid koden du skrev i c) til å skrive ut "Over 15" dersom tallet ble over 15.

Oppgave 5. Vår første algoritme
Lag et program som regner ut omkrets og areal av en sirkel basert på hva brukeren skriver inn! Algoritmen er slik:

1. Les inn sirkelens radius ved å bruke: radius = input("Skriv inn radius:")

2. Regn ut omkrets og lagre i en variabel med formelen: 2 * float(radius) * 3.14

3. Regn ut areal og lagre i en variabel med formelen: 3.14 * float(radius) * float(radius)

4. Skriv ut variabelene.

Oppgave 6
Skriv om programmet i oppgave 5 til å bruke formler for kuler:
Omkrets: O = 2*pi*r
Volum: V = (4*pi*r^3)/3
Areal (overflate): O = 4*pi*r^2

Oppgave 7
Karakterer kan settes ved hjelp av en formel.
Karakter = (antallPoengBesvarelse/antallMuligePoeng)*6
Skriv et program der brukeren skrive inn antall poeng, og antall mulige poeng, deretter skal programmet skrive ut karakter.

Oppgave 8
Skriv et program som ber brukeren skrive inn en tekst, bruk tekst = input(). Skriv ut "Yes" dersom teksten inneholder "hund", skriv ut "No" dersom den ikke gjør det.

Du kan sjekke om en tekst inneholder "hund" slik:
if "hund" in tekst:

# data[].attributes.body
En liste er en variabel som kan peke på mange verdier samtidig

>>> en_liste = ["hei",3,2,1,"hopp"]
>>> print(en_liste)
['hei', 3, 2, 1, 'hopp']
>>>

Vi kan hente ut en verdi fra listen (index starter på 0)

>>> a = en_liste[0]
>>> b = en_liste[1]

>>> print(a)
hei
>>> print(b)
3

Programmering i Python: Lister!
Prøv følgende kode på deres pc'er!

my_list = [5, 'old', 'new', 8, 'time', 2]
print(my_list[0])

my_list = [5, 'old', 'new', 8, 'time', 2]
print(my_list[2])

my_list = [5, 'old', 'new', 8, 'time', 2]
print(my_list[6])

my_list = [2.3, 'dog', 34, 'cat', 52]
print(my_list[-1])

x = [5, 'dog']
y = ['cat', 3.5]
print(x + y)
print(x*3)

# data[].attributes.body
Vi må starte med å leke oss litt med programmeringsspråket. --- Her er noen forslag til programmer vi skal lage:

Her kommer det forslag til programmer vi skal lage (EDX eller lignende)

Oppgave 1
Write a program which asks the user to type an integer. If the number is 2 then the program should print "two", If the number is 3 then the program should print "three", If the number is 5 then the program should print "five", Otherwise it should print "other".

Til dette bruker vi følgende syntax:
if number == 2:
print("two")
elif number ==  3:
print("three")
elif number == 5:
print("five")

Oppgave 2
Programmering av en enkel kalkulator. Be brukeren skrive inn to eller flere tall og regn ut summen, produktet og differansen. Be gjerne brukeren skrive inn ønsket regnesymbol (pluss, minus, gange, dele). Utforsk videre: Utvid gjerne med kvadratrot!

https://www.reddit.com/r/learnprogramming/comments/2a9ygh/1000_beginner_programming_projects_xpost/

https://www.daniweb.com/programming/software-development/threads/131973/5-crucial-projects-for-beginners

# data[].attributes.body
Sivilingeniør i Data - Programmerer!

Drevet til med programmering som forsker og til kampsystemer til ubåter!

Brukte Python til forskning på kunstig intelligens!

# data[].attributes.body
Mål med leksjonen i dag:

1. Intro til programmering

2. Gi en kort, og teknisk introduksjon til programmering i Python

3. Gi noen konkrete eksempler til bruk i fagene matematikk og natufag.