From 4fdda382da1b1b7cb35e0c3a8a35aa1ffaaffa96 Mon Sep 17 00:00:00 2001
From: Eirik Lorgen Tanberg <eirik@tanberg.org>
Date: Mon, 2 Oct 2023 19:37:52 +0200
Subject: [PATCH] =?UTF-8?q?Legg=20til=20oppgaver=20for=20=C3=98F6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Ovingsforelesninger/OF6/tasks.ipynb | 328 ++++++++++++++++++++++++++++
 1 file changed, 328 insertions(+)
 create mode 100644 Ovingsforelesninger/OF6/tasks.ipynb

diff --git a/Ovingsforelesninger/OF6/tasks.ipynb b/Ovingsforelesninger/OF6/tasks.ipynb
new file mode 100644
index 0000000..0142fe4
--- /dev/null
+++ b/Ovingsforelesninger/OF6/tasks.ipynb
@@ -0,0 +1,328 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Øvingsforelesning 6 - TDT4110\n",
+    "\n",
+    "Øving 4: Funksjoner"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Oppgave 1\n",
+    "\n",
+    "Plott funksjonen f(x) = cos(x) i intervallet (-4 pi, 4 pi). Velg “oppløsning” på x-aksen selv.\n",
+    "\n",
+    "Hint: Numpy har innebygget cosinus-funksjon"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Oppgave 2\n",
+    "\n",
+    "Plott funksjonene f(x) = sin(2x) og g(x) = cos(2x) i hvert sitt plot ved siden av hverandre\n",
+    "\n",
+    "Velg \"oppløsning\" på x-aksen selv"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Oppgave 3\n",
+    "\n",
+    "Lag en funksjon som tar inn 3 tall og returnerer summen av dem\n",
+    "\n",
+    "Funksjonen skal oppføre seg akkurat som sum() funksjonen, bare med maks 3 tall. Det er ikke lov å bruke innebygde funksjoner (sum, np.sum, etc.) for å løse oppgaven.\n",
+    "\n",
+    "Merk: Til vanlig vil ikke lage funksjoner som allerede er laget for oss,\n",
+    "dette gjør vi kun for trening. "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Oppgave 4\n",
+    "\n",
+    "Vi ønsker å regne ut fakultet (factorial) av noen tall, og skal derfor lage en funksjon som implementerer denne logikken.\n",
+    "\n",
+    "For eksempel er 4! = 1â‹…2â‹…3â‹…4 = 24, mens 5! = 1â‹…2â‹…3â‹…4â‹…5 = 120."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Oppgave 5\n",
+    "\n",
+    "Lag en funksjon som tar inn en streng, og returnerer antall små og antall store bokstaver i strengen. Benytt funksjonene str#isupper() og str#islower()."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Oppgave 6\n",
+    "\n",
+    "Du vil lage en dum chatbot som svarer ja eller nei med like stor sannsynlighet\n",
+    "\n",
+    "Lag en funksjon som tar inn et spørsmål som parameter, og skriver ut spørsmålet og svaret sitt (ja eller nei tilfeldig)\n",
+    "\n",
+    "Hint:\n",
+    "```python\n",
+    "import random\n",
+    "random.choice([\"Ja\", \"Nei\"])\n",
+    "```"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Oppgave 7\n",
+    "\n",
+    "Forsikring av input-type\n",
+    "\n",
+    "Lag en funksjon som spør bruker om et heltall, og spør igjen dersom brukeren ikke skriver inn et heltall\n",
+    "NÃ¥r brukeren har skrevet inn et heltall, skal funksjonen returnere tallet \n",
+    "\n",
+    "Hint: \n",
+    "str.isnumeric() sjekker om en streng kun inneholder tall "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Oppgave 8\n",
+    "\n",
+    "Primtallstester\n",
+    "\n",
+    "Skriv en funksjon som tar inn et heltall, og returnerer True hvis tallet er et primtall, ellers False\n",
+    "\n",
+    "Husk: Et tall er et primtall hvis det ikke er delelig på noen andre tall enn seg selv og 1"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Oppgave 9 (1/2)\n",
+    "\n",
+    "Lag en funksjon `beregn_omkrets` som gjør følgende:\n",
+    " - Tar inn et tall radius som parameter\n",
+    " - Returnerer omkretsen til en sirkel med radius <radius>\n",
+    "\n",
+    "Lag en funksjon `beregn_areal` som gjør følgende:\n",
+    " - Tar inn et tall radius som parameter\n",
+    " - Returnerer arealet til en sirkel med radius <radius>"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Oppgave 9 (2/2)\n",
+    "\n",
+    "Lag en geometriprogram()-funksjon som gjør følgende:\n",
+    " - Tar inn en radius fra bruker\n",
+    " - Regner ut omkretsen av en sirkel med radius <radius>\n",
+    " - Regner ut arealet av en sirkel med radius <radius>\n",
+    " - Skriver ut resultatet fra del (2) og (3)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Oppgave 10 (1/3)\n",
+    "\n",
+    "Vi skal lage et enkelt terningspill. I spillet trenger vi mulighet til å trille en terning\n",
+    "\n",
+    "Lag en funksjon som triller en terning, dvs. returnerer et tall fra og med 1 til og med 6\n",
+    "\n",
+    "Hint: \n",
+    "```python\n",
+    "import random\n",
+    "\n",
+    "x = random.randint(1, 6) \n",
+    "```"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Oppgave 10 (2/3)\n",
+    "\n",
+    "En runde i spillet består av at spilleren gjetter hvor mye hen til sammen kommer til å trille, før 6 terninger trilles. Hvis hen gjettet riktig, får hen 3 poeng. Hvis hen var innenfor 5 fra riktig verdi, får hen 1 poeng. \n",
+    "\n",
+    "Lag en funksjon for å beregne poeng gitt spilleren, basert på spillerens gjett og verdien til de trillede terningene. \n",
+    "\n",
+    "Lag så en funksjon for en runde, som spør spilleren om å gjette, triller terninger, og returnerer poengsummen for den runden. "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "#### Oppgave 10 (3/3)\n",
+    "\n",
+    "Til slutt vil vi ha mulighet til aÌŠ spille hele spillet\n",
+    "\n",
+    "Husk: main() kaller de andre funksjonene og står for kommunikasjon med bruker\n",
+    "\n",
+    "Spør spilleren først hvor mange runder hen vil spille, og kjør så gjennom <antall> mange runder. Hold kontroll på poengsummen til brukeren, og skriv den ut til slutt. \n",
+    "\n",
+    "Ekstraoppgave:\n",
+    "Utvid spillet til å være for to spillere"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Skriv kode her"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "venv",
+   "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"
+  },
+  "orig_nbformat": 4
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
-- 
GitLab