Download - Grundläggande programmering
Grundläggande programmering
Innehåll
• Problemen• Variabler• Villkorssatser• Problem 1• Upprepningar• Problem 2• Vektorer • Problem 3
Introduktion
Problem
• Problem 1: Vi får göra ett uttag som är mellan 100 och 2000 men endast om uttaget är samma som eller mindre än beloppet på kontot
• Problem 2: Beräkna fakulteter (10! = 10*9*8.. )• Problem 3: Hitta det största talet i en mängd
För att lösa problem 1
• Vi behöver veta något om: • Variabler• Villkorssatser
Variabler
x = 5;
Variabelns namn
Variabelns värde
Vi säger att variabeln x har tilldelats värdet 5
Variabler
Olika värden:x = 3;x = 2.01;x = true;
En kompilator (Tolk) läser varje instruktion radvis och börjar med den översta.
Räkneoperationer för tal
• + Addition• - Subtraktion• * Multiplikation• / Division
Räkneoperationer för heltal
• Exempel på addition:x = 5;
Hur skriver vi för att x ska ha tilldelats värdet 7 (vi måste addera till 2)?
Så här? x + 2;NEJ För att x ska ha tilldelats värdet 7. måste vi
använda tilldelningstecknet =
Räkneoperationer för heltal• Fortsättning på exempelSå här? x = 2;NästanNu tilldelade vi x värdet 2. Men hur gör vi då?x = x + 2;Rätt Vi hämtar x sedan tidigare och lägger till 2 och
sparar resultatet i x.
Räkneoperationer för heltal• Slutsats?Här skiljer sig matematik och programmering!Från föregående exempelx = x + 2;Om vi läser det som en ekvation får vi att:0 = 2 !
OBS! Tilldelningstecknet är inte samma sak som matematikens likhetstecken
Räkneoperationer för heltal• Testa din förståelse!x = 4;y = 3;x = y;y = y + x;Vad blev x?x = 3Vad blev y?y = 6
Division
• 1/3 = 0.33333… fortsätter med 3:or i all oändlighet.
• Exempel:x = 1/3Innehåller vår variabel ett oändligt antal
3:or?Nej! För att lagra ett oändligt antal 3:or
behöver vi ett oändligt stort minne att lagra de i.
Fler begränsningar
• Datorn har ett största tal• Datorn har ett minsta tal
Vad gör det?Detta påverkar ens beräkningar och ger
upphov till en del fenomen. Vilket tas upp i beräkningsvetenskap I.
Villkorssatser
• När vi vill att något ska ske efter att ett villkor har uppfyllts använder vi en villkorssats (kallas även if-sats)
Villkorssatser• Exempel:Om lampknappen är nertryckt så tänd lyset.Lampknappen är nertryckt.
Modell:lampknapp = true;if lampknapp är true
%kod som tänder lysetend
Villkorssatser• Det finns olika sätt att göra jämförelser på.
• I vårt fall var vi intresserade av att se om lampknappens värde var samma som true.
• Det hade vi skrivit så här:if lampknapp == true%kod som tänder lysetend
Villkorssatser
a >b a är större än ba < b a är mindre än ba >= b a är större än eller samma som
ba <= b a är mindre än eller samma som ba == b a är samma som ba != b a är inte samma som b
Villkorssatser
• Om vi vill göra något endast om ett villkor inte är uppfyllt kan vi bygga vidare på vår if-sats. Vi utökar föregående exempel:if lampknapp == true
%kod som tänder lysetelse
%kod som släcker lysetend
Villkorssatser
• Exempel: Vi vill tanka bilen om det ryms bensin i bensintanken
• Vi vill veta hur mycket bensin som vi har fyllt tanken med
Villkorssatser
• Vilka variabler har vi? Vi gissar på…• maxtank %Maxvolym i tanken• bensintank %Volym i tanken• önskadtank %Önskad volym• giventank %Bensinen macken ger
oss
Villkorssatser
• Vilka scenarion finns?1. Vi försöker stoppa i för mycket bensin2. Vi stoppar in tillåten mängd bensin
• Kan flera scenarion inträffa samtidigt?Nej. Vi kan inte ha en överfull tank samtidigt
som det finns plats kvar i den!
Villkorssatser
1. Vi stoppar in tillåten mängd bensin (Lättaste först)
• Sökt: hur mycket bensin tanken fylls med• Det måste vara samma mängd som den
vi bad om! alltså:giventank = önskadtank
Villkorssatser
• Vi försöker stoppa i för mycket bensin• Sökt: hur mycket bensin tanken fylls med• Vi stoppar i för mycket bensin om:• Bensintank + önskadtank > maxtank• Bensin vi fyller på med är då:• giventank = maxtank - bensintank
Villkorssatser
• Sätter vi ihop allt har vi:• if bensintank + önskadtank > maxtank
giventank = maxtank –bensintankelsegiventank = önskadtankend
Villkorssatser
• Vi kan sätta ihop flera villkor• Exempel:
if anv == 1234 && password == 4321
• på svenska: om användarnamnet är 1234 och lösenordet är 4321 så är villkoret uppfyllt
• eller skrivs med |
Problem 1
• Problem 1: Vi får göra ett uttag som är mellan 100 och 2000 men endast om uttaget är samma som eller mindre än beloppet på kontot
• Vilka variabler behövs?• Hur ser villkoren ut som beskriver
uttagen?
Upprepningar
• Vi vill upprepa kod så länge ett villkor är uppfyllt
Upprepningar• Exempel: 1+2+3+..+10 = ..
• Vad gäller?• Upprepningsvillkor: Vi börjar på 1 och
slutar efter 10, vi ökar med 1per steg.Under varje upprepning lagrar vi summan
10
1ii
Upprepningar
summa = 0;for i går från 1 till 10 %ändra summanend
Upprepningar
summa = 0;for i=1:1:10summa = summa + i;end
Upprepningar
• Vad gör vi om vi vill stega så länge a > b, eller nåt liknande?
• Vi behöver något annat än for, vi behöver while
While
while villkor%gör det här så länge villkoret är uppfyllt%Se till så att variablerna i villkoret ändrasend
• While används när vi vill ha större kontroll över stegningen.
Problem 2
• Beräkna fakulteter• 10! = 10*9*8*7*6*5*4*3*2*1• 0! = 1
• Prova beräkningen åt båda hållen. 1*2*3*..• Sen 10*9*8*..
Vektorer
• En vektor är en variabel med en lista av värden
Vektorer
• Exempel:
a = (1,0,0,0,0); 1 0 0 0 0
Vektorer• För att komma åt ett
element måste vi tala om vektorns index.
• Kod: a(1) = 2
1 0 0 0 0
index: 2värde: 0
2 0 0 0 0
Vektorer
• Exempel:• Vi vill beräkna medelvärdet (Totala
summan delat på antalet element) givet mängden = {1,0,0,1}
• Medelvärde : 0.25 * (1+0+0+1) = 0.5
Vektorer
• Vad blir koden?a = [1,0,0,1];summa = 0;for i=1:1:4
summa = summa + a(i);endmedelvärde = summa/4;
Problem 3
• Hitta det största talet i mängden:{2,9,8,11,6}