diff --git a/Losningsforslag/Jupyter Notebooks/Oving01/Bakekurs lf.ipynb b/Losningsforslag/Jupyter Notebooks/Oving01/Bakekurs lf.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..c142c6fc0bb9c70eccac8329c563a1e82bcb75ea
--- /dev/null
+++ b/Losningsforslag/Jupyter Notebooks/Oving01/Bakekurs lf.ipynb	
@@ -0,0 +1,80 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "a)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "antallCookies = int(input(\"Hvor mange cookies ønsker du å bake? \"))\n",
+    "gramSukker = antallCookies/48 * 400\n",
+    "gramSmør = antallCookies/48 * 320\n",
+    "gramSjokolade = antallCookies/48 * 500\n",
+    "egg = antallCookies/48 * 2\n",
+    "hvetemel = antallCookies/48 * 460\n",
+    " \n",
+    "print(\"Antall Cookies:\", antallCookies, \" \\nsukker(g):\", gramSukker,\n",
+    "      \"\\nsmør(g):\", gramSmør, \"\\nsjokolade(g):\", gramSjokolade, \"\\negg:\", egg,\n",
+    "      \"\\nhvetemel(g):\", hvetemel)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "b)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "cookies1=int(input(\"Hvor mange cookies vil du lage? \"))\n",
+    "cookies2=int(input(\"og hvor mange cookies vil du lage nå? \"))\n",
+    "cookies3=int(input(\"og hvor mange cookies vil du lage til slutt? \"))\n",
+    " \n",
+    "sukker1=cookies1/48*400\n",
+    "sukker2=cookies2/48*400\n",
+    "sukker3=cookies3/48*400\n",
+    "sjokolade1=cookies1/48*500\n",
+    "sjokolade2=cookies2/48*500\n",
+    "sjokolade3=cookies3/48*500\n",
+    " \n",
+    "print(\"Antall cookies: \\tsukker(g) \\tsjokolade(g)\" )          \n",
+    "print(str(cookies1).ljust(17), str(sukker1).rjust(15), str(sjokolade1).rjust(17))\n",
+    "print(str(cookies2).ljust(17), str(sukker2).rjust(15), str(sjokolade2).rjust(17))\n",
+    "print(str(cookies3).ljust(17), str(sukker3).rjust(15), str(sjokolade3).rjust(17))"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/Losningsforslag/Jupyter Notebooks/Oving01/Geometri lf.ipynb b/Losningsforslag/Jupyter Notebooks/Oving01/Geometri lf.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..7b6466c8499e00a8bffcb16166324ab9049af7df
--- /dev/null
+++ b/Losningsforslag/Jupyter Notebooks/Oving01/Geometri lf.ipynb	
@@ -0,0 +1,68 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "a) og b)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Vi har en sirkel med radius 5\n",
+      "Omkretsen er 31.400000000000002\n",
+      "Arealet er 78.5\n",
+      "Sylinder med høyde 8 : Volumet er, volum\n"
+     ]
+    }
+   ],
+   "source": [
+    "r = 5\n",
+    "print(\"Vi har en sirkel med radius\", r)\n",
+    "omkrets = 2 * 3.14 * r\n",
+    "print(\"Omkretsen er\", omkrets)\n",
+    "#b) print(\"Omkretsen er\", format(omkrets, '.2f'))\n",
+    "areal = 3.14 * r**2\n",
+    "print(\"Arealet er\", areal)\n",
+    "h = 8\n",
+    "volum = areal * h\n",
+    "print(\"Sylinder med høyde\", h, \": Volumet er, volum\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "c)  Det skyldes at flyttall ikke lagres nøyaktig i Python."
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/Losningsforslag/Jupyter Notebooks/Oving01/Input og variable lf.ipynb b/Losningsforslag/Jupyter Notebooks/Oving01/Input og variable lf.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..a527e3ac5f79ecbbf4cf18752511811ac35d30ac
--- /dev/null
+++ b/Losningsforslag/Jupyter Notebooks/Oving01/Input og variable lf.ipynb	
@@ -0,0 +1,109 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "a)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "print(input(\"Navn? \"), \"- fint navn!\")\n",
+    "print(input(\"Favorittfag? \"), \"- interessant!\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "b)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "navn = input(\"Navn? \")\n",
+    "print(\"Hei,\", navn)\n",
+    "fag = input(\"Favorittfag? \")\n",
+    "print(fag, \"- interessant!\")\n",
+    "print(\"Ha en fin dag,\", navn)\n",
+    "print(\"- og lykke til med\", fag)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "c)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import math\n",
+    "   \n",
+    "r = 5.4\n",
+    "h = 7.9\n",
+    "print(\"Har en sirkel med radius\", r, \"som er grunnflate i en sylinder med høyde\", h)\n",
+    "omkrets = math.tau * r\n",
+    "print(\"Omkrets av sirkelen:\", omkrets)  #tau er det samme som 2 pi\n",
+    "areal_sirkel = math.pi * r**2\n",
+    "print(\"Areal av sirkelen:\", areal_sirkel)\n",
+    "areal_sylinder = omkrets * h + 2 * areal_sirkel\n",
+    "print(\"Areal av sylinderen:\", areal_sylinder)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "d)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "fornavn = \"Per\"\n",
+    "ideal_alder = 42\n",
+    "kundensAlder = 37\n",
+    "differanse = ideal_alder - kundensAlder\n",
+    "print(fornavn, \"er\", differanse, \"Ã¥r unna idealalderen\")"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/Losningsforslag/Jupyter Notebooks/Oving01/James Bond lf.ipynb b/Losningsforslag/Jupyter Notebooks/Oving01/James Bond lf.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..02d69f15f7c9b28c8eb696be2355ea2cf4f9ad9f
--- /dev/null
+++ b/Losningsforslag/Jupyter Notebooks/Oving01/James Bond lf.ipynb	
@@ -0,0 +1,188 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "a)\n",
+    "\n",
+    "Denne løsningen klarer seg med det som er pensum som er undervist før øvingen, men har en liten skjønnhetsfeil (det kommer .0 bak tall som skal være heltall)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "tall = float(input(\"Tallet som skal avrundes: \"))\n",
+    "d = int(input(\"Ønsket antall desimaler: \"))\n",
+    "faktor = 10 ** d\n",
+    "resultat = int(tall * faktor + 0.5) / faktor\n",
+    "print(\"Avrundet til\", d, \"desimaler:\", resultat)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "For å få vekk skjønnhetsfeilen er det mest hensiktsmessig å bruke en if-setning:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "tall = float(input(\"Tallet som skal avrundes: \"))\n",
+    "d = int(input(\"Ønsket antall desimaler: \"))\n",
+    "resultat = int(tall + 0.5)\n",
+    "faktor = 10 ** d\n",
+    "resultat = int(tall * faktor + 0.5) / faktor\n",
+    "if d <= 0:  # skal ende med et heltall\n",
+    "    resultat = int(resultat)      \n",
+    "print(\"Avrundet til\", d, \"desimaler:\", resultat)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "b) Ideen her er å sette sammen heltallsdel og desimaldel til ett heltall og gjøre avrundingen på det (siden heltall alltid lar seg representere eksakt), da kan vi bruke round() med negativt antall desimaler for å kvitte oss med passende mange desimaler. Hvor mange kan regnes ut som differansen mellom antall desimaler vi har (lengden av desimalstrengen) og antallet vi ønsker. De overflødige desimalene kuttes vekk med heltallsdivisjon og til slutt må punktumet settes tilbake på rett plass (ved hjelp av heltallsdivisjon og modulo)."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "hel = input(\"Oppgi heltallsdelen av tallet (det foran punktum): \")\n",
+    "des = input(\"Oppgi desimaldelen av tallet (det bak punktum): \")\n",
+    "inn_des = len(des) #lengden av strengen, dvs antall desimaler nå\n",
+    "tall = int(hel + des)\n",
+    "ant = int(input(\"Oppgi ønsket antall desimaler i avrunding: \"))\n",
+    "kuttes = max(inn_des - ant, 0) #hvor mange desimaler skal kuttes\n",
+    "avr = round(tall, -kuttes)\n",
+    "# bruker heltallsdivisjon for å finne sifrene som er heltallet\n",
+    "nytt_heltall = avr // 10 ** inn_des\n",
+    "hel_ut = str(nytt_heltall)\n",
+    "# bruker modulo for å finne sifrene som er desimaler\n",
+    "# og deretter heltallsdivisjon for å kutte desimaler som skal bort\n",
+    "nytt_destall = (avr % 10**inn_des) // 10**kuttes\n",
+    "# setter sammen tallet, \".\" tilbake på riktig plass\n",
+    "# bool(ant) blir False hvis ant er 0, da tom streng for desimaldel\n",
+    "tall_ut = str(nytt_heltall) + (\".\" + str(nytt_destall)) * bool(ant)\n",
+    "d = \"desimal\" + \"er\" * bool(ant-1)\n",
+    "print(hel + \".\" + des, \"avrundet til\", ant, d, \"blir\", tall_ut)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "c) Denne kan løses på mange måter. En mulighet er å bruke for-løkke og if-setning som vist under."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "navn= input(\"Jeg heter: \")\n",
+    "sist = len(navn)\n",
+    "start = sist\n",
+    "for i in range(len(navn)):\n",
+    "    if navn[i]==\" \":\n",
+    "        start = i + 1\n",
+    "         \n",
+    "print(\"The name is\", navn[start:sist]+\", \" + navn)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "En annen mulighet er å bruke strengmetoden split():"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "navn = input(\"Jeg heter: \")\n",
+    "liste = navn.split()\n",
+    "print(\"The name is\", liste[-1] + \",\", navn)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Forklaring av denne løsningen: Linje 2, split() gir en oppdeling av tekststrengen der det er mellomrom, med navn \"Grace Murray Hopper\" vil vi få liste med ordene \"Grace\", \"Murray\", \"Hopper\".\n",
+    "\n",
+    "Linje 3: liste[-1] vil være bakerste element i variabelen liste, altså \"Hopper\" med eksemplet gitt ovenfor.\n",
+    "\n",
+    " \n",
+    "\n",
+    "Begge de ovenstående løsningene vil imidlertid få problemer med navn med påheng som Jr, Sr, d.y., III osv., såvel som med navn med preposisjoner som Von, De, ... Hvis man skal ta høyde for dette, blir løsningen noe mer innfløkt, nedenfor en mulighet som en videreutvikling av løsningen med split() ovenfor.\n",
+    "\n",
+    "Det fins selvsagt flere mulige elementer man kunne ha lagt til både i PREP og EXT. Løsningen tar ikke høyde for at noen kan ha flere tillegg bak navnet (f.eks. både Jr og III i samme navn), eller navn hvor det fins flere enn ett mellomord som skal være del av etternavnet (f.eks. Alan van der Aalst).\n",
+    "\n",
+    "Dette kunne f.eks. ha vært taklet ved å kjøre både sjekken vs. EXT og sjekken vs. PREP i while-løkker heller enn som engangstester, koden ville da ha blitt noe mer komplisert enn den er nå."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "PREP = {\"De\", \"de\", \"Di\", \"di\", \"von\", \"Von\", \"van\", \"Van\", \"St\", \"Saint\"}\n",
+    "EXT = {\"Jr\", \"jr\", \"Sr\", \"sr\", \"d.e.\", \"d.y.\",\n",
+    "       \"I\", \"II\", \"III\", \"IV\", \"V\", \"VI\", \"VII\", \"VIII\", \"IX\"}\n",
+    " \n",
+    "navn = input(\"Jeg heter: \")\n",
+    "liste = navn.split() # får ei liste med alle delnavn i navnet\n",
+    " \n",
+    "if liste[-1] in EXT: #bakerste ord er ikke et navn\n",
+    "    i_enavn = -2 # etternavnet da nest bakerst i lista\n",
+    "else:\n",
+    "    i_enavn = -1 # etternavnet er bakerst i lista\n",
+    "etternavn = liste[i_enavn]\n",
+    " \n",
+    "if len(liste) > abs(i_enavn - 1): # det fins mellomnavn\n",
+    "    mellom = liste[i_enavn - 1] # mellomnavnet er like foran etternavn\n",
+    "    if mellom in PREP: # mellomnavn skal inngå i etternavnet\n",
+    "        etternavn = mellom + \" \" + etternavn # putter mellomnavn foran\n",
+    " \n",
+    "print(\"The name is\", etternavn + \",\", navn)"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/Losningsforslag/Jupyter Notebooks/Oving01/Jeg elsker ITGK lf.ipynb b/Losningsforslag/Jupyter Notebooks/Oving01/Jeg elsker ITGK lf.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..52474018d16078d6a51070e0c0a26af64b41f407
--- /dev/null
+++ b/Losningsforslag/Jupyter Notebooks/Oving01/Jeg elsker ITGK lf.ipynb	
@@ -0,0 +1,140 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "a)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "print(\"Jeg elsker ITGK!\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "b)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "print('Norge')\n",
+    "print()\n",
+    "print('Areal (kv.km):', 385180)\n",
+    "print('Folketall (mill.):', 5.3)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "c)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "print('\"Jeg elsker ITGK!\" ropte studenten da 1c funket.')\n",
+    "#tatt enkle fnutter rundt strengen slik at de doble fnuttene printes ut"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "d)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "print(\"Noen barn sto og hang ved lekeplassen.\")\n",
+    "print(\"Diskusjonstemaet deres var noe uventet.\")\n",
+    "print('''- Hvorfor heter'e \"Python\"?''')\n",
+    "print(\"- Var'e slanger som laget det? - Nei, Guido van Rossum.\")\n",
+    "print('- Likte slanger kanskje da? - Nei, digga \"Monty Python\".')\n",
+    "print(\"- Hva er det? Et fjell?\")\n",
+    "print(\"- Nei, engelsk komigruppe. Begynte i '69.\"\n",
+    "print(\"- Wow! Var'e fremdeles dinosaurer da?\")\n",
+    "  \n",
+    "# alternativt kan oppgaven løses med en enkelt print-setning,\n",
+    "# med triple fnutter rundt hele den 8-linjers teksten"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "e)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# i oppgave b tok jeg enkle fnutter rundt strengen slik at de doble fnuttene kunne printes ut\n",
+    "# i oppgave c tok jeg tre enkle/doble fnutter rundt strengen ettersom strengen inneholdt både en enkel fnutt og doble fnutter\n",
+    "#print('Hei\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "f)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "print(\"Heihei, jeg vil visst ikke kompilere jeg :(\")  #evt. med enkle fnutter rundt hele strengen.\n",
+    "print('Halla, så \"bra\" du ser ut i dag')              #dersom det skal være doble fnutter rundt bra, må det være enkle fnutter rundt strengen.\n",
+    "print(\"Hei på deg\")                                   #sette på fnutter rundt strengen.\n",
+    "print(\"Er ikke dette gøy?\")                           #sette på parentes på starten."
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/Losningsforslag/Jupyter Notebooks/Oving01/Kalkulasjoner lf.ipynb b/Losningsforslag/Jupyter Notebooks/Oving01/Kalkulasjoner lf.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..c6f3edfc602a30c0c8b3a7e24279a29180454c36
--- /dev/null
+++ b/Losningsforslag/Jupyter Notebooks/Oving01/Kalkulasjoner lf.ipynb	
@@ -0,0 +1,111 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "a)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "1+2(−3) = -5\n",
+      "[(3+5·2) +1]:2 = 7.0\n",
+      "-3^2 + 5*3 - 7 = -1\n",
+      "5:2-4 = -1.5\n",
+      "5·12+6-1 = 65\n",
+      "3(5+2) = 21\n",
+      "4[(5+3):2 +7] = 44.0\n",
+      "(−4)^(-3)+5·(3−7:2) = -2.515625\n"
+     ]
+    }
+   ],
+   "source": [
+    "print('1+2(−3) =', 1+2*(-3))\n",
+    "print('[(3+5·2) +1]:2 =', ((3+5*2)+1)/2)\n",
+    "print('-3^2 + 5*3 - 7 =', -3**2+5*3-7)\n",
+    "#1)\n",
+    "print('5:2-4 =', 5/2 -4)\n",
+    "#2)\n",
+    "print('5·12+6-1 =', 5*12 + 6 - 1)\n",
+    "#3)\n",
+    "print('3(5+2) =', 3*(5+2))\n",
+    "#4)\n",
+    "print('4[(5+3):2 +7] =', 4*((5+3)/2+7))\n",
+    "#5)\n",
+    "print('(−4)^(-3)+5·(3−7:2) =', (-4)**(-3)+5*(3-7/2))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "b)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "print(355, \"minutt blir\", 355 // 60, \"timer og\", 355 % 60, \"minutt.\")\n",
+    "print(403, \"sekund blir\", 403 // 60, \"minutt og\", 403 % 60, \"sekund.\")\n",
+    "print(67, \"dager blir\", 67 // 7, \"uker og\", 67 % 7, \"dager.\")\n",
+    "print(100, \"timer blir\", 100 // 24, \"døgn og\", 100 % 24, \"timer.\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "c)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import math\n",
+    "# importerer fra math-biblioteket\n",
+    "print(\"|-8|, dvs. absoluttverdien til -8, er\", abs(-8))\n",
+    "print(2.544, \"avrundet til helt tall er\", round(2.544))\n",
+    "print(\"Funksjonen int() derimot bare kutter vekk desimalene:\", int(2.544) )\n",
+    "print(2.544, \"avrundet til to desimaler er\", round(2.544, 2))\n",
+    "print(\"Kvadratroten til\", 10, \"er\", math.sqrt(10) )\n",
+    "print(\"En sirkel med radius 7 har omkrets\", math.tau * 7)\n",
+    "print(\"En sirkel med radius 7 har areal\", math.pi * 7**2)"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/Losningsforslag/Jupyter Notebooks/Oving01/Pizza lf.ipynb b/Losningsforslag/Jupyter Notebooks/Oving01/Pizza lf.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..7b04503497770bd10a0a78aef3767109a542bc4d
--- /dev/null
+++ b/Losningsforslag/Jupyter Notebooks/Oving01/Pizza lf.ipynb	
@@ -0,0 +1,79 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "a)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "pizza = 750\n",
+    "Studentrabatt = 0.20\n",
+    "Tips = 0.08"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "b)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "totalt = pizza*(1-Studentrabatt)*(1+Tips)\n",
+    "print(\"Total pris:\",totalt)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "c)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "antall = int(input(\"Hvor mange deltok på middagen? \"))\n",
+    "prisPerPers = totalt/antall\n",
+    "print(\"Ettersom dere var\",antall, \"personer, så må hver person betale\",\n",
+    "      prisPerPers, \"kroner.\")"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/Losningsforslag/Jupyter Notebooks/Oving01/Tallkonvertering- lf.ipynb b/Losningsforslag/Jupyter Notebooks/Oving01/Tallkonvertering- lf.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..ba1456a6f4ea6a824f06082591a449329bb47511
--- /dev/null
+++ b/Losningsforslag/Jupyter Notebooks/Oving01/Tallkonvertering- lf.ipynb	
@@ -0,0 +1,113 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "a)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "flyt1 = float(input(\"Skriv inn et flyttall: \"))\n",
+    "flyt2 = float(input(\"Skriv inn enda et flyttall: \"))\n",
+    "flyt3 = float(input(\"Skriv inn et siste flyttall: \"))\n",
+    " \n",
+    "print(\"Konvertert til heltall blir det\", int(flyt1),int(flyt2),int(flyt3))\n",
+    " \n",
+    "int1 = int(input(\"Skriv inn et heltall: \"))\n",
+    "print(\"Konvertert til flyttall blir det:\",float(int1))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "b)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "navn = input(\"Skriv ditt navn: \")\n",
+    "alder = int(input(\"Hei, \" + navn + \", hvor gammel er du? \"))\n",
+    "alderProgStart = int(input(\"Hvor gammel var du da du startet å programmere? \"))\n",
+    "progTid = alder - alderProgStart\n",
+    "print(\"Da har du programmert i\", progTid, \"Ã¥r.\")\n",
+    "svar = input(\"Syns du de \" + str(progTid) + \" årene har vært givende?\" )\n",
+    "print(\"Takk for svar,\" , navn)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "c)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "print(\"Vennligst gi inn et flyttall med minst 5 siffer både før og etter .\")\n",
+    "tall = float(input(\"Hva er tallet ditt? \")\n",
+    "heltall = int(tall)\n",
+    "print(\"Konvertert til heltall med int():\", heltall)\n",
+    "print(\"Avrundet til nærmeste heltall:\", round(tall))\n",
+    "print(\"Avrundet til to desimaler:\", round(tall, 2))\n",
+    "print(\"Avrundet til fire desimaler:\", round(tall, 4))\n",
+    "print(\"Avrundet til nærmeste tusen:\", round(tall, -3))\n",
+    "print(\"Heltall fra int() konvertert tilbake til flyttall:\", float(heltall))"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "d)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "flyttall = float(input(\"Skriv et flyttall: \"))\n",
+    "antallDesimaler = int(input(\"Hvor mange deismaler er ønskelig? \"))\n",
+    "print(\"Tallet du skrev var\",flyttall, \"og med\",antallDesimaler,\n",
+    "      \"desimaler blir det til\", round(flyttall, antallDesimaler))"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/Losningsforslag/Jupyter Notebooks/Oving01/Tetraeder lf.ipynb b/Losningsforslag/Jupyter Notebooks/Oving01/Tetraeder lf.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..290b964f6d06fd3ad7e33b4cedd31c4c55371892
--- /dev/null
+++ b/Losningsforslag/Jupyter Notebooks/Oving01/Tetraeder lf.ipynb	
@@ -0,0 +1,86 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "a)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import math\n",
+    "h = 3\n",
+    "a = 3/math.sqrt(6)*h\n",
+    "areal = math.sqrt(3)*pow(a,2)\n",
+    "print(\"Et tetraeder med høyde\",h,\"har areal\",areal)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "b)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import math\n",
+    "h = 3\n",
+    "a = 3/math.sqrt(6)*h\n",
+    "volum = 1/12*math.sqrt(2)*pow(a,3)\n",
+    "print(\"Et tetraeder med høyde\",h,\"har volum\",volum)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "c)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import math\n",
+    "h = float(input(\"Skriv inn en høyde: \"))\n",
+    "a = 3/math.sqrt(6)*h\n",
+    "areal = math.sqrt(3)*pow(a,2)\n",
+    "volum = 1/12*math.sqrt(2)*pow(a,3)\n",
+    "print(\"Et tetraheder med høyde\",h,\"har volum\",round(volum,2),\"og areal\",round(areal,2),\".\")"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/Losningsforslag/Jupyter Notebooks/Oving01/Vitenskapelig notasjon lf.ipynb b/Losningsforslag/Jupyter Notebooks/Oving01/Vitenskapelig notasjon lf.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..cb092354889819ba88aa0e2eaa68f9c5208e216f
--- /dev/null
+++ b/Losningsforslag/Jupyter Notebooks/Oving01/Vitenskapelig notasjon lf.ipynb	
@@ -0,0 +1,64 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "a)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "stoff = input(\"Si et stoff du er i besittelse av: \")\n",
+    "molvekt = float(input(\"Hva er molvekt i gram for \"+stoff+\"? \"))\n",
+    "gram = float(input(\"Hvor mange gram har du? \"))\n",
+    "mol = gram/molvekt\n",
+    "antall = mol*6.022e+23\n",
+    "print(\"Du har\", format(antall, '.1e'), \"molekyler \"+stoff)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "b)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "antallHørt = int(input(\"Antall ulike 10-toners melodilinjer du har hørt? \"))\n",
+    "prosent = antallHørt/8.25e+19*100\n",
+    "print(\"Du har hørt\", format(prosent, '.15e'), \"av melodier som er mulig\")"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.3"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}