Commit a6370873 authored by Geir Ola Lillestøl Tvinnereim's avatar Geir Ola Lillestøl Tvinnereim
Browse files

LF oving3 fjerna

parent bc164555
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#Oppgave a\n",
"n=int(input(\"n=: \"))\n",
"summen=0\n",
"for a in range(1,n+1):\n",
" if a%2==0:\n",
" summen-= a**2\n",
" else:\n",
" summen+= a**2 \n",
"print(\"Summen av tallserien er\",summen)\n",
" \n",
"#oppgave b\n",
"k = int( input (\"k = \"))\n",
"s = 0\n",
"i = 1\n",
"while True :\n",
" new_s = s + ((-1)**(i+1) * i**2) #(-1)**(i+1) gjør at alle ledd som er partall blir negative\n",
" if new_s > k:\n",
" break #break gjør at løkken avsluttes\n",
" s = new_s\n",
" i += 1\n",
"print (\"Summen av tallene før summen blir større enn k er %d. Antall iterasjoner: %d\" % (s, i-1))\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"a)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"for x in range(5):\n",
" for y in range(x+1):\n",
" print(y+1, end=' ')\n",
" print()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"b)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"for x in range(5):\n",
" print(\"#\", end='')\n",
" for y in range(x):\n",
" print(' ', end='')\n",
" print(\"#\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"c)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"heltall = int(input(\"Skriv inn et positivt heltall: \"))\n",
"tall = heltall # bruker en hjelpevariabel, ikke \"ødelegge\" brukerens tall\n",
"svar = \"\" # tom streng foreløpig, skal samle opp faktorene her\n",
"faktor = 2 # starter med å prøve den laveste mulige faktoren\n",
"while tall >= 4: # < 4 er definitivt et primtall\n",
" while tall % faktor == 0: # har funnet en faktor\n",
" tall = tall // faktor # reduserer tallet ved å dele vekk faktoren\n",
" svar += str(faktor) # putter faktoren inn i svarstrengen\n",
" if tall > 1: # fortsatt flere faktorer\n",
" svar += \"*\" # legger derfor til et gangetegn i svaret\n",
" faktor += 1 # forrige faktor oppbrukt, øker med 1 for å prøve ny\n",
"if \"*\" in svar: # har funnet et produkt av flere tall\n",
" print(heltall, \"=\", svar)\n",
"else:\n",
" print(heltall, \"er et primtall\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"d)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import random\n",
" \n",
"mer = 1\n",
"while mer:\n",
" a = random.randint(0,9)\n",
" b = random.randint(0,9)\n",
" svar = a*b\n",
" antall = 2\n",
" for x in range(3):\n",
" brukerInput = int(input('Hva blir '+str(a)+'*'+str(b)+'? '))\n",
" if brukerInput==svar:\n",
" print('Gratulerer, det er helt riktig!')\n",
" break\n",
" else:\n",
" print('Dessverre ikke riktig. Du har',antall,'forsøk igjen.')\n",
" antall-=1\n",
" if antall <0:\n",
" print('Dessverre klarte du ikke dette regnestykket, men vent så får du et nytt et:)')\n",
" \n",
" mer = int(input('Er det ønskelig med flere spørsmål? Skriv 1 for ja og 0 for nei: '))\n",
" print()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"e)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import random\n",
" \n",
"mer = 1\n",
"antallRette = 0\n",
"ovreGrense = 5\n",
"while mer:\n",
" a = random.randint(0,ovreGrense)\n",
" b = random.randint(0,ovreGrense)\n",
" svar = a*b\n",
" antall = 2\n",
" for x in range(3):\n",
" brukerInput = int(input('Hva blir '+str(a)+'*'+str(b)+'? '))\n",
" if brukerInput==svar:\n",
" print('Gratulerer, det er helt riktig!')\n",
" antallRette +=1\n",
" break\n",
" else:\n",
" print('Dessverre ikke riktig. Du har',antall,'forsøk igjen.')\n",
" antall-=1\n",
" if antall <0:\n",
" antallRette = 0\n",
" print('Dessverre klarte du ikke dette regnestykket, men vent så får du et nytt et:)')\n",
" \n",
" mer = int(input('Er det ønskelig med flere spørsmål? Skriv 1 for ja og 0 for nei: '))\n",
" if antallRette%5==0 and antallRette>0:\n",
" ovreGrense +=5\n",
" print()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"a)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"n = 13\n",
"fib, fib_next = 0,1\n",
"if n==0:\n",
" print(fib)\n",
"elif n==1:\n",
" print(fib_next)\n",
"else:\n",
" for i in range(2,n+1):\n",
" fib, fib_next = fib_next , fib+fib_next \n",
" print(fib_next)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"b)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"n = 13\n",
"fib, fib_next = 0,1\n",
"sum = 0\n",
"if n==0:\n",
" sum = fib\n",
" print(fib)\n",
"elif n==1:\n",
" sum = fib + fib_next\n",
" print(fib_next)\n",
"else:\n",
" for i in range(2,n+1):\n",
" fib, fib_next = fib_next , fib+fib_next\n",
" sum += fib\n",
" sum +=fib_next\n",
" print(fib_next)\n",
"print(sum)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"c)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"n = 13\n",
"fibliste = [0,1]\n",
"if n==0:\n",
" print(fibliste[0])\n",
"else:\n",
" for i in range(2,n+1):\n",
" fibliste.append(fibliste[i-1]+fibliste[i-2])\n",
" print(fibliste)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"a)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import math\n",
"n = 4\n",
"r = 0.5\n",
"sum, i = 0,0\n",
"while True:\n",
" sum += pow(r,i)\n",
" i += 1\n",
" if i > n:\n",
" break\n",
"print ('Summen av rekken er', sum)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"b) og c)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"For å være innenfor toleransegrensen: 0.001 , kjørte løkken 11 ganger\n",
"Differansen mellom virkelig og estimert verdi var da 0.0009765625\n"
]
}
],
"source": [
"r = 0.5\n",
"s, i = 0, 0\n",
"tol = 0.001\n",
"limit = 2\n",
" \n",
"while True:\n",
" s += r**i\n",
" i += 1\n",
" if(limit - s <= tol):\n",
" break\n",
" \n",
"print(\"For å være innenfor toleransegrensen:\", tol, \", kjørte løkken\", i, \"ganger\")\n",
"print('Differansen mellom virkelig og estimert verdi var da', limit-s)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import random\n",
" \n",
"a = int(input(\"Gi en nedre grense for det randome tallet: \"))\n",
"b = int(input(\"Gi en øvre grense for det romdome tallet: \"))\n",
"TilfeldigTall = random.randint(a, b)\n",
"riktig=False\n",
"while riktig==False:\n",
" guess = int(input(\"Make a guess \"))\n",
" if guess==TilfeldigTall:\n",
" riktig = True\n",
" elif guess < TilfeldigTall:\n",
" print(\"The correct Number is higher\")\n",
" else:\n",
" print(\"The correct number is lower\")\n",
"print(\"You guessed correct!\")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"hemmelig_ord = input('Skriv inn det hemmelige ordet: ')\n",
"antall_liv = int(input('Hvor mange forsøk får brukeren? '))\n",
" \n",
"while True:\n",
" bokstav = input('Gjett på én bokstav i ordet: ')\n",
" if bokstav in hemmelig_ord:\n",
" print ('Stemmer, bokstaven er i ordet')\n",
" else:\n",
" antall_liv -= 1\n",
" print ('Bokstaven', bokstav, 'er ikke i ordet.')\n",
" if antall_liv > 0:\n",
" print ('Du har ', antall_liv, 'liv igjen, prøv på nytt.')\n",
" else:\n",
" print ('Du har ingen liv igjen.')\n",
" break"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"a)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"ant_stud = int(input(\"Hvor mange studenter? \"))\n",
"ant_emner = int(input(\"Hvor mange emner? \"))\n",
"for x in range(1, ant_stud+1):\n",
" for y in range(1, ant_emner+1):\n",
" print(\"Stud\", x, \"elsker Emne\", y, end=\" ; \")\n",
" print()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"EKSTRAOPPGAVE (her er selvsagt andre valg for personnavn, emnenavn og verb m.m. mulig):"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from random import random\n",
" \n",
"stud = ['Ada', 'Grace', 'Guido', 'Linus', 'Runa']\n",
"emner = ['Ex.phil.', 'Ex.fac.', 'Matte', 'ITGK']\n",
"for st in stud:\n",
" print(st, end = \" \")\n",
" for em in emner:\n",
" tall = random()\n",
" if tall > 0.9:\n",
" verb = 'elsker'\n",
" elif tall > 0.6:\n",
" verb = 'digger'\n",
" elif tall > 0.3:\n",
" verb = 'liker'\n",
" else:\n",
" verb = '\"liker\"'\n",
" print(verb, em, end = \"; \")\n",
" print()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"b)\n",
"\n",
"\"Rett fram\"-løsning på denne er en dobbel løkke med print() i den innerste. Dette programmet vil imidlertid gå fryktelig tregt:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"for x in range(24):\n",
" for y in range(60):\n",
" print(x + \":\" + y)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Årsaken til høyt tidsforbruk er at print ut på skjermen er tidkrevende. Hvis man ønsker et raskere program vil det derfor lønne seg å printe færre ganger, og da skrive større bolker av tekst hver gang. Mest ekstremt kan man samle opp alt som skal printes i en stor streng som man skriver ut når den doble løkka er ferdig:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"ut_streng = \"\"\n",
"for x in range(24):\n",
" for y in range(60):\n",
" ut_streng += str(x) + \":\" + str(y) + \"\\n\"\n",
" # \"\\n\" er linjeskift\n",
"print(ut_streng)"
]