Commit 3bea5b90 authored by Patrick Nitschke's avatar Patrick Nitschke
Browse files

legge til Øving 3

parent d2dffb7b
%% Cell type:markdown id: tags:
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="_Oving3.ipynb">Øving 3</a>
</div>
<ul class="nav navbar-nav">
<li ><a href="Intro%20til%20lokker.ipynb">Intro til løkker</a></li>
<li ><a href="Mer%20om%20lokker.ipynb">Mer om løkker</a></li>
<li><a href="Nostede%20lokker.ipynb">Intro til nøstede løkker</a></li>
<li ><a href="Kodeforstaelse.ipynb">Kodeforståelse</a></li>
<li ><a href="Gjett%20tallet.ipynb">Gjett tallet</a></li>
<li ><a href="Geometrisk%20rekke.ipynb">Geometrisk rekke</a></li>
<li ><a href="Tekstbasert%20spill%202.ipynb">Tekstbasert spill 2</a></li>
<li ><a href="Fibonacci.ipynb">Fibonacci</a></li>
<li class="active"><a href="Alternerende%20sum.ipynb">Alternerende sum</a></li>
<li ><a href="Hangman.ipynb">Hangman</a></li>
<li ><a href="Doble%20lokker.ipynb">Doble løkker</a></li>
</ul>
</div>
</nav>
# Alternerende sum
**Læringsmål:**
* Løkker
**Starting Out with Python:**
* Kap. 4.2-4.3
I denne oppgaven skal du ved hjelp av løkker summere sammen tall, basert på brukerinput.
%% Cell type:markdown id: tags:
**a)** Skriv et program som leser inn et heltall n fra bruker og legger sammen tallserien under.
**$1^{2}-2^{2}+3^{2}-4^{2}+5^{2}-\cdot \cdot \cdot \pm n^{2}$**
Legg merke til at alle partallene har negativt fortegn og alle oddetallene har positivt fortegn. Husk at navnet på variabelen din ***ikke*** kan være **sum**, ettersom dette er navnet på en funksjon i python. Husk også at range() bare går til et tall og ikke til og med.
Eksempel på kjøring:
```python
n = 7
Summen av tallserien er 28
```
***Skriv koden din her:***
%% Cell type:code id: tags:
``` python
```
%% Cell type:markdown id: tags:
**b)** Skriv et nytt program slik at det avslutter iterasjonen **før** summen av tallene er større enn det positive heltallet k. Dette vil si at resultatet som skal skrives ut er summen siste ledd før summen går over tallet k.
Hold styr hvor mange ledd fra tallserien som er brukt i summen og skriv dette ut sammen med resultatet.
Eksempel kjøring:
```python
k = 6
Summen av tallene før summen blir større enn k er -10. Antall iterasjoner: 4
```
```python
k = 12
Summen av tallene før summen blir større enn k er -10. Antall iterasjoner: 4
```
```python
k = 15
Summen av tallene før summen blir større enn k er -21. Antall iterasjoner: 6
```
***Skriv koden din her:***
%% Cell type:code id: tags:
``` python
```
%% Cell type:markdown id: tags:
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="_Oving3.ipynb">Øving 3</a>
</div>
<ul class="nav navbar-nav">
<li ><a href="Intro%20til%20lokker.ipynb">Intro til løkker</a></li>
<li ><a href="Mer%20om%20lokker.ipynb">Mer om løkker</a></li>
<li><a href="Nostede%20lokker.ipynb">Intro til nøstede løkker</a></li>
<li ><a href="Kodeforstaelse.ipynb">Kodeforståelse</a></li>
<li ><a href="Gjett%20tallet.ipynb">Gjett tallet</a></li>
<li ><a href="Tekstbasert%20spill%202.ipynb">Tekstbasert spill 2</a></li>
<li ><a href="Geometrisk%20rekke.ipynb">Geometrisk rekke</a></li>
<li ><a href="Fibonacci.ipynb">Fibonacci</a></li>
<li><a href="Alternerende%20sum.ipynb">Alternerende sum</a></li>
<li ><a href="Hangman.ipynb">Hangman</a></li>
<li class="active"><a href="Doble%20lokker.ipynb">Doble løkker</a></li>
</ul>
</div>
</nav>
# Doble løkker - til dels vanskelig
**Læringsmål:**
* Nøstede løkker
**Starting Out with Python:**
* Kap. 4.7
%% Cell type:markdown id: tags:
a) Skriv et program som benytter seg av en dobbel for-løkke og skriver ut følgende:
```python
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
```
***Skriv koden din her:***
%% Cell type:code id: tags:
``` python
```
%% Cell type:markdown id: tags:
b) Skriv et program som benytter seg av en dobbel for-løkke og skriver ut følgende:
```python
X X
X X
X X
X X
X X
```
***Skriv koden din her:***
%% Cell type:code id: tags:
``` python
```
%% Cell type:markdown id: tags:
**c)** Skriv et program som lar brukeren gi som input fra tastaturet et positivt heltall. Programmet skal da skrive ut primtallsfaktoriseringen til tallet, eller evt. at det allerede er et primtall. Eksempel på et par kjøringer:
```python
Skriv inn et positivt heltall: 2
2 er et primtall
>>>
Skriv inn et positivt heltall: 38
38 = 2*19
>>>
Skriv inn et positivt heltall: 1000
1000 = 2*2*2*5*5*5
>>>
Skriv inn et positivt heltall: 73727
73727 er et primtall
>>>
Skriv inn et positivt heltall: 123456789
123456789 = 3*3*3607*3803
>>>
```
Dette er et problem som peker i retning av dobbel løkke fordi samme tall kan være faktor flere ganger, som f.eks. i `1000 = 2*2*2*5*5*5`. Den ytre løkka trengs for å prøve ut stadig nye faktorer, den indre for å prøve om igjen samme faktor, i tilfelle den inngår flere ganger i tallet.
***Skriv koden din her:***
%% Cell type:code id: tags:
``` python
```
%% Cell type:markdown id: tags:
**d)** Du skal hjelpe frøken Bernsen med å lage et enkelt program hvor elevene kan øve seg på den lille gangetabellen. Eleven skal stadig møte på nye gangestykker, og får 3 forsøk på hvert spørsmål. Benytt deg av randint(0,9) for å få tilfeldige tall for hvert gangestykke. Programmet skal fortsette frem til eleven gir beskjed om noe annet.
Eksempel på kjøring:
```python
Hva blir 2*0? 0