"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.\n",
"\n",
"Eksempel på kjøring:\n",
"```python\n",
"n = 7\n",
"Summen av tallserien er 28\n",
"```\n",
"\n",
"***Skriv koden din her:***"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"ExecuteTime": {
"end_time": "2019-07-03T06:12:01.940513Z",
"start_time": "2019-07-03T06:12:01.928036Z"
}
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"run_control": {
"frozen": true
}
},
"source": [
"**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 på siste ledd før summen går over tallet k.\n",
"\n",
"Hold styr på hvor mange ledd fra tallserien som er brukt i summen og skriv dette ut sammen med resultatet.\n",
"\n",
"Eksempel på kjøring:\n",
"\n",
"```python\n",
"k = 6\n",
"Summen av tallene før summen blir større enn k er -10. Antall iterasjoner: 4\n",
"```\n",
"```python\n",
"k = 12\n",
"Summen av tallene før summen blir større enn k er -10. Antall iterasjoner: 4\n",
"```\n",
"```python\n",
"k = 15\n",
"Summen av tallene før summen blir større enn k er -21. Antall iterasjoner: 6\n",
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.
"a) Skriv et program som benytter seg av en dobbel for-løkke og skriver ut følgende:\n",
"\n",
"```python\n",
"1\n",
"1 2\n",
"1 2 3\n",
"1 2 3 4\n",
"1 2 3 4 5\n",
"```\n",
"\n",
"***Skriv koden din her:***"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"ExecuteTime": {
"end_time": "2019-07-03T06:31:27.370599Z",
"start_time": "2019-07-03T06:31:27.365228Z"
}
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"run_control": {
"frozen": true
}
},
"source": [
"b) Skriv et program som benytter seg av en dobbel for-løkke og skriver ut følgende:\n",
"\n",
"```python\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"X X\n",
"```\n",
"\n",
"***Skriv koden din her:***"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"ExecuteTime": {
"end_time": "2019-07-03T06:36:27.852028Z",
"start_time": "2019-07-03T06:36:27.844946Z"
}
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"run_control": {
"frozen": true
}
},
"source": [
"**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:\n",
"```python\n",
"Skriv inn et positivt heltall: 2\n",
"2 er et primtall\n",
">>>\n",
"Skriv inn et positivt heltall: 38\n",
"38 = 2*19\n",
">>>\n",
"Skriv inn et positivt heltall: 1000\n",
"1000 = 2*2*2*5*5*5\n",
">>>\n",
"Skriv inn et positivt heltall: 73727\n",
"73727 er et primtall\n",
">>>\n",
"Skriv inn et positivt heltall: 123456789\n",
"123456789 = 3*3*3607*3803\n",
">>>\n",
"```\n",
"\n",
"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.\n",
"\n",
"***Skriv koden din her:***"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"ExecuteTime": {
"end_time": "2019-07-03T06:38:34.639856Z",
"start_time": "2019-07-03T06:38:34.633773Z"
}
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"run_control": {
"frozen": true
}
},
"source": [
"**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.\n",
"\n",
"Eksempel på kjøring:\n",
"\n",
"```python\n",
"Hva blir 2*0? 0\n",
"Gratulerer, det er helt riktig!\n",
"Er det ønskelig med flere spørsmål? Skriv 1 for ja og 0 for nei: 1\n",
">>> \n",
"Hva blir 8*6? 42\n",
"Dessverre ikke riktig. Du har 2 forsøk igjen.\n",
"Hva blir 8*6? 48\n",
"Gratulerer, det er helt riktig!\n",
"Er det ønskelig med flere spørsmål? Skriv 1 for ja og 0 for nei: 1\n",
">>>\n",
"Hva blir 8*9? 73\n",
"Dessverre ikke riktig. Du har 2 forsøk igjen.\n",
"Hva blir 8*9? 74\n",
"Dessverre ikke riktig. Du har 1 forsøk igjen.\n",
"Hva blir 8*9? 78\n",
"Dessverre ikke riktig. Du har 0 forsøk igjen.\n",
"Dessverre klarte du ikke dette regnestykket, men vent så får du et nytt et:)\n",
"Er det ønskelig med flere spørsmål? Skriv 1 for ja og 0 for nei: 1\n",
">>>\n",
"Hva blir 9*1? 9\n",
"Gratulerer, det er helt riktig!\n",
"Er det ønskelig med flere spørsmål? Skriv 1 for ja og 0 for nei: 0\n",
">>>\n",
"```\n",
"\n",
"***Skriv koden din her:***"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"ExecuteTime": {
"end_time": "2019-07-03T06:40:51.257308Z",
"start_time": "2019-07-03T06:40:51.248787Z"
}
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"deletable": false,
"editable": false,
"run_control": {
"frozen": true
}
},
"source": [
"**e)** (frivillig)\n",
"\n",
"Du skal endre programmet ditt fra d) slik at eleven først får veldig lette gangestykker ved å bruke randint(0,5) (fra random-biblioteket). Dersom eleven klarer å svare rett på 5 spørsmål på rad (eleven kan fremdeles bruke 3 forsøk), skal vanskelighetsgraden øke ved å bruke randint(0,10). Dette intervallet skal altså øke med 5 for hver gang eleven svarer korrekt på 5 spørsmål på rad. \n",
"\n",
"Eksempel på kjøring:\n",
"\n",
"```python\n",
"Hva blir 1*2? 2 #1 riktig svar\n",
"Gratulerer, det er helt riktig!\n",
"Er det ønskelig med flere spørsmål? Skriv 1 for ja og 0 for nei: 1\n",
"```\n",
"```python\n",
"Hva blir 1*5? 5 #2 riktige svar\n",
"Gratulerer, det er helt riktig!\n",
"Er det ønskelig med flere spørsmål? Skriv 1 for ja og 0 for nei: 1\n",
" ```\n",
" ```python\n",
"Hva blir 3*5? 15 #3 riktige svar\n",
"Gratulerer, det er helt riktig!\n",
"Er det ønskelig med flere spørsmål? Skriv 1 for ja og 0 for nei: 1\n",
" ```\n",
" ```python\n",
"Hva blir 2*1? 2 #4 riktige svar\n",
"Gratulerer, det er helt riktig!\n",
"Er det ønskelig med flere spørsmål? Skriv 1 for ja og 0 for nei: 1\n",
" ```\n",
" ```python\n",
"Hva blir 2*0? 2\n",
"Dessverre ikke riktig. Du har 2 forsøk igjen.\n",
"Hva blir 2*0? 0 #5 riktige svar\n",
"Gratulerer, det er helt riktig!\n",
"Er det ønskelig med flere spørsmål? Skriv 1 for ja og 0 for nei: 1\n",
" ```\n",
" ```python\n",
"Hva blir 0*10? 0 #Intervallet har økt og 1 riktig svar\n",
"Gratulerer, det er helt riktig!\n",
"Er det ønskelig med flere spørsmål? Skriv 1 for ja og 0 for nei: 1\n",
".\n",
".\n",
".\n",
"Hva blir 15*29? 435 \n",
"Gratulerer, det er helt riktig!\n",
"Er det ønskelig med flere spørsmål? Skriv 1 for ja og 0 for nei: 0\n",
**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.