Grundläggande programmering
Innehåll Problemen Variabler Villkorssatser Problem 1 Upprepningar 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
Vi säger att variabeln x har tilldelats värdet 5 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: 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. 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 –bensintank else giventank = önskadtank end
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 1 per steg. Under varje upprepning lagrar vi summan
Upprepningar summa = 0; for i gå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 ä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 ä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); 1
Vektorer För att komma åt ett element måste vi tala om vektorns index. Kod: a(1) = 2 1 index: 2 värde: 0 2
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}