diff --git a/Ovingsforelesninger/OF4/tasks.ipynb b/Ovingsforelesninger/OF4/tasks.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..c2b13634894815220fac6bf75a9fb6ee15df99a3 --- /dev/null +++ b/Ovingsforelesninger/OF4/tasks.ipynb @@ -0,0 +1,473 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Øvingsforelesning 4 - TDT4110\n", + "\n", + "### Løkker" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Oppgave 1 - Repetisjon\n", + "\n", + "I denne oppgaven skal vi utvikle en funksjon som utfører konvertering fra Celsius til Fahrenheit. Deretter skal vi lage en graf som viser denne konverteringen over et temperaturområde fra -100C til 100C.\n", + "\n", + "$$F = \\frac{9}{5}C + 32$$" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Skriv kode her" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Eksempel 1 - Syntaks" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Dette er en \"tuple\". Vi skal se mer på det senere\n", + "sequence = (1, 3, 5, 7, 9, 11, 13)\n", + "for number in sequence:\n", + " print(number)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Eksempel 2 - `range()`\n", + "\n", + " - `range(stop)`\n", + " - `range(start, stop)`\n", + " - `range(start, stop, step)`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(5):\n", + " print(i)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for j in range(5, 10):\n", + " print(j)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for k in range(0, 20, 2):\n", + " print(k)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for i in range(4):\n", + " print(\"ITGK\")\n", + "print(\"Ferdig!\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Oppgave 2\n", + "\n", + "Skriv et program som printer\n", + " 1. Alle tallene fra 0 til og med 10\n", + " 2. Alle tallene fra 10 til og med 20 bortsett fra 14\n", + " 3. Alle tallene fra 10 til og med 20 baklengs (20 -> 10)\n", + " 4. Alle partall fra 50 til og med 74\n", + "\n", + "**Ekstraoppgave**\n", + "\n", + "Print tall mellom 0 og 1 med intervall på 0.1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Skriv kode her" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Oppgave 3\n", + "\n", + "Skriv et program som\n", + " 1. Summerer sammen tallene fra 4 til og med 20\n", + " 2. Finner produktet av tallene fra 2 til og med 10\n", + "\n", + "**Hint**\n", + "\n", + "Bruk en variabel som kan holde resultatet\n", + "\n", + "**Ekstraoppgave**\n", + "\n", + "Summer opp partall og oddetall hver for seg" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Skriv kode her" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Oppgave 4\n", + "\n", + "Lag et program som tar inn tre tall fra brukeren, og skriver ut alle tallene **mellom de to første** (første inklusiv, andre eksklusiv) som er **delelige på det tredje**\n", + "\n", + "**Hint**\n", + "\n", + "`a % b`\n", + "\n", + "**Ekstraoppgave**\n", + "\n", + "Gjør det samme, men uten å iterere gjennom alle tallene mellom de to første" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Skriv kode her" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Eksempel - `while`-løkke\n", + "\n", + "Kjører kode **inntill en betingelse ikke lenger er oppfylt**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "i = 0\n", + "# Printer \"Hello\" 5 ganger\n", + "while i < 5:\n", + " print(\"Hello\")\n", + " i += 1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "i = 5\n", + "# Printer tallene fra 5 til 10\n", + "while i <= 10:\n", + " print(i)\n", + " i += 1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "i = 0\n", + "while i < 4:\n", + " print(\"ITGK\")\n", + " i += 1\n", + "print(\"Ferdig!\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Oppgave 5\n", + "\n", + "Skriv et program som gjør følgende:\n", + " 1. Tar inn et tall fra bruker\n", + " 2. Summerer tallene fra 1 og oppover helt til summen overstiger tallet fra bruker\n", + " 3. Skriver ut et hvert regnestykke til konsollen på formen `a + b = c`\n", + "\n", + "**Ekstraoppgave:**\n", + "\n", + " - Topp ved det siste tallet før summen overstiger tallet fra bruker\n", + " - Gi en feilmelding dersom brukeren skriver inn et negativt tall og be om et nytt" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Skriv kode her" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Oppgave 6\n", + "\n", + "Lag en evig `while`-løkke som\n", + " 1. Tar inn tall fra brukeren\n", + " 2. Skriver ut kvadratet ($x^2$) og kvadratroten av tallet\n", + "\n", + " **Hint**\n", + "\n", + " $x^{1/2}$ eller [math.sqrt(x)](https://docs.python.org/3/library/math.html#math.sqrt)\n", + "\n", + " **Ekstraoppgave**\n", + " - Dersom brukeren skriver \"avslutt\" skal løkken stoppe\n", + " - Dersom brukeren skriver inn et negativt tall, ikke skriv ut kvadratroten\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Skriv kode her" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Oppgave 7\n", + "\n", + "Lag et program som gjør følgende:\n", + " 1. Tar inn et tall fra brukeren\n", + " 2. Sjekker om tallet er likt et annet tall som du har bestemt på forhånd\n", + " - Dersom tallet er likt, skriver programmet ut \"Du vant!\"\n", + " 3. Hvis tallene **ikke** er like: Si om det innskrevne tallet er større eller mindre enn det hemmelige tallet\n", + " 4. Be brukeren om å skrive inn et nytt tall\n", + "\n", + "**Ekstraoppgave**\n", + " - Skriv at tallet er *mye* større/mindre hvis det er mer enn 10 i differanse\n", + " - Gi brukeren 5 forsøk, og gi brukeren beskjed om hvor mange forsøk som er igjen" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Skriv kode her" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Oppgave 8\n", + "\n", + " - Skriv en `while`-løkke som ber om et tall fra bruker hver iterasjon og summerer tallene som er skrevet inn\n", + " - Gjør at programmet avsluttes dersom `-1` skrive inn (uten å legge -1 til i summen)\n", + " - Avslutt programmet dersom summen overgår 100 (men skriv ut siste summen)\n", + "\n", + "**Ekstraoppgave**\n", + "\n", + "La brukeren bestemme tallet programmet skal avsluttes når summen overgår" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Skriv kode her" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Eksempel - tilfeldige tall\n", + "\n", + "Dokumentasjon om [random#randrange](https://docs.python.org/3/library/random.html#random.randrange) og [random#randint](https://docs.python.org/3/library/random.html#random.randint)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import random\n", + "\n", + "# Printer et tilfeldig tall mellom 1 og 10\n", + "rand_num_1 = random.randint(1, 10)\n", + "\n", + "# Printer et tilfeldig tall mellom 1 og 9\n", + "rand_num_2 = random.randrange(1, 10)\n", + "\n", + "print(rand_num_1, rand_num_2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Oppgave 9\n", + "\n", + "- Lag et program som printer et antall tilfeldige tall mellom to tall brukeren skriver inn. Antallet skal også være gitt av brukeren.\n", + "\n", + "**Hint**\n", + "```python\n", + "import random\n", + "\n", + "random.randint(1, 10)\n", + "```\n", + "\n", + "**Ekstraoppgave**\n", + " - Modifiser programmet til å printe ut hvor mange oddetall som ble laget til slutt\n", + " - Skriv ut gjennomsnittet av alle tallene" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Skriv kode her" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Oppgave 10\n", + "\n", + "Du skal ha Multiple Choice eksamen med 10 spørsmål, og lurer på om du klarer å gjette deg til å stå!\n", + "\n", + " - Lag et program som *10 ganger* gir deg sjansen til å gjette på et tall mellom 1 - 4 og lagrer det riktig svaret som en variabel med tilfeldig verdi før man gjetter\n", + " - Etter løkken, skriv ut hvor mange prosent riktig du hadde\n", + "\n", + "**Hint**\n", + "```python\n", + "import random\n", + "\n", + "random.randint(1, 10)\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Skriv kode her" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Oppgave 11\n", + "\n", + "Lag et program som\n", + " 1. Tar inn et heltall `max_rand_int` fra brukeren\n", + " 2. Tar inn et heltall `target` fra brukeren\n", + " 3. Genererer tilfeldige tall mellom 0 og `max_rand_int` helt til det genererer `target`\n", + " 4. Printer hvert genererte tall\n", + "\n", + "**Ekstraoppgave**\n", + "\n", + "Utvid programmet til å til slutt printe hvor mange forsøk det trengte for å lage `target`" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Skriv kode her" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.10.6 64-bit", + "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.10.6" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "b0fa6594d8f4cbf19f97940f81e996739fb7646882a419484c72d19e05852a7e" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}