grundläggande programmering

40
Grundläggande programmering

Upload: liliha

Post on 15-Mar-2016

87 views

Category:

Documents


5 download

DESCRIPTION

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 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Grundläggande programmering

Grundläggande programmering

Page 2: Grundläggande programmering

Innehåll

• Problemen• Variabler• Villkorssatser• Problem 1• Upprepningar• Problem 2• Vektorer • Problem 3

Page 3: Grundläggande programmering

Introduktion

Page 4: Grundläggande programmering

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

Page 5: Grundläggande programmering

För att lösa problem 1

• Vi behöver veta något om: • Variabler• Villkorssatser

Page 6: Grundläggande programmering

Variabler

x = 5;

Variabelns namn

Variabelns värde

Vi säger att variabeln x har tilldelats värdet 5

Page 7: Grundläggande programmering

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.

Page 8: Grundläggande programmering

Räkneoperationer för tal

• + Addition• - Subtraktion• * Multiplikation• / Division

Page 9: Grundläggande programmering

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 =

Page 10: Grundläggande programmering

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.

Page 11: Grundläggande programmering

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

Page 12: Grundläggande programmering

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

Page 13: Grundläggande programmering

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.

Page 14: Grundläggande programmering

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.

Page 15: Grundläggande programmering

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)

Page 16: Grundläggande programmering

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

Page 17: Grundläggande programmering

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

Page 18: Grundläggande programmering

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

Page 19: Grundläggande programmering

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

Page 20: Grundläggande programmering

Villkorssatser

• Exempel: Vi vill tanka bilen om det ryms bensin i bensintanken

• Vi vill veta hur mycket bensin som vi har fyllt tanken med

Page 21: Grundläggande programmering

Villkorssatser

• Vilka variabler har vi? Vi gissar på…• maxtank %Maxvolym i tanken• bensintank %Volym i tanken• önskadtank %Önskad volym• giventank %Bensinen macken ger

oss

Page 22: Grundläggande programmering

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!

Page 23: Grundläggande programmering

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

Page 24: Grundläggande programmering

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

Page 25: Grundläggande programmering

Villkorssatser

• Sätter vi ihop allt har vi:• if bensintank + önskadtank > maxtank

giventank = maxtank –bensintankelsegiventank = önskadtankend

Page 26: Grundläggande programmering

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 |

Page 27: Grundläggande programmering

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?

Page 28: Grundläggande programmering

Upprepningar

• Vi vill upprepa kod så länge ett villkor är uppfyllt

Page 29: Grundläggande programmering

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

Page 30: Grundläggande programmering

Upprepningar

summa = 0;for i går från 1 till 10 %ändra summanend

Page 31: Grundläggande programmering

Upprepningar

summa = 0;for i=1:1:10summa = summa + i;end

Page 32: Grundläggande programmering

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

Page 33: Grundläggande programmering

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.

Page 34: Grundläggande programmering

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*..

Page 35: Grundläggande programmering

Vektorer

• En vektor är en variabel med en lista av värden

Page 36: Grundläggande programmering

Vektorer

• Exempel:

a = (1,0,0,0,0); 1 0 0 0 0

Page 37: Grundläggande programmering

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

Page 38: Grundläggande programmering

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

Page 39: Grundläggande programmering

Vektorer

• Vad blir koden?a = [1,0,0,1];summa = 0;for i=1:1:4

summa = summa + a(i);endmedelvärde = summa/4;

Page 40: Grundläggande programmering

Problem 3

• Hitta det största talet i mängden:{2,9,8,11,6}