"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",
"# 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": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n",
"1\n",
"2\n",
"3\n",
"4\n",
"5\n",
"6\n",
"7\n"
]
}
],
"source": [
"for i in range(8):\n",
" print(i)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"5\n",
"6\n",
"7\n",
"8\n",
"9\n"
]
}
],
"source": [
"for j in range(5, 10):\n",
" print(j)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0\n",
"2\n",
"4\n",
"6\n",
"8\n",
"10\n",
"12\n",
"14\n",
"16\n",
"18\n"
]
}
],
"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": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Oppgave 1\n",
"0\n",
"1\n",
"2\n",
"3\n",
"4\n",
"5\n",
"6\n",
"7\n",
"8\n",
"9\n",
"10\n",
"Oppgave 2\n",
"10\n",
"11\n",
"12\n",
"13\n",
"15\n",
"16\n",
"17\n",
"18\n",
"19\n",
"20\n",
"Oppgave 3\n",
"20\n",
"19\n",
"18\n",
"17\n",
"16\n",
"15\n",
"14\n",
"13\n",
"12\n",
"11\n"
]
}
],
"source": [
"print(\"Oppgave 1\")\n",
"for tall in range(11):\n",
" print(tall)\n",
"\n",
"print(\"Oppgave 2\")\n",
"for tall in range(10, 21):\n",
" if tall != 14:\n",
" print(tall)\n",
"\n",
"print(\"Oppgave 3\")\n",
"for tall in range(20, 9, -1):\n",
" print(tall)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Oppgave 3\n",
"20\n",
"19\n",
"18\n",
"17\n",
"16\n",
"15\n",
"14\n",
"13\n",
"12\n",
"11\n",
"10\n"
]
}
],
"source": [
"print(\"Oppgave 3\")\n",
"for tall in range(20, 9, -1):\n",
" print(tall)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"50\n",
"52\n",
"54\n",
"56\n",
"58\n",
"60\n",
"62\n",
"64\n",
"66\n",
"68\n",
"70\n",
"72\n",
"74\n"
]
}
],
"source": [
"for partall in range(50, 75, 2):\n",
" print(partall)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.0\n",
"0.1\n",
"0.2\n",
"0.3\n",
"0.4\n",
"0.5\n",
"0.6\n",
"0.7\n",
"0.8\n",
"0.9\n",
"1.0\n"
]
}
],
"source": [
"for tall in range(0, 11):\n",
" print(tall / 10)"
]
},
{
"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": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"204\n",
"3628800\n"
]
}
],
"source": [
"total = 0\n",
"for i in range(4, 21):\n",
" #total = total + i\n",
" total += i\n",
"print(total)\n",
"\n",
"produkt = 1\n",
"for i in range(2, 11):\n",
" #produkt = produkt * i\n",
" produkt *= i\n",
"print(produkt)"
]
},
{
"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": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"6\n",
"8\n"
]
}
],
"source": [
"start = int(input(\"Skriv inn start: \"))\n",
"stop = int(input(\"Skriv inn stop: \"))\n",
"divisor = int(input(\"Skriv inn divisor: \"))\n",
"\n",
"for tall in range(start, stop):\n",
" if tall % divisor == 0:\n",
" print(tall)"
]
},
{
"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": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Hello\n",
"Hello\n",
"Hello\n",
"Hello\n",
"Hello\n"
]
}
],
"source": [
"i = 0\n",
"# Printer \"Hello\" 5 ganger\n",
"while i < 5:\n",
" print(\"Hello\")\n",
" i += 1"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"5\n",
"6\n",
"7\n",
"8\n",
"9\n",
"10\n"
]
}
],
"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": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ITGK\n",
"ITGK\n",
"ITGK\n",
"ITGK\n",
"Ferdig!\n"
]
}
],
"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": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Vennligst skriv inn et tall som er større enn 0!\n",
"Vennligst skriv inn et tall som er større enn 0!\n",
"0 + 1 = 1\n",
"1 + 2 = 3\n",
"3 + 3 = 6\n",
"6 + 4 = 10\n",
"10 + 5 = 15\n",
"15 + 6 = 21\n",
"21 + 7 = 28\n",
"28 + 8 = 36\n",
"36 + 9 = 45\n",
"45 + 10 = 55\n",
"55 + 11 = 66\n",
"66 + 12 = 78\n",
"78 + 13 = 91\n",
"91 + 14 = 105\n"
]
}
],
"source": [
"tall = int(input(\"Skriv inn et tall: \"))\n",
"\n",
"while tall <= 0:\n",
" print(\"Vennligst skriv inn et tall som er større enn 0!\")\n",
" tall = int(input(\"Skriv inn et tall: \"))\n",
"\n",
"total = 0\n",
"i = 1\n",
"while total <= tall:\n",
" last_total = total\n",
" total += i\n",
" print(f\"{last_total} + {i} = {total}\")\n",
" i += 1"
]
},
{
"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": 29,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"4096\n",
"4096\n",
"8.0\n",
"Good bye!\n"
]
}
],
"source": [
"kommando = input(\"Skriv inn en kommando: \")\n",
"while kommando.lower() != \"avslutt\":\n",
" tall = int(kommando)\n",
" \n",
" kvadrat = tall ** 2\n",
" print(kvadrat)\n",
"\n",
" if tall >= 0:\n",
" kvadratrot = tall ** (1/2)\n",
" print(kvadratrot)\n",
"\n",
" kommando = input(\"Skriv inn en kommando: \")\n",
"\n",
"print(\"Good bye!\")"
]
},
{
"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": 35,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fasit: 814\n",
"Du har 5 forsøk\n"
]
},
{
"ename": "ValueError",
"evalue": "invalid literal for int() with base 10: ''",
"Cell \u001b[0;32mIn[35], line 9\u001b[0m\n\u001b[1;32m 6\u001b[0m forsok \u001b[39m=\u001b[39m \u001b[39m5\u001b[39m\n\u001b[1;32m 8\u001b[0m \u001b[39mprint\u001b[39m(\u001b[39mf\u001b[39m\u001b[39m\"\u001b[39m\u001b[39mDu har \u001b[39m\u001b[39m{\u001b[39;00mforsok\u001b[39m}\u001b[39;00m\u001b[39m forsøk\u001b[39m\u001b[39m\"\u001b[39m)\n\u001b[0;32m----> 9\u001b[0m tall \u001b[39m=\u001b[39m \u001b[39mint\u001b[39;49m(\u001b[39minput\u001b[39;49m(\u001b[39m\"\u001b[39;49m\u001b[39mSkriv inn et tall: \u001b[39;49m\u001b[39m\"\u001b[39;49m))\n\u001b[1;32m 10\u001b[0m forsok \u001b[39m-\u001b[39m\u001b[39m=\u001b[39m \u001b[39m1\u001b[39m\n\u001b[1;32m 12\u001b[0m \u001b[39mwhile\u001b[39;00m forsok \u001b[39m>\u001b[39m \u001b[39m0\u001b[39m \u001b[39mand\u001b[39;00m tall \u001b[39m!=\u001b[39m fasit:\n",
"\u001b[0;31mValueError\u001b[0m: invalid literal for int() with base 10: ''"
]
}
],
"source": [
"import random\n",
"\n",
"fasit = random.randint(0, 1000)\n",
"print(f\"Fasit: {fasit}\")\n",
"\n",
"forsok = 5\n",
"\n",
"print(f\"Du har {forsok} forsøk\")\n",
"tall = int(input(\"Skriv inn et tall: \"))\n",
"forsok -= 1\n",
"\n",
"while forsok > 0 and tall != fasit:\n",
" if tall > fasit:\n",
" print(\"Du har skrevet inn et for stort tall!\")\n",
" else:\n",
" print(\"Du har skrevet inn et for lite tall\")\n",
" \n",
" print(f\"Du har {forsok} forsøk\")\n",
" tall = int(input(\"Skriv inn et tall: \"))\n",
" forsok -= 1\n",
"\n",
"if tall == fasit:\n",
" print(\"Du vant!\")\n",
"else:\n",
" print(\"Du tapte :(\")"
]
},
{
"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": 38,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"99\n",
"102\n",
"Good bye!\n"
]
}
],
"source": [
"total = 0\n",
"while True:\n",
" tall = int(input(\"Skriv inn et tall: \"))\n",
" if tall == -1:\n",
" break\n",
" \n",
" total += tall\n",
" print(total)\n",
"\n",
" if total > 100:\n",
" break\n",
"\n",
"print(\"Good bye!\")"
]
},
{
"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": 39,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"87\n",
"118\n",
"66\n",
"112\n",
"92\n"
]
}
],
"source": [
"import random\n",
"\n",
"tall1 = int(input(\"Skriv inn et tall: \"))\n",
"tall2 = int(input(\"Skriv inn et tall: \"))\n",
"tall3 = int(input(\"Skriv inn et tall: \"))\n",
"\n",
"for i in range(tall1):\n",
" tall = random.randint(tall2, tall3)\n",
" print(tall)"
]
},
{
"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`"
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.
$$F = \frac{9}{5}C + 32$$
%% Cell type:code id: tags:
``` python
importnumpyasnp
importmatplotlib.pyplotasplt
defconvert_celsius_to_fahrenheit(celsius):
fahrenheit=9/5*celsius+32
returnfahrenheit
x=np.linspace(-100,100,200)
y=convert_celsius_to_fahrenheit(x)
plt.plot(x,y)
```
%% Output
[<matplotlib.lines.Line2D at 0x12775e750>]
%% Cell type:markdown id: tags:
## Eksempel 1 - Syntaks
%% Cell type:code id: tags:
``` python
# Dette er en "tuple". Vi skal se mer på det senere
sequence=(1,3,5,7,9,11,13)
fornumberinsequence:
print(number)
```
%% Output
1
3
5
7
9
11
13
%% Cell type:markdown id: tags:
## Eksempel 2 - `range()`
-`range(stop)`
-`range(start, stop)`
-`range(start, stop, step)`
%% Cell type:code id: tags:
``` python
foriinrange(8):
print(i)
```
%% Output
0
1
2
3
4
5
6
7
%% Cell type:code id: tags:
``` python
forjinrange(5,10):
print(j)
```
%% Output
5
6
7
8
9
%% Cell type:code id: tags:
``` python
forkinrange(0,20,2):
print(k)
```
%% Output
0
2
4
6
8
10
12
14
16
18
%% Cell type:code id: tags:
``` python
foriinrange(4):
print("ITGK")
print("Ferdig!")
```
%% Cell type:markdown id: tags:
## Oppgave 2
Skriv et program som printer
1. Alle tallene fra 0 til og med 10
2. Alle tallene fra 10 til og med 20 bortsett fra 14
3. Alle tallene fra 10 til og med 20 baklengs (20 -> 10)
4. Alle partall fra 50 til og med 74
**Ekstraoppgave**
Print tall mellom 0 og 1 med intervall på 0.1
%% Cell type:code id: tags:
``` python
print("Oppgave 1")
fortallinrange(11):
print(tall)
print("Oppgave 2")
fortallinrange(10,21):
iftall!=14:
print(tall)
print("Oppgave 3")
fortallinrange(20,9,-1):
print(tall)
```
%% Output
Oppgave 1
0
1
2
3
4
5
6
7
8
9
10
Oppgave 2
10
11
12
13
15
16
17
18
19
20
Oppgave 3
20
19
18
17
16
15
14
13
12
11
%% Cell type:code id: tags:
``` python
print("Oppgave 3")
fortallinrange(20,9,-1):
print(tall)
```
%% Output
Oppgave 3
20
19
18
17
16
15
14
13
12
11
10
%% Cell type:code id: tags:
``` python
forpartallinrange(50,75,2):
print(partall)
```
%% Output
50
52
54
56
58
60
62
64
66
68
70
72
74
%% Cell type:code id: tags:
``` python
fortallinrange(0,11):
print(tall/10)
```
%% Output
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
%% Cell type:markdown id: tags:
## Oppgave 3
Skriv et program som
1. Summerer sammen tallene fra 4 til og med 20
2. Finner produktet av tallene fra 2 til og med 10
**Hint**
Bruk en variabel som kan holde resultatet
**Ekstraoppgave**
Summer opp partall og oddetall hver for seg
%% Cell type:code id: tags:
``` python
total=0
foriinrange(4,21):
#total = total + i
total+=i
print(total)
produkt=1
foriinrange(2,11):
#produkt = produkt * i
produkt*=i
print(produkt)
```
%% Output
204
3628800
%% Cell type:markdown id: tags:
# Oppgave 4
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**
**Hint**
`a % b`
**Ekstraoppgave**
Gjør det samme, men uten å iterere gjennom alle tallene mellom de to første
%% Cell type:code id: tags:
``` python
start=int(input("Skriv inn start: "))
stop=int(input("Skriv inn stop: "))
divisor=int(input("Skriv inn divisor: "))
fortallinrange(start,stop):
iftall%divisor==0:
print(tall)
```
%% Output
6
8
%% Cell type:markdown id: tags:
## Eksempel - `while`-løkke
Kjører kode **inntill en betingelse ikke lenger er oppfylt**
%% Cell type:code id: tags:
``` python
i=0
# Printer "Hello" 5 ganger
whilei<5:
print("Hello")
i+=1
```
%% Output
Hello
Hello
Hello
Hello
Hello
%% Cell type:code id: tags:
``` python
i=5
# Printer tallene fra 5 til 10
whilei<=10:
print(i)
i+=1
```
%% Output
5
6
7
8
9
10
%% Cell type:code id: tags:
``` python
i=0
whilei<4:
print("ITGK")
i+=1
print("Ferdig!")
```
%% Output
ITGK
ITGK
ITGK
ITGK
Ferdig!
%% Cell type:markdown id: tags:
## Oppgave 5
Skriv et program som gjør følgende:
1. Tar inn et tall fra bruker
2. Summerer tallene fra 1 og oppover helt til summen overstiger tallet fra bruker
3. Skriver ut et hvert regnestykke til konsollen på formen `a + b = c`
**Ekstraoppgave:**
- Topp ved det siste tallet før summen overstiger tallet fra bruker
- Gi en feilmelding dersom brukeren skriver inn et negativt tall og be om et nytt
%% Cell type:code id: tags:
``` python
tall=int(input("Skriv inn et tall: "))
whiletall<=0:
print("Vennligst skriv inn et tall som er større enn 0!")
tall=int(input("Skriv inn et tall: "))
total=0
i=1
whiletotal<=tall:
last_total=total
total+=i
print(f"{last_total} + {i} = {total}")
i+=1
```
%% Output
Vennligst skriv inn et tall som er større enn 0!
Vennligst skriv inn et tall som er større enn 0!
0 + 1 = 1
1 + 2 = 3
3 + 3 = 6
6 + 4 = 10
10 + 5 = 15
15 + 6 = 21
21 + 7 = 28
28 + 8 = 36
36 + 9 = 45
45 + 10 = 55
55 + 11 = 66
66 + 12 = 78
78 + 13 = 91
91 + 14 = 105
%% Cell type:markdown id: tags:
## Oppgave 6
Lag en evig `while`-løkke som
1. Tar inn tall fra brukeren
2. Skriver ut kvadratet ($x^2$) og kvadratroten av tallet
**Hint**
$x^{1/2}$ eller [math.sqrt(x)](https://docs.python.org/3/library/math.html#math.sqrt)
**Ekstraoppgave**
- Dersom brukeren skriver "avslutt" skal løkken stoppe
- Dersom brukeren skriver inn et negativt tall, ikke skriv ut kvadratroten
%% Cell type:code id: tags:
``` python
kommando=input("Skriv inn en kommando: ")
whilekommando.lower()!="avslutt":
tall=int(kommando)
kvadrat=tall**2
print(kvadrat)
iftall>=0:
kvadratrot=tall**(1/2)
print(kvadratrot)
kommando=input("Skriv inn en kommando: ")
print("Good bye!")
```
%% Output
4096
4096
8.0
Good bye!
%% Cell type:markdown id: tags:
## Oppgave 7
Lag et program som gjør følgende:
1. Tar inn et tall fra brukeren
2. Sjekker om tallet er likt et annet tall som du har bestemt på forhånd
- Dersom tallet er likt, skriver programmet ut "Du vant!"
3. Hvis tallene **ikke** er like: Si om det innskrevne tallet er større eller mindre enn det hemmelige tallet
4. Be brukeren om å skrive inn et nytt tall
**Ekstraoppgave**
- Skriv at tallet er *mye* større/mindre hvis det er mer enn 10 i differanse
- Gi brukeren 5 forsøk, og gi brukeren beskjed om hvor mange forsøk som er igjen
ValueError: invalid literal for int() with base 10: ''
%% Cell type:markdown id: tags:
## Oppgave 8
- Skriv en `while`-løkke som ber om et tall fra bruker hver iterasjon og summerer tallene som er skrevet inn
- Gjør at programmet avsluttes dersom `-1` skrive inn (uten å legge -1 til i summen)
- Avslutt programmet dersom summen overgår 100 (men skriv ut siste summen)
**Ekstraoppgave**
La brukeren bestemme tallet programmet skal avsluttes når summen overgår
%% Cell type:code id: tags:
``` python
total=0
whileTrue:
tall=int(input("Skriv inn et tall: "))
iftall==-1:
break
total+=tall
print(total)
iftotal>100:
break
print("Good bye!")
```
%% Output
99
102
Good bye!
%% Cell type:markdown id: tags:
## Eksempel - tilfeldige tall
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 id: tags:
``` python
importrandom
# Printer et tilfeldig tall mellom 1 og 10
rand_num_1=random.randint(1,10)
# Printer et tilfeldig tall mellom 1 og 9
rand_num_2=random.randrange(1,10)
print(rand_num_1,rand_num_2)
```
%% Cell type:markdown id: tags:
## Oppgave 9
- Lag et program som printer et antall tilfeldige tall mellom to tall brukeren skriver inn. Antallet skal også være gitt av brukeren.
**Hint**
```python
importrandom
random.randint(1,10)
```
**Ekstraoppgave**
- Modifiser programmet til å printe ut hvor mange oddetall som ble laget til slutt
- Skriv ut gjennomsnittet av alle tallene
%% Cell type:code id: tags:
``` python
importrandom
tall1=int(input("Skriv inn et tall: "))
tall2=int(input("Skriv inn et tall: "))
tall3=int(input("Skriv inn et tall: "))
foriinrange(tall1):
tall=random.randint(tall2,tall3)
print(tall)
```
%% Output
87
118
66
112
92
%% Cell type:markdown id: tags:
## Oppgave 10
Du skal ha Multiple Choice eksamen med 10 spørsmål, og lurer på om du klarer å gjette deg til å stå!
- 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
- Etter løkken, skriv ut hvor mange prosent riktig du hadde
**Hint**
```python
importrandom
random.randint(1,10)
```
%% Cell type:code id: tags:
``` python
# Skriv kode her
```
%% Cell type:markdown id: tags:
## Oppgave 11
Lag et program som
1. Tar inn et heltall `max_rand_int` fra brukeren
2. Tar inn et heltall `target` fra brukeren
3. Genererer tilfeldige tall mellom 0 og `max_rand_int` helt til det genererer `target`
4. Printer hvert genererte tall
**Ekstraoppgave**
Utvid programmet til å til slutt printe hvor mange forsøk det trengte for å lage `target`