400 likes | 576 Views
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
E N D
Innehåll • Problemen • Variabler • Villkorssatser • Problem 1 • Upprepningar • Problem 2 • Vektorer • Problem 3
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 värde Variabelns namn 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å exempel Så här? x = 2; Nästan Nu 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 exempel x = 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 = 3 Vad blev y? y = 6
Division • 1/3 = 0.33333… fortsätter med 3:or i all oändlighet. • Exempel: x = 1/3 Innehå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 lyset end
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 lyset end
Villkorssatser a >b a är större än b a < b a är mindre än b a >= b a är större än eller samma som b a <= b a är mindre än eller samma som b a == b a är samma som b a != 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 lyset else %kod som släcker lyset end
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? • Vi försöker stoppa i för mycket bensin • 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 • 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
Upprepningar summa = 0; for igår från 1 till 10 %ändra summan end
Upprepningar summa = 0; for i=1:1:10 summa = 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 änfor, 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 ändras end • 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);
Vektorer • För att komma åt ett element måste vi tala om vektorns index. • Kod:a(1) = 2 index: 2 värde: 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);end medelvärde = summa/4;
Problem 3 • Hitta det största talet i mängden: {2,9,8,11,6}