For-sats/slinga. Notis

Save this PDF as:
 WORD  PNG  TXT  JPG

Storlek: px
Starta visningen från sidan:

Download "For-sats/slinga. Notis"

Transkript

1 Notis I koden för exemplen förekommer kommentarer. Kommentarer i Matlabkoden identieras med prexet %. Kommentarer är text/kod som Matlab bortse från. Alltså all text/kod som ligger till höger och på samma rad som % tolkas ej som Matlab-kod. Jämförelse operatorer: mindre än <, större än >, lika med ==, mindre eller lika med <=, större än eller lika med >= For-sats/slinga Vid all programmeringsarbete förekommer det alltid operationer som upprepas. För att undvika och skriva samma sak era gånger om nns det s.k. slingor. For och while är slingor som används itigt. I fortsättningen kommer sats användas istället för slinga. Skillnaden mellan for- och while-satsen är att for-satsen utför en sats ett bestämt antal gånger eller tills ett villkor ej uppfylls medan while ast har ett villkor, och kan därför utföra en sats oändligt antal gånger. Ett konkret exempel på en upprepning är summering av en talserie. För att summera ex. alla naturliga tal upp till ett givet tal n kan man i Matlab lösa detta genom stegvis summering: sum = sum + 1; sum = sum + 2;... sum = sum + (n-1); sum = sum + n; Att summera på detta sätt är tidskrävande och ineektivt! Om ett upprepande mönster och möjligtvis en varierande variabel kan identieras kan istället en for-sats användas. I exemplet identieras en tilldelning och en addition av en stegvis ökande variabel i varje steg. En for-sats har följande utsee: for (räknare) Sats "Upprepat mönster" Vid exekveringen ökar räknaren sitt värde. Om räknarens värde uppfyller ett villkor utförs satsen. Därefter ökar räknaren sitt värde och kontrollera att 1

2 villkoret fortfarande är uppfyllt och satsen utförs på nytt. Detta fortsätter så länge villkoret är uppfyllt. Villkoret är m.a.o till för att begränsa antalet upprepningar for-satsen ska göra. För summering av de naturliga talen kommer for-satsen att se ut så här: for (i=1:n) sum = sum + i; Variabeln i är räknaren som räknar från 1 till n och villkoret är att i <= n. Kolonnotation har använts i exemplet vilket medför att villkoret automatiskt är inbakat i uttrycket för räknaren, i=1:n. Kolonnotationen får variabeln (räknaren) i att ökas med 1 efter varje upprepning tills i=n. Hade istället problemet varit att summera alla tal mellan 0 och n med steglängden 0,1 hade räknaren istället skrivits som i=0:0.1:n. I fallet ovan där steglängden är 1 kunde räknare lika väl ha varit i=0:1:n. Men eftersom steglängden 1 är så pass vanlig är det tillåtet att utelämna steglängden. Ett annat exempel på summation: n 2 i = n n i=1 Här identieras lätt den upprepande operationen, addition, och den varierande variabeln i. I Matlab kan denna summation lösas med for-satsen. Detta är gjort nedan, med ett medvetet fel. Var är felet? for (i=1:n) sum = 2^i; Nästlade for-satser Ibland är det befogat att använda sig av två räknare istället för en som i fallen ovan. Exempel på detta är genomgång av alla element i en matris. Ett matriselement identieras genom rad- och kolonnummer, ex. i Matlab A(n,m). Om en räknare används, dvs en for-sats, nns ast möjligheten att röra sig inom elementen i en rad eller kolonn. För att ta sig igenom alla element i en n x n matris måste då n st for-satser skrivas, en för varje rad eller kolonn. 2

3 Och upprepning är åter ett faktum. För att eliminera upprepningar kan ju en for-sats användas bara det nns ett upprepande mönster och en varierande varabel. Och denna gång är det upprepande mönstret en for-sats och den varierande variabeln rad- eller kolonnummer. Det nns alltså två for-satser nu; exempelvis en inre for-sats för att röra sig kolonnvis och en yttre för att kunna röra sig radvis. Samma resonemang kan göras för trediemsionella materiser, som kräver tre for-satser för att gå igenom alla element. % skapar en 10x10 matris med ettor % och därefter sätter alla element=0 med for-sats matris=ones(10,10); % yttre for-sats for j=1:10 %inre for-sats a(i,j)=0; Om ast en for-sats hade använts för att tas sig igenom matrisen hade det sett ut så här: matris=ones(10,10); a(1,i)=0; a(2,i)=0;... a(9,i)=0; a(10,i)=0; While-satsen En while-sats är identiskt for-satsen förutom det att while-satsen inte har en räknare: 3

4 while (villkor) Sats "Upprepat mönster" För en for-sats är alltid antalet upprepningar känt. En while-sats saknar däremot ett bestämt antal upprepningar och har ast ett villkor. Därför är det möjligt att en for-sats upprepar sina satser ett oändligt antal gånger, dvs så länge villkoret uppfylls. Ett exempel på en oändlig exekvering (ej önskvärd): sum=0; while (sum >= 0) sum = sum + 1; Villkoret i denna while-sats kommer alltid att uppfyllas därför summeras sum upp till ett gigantiskt tal. Det går utmärkt att nästla while- med for-sats, med samma resonemang som för nästlade for-satser! Villkorlig styrning Med if-satsen kan en villkorlig styrning inom en for- eller while-sats göras. Denna sats förklaras lättast med exempel. %Exemplet visar hur en enhetsmatris kan skapas %mha for- och if-satsen %Skapar en kvadratisk matris med nollor matrix = zeros(10); for (i=1:10) for (j=1:10) %kollar om radnr. är lika med kolnnr. %sätt i så fall detta element till 1 if (j==i) matrix(i,j) = 1; 4

5 Flera if-satser kan förekomma i en och samma for/while-sats. Sen nns även elseif och else som används i kombination med if. Break-kommandot används även itigt när man vill avbryta och lämna en pågåe exekvering av en slinga. Exempel: for (räknare) if (villkor) break; %lämnar for-satsen omedelbart %elseif-villkoret kontrolleras ast om if:s villkor ej uppfylls elseif (villkor) sats; %om varken if eller elseif-villkoret uppfylls utöfrs else-satsen else sats; 5

3.3 for-satsen. Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010. Föreläsning 3

3.3 for-satsen. Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010. Föreläsning 3 Föreläsning 3 3.3 for-satsen I programmering talar man om tre sätt på vilket ett programflöde kan vara beskaffat: 1. Saker kan hända efter varandra, i sekvens. 2. Flödet kan innebära att ett val görs,

Läs mer

Mer om reella tal och kontinuitet

Mer om reella tal och kontinuitet Kapitel R Mer om reella tal och kontinuitet I detta kapitel formulerar vi ett av de reella talens grundläggande axiom, axiomet om övre gräns, och studerar några konsekvenser av detta. Med dess hjälp kommer

Läs mer

7 GRUNDERNA I PROGRAMMERING

7 GRUNDERNA I PROGRAMMERING Grunderna i programmering 7 GRUNDERNA I PROGRAMMERING Detta kapitel är bokens största kapitel och kanske det viktigaste. Vi kommer här att gå igenom grunderna för sekventiell programmering. Det vi går

Läs mer

Eulers polyederformel och de platonska kropparna

Eulers polyederformel och de platonska kropparna Eulers polyederformel och de platonska kropparna En polyeder är en kropp i rummet som begränsas av sidoytor som alla är polygoner. Exempel är tetraedern och kuben, men klotet och konen är inte polyedrar.

Läs mer

Heltal(int) Programmeringsteknik 54

Heltal(int) Programmeringsteknik 54 Heltal(int) Datatypen int används tillsammans med char, short int och long int för att lagra heltal i C. Matematisk sett finns det oändligt många heltal. På en dator måste det införas en begränsning på

Läs mer

Introduktion till MATLAB

Introduktion till MATLAB c 2004 Liber AB, Lennart Harnefors, Johnny Holmberg, Joop Lundqvist Signaler och system med tillämpningar Introduktion till MATLAB 1 Inledning MATLAB (för Matrix laboratory) är ett interaktivt programpaket

Läs mer

Roboten Karel lär sig Java

Roboten Karel lär sig Java Verónica Gaspes Högskolan i Halmstad 23 augusti 2010 Roboten Karel lär sig Java Tacksägelse Detta är en översättning och en anpassning till Högskolan i Halmstads programmeringsmiljö av delar av Karel the

Läs mer

Hur länge ska fisken vara i dammen?

Hur länge ska fisken vara i dammen? Hur länge ska fisken vara i dammen? Frågeställning Uppgift 10 fiskodling Uppgiften går ut på att ta reda på hur länge ett stim fisk ska växa upp i en fiskodling för att få den maximala vikten tillsammans.

Läs mer

Föreläsning 4: for, while, do-while

Föreläsning 4: for, while, do-while TDA 545: Objektorienterad programmering Föreläsning 4: for, while, do-while Magnus Myréen Chalmers, läsperiod 1, 2014-2015 Evaluering Det är viktigt att ni kan se hur kod körs. ( se = simulera på papper,

Läs mer

ATT UNDERVISA MULTIPLIKATION OCH DIVISION MED 10, 100 OCH 1000

ATT UNDERVISA MULTIPLIKATION OCH DIVISION MED 10, 100 OCH 1000 EN UTVECKLINGSARTIKEL PUBLICERAD FÖR PEDAGOG STOCKHOLM ATT UNDERVISA MULTIPLIKATION OCH DIVISION MED 10, 100 OCH LEARNING STUDY I PRAKTIKEN Författare: Tina Edner E-post: tina.edner@stockholm.se Skola:

Läs mer

18 Eldorado 4 A Lärarbok Undervisning att skapa förutsättningar för elevers lärande

18 Eldorado 4 A Lärarbok Undervisning att skapa förutsättningar för elevers lärande Undervisning att skapa förutsättningar för elevers lärande Eleverna behöver få möta aktiviteter där de får möjlighet att konkret uppleva ett nytt begrepp eller en ny metod, reflektera gemensamt och med

Läs mer

Med denna aktivitet försöker jag

Med denna aktivitet försöker jag LAURA FAINSILBER Ett funktionsrum Under Vetenskapsfestivalen i Göteborg 2001 bjöd matematiska institutionen på Chalmers och Göteborgs universitet på matematiska experiment för skolklasser. I en av aktiviteterna

Läs mer

Talmönster och algebra. TA

Talmönster och algebra. TA Talmönster och algebra. TA Diagnoserna i området avser att kartlägga om eleverna kan upptäcka talmönster samt på olika sätt bearbeta algebraiska uttryck och ekvationer. Förståelse av koordinatsystem och

Läs mer

Att svara på en remiss

Att svara på en remiss Att svara på en remiss Varje år skickar Regeringskansliet betänkanden, utredningar och andra förslag på remiss. Det betyder att myndigheter, organisationer och personer har möjlighet att svara på vad de

Läs mer

Möjlighet att leva som andra

Möjlighet att leva som andra Möjlighet att leva som andra Lättläst sammanfattning Slutbetänkande av LSS-kommittén Stockholm 2008 SOU 2008:77 Det här är en lättläst sammanfattning av en utredning om LSS och personlig assistans som

Läs mer

Hjälp! Mina föräldrar ska skiljas!

Hjälp! Mina föräldrar ska skiljas! Hjälp! Mina föräldrar ska skiljas! Vad händer när föräldrarna ska skiljas? Vad kan jag som barn göra? Är det bara jag som tycker det är jobbigt? Varför lyssnar ingen på mig? Många barn och unga skriver

Läs mer

Barnhack! kom igång med Scratch del 1

Barnhack! kom igång med Scratch del 1 Måns Jonasson Barnhack! kom igång med Scratch del 1 välkommen till kom igång med scratch! 3 Om den här kursen 3 Vad är Scratch? 3 grunderna i scratch vad är vad? 3 block script i olika kategorier 5 Rörelse

Läs mer

Att följa lärande formativ bedömning i praktiken. av Dylan Wiliam en kort sammanfattning

Att följa lärande formativ bedömning i praktiken. av Dylan Wiliam en kort sammanfattning Att följa lärande formativ bedömning i praktiken av Dylan Wiliam en kort sammanfattning Bakgrund En del reformförsök i skolan har varit ineffektiva (oavsett nivå), eftersom det finns tre avgörande frågor

Läs mer

Ärlighet ska löna sig! Hur du upptäcker och tipsar om anbudskarteller vid offentliga upphandlingar.

Ärlighet ska löna sig! Hur du upptäcker och tipsar om anbudskarteller vid offentliga upphandlingar. Ärlighet ska löna sig! Hur du upptäcker och tipsar om anbudskarteller vid offentliga upphandlingar. Asfaltkartellen Sveriges största anbudskartell Sveriges hittills största kartellhärva kallas asfaltkartellen.

Läs mer

Träningsprogram för att förstärka ett önskvärt beteende hos små barn

Träningsprogram för att förstärka ett önskvärt beteende hos små barn Åtgärder för aggressiva/trotsiga små barn Ett samverkansprojekt mellan barnpsykiatri och skola Träningsprogram för att förstärka ett önskvärt beteende hos små barn Varje gång barnet gör på ett visst sätt

Läs mer

Texas Instruments Sverige 1997 Printed in Sweden by Gumm essons Tryckerier AB

Texas Instruments Sverige 1997 Printed in Sweden by Gumm essons Tryckerier AB Förord Detta häfte innehåller ett a ntal mat ematikp roblem inom olika områden av den mat ematik som behandlas inom de olika ku rsern a på g ymnasieskolan. Vi har, i de flesta fall, inte delat upp i nnehållet

Läs mer

Varför kan det ta så lång tid på röntgen?

Varför kan det ta så lång tid på röntgen? Varför kan det ta så lång tid på röntgen? Röntgenremissens gång Röntgenremissens gång En del patienter tycker att väntetiden kan bli lång vid röntgenavdelningen. Vi vill därför förklara vad som händer

Läs mer

VARFÖR ÄR DU SOM DU ÄR?

VARFÖR ÄR DU SOM DU ÄR? Karl-Magnus Spiik Ky Självtroendet / sidan 1 VARFÖR ÄR DU SOM DU ÄR? Självförtroendet är människans inre bild av sig själv. Man är sådan som man tror sig vara. Självförtroendet är alltså ingen fysisk storhet

Läs mer

1. En scout söker sin tro och respekterar andras

1. En scout söker sin tro och respekterar andras 1. En scout söker sin tro och respekterar andras Ett frågetecken - Vad är skillnaden på att tro och att veta? Ta en sekund till att fundera på skillnaden mellan tro och vetande. Rita upp en linje på marken.

Läs mer

Kortanalys. Gärningspersoners kön och ålder vid misshandel, hot, rån och sexualbrott

Kortanalys. Gärningspersoners kön och ålder vid misshandel, hot, rån och sexualbrott Kortanalys Gärningspersoners kön och ålder vid misshandel, hot, rån och sexualbrott en beskrivning utifrån misstankestatistiken och Nationella trygghetsundersökningen Gärningspersoners kön och ålder vid

Läs mer

Ansvar för sin hälsa? Problem och möjligheter med att tillämpa en ansvarsprincip inom hälso- och sjukvården Elisabeth Furberg

Ansvar för sin hälsa? Problem och möjligheter med att tillämpa en ansvarsprincip inom hälso- och sjukvården Elisabeth Furberg Ansvar för sin hälsa? Problem och möjligheter med att tillämpa en ansvarsprincip inom hälso- och sjukvården Elisabeth Furberg ISSN 1650-8475 FÖRORD Denna rapport är resultatet av en teoretisk genomgång

Läs mer

Gemensamt projekt: Matematik, Beräkningsvetenskap, Elektromagnetism. Inledning. Fysikalisk bakgrund

Gemensamt projekt: Matematik, Beräkningsvetenskap, Elektromagnetism. Inledning. Fysikalisk bakgrund Gemensamt projekt: Matematik, Beräkningsvetenskap, Elektromagnetism En civilingenjör ska kunna idealisera ett givet verkligt problem, göra en adekvat fysikalisk modell och behandla modellen med matematiska

Läs mer

Varför är en del så duktiga på att utveckla sin verksamhet?

Varför är en del så duktiga på att utveckla sin verksamhet? Varför är en del så duktiga på att utveckla sin verksamhet? Beror lyckad affärsutveckling på tur eller skicklighet? Ibland låter framgångssagor och katastrofhistorier som tillfälligheternas spel. Men erfarenhet

Läs mer

Det som inte mäts finns inte

Det som inte mäts finns inte Det som inte mäts finns inte En studie av kommunala svenska grundskolors stödinsats till elever som inte klarar eller inte förväntas klara minst godkänt eller nå kunskapskraven i ett eller flera ämnen

Läs mer