From 75848b23f1871a06b471c0a62871d8d03de0fa8c Mon Sep 17 00:00:00 2001
From: Eirik Lorgen Tanberg <eirik@tanberg.org>
Date: Mon, 11 Sep 2023 17:37:48 +0200
Subject: [PATCH] =?UTF-8?q?Legg=20til=20LF=20for=20=C3=98F2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Ovingsforelesninger/OF2/solutions.ipynb | 565 ++++++++++++++++++++++++
 1 file changed, 565 insertions(+)
 create mode 100644 Ovingsforelesninger/OF2/solutions.ipynb

diff --git a/Ovingsforelesninger/OF2/solutions.ipynb b/Ovingsforelesninger/OF2/solutions.ipynb
new file mode 100644
index 0000000..e5e6c49
--- /dev/null
+++ b/Ovingsforelesninger/OF2/solutions.ipynb
@@ -0,0 +1,565 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Øvingsforelesning 2 - ITGK"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Logiske uttrykk, betingelser og if-setninger"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Eksempel\n",
+    "Ulike måter å formatere strenger på"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Oppgave 1: Repetisjon"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "**Lag et program som gjør følgende:**\n",
+    "1. Spør om to tall fra brukeren og lagrer disse som variabler\n",
+    "2. Finner ut hvilket av tallene som er det minste\n",
+    "3. Skriver ut \"(z) er det minste tallet av (x) og (y)\""
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "3 er det minste tallet av 3 og 5\n",
+      "3 er det minste tallet av 3 og 5\n",
+      "3 er det minste tallet av 3 og 5\n"
+     ]
+    }
+   ],
+   "source": [
+    "tall1 = int(input(\"Skriv inn tall 1: \"))\n",
+    "tall2 = int(input(\"Skriv inn tall 2: \"))\n",
+    "\n",
+    "minste_tall = min(tall1, tall2)\n",
+    "\n",
+    "print(f\"{minste_tall} er det minste tallet av {tall1} og {tall2}\")\n",
+    "#print(str(minste_tall) + \" er det minste tallet av \" + str(tall1) + \" og \" + str(tall2))\n",
+    "#print(minste_tall, \"er det minste tallet av\", tall1, \"og\", tall2)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Boolske uttrykk, prøv selv"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "False\n",
+      "False\n",
+      "True\n"
+     ]
+    }
+   ],
+   "source": [
+    "a = True\n",
+    "b = False\n",
+    "x = 23\n",
+    "y = 26\n",
+    "\n",
+    "z = x + 2 == y\n",
+    "print(z)\n",
+    "w = not ((a and b) or x != y)\n",
+    "print(w)\n",
+    "u = a is not b and ((y - 4) <= x)\n",
+    "print(u)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Oppgave 2"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "**Skriv et program som gjør følgende:** \n",
+    "1. Spør en bruker om tre tall, ett om gangen\n",
+    "2. Sjekker om summen av de to første er lik det tredje\n",
+    "3. Skriver ut resultatet til bruker\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "*Hint:* \n",
+    "* `a + b == c`\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "2 + 2 = 5: False\n"
+     ]
+    }
+   ],
+   "source": [
+    "tall1 = int(input(\"Skriv inn tall 1: \"))\n",
+    "tall2 = int(input(\"Skriv inn tall 2: \"))\n",
+    "tall3 = int(input(\"Skriv inn tall 3: \"))\n",
+    "\n",
+    "sum_lik = (tall1 + tall2) == tall3\n",
+    "\n",
+    "print(f\"{tall1} + {tall2} = {tall3}: {sum_lik}\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Oppgave 3"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Skriv et program som tar inn et tall og sjekker om det er et partall <br>\n",
+    "\n",
+    "*Hint:*\n",
+    "* Sjekk om resten er 0 når det deles på 2\n",
+    "\n",
+    "**Ekstraoppgave**\n",
+    "* Skriv ut om det er partall eller oddetall\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 17,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "52 er et partall: True\n"
+     ]
+    }
+   ],
+   "source": [
+    "tall = int(input(\"Skriv inn et tall: \"))\n",
+    "\n",
+    "er_partall = tall % 2 == 0\n",
+    "\n",
+    "print(f\"{tall} er et partall: {er_partall}\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Oppgave 4"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Lag et program som ber om et passord og sjekker om det er likt et passord som du har lagret  i en variabel i koden. <br>\n",
+    "\n",
+    "*Hint:*\n",
+    "* a == b\n",
+    "* Start med å opprette en variabel “passord” som inneholder passordet ditt.\n",
+    "\n",
+    "**Ekstraoppgave**\n",
+    "* Sjekk om det er likt uavhengig av små eller store bokstaver\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "test\n",
+      "TEST\n",
+      "Er riktig passord: False\n"
+     ]
+    }
+   ],
+   "source": [
+    "password = \"pass123\"\n",
+    "\n",
+    "attempt = input(\"Skriv inn passord: \")\n",
+    "\n",
+    "is_correct = password.lower() == attempt.lower()\n",
+    "\n",
+    "print(f\"Er riktig passord: {is_correct}\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 53,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Hei fra else\n",
+      "Hei 2\n"
+     ]
+    }
+   ],
+   "source": [
+    "if False:\n",
+    "    print(\"Hei\")\n",
+    "elif False:\n",
+    "    print(\"Hei 3\")\n",
+    "elif False:\n",
+    "    print(\"Hei 4\")\n",
+    "else:\n",
+    "    print(\"Hei fra else\")\n",
+    "\n",
+    "print(\"Hei 2\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Oppgave 5 "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "Lag et program som tar inn et tall og skriver ut ` \"(tall) er et partall\"` hvis det er et partall <br>\n",
+    "\n",
+    "*Hint:*\n",
+    "* `if <logisk uttrykk>:`\n",
+    "\n",
+    "**Ekstraoppgave:**\n",
+    "* Print ut «<tall> er et oddetall» hvis det er oddetall\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 32,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "4 er et partall\n"
+     ]
+    }
+   ],
+   "source": [
+    "tall = int(input(\"Skriv inn et tall: \"))\n",
+    "\n",
+    "er_partall = tall % 2 == 0\n",
+    "\n",
+    "if er_partall:\n",
+    "    type_tall = \"partall\"\n",
+    "    #print(f\"{tall} er et partall\")\n",
+    "\n",
+    "if not er_partall:\n",
+    "    type_tall = \"oddetall\"\n",
+    "    #print(f\"{tall} er et oddetall\")\n",
+    "\n",
+    "print(f\"{tall} er et {type_tall}\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Oppgave 6 \n",
+    "Lag et program som spør om et etternavn. Hvis det er likt ditt etternavn skal det skrive ut `«Dette er en match!!»`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 35,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Dette er en match!!\n"
+     ]
+    }
+   ],
+   "source": [
+    "etternavn = \"Tanberg\"\n",
+    "\n",
+    "gitt_etternavn = input(\"Skriv inn et etternavn: \")\n",
+    "\n",
+    "if etternavn.lower() == gitt_etternavn.lower():\n",
+    "    print(\"Dette er en match!!\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Oppgave 7 \n",
+    "Lag et program som tar inn to tall. Programmet skal skrive ut `”(tall1) er større enn eller lik (tall2)”` eller`”(tall1) er mindre enn (tall2)” `avhengig av tallene. <br>\n",
+    "\n",
+    "*Hint:*\n",
+    "* `tall1 > tall2`\n",
+    "\n",
+    "**Ekstraoppgave:**\n",
+    "* Utvid programmet til å gi en spesiell beskjed dersom tallene er like\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 43,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "5 er lik 5\n"
+     ]
+    }
+   ],
+   "source": [
+    "tall1 = int(input(\"Skriv inn tall 1: \"))\n",
+    "tall2 = int(input(\"Skriv inn tall 2: \"))\n",
+    "\n",
+    "if tall1 >= tall2:\n",
+    "    if tall1 == tall2:\n",
+    "        print(f\"{tall1} er lik {tall2}\")\n",
+    "    else:\n",
+    "        print(f\"{tall1} er større enn {tall2}\")\n",
+    "else:\n",
+    "    print(f\"{tall1} er mindre enn {tall2}\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Oppgave 8\n",
+    "Kjell trenger help til å bestemme hva han skal ha med til lunsj. Han har en regel han vil følge, men sliter med å huske den. Regelen er: \n",
+    "* På mandag, onsdag og fredag spiser han brødskive med geitost\n",
+    "* PaÌŠ tirsdag og torsdag spiser han rundstykke med salami\n",
+    "\n",
+    "Lag et program der Kjell kan skrive inn hvilken ukedag et er, og deretter få vite hva han skal ha til lunsj\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 49,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Brødskive med geitost\n"
+     ]
+    }
+   ],
+   "source": [
+    "ukedag = input(\"Skriv inn hvilken ukedag det er: \")\n",
+    "ukedag = ukedag.lower()\n",
+    "\n",
+    "if ukedag in [\"mandag\", \"onsdag\", \"fredag\"]:\n",
+    "    print(\"Brødskive med geitost\")\n",
+    "\n",
+    "if ukedag == \"tirsdag\" or ukedag == \"torsdag\":\n",
+    "    print(\"Rundstykke med salami\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Oppgave 9\n",
+    "<img src=\"../Resources/Images/if-setninger.jpg\" style=\"width: 500px;\">\n",
+    "\n",
+    "**Lage et program som gjør følgende:**\n",
+    "* Tar inn to tall (kalt `tall1` og `tall2`). \n",
+    "* Dersom de er like skal programmet skrive ut `”Gratulerer, tallene er like” `\n",
+    "* Hvis `tall1` er større enn `tall2` skal det skrive ut ”`Tall1 er <differanse mellom tallene> større enn tall2`”. \n",
+    "* Dersom `tall2` er større enn `tall1` skal programmet skrive ut ”`Tall1 er <differanse mellom tallene> mindre enn tall2`”.\n",
+    "* Til slutt skal programmet skrive ut ”`Takk for denne gang`” \n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 61,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Tall1 er 2 mindre enn tall2\n",
+      "Takk for denne gang\n"
+     ]
+    }
+   ],
+   "source": [
+    "tall1 = int(input(\"Skriv inn tall 1: \"))\n",
+    "tall2 = int(input(\"Skriv inn tall 2: \"))\n",
+    "\n",
+    "if tall1 == tall2:\n",
+    "    print(\"Gratulerer, tallene er like!\")\n",
+    "elif tall1 > tall2:\n",
+    "    diff = tall1 - tall2\n",
+    "    print(f\"Tall1 er {diff} større enn tall2\")\n",
+    "else:\n",
+    "    diff = tall2 - tall1\n",
+    "    print(f\"Tall1 er {diff} mindre enn tall2\")\n",
+    "\n",
+    "print(\"Takk for denne gang\")"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Oppgave 10\n",
+    "\n",
+    "Lag et program som tar inn en tekststreng fra brukeren. Ut i fra strengen kan følgende fire ting skje\n",
+    "<br>\n",
+    "1. Dersom strengen er lik `”IalwaysCheat”` skal programmet skrive ut `”Juksing er ikke lov, prøv igjen senere” `\n",
+    "2. Ellers, dersom lengden på strengen er større enn 4 og mindre enn 10 skal programmet skrive ut `”Dette var en streng med perfekt lengde”`. \n",
+    " * `len(streng)` gir lengden på strengen med navn ”streng”. \n",
+    "3. Ellers, hvis strengen starter på `”hei”` og har mer enn 6 tegn skal programmet skrive ut `”Hei på deg også”`\n",
+    " * Hint: streng.startswith(\"hei\") gir True hvis strengen starter med ”hei” \n",
+    "4. Ellers skal programmet skrive ut `”Dette var en kjedelig streng”`\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 70,
+   "metadata": {
+    "collapsed": true
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Dette var en kjedelig streng\n"
+     ]
+    },
+    {
+     "data": {
+      "text/plain": [
+       "'wijdawIJOD'"
+      ]
+     },
+     "execution_count": 70,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "streng = input(\"Skriv inn en streng: \")\n",
+    "\n",
+    "if streng == \"IalwaysCheat\":\n",
+    "    print(\"Juksing er ikke lov, prøv igjen senere\")\n",
+    "elif 4 < len(streng) < 10:\n",
+    "    print(\"Dette var en streng med perfekt lengde\")\n",
+    "elif streng.startswith(\"hei\") and len(streng) > 6:\n",
+    "    print(\"Hei på deg også\")\n",
+    "else:\n",
+    "    print(\"Dette var en kjedelig streng\")"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3.9.7 ('tdt4195')",
+   "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.11.5"
+  },
+  "vscode": {
+   "interpreter": {
+    "hash": "63b89d9bfc14eb4486c27c9b239bf0a08c4c63a21c176f83036370f0e204c130"
+   }
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
-- 
GitLab