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 å 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