Programmering i gymnasieskola och vuxenutbildning referensblad till workshop

Storlek: px
Starta visningen från sidan:

Download "Programmering i gymnasieskola och vuxenutbildning referensblad till workshop"

Transkript

1 Programmering i gymnasieskola och vuxenutbildning referensblad till workshop Det här häftet innehåller referensblad för fyra olika programspråk, med innehåll utvalt för att vara relevant för matematiklärare på gymnasial nivå. Innan referensbladen finns ett inledande kodexempel, med förklarande rutor. Efter referensbladen finns några tips för felsökning vid programmering. Häftet är en del i Skolverkets konferenser Programmering i gymnasieskola och vuxenutbildning, september Till materialet hör också ett häfte med nio matematiska problemuppgifter där programmering är en rimlig lösningsstrategi. Materialet kommer att publiceras på ncm.gu.se i samband med modulen Undervisning med digitala verktyg II, i januari Där finns även lösningsförslag skrivna för Octave/MATLAB. Om programspråken som beskrivs i referensbladen Ämnesplanen i matematik föreskriver inget om att särskilda programspråk eller -miljöer ska användas. Av praktiska skäl är innehållet i referensbladen begränsat till fyra språk. MATLAB är en välkänd programvara för att göra matematiska beräkningar, som används även på industriell nivå och för tunga beräkningar och simuleringar. Språket har stöd för många matematiska metoder och specialfall, och är relativt lätt att komma in i. Octave är en gratis och öppen programvara som har mycket stora likheter med MATLAB, och ett språk som är nära identiskt med MATLAB. Python3 är ett programspråk som inkluderats framförallt för att det är relativt lätt att använda. Det finns, liksom i Octave/MATLAB möjlighet att hantera komplexa tal. JavaScript och PHP är två programspråk som inkluderats framförallt för att de är vanliga inom webbutveckling, och det därför är elever eller lärare använt dem i andra sammanhang. JavaScript är dessutom ett språk som kan användas i GeoGebra, som är ett relativt vanligt verktyg i matematikundervisning. Två språk som inte inkluderats är Java och C/C++/C#, trots att de är vanliga programspråk. Anledningen är att de är relativt svåra att komma igång med, samt att personer som använder dessa språk troligtvis hanterar dem så pass väl att referensblad på den här nivån är överflödiga. Referensbladen är skrivna för att visa grundläggande användning av språken, plus några aspekter som kan vara särskilt intressanta för arbete med matematik. Exemplen är valda för att avspegla samma saker i alla språk, vilket betyder att unika och kanske mer användbara aspekter av varje språk inte syns. Det rekommenderas att söka på nätet för att ta reda på mer om hur du kan använda det språk du väljer. 23 (41)

2 Platser för att skriva och testa kod online I de flesta fall fungerar det bäst att skriva och exekvera (köra) kod lokalt på den egna datorn. Ofta kräver det dock att man installerar särskilda program, och det kan också finnas svårigheter med att använda vissa programspråk på vissa typer av enheter. Ett alternativ för att komma igång snabbt är att utnyttja onlinetjänster gjorda just för att skriva och exekvera mindre mängd kod. Några sådana tjänster är: repl.it: Stödjer en stor uppsättning språk, och har funktioner för att spara och dela kod. Det finns även guider för att lära sig språken. Stödjer inte Octave/MATLAB. tutorialspoint.com/codingground.htm: Stödjer en stor uppsättning språk, och har funktioner för att spara och dela kod. Det finns även guider för att lära sig språken. Har stöd även för Octave/MATLAB. octave-online.net: Webbplats som endast stödjer Octave/MATLAB. Det finns funktioner för att spara och dela kod. Platser för att lära sig att programmera Det finns en rad webbplatser där man kan lära sig att programmera, för många olika programspråk och kunskapsnivåer från noll till hög. Många av dessa webbplatser är gratis att använda och kräver ingen registrering. Det här dokumentet tar inte upp några specifika sådana webbplatser, men den som vill kan söka reda på listor över urval av dem och recensioner av deras för- och nackdelar. 24 (41)

3 Anteckningar för introduktion till programmering Introduktionen genomförs med programspråket Python3. Det är skillnad mellan Python3 och Python, så det är viktigt att välja rätt programspråk. Platsen där kodningen görs är webbtjänsten repl.it. Webbtjänsten erbjuder en så kallad programmeringsmiljö, där man kan skriva kod (i rutan till vänster) och se resultat från kod man skriver (i rutan till höger). Koden körs genom att trycka på play-knappen ovanför koden. Medan du skriver kod kommer programmeringsmiljön erbjuda förslag på kommandon, funktioner och variabler som du kan använda ungefär som en mobiltelefon erbjuder ordförslag. Om du inte vill ha något av de föreslagna orden kan du trycka escape. Del 1: Variabler Variabler är en viktig del i programmering. De används för att spara data av olika typer, så som tal och textsträngar. I Python3 och många andra programspråk skapas variabler genom att man hittar på ett variabelnamn, och markerar med ett likamedtecken att variabeln ska få ett värde. a = 3 b = 4 c = -5.5 min_variabel = -1.5 Vi väljer själva vilka namn vi vill ge variablerna, men när vi vill använda variablerna senare i programmet måste vi använda exakt samman namn inklusive stora och små bokstäver. Variabelnamn kan inte innehålla mellanslag. Ett vanligt sätt är att istället använda understreck, som i min_variabel. En annan metod är att inleda nya ord med stor bokstav för att öka läsbarheten, exempelvis minvariabel. Variabelnamn får inte börja med en siffra. Notera att vi använder punkt som decimaltecken, inte komma. Mellanslagen runt likamedtecknet är bara med för ökad läsbarhet de behövs inte för att koden ska fungera. Variabler kan innehålla andra typer av värden än tal, exempelvis text. Texten måste då omges av citattecken (enkla eller dubbla). Text kallas ofta för en sträng i programmeringssammanhang. min_andra_variabel = "Hello world!" Del 2: Kommentarer Välskriven kod innehåller kommentarer som gör den lättare för människor att läsa och förstå. Kommentarer är rader som hoppas över när programmet körs, men som hjälper programmerare att förstå vad hela eller specifika delar av koden gör. 25 (41)

4 I Python3 markeras kommentarer genom att de börjar med # (fyrkant). # Program för att lösa andragradsekvationer # Koefficienterna för ekvationen ax^2 + bx + c = 0 a = 3 b = 4 c = -5.5 Det är också möjligt att lägga kommentarer sist i kodrader. Del 3: Beräkningar och operatorer Vi kan använda variabler i beräkningar, både med enkla räknesätt och med avancerade operatorer och funktioner. Hur räknesätt och operatorer skrivs varierar mellan olika programspråk, och ofta kan man behöva slå upp dem på nätet eller på andra ställen. Vanliga operatorer i matematikundervisning finns sammanfattade i referensbladet. Nedan följer ett par exempel. (Nya rader är fetmarkerade.) # Program för att lösa andragradsekvationer # Koefficienterna för ekvationen ax^2 + bx + c = 0 a = 3 b = 4 c = -5.5 # Beräkna diskriminanten för andragradsuttrycket D = b ** 2 4 * a * c # Beräkna de två lösningarna på ekvationen import math x1 = (-b + math.sqrt(d)) / (2 * a) x2 = (-b - math.sqrt(d)) / (2 * a) I koden är följande saker lite överraskande eller svåra att veta i förväg: Gånger skrivs *, inte exempelvis eller. Upphöjt till skrivs **, inte exempelvis ^. Kvadratrot skrivs math.sqrt() och kräver att man någonstans tidigare i programmet har skrivit import math ( importerat math-klassen ). Python3 förstår -b men inte 2a. Ofta måste man alltså skriva ut multiplikationer, och då blir det extra viktigt att undersöka behov av parenteser. Dessa saker, och många fler, är sådant man slår upp när det behövs. Saker som man använder ofta lär man sig utantill efter ett tag, annat inte. Att slå upp saker är något som tillhör vardagen i programmering. Samma sak gäller att leta upp och kopiera färdiga kodsnuttar från andra det ses inte som fusk, utan som klokt och ofta även smickrande för den som får sin kod kopierad (så länge man säger varifrån den kommer). 26 (41)

5 Del 4: Att skriva ut resultat Programmet ovan sparar lösningarna till en andragradsekvation i variablerna x1 och x2, men resultatet syns ingenstans. För att resultatet ska synas för användaren kan vi använda funktionen print(). # Program för att lösa andragradsekvationer # Koefficienterna för ekvationen ax^2 + bx + c = 0 a = 3 b = 4 c = -5.5 # Beräkna diskriminanten för andragradsuttrycket D = b ** 2-4 * a * c # Beräkna de två lösningarna på ekvationen import math x1 = (-b + math.sqrt(d)) / (2 * a) x2 = (-b - math.sqrt(d)) / (2 * a) # Skriv ut resultaten print(x1) print(x2) Om man vill skriva ut flera saker på samma rad kan man använda följande skrivsätt. # Skriv ut resultaten print("x1:", x1) # Skriver ut exempelvis "x1: " print("x2:", x2) # Skriver ut exempelvis "x2: " Del 5: Felmeddelanden Programmet ovan kan nu användas för att lösa andragradsekvationer och få lösningarna presenterade med många decimalers noggrannhet. Genom att ändra på värdena på a, b och c kan vi undersöka olika andragradsekvationer. Men om vi anger koefficienter så att ekvationen saknar reella lösningar får vi inga lösningar i rutan till höger, utan ett rött felmeddelande visas och programmet avbryts. I felmeddelandet står vad som har gått fel. Meddelandet kan vara svårt att tyda, men det finns alltid med en hänvisning till den rad där programmet avbröts. Felmeddelanden visas inte bara när man försöker beräkna kvadratroten ur negativa tal, utan även exempelvis när man använt felaktig syntax eller stavat fel på variabler. Att testköra sitt program medan man håller på att skriva kan göra att man lättare och snabbare hittar fel och misstag. Del 6: Villkor och villkorssatser I programmering används villkorssatser för att köra vissa delar av koden endast om givna villkor är uppfyllda. I vårt program som löser andragradsekvationer är det rimligt att 27 (41)

6 kontrollera att det finns några reella lösningar. Det görs genom att skriva if, följt av ett villkor, och sedan kolon se exemplet nedan. # Program för att lösa andragradsekvationer # Koefficienterna för ekvationen ax^2 + bx + c = 0 a = 3 b = 4 c = -5.5 # Beräkna diskriminanten för andragradsuttrycket D = b ** 2-4 * a * c import math # Undersök antal lösningar och skriv ut dem if D >= 0: # Reella lösningar finns x1 = (-b + math.sqrt(d)) / (2 * a) x2 = (-b - math.sqrt(d)) / (2 * a) print(x1) print(x2) else: # Ingen reell lösning print("inga reella lösningar finns.") Tre saker att observera: Raderna direkt efter if D >= 0: är indragna ( indenterade ); de börjar med två mellanslag (eller en tab). Det berättar för Python3 att alla dessa fem rader hör till villkoret, och ska köras om D är större än eller lika med noll. I programmeringssammanhang kallas dessa rader för ett block, och hela det här blocket med kod körs om villkoret är uppfyllt. Efter if-satsen och det efterföljande blocket står else:. Det säger åt Python3 att alla de efterföljande indragna raderna ska köras om villkoret innan inte är uppfyllt. Man måste inte ha else-satser, men det kan vara användbart. I Python3, och de flesta programspråk skriver man >= istället för. I många programspråk används måsvingar, { och, för att markera var kodblock börjar och slutar, men Python använder istället indrag. Att förstå och använda kodblock kan vara lite knepigt i början, men är en viktig del av att lära sig att programmera. Del 7: Mer om villkor I koden hittills har vi använt större än eller lika med som villkor, men ett vanligare villkor är lika med. Vi utökar koden för att ta hänsyn till fallet då diskriminanten är noll, och vi bara har en enda lösning till ekvationen. # Program för att lösa andragradsekvationer 28 (41)

7 # Koefficienterna för ekvationen ax^2 + bx + c = 0 a = 3 b = 4 c = -5.5 # Beräkna diskriminanten för andragradsuttrycket D = b ** 2-4 * a * c import math # Undersök antal lösningar och skriv ut dem if D > 0: # Två reella lösningar x1 = (-b + math.sqrt(d)) / (2 * a) x2 = (-b - math.sqrt(d)) / (2 * a) print(x1) print(x2) elif D == 0: # En reell lösning x = (-b + math.sqrt(d)) / (2 * a) print(x) else: # Ingen reell lösning print("inga reella lösningar finns.") Tre saker att observera: Likheter i jämförelser skrivs med två likamedtecken i Python3 och de flesta programspråk. Detta beror på att ett likamedtecken används för att tilldela variabler nya värden. Det är också värt att veta att inte lika med skrivs!=. Utöver else-satser går det att ha else if-satser, som bara körs villkoret är uppfyllt och ingen tidigare villkorssats körts. I Python3 skrivs dessa satser elif, följt av villkor och ett kolon. Även elif-satser följs av ett kodblock som måste vara indraget på rätt sätt. Med detta är exemplet med ett program som löser andragradsekvationer klart. Del 8: Listor och arrayer I de tre sista delarna av genomgången kommer vi att titta på listor/arrayer och loopar. För att göra det kommer vi att skriva ett program som testar om tal är delbara med 7. När man skriver program hamnar man emellanåt i lägen då man vill spara en hel serie av värden, och ofta vet man kanske inte ens hur många de är. I sådana lägen är listor värdefulla. I Python3 skapas listor som vanliga variabler, men värden anges inom hakparenteser och avdelas med kommatecken. # Program som testar delbarhet med 7 # Tal att testa 29 (41)

8 tal_att_testa = [123, 234, 345, 456, 567, 678, 789] Listor kallas ibland arrayer, och även om det finns viss skillnad mellan de två är det inget som spelar roll i det här sammanhanget. Två viktiga detaljer om listor Det går att komma åt enskilda värden i en lista, exempelvis för att skriva ut dem, göra villkorssatser eller bearbeta dem på annat vis. Det gör man genom att ange ordningsnumret på värdet inom hakparenteser efter variabelns namn. Notera att Python3 och många andra språk börjar räkna från noll i dessa fall. tal_att_testa = [123, 234, 345, 456, 567, 678, 789] print(tal_att_testa[1]) # Skriver ut 234 print(tal_att_testa[0]) # Skriver ut 123 Ett ganska vanligt behov när man arbetar med listor är att kunna lägga till fler värden i slutet på listan. Det görs på följande vis. tal_att_testa = [123, 234, 345, 456, 567, 678, 789] tal_att_testa.append(890) # Lägger till 890 sist i listan Testa delbarhet I vårt program vill vi för vart och ett av talen i listan undersöka om det är delbart med 7. Vi ska börja med ett klumpigt sätt att göra detta. if tal_att_testa[0] % 7 == 0: print("talet är delbart med 7.") else: print("talet är inte delbart med 7.") Vad betyder raderna ovan? Koden använder modulo-operatorn, som ger resten vid en division. I Python3 och många andra programspråk skrivs den %. 10 % 7 blir alltså 3, eftersom 10 ger resten 3 vid division med 7. Om ett tal är jämnt delbart med 7 blir resten 0. De fyra raderna med kod ovan testar om första värdet av de vi vill testa är delbart med 7, och skriver ut resultatet. Om vi ville skulle vi kunna kopiera den här koden och köra den en gång till för tal_att_testa[1], ytterligare en gång för tal_att_testa[2], och så vidare. Men det finns bättre sätt. 30 (41)

9 Del 9: Loopa genom en lista for-loopar En vanlig användning av listor är att göra något med varje värde i listan i vårt fall vill vi för vart och ett av talen testa om det är delbart med 7. Detta gör man genom att skapa en loop. Loopar är, precis som villkorssatser, en mycket viktig byggsten i programmering. Den typ av loop vi kommer att använda kallas för en for-loop, vilket kanske kan tolkas som för varje värde -loop. I den rad som startar loopen händer flera saker på en gång, som vi kommer att se. # Program som testar delbarhet med 7 # Tal att testa tal_att_testa = [123, 234, 345, 456, 567, 678, 789] for n in tal_att_testa: # Testa delbarhet if n % 7 == 0: print("talet", n, "är delbart med 7.") else: print("talet", n, "är inte delbart med 7.") Några saker att notera: På raden som inleder loopen, for n in tal_att_testa:, skapas en variabel n. Den variabeln kommer att innehålla värdena som finns i tal_att_testa, vart och ett i ordning. Första gången loopen körs kommer den ha värde 123 (värde nr 0), sedan 234 (värde nummer 1), och så vidare. Vi kan själva välja namn på variabeln, som med andra variabler. Raden som inleder loopen avslutas med ett kolon. Alla efterföljande rader som är indragna bildar ett block, och alla dessa rader kommer att upprepas för varje varv loopen kör. Blocket som ingår i loopen innehåller en if-sats, som i sin tur innehåller block. Det går alltså att nästla flera nivåer av loopar och villkorssatser. Det blir då flera nivåer av indrag i koden. Ett snabbt sätt att skapa enkla listor I exemplet ovan har vi manuellt angett de tal som vi vill testa delbarhet för. Om vi vill testa delbarhet för alla tal mellan 0 och 100 är det dock ett ganska jobbigt förfarande. Python3 har ett snabbt sätt att göra detta funktionen range(n). Det ger en lista med de n första heltalen, med början på 0. # Program som testar delbarhet med 7 # Testa talen 0 till 100 for n in range(101): # Testa delbarhet if n % 7 == 0: print("talet", n, "är delbart med 7.") 31 (41)

10 else: print("talet", n, "är inte delbart med 7.") Notera att det alltså går utmärkt att använda range() direkt i raden där loopen startar vi behöver inte spara listan i en variabel först. Man kan också använda funktionen för att få en lista som inte börjar på 0. Man ger då två parametrar till funktionen först vilket värde listan ska börja på, sedan det första heltalet som inte ska vara med i listan. Ett program som testar alla tal mellan 100 och 200 för delbarhet med 7 kan alltså se ut så här. # Program som testar delbarhet med 7 # Testa alla tal mellan 100 och 200 for n in range(100, 201): # Testa delbarhet if n % 7 == 0: print("talet", n, "är delbart med 7.") else: print("talet", n, "är inte delbart med 7.") Del 10: Villkorsbaserad loop while-loopar For-loopar är användbara när man har ett givet antal värden att bearbeta, eller en loop som man vill köra ett givet antal gånger. Ibland är det dock svårt att veta på förhand hur många gånger koden i loopen behöver köras, och då är while-loopar användbara. De är loopar som fortsätter så länge ett givet villkor är uppfyllt. Ett program som testar alla tal mellan 100 och 200 för delbarhet med 7 kan se ut så här om vi använder en while-loop. # Program som testar delbarhet med 7 # Testa alla tal mellan 100 och 200 n = 100 while n <= 200: # Testa delbarhet if n % 7 == 0: print("talet", n, "är delbart med 7.") else: print("talet", n, "är inte delbart med 7.") n = n + 1 Värt att notera är att vi behöver ha kod inuti loopen som ökar värdet på n annars skulle den aldrig sluta. I det här fallet avslutas loopen med n = n + 1, som alltså ökar värdet på n med 1 för varje gång loopen körs. 32 (41)

11 Cheat sheet Python3 Det finns ofta fler sätt att hantera språket än vad exemplen nedan visar. Sök på nätet för en mer fullständig referens. Två platser för att skriva kod online: repl.it och tutorialspoint.com/codingground.htm. Skapa variabler siffervariabel = 1 textvariabel = "hello" Vanliga operationer # Fyra räknesätt samt 2 upphöjt till 3 siffervariabel = siffervariabel + 2 * 3-4 / 5 siffervariabel = 2 ** 3 # Förenklat skrivsätt för att öka en variabels värde med ett siffervariabel += 1 # Sammanslagning av strängar textvariabel = textvariabel + " world" Skriva ut värden # Visa resultat print(siffervariabel) Vanliga matematiska konstanter och funktioner # math- eller random-modulen behövs i vissa fall import math import random math.pi math.e round(2.5) # Avrundas till närmsta jämna heltal abs(-1) # Absolutvärdet av % 7 # Modulooperatorn, ger resten då 10 delas med 7 random.random() # Slumptal mellan 0 och 1 max(1, 2, 3, 4) min(1, 2, 3, 4) math.sqrt(9) math.log10(x) math.log(x) # Naturliga logaritmen för x math.sin(x) # Vinkeln anges i radianer math.cos(x) # Vinkeln anges i radianer Syntax för villkorssatser if math.sin(x) == 0: print('på y-axeln') elif math.sin(x) > 0: print('positivt y-värde') elif math.sin(x) < 0: print('negativt y-värde') else: print('kan inte tolka y-värdet') 33 (41)

12 Syntax för loopar # Räkna från 0 till 4 for n in range(5): print('jag har räknat till', n) # Loop baserat på villkor istället för uppräkning while n <= 100: n = n + 1 Syntax för arrayer # Skapa en tom array arrayvariabel = [] # Skapa en array med värden arrayvariabel = [1, 2, 'femton', 'äpple'] # Lägga till ett värde i slutet av en array arrayvariabel.append(x) # Välja ut ett enskilt värde i en array -- räknar från 0 print(arrayvariabel[0]) # Loopa genom alla värden i en array for varde in arrayvariabel: print(varde) Syntax för att skapa och anropa funktioner def min_funktion(x, y): x = x * math.sqrt(y) return x print(min_funktion(2, 5)) Övrigt # Python3 hanterar komplexa tal. "j" (inte "i") används för # den imaginära enheten, och måste alltid föregås av ett tal. z = (1 + 1j) * (1 + 3j) 34 (41)

13 Cheat sheet Octave/MATLAB Det finns ofta fler sätt att hantera språket än vad exemplen nedan visar. Sök på nätet för en mer fullständig referens. I Octave/MATLAB konverteras variabler i allmänhet till arrayer/vektorer, och den som vill använda Octave eller MATLAB i större omfattning vinner mycket på att hantera arrayer, vektorer och även matriser i språket. Två platser för att skriva kod online: tutorialspoint.com/codingground.htm och octaveonline.net. Skapa variabler siffervariabel = 1; textvariabel = "hello"; Vanliga operationer % Fyra räknesätt samt 2 upphöjt till 3 siffervariabel = siffervariabel + 2 * 3-4 / 5; siffervariabel = 2 ^ 3; % Skrivsätt för att öka en variabels värde med ett siffervariabel = siffervariabel + 1 % Sammanslagning av strängar textvariabel = [textvariabel " world"]; Skriva ut värden % Visa resultat i terminal (avsluta raden utan semikolon) textvariabel Vanliga matematiska konstanter och funktioner pi e round(2.5); % Avrundas till 3 abs(-1); % Absolutvärdet av -1 mod(10, 7) % Modulooperatorn, ger resten då 10 delas med 7 rand(); % Slumptal mellan 0 och 1 max([1, 2, 3, 4]); min([1, 2, 3, 4]); sqrt(9); log10(x); log(x); % Naturliga logaritmen för x sin(x); % Vinkeln anges i radianer cos(x); % Vinkeln anges i radianer 35 (41)

14 Syntax för villkorssatser if sin(x) == 0 disp('på y-axeln') elseif sin(x) > 0 disp('positivt y-värde') elseif sin(x) < 0 disp('negativt y-värde') else disp('kan inte tolka y-värdet') end Syntax för loopar % Räkna från 0 till 4 for n = 0:4 disp(["jag har räknat till " num2str(n)]) end % Loop baserat på villkor istället för uppräkning while n <= 100 n = n + 1 end Syntax för arrayer % Skapa en tom array arrayvariabel = []; % Skapa en array med värden arrayvariabel = ['1', '2', 'femton', 'äpple']; % Lägga till ett värde i slutet av en array arrayvariabel = [arrayvariabel 'ny']; % Välja ut ett enskilt värde i en array -- räknar från 1 arrayvariabel(1); % Loopa genom alla värden i en array med tal for varde = arrayvariabel varde end Syntax för att skapa och anropa funktioner function returvarde = minfunktion(x, y) returvarde = x * sqrt(y); end minfunktion(2, 5) Övrigt % Octave/MATLAB hanterar även komplexa tal. z = (1 + i) * (1 + 3i) 36 (41)

15 Cheat sheet JavaScript Det finns ofta fler sätt att hantera språket än vad exemplen nedan visar. Sök på nätet för en mer fullständig referens. Två platser för att skriva kod online: repl.it och tutorialspoint.com/codingground.htm. Skapa variabler var siffervariabel = 1; var textvariabel = "hello"; Vanliga operationer // Fyra räknesätt samt 2 upphöjt till 3 siffervariabel = siffervariabel + 2 * 3-4 / 5; siffervariabel = Math.pow(2, 3); // Förenklat skrivsätt för att öka en variabels värde med ett siffervariabel++; // Sammanslagning av strängar textvariabel = textvariabel + " world"; Skriva ut värden // Visa resultat i en popup-ruta window.alert(textvariabel); // Visa resultat i log console.log(siffervariabel); Vanliga matematiska konstanter och funktioner Math.PI Math.E Math.round(2.5); // Avrundas till 3 Math.abs(-1); // Absolutvärdet av % 7 // Modulooperatorn, ger resten då 10 delas med 7 Math.random(); // Slumptal mellan 0 och 1 Math.max(1, 2, 3, 4); Math.min(1, 2, 3, 4); Math.sqrt(9); Math.log10(x); Math.log(x); // Naturliga logaritmen för x Math.sin(x); // Vinkeln anges i radianer Math.cos(x); // Vinkeln anges i radianer Syntax för villkorssatser if (sin(x) == 0) { console.log('på y-axeln'); else if (sin(x) > 0) { console.log('positivt y-värde'); 37 (41)

16 else if (sin(x) < 0) { console.log('negativt y-värde'); else { console.log('kan inte tolka y-värdet'); Syntax för loopar // Räkna från 0 till 4 for (n = 0; n < 5; n++) { console.log('jag har räknat till ' + n); // Loop baserat på villkor istället för uppräkning while (n <= 100) { n++; Syntax för arrayer // Skapa en tom array arrayvariabel = []; // Skapa en array med värden arrayvariabel = [1, 2, 'femton', 'äpple']; // Lägga till ett värde i slutet av en array arrayvariabel.push(x); // Välja ut ett enskilt värde i en array -- räknar från 0 console.log(arrayvariabel[0]); // Skapa ett objekt -- till skillnad från arrayer blir värdena inte ordnade objektvariabel = {'ett' : 'one', 'två' : 'two', 3 : 'three'; // Välja ut ett enskilt värde i ett objekt objektvariabel['ett']; // 'one' objektvariabel[3]; // 'three' objektvariabel['3']; // Odefinierat // Loopa genom alla värden i ett objekt for (var i in objektvariabel) { console.log(objektvariabel[i]); Syntax för att skapa och anropa funktioner function minfunktion(x, y) { x = x * Math.sqrt(y); return x; console.log(minfunktion(2, 5)); 38 (41)

17 Cheat sheet PHP Det finns ofta fler sätt att hantera språket än vad exemplen nedan visar. Sök på nätet för en mer fullständig referens. Två platser för att skriva kod online: repl.it och tutorialspoint.com/codingground.htm. Skapa variabler $siffervariabel = 1; $textvariabel = "hello"; Vanliga operationer // Fyra räknesätt samt 2 upphöjt till 3 $siffervariabel = $siffervariabel + 2 * 3-4 / 5; $siffervariabel = pow(2, 3); // Förenklat skrivsätt för att öka en variabels värde med ett $siffervariabel++; // Sammanslagning av strängar $textvariabel = $textvariabel. " world"; Skriva ut värden // Visa resultat i log print $siffervariabel; Vanliga matematiska konstanter och funktioner pi(); exp(1); // e upphöjt till 1, dvs. e round(2.5); // Avrundas till 3 abs(-1); // Absolutvärdet av % 7 // Modulooperatorn, ger resten då 10 delas med 7 rand(5, 10); // Slumpat heltal mellan 5 och 10 max(1, 2, 3, 4); min(1, 2, 3, 4); sqrt(9); log10($x); log($x); // Naturliga logaritmen för $x sin($x); // Vinkeln anges i radianer cos($x); // Vinkeln anges i radianer Syntax för villkorssatser if (sin($x) == 0) { print 'På y-axeln'; else if (sin($x) > 0) { print 'Positivt y-värde'; else if (sin($x) < 0) { print 'Negativt y-värde'; 39 (41)

18 else { print 'Kan inte tolka y-värdet'; Syntax för loopar // Räkna från 0 till 4 for ($n = 0; $n < 5; $n++) { print 'Jag har räknat till '. $n; // Loop baserat på villkor istället för uppräkning while ($n <= 100) { $n++; Syntax för arrayer // Skapa en tom array $arrayvariabel = []; // Skapa en array med värden $arrayvariabel = [1, 2, 'femton', 'äpple']; // Lägga till ett värde i slutet av en array $arrayvariabel[] = $x; // Välja ut ett enskilt värde i en array -- räknar från 0 print $arrayvariabel[0]; // Loopa genom alla värden i en array foreach ($arrayvariabel as $index => $varde) { print $varde; Syntax för att skapa och anropa funktioner function minfunktion($x, $y) { $x = $x * sqrt($y); return $x; print minfunktion(2, 5); Övrigt // Skapa en radbrytning i utskriven text print "\r\n"; 40 (41)

19 Tips vid felsökning En oundviklig del av programmering är att hitta och åtgärda så kallade buggar kodfel som får program att fungera på oväntade sätt eller inte fungera alls. Att felsöka kod är en konst i sig, särskilt när program börjar bli komplexa, men det finns ändå några tips på vanliga misstag och metoder för att hitta och åtgärda buggar. Generella metoder för felsökning Att skriva ut kommentarer i koden, som beskriver vad olika avsnitt av koden gör, är ett bra sätt att hålla ordning både på kod och tankar. Det gör det lättare att felsöka själv, även långt i efterhand, och för andra att hjälpa till med felsökning. Titta i referensbladen för att se hur kommentarer skrivs i ditt programspråk. (Kommentarer är rader som finns med i koden, men ignoreras när programmet körs.) Det är ofta användbart att på ett antal ställen i programmet skriva ut/logga värden på variabler som beter sig konstigt, för att ringa in var de spårar ur. (I ordentliga programmeringsmiljöer finns möjlighet att stega genom program och följa värden på uttryck och variabler, men i exempelvis onlinemiljöer för programmering är det ovanligt.) Om man är tämligen säker på att felet uppstår i en viss del av koden, men inte kan hitta var, kan det vara användbart att skriva om hela det kodstycket från början. (Du kan då spara den gamla koden, men inleda varje rad med de symboler som används för kommentarer i ditt programspråk.) Om programmet inte kan köras Vissa programspråk kräver att kommandon avslutas med ett semikolon. Har du missat att avsluta en rad korrekt? I många programspråk används måsvingar, { och, för att börja och avsluta block för loopar eller villkor. Har du missat att avsluta något sådant block? I många programspråk används dubbla likhetstecken för villkor (x == 3), medan enkla likhetstecken (x = 3) gör antingen att programmet inte kan köras eller beter sig konstigt. Har du missat att använda dubbla likhetstecken i en villkorssats? Om programmet ger oväntade resultat Om enkla likhetstecken används i villkor, medan programspråket förväntar sig dubbla, leder det i många språk till att variabeln får ett nytt värde och villkoret utvärderas till sant. Om villkorssatser beter sig konstigt, eller om variabler får oväntade värden, är det alltså något värt att dubbelkolla. I många programspråk börjar arrayer eller listor med värden att räkna från 0, medan andra räknar man från 1. Finns det en miss i hur värden i listor räknas? 41 (41)

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat Cheat sheets Nedan finns referensblad för fyra olika programmeringsspråk, som kan bli aktuella att använda i matematikundervisning. MATLAB är en välkänd programvara för att göra matematiska beräkningar,

Läs mer

Extramaterial till Matematik Y

Extramaterial till Matematik Y LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ ETT Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. Ett av dem är Python, som du ska få

Läs mer

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och... Allt du behöver veta om MATLAB: Industristandard för numeriska beräkningar och simulationer. Används som ett steg i utvecklingen (rapid prototyping) Har ett syntax Ett teleskopord för «matrix laboratory»

Läs mer

Uppgifter teknik HT17 (uppdaterad v. 40)

Uppgifter teknik HT17 (uppdaterad v. 40) Uppgifter teknik HT17 (uppdaterad v. 40) Uppgifterna bedöms inte, de är bara till för att öva. Samarbeta gärna med andra! Du behöver inte skriva ner svaren, men se till att du förstår lösningarna! 1. Det

Läs mer

Språket Python - Del 1 Grundkurs i programmering med Python

Språket Python - Del 1 Grundkurs i programmering med Python Hösten 2009 Dagens lektion Ett programmeringsspråks byggstenar Några inbyggda datatyper Styra instruktionsflödet Modulen sys 2 Ett programmeringsspråks byggstenar 3 ETT PROGRAMMERINGSSPRÅKS BYGGSTENAR

Läs mer

Användarhandledning Version 1.2

Användarhandledning Version 1.2 Användarhandledning Version 1.2 Innehåll Bakgrund... 2 Börja programmera i Xtat... 3 Allmänna tips... 3 Grunderna... 3 Kommentarer i språket... 4 Variabler... 4 Matematik... 5 Arrayer... 5 på skärmen...

Läs mer

Extramaterial till Matematik Y

Extramaterial till Matematik Y LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ TRE Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. I den här uppgiften ska du få bekanta

Läs mer

Beräkningsvetenskap föreläsning 2

Beräkningsvetenskap föreläsning 2 Beräkningsvetenskap föreläsning 2 19/01 2010 - Per Wahlund if-satser if x > 0 y = 2 + log(x); else y = -1 If-satsen skall alltid ha ett villkor, samt en då det som skall hända är skrivet. Mellan dessa

Läs mer

Planering av ett större program, del 2 - for och listor. Linda Mannila

Planering av ett större program, del 2 - for och listor. Linda Mannila Planering av ett större program, del 2 - for och listor Linda Mannila 9.10.2007 Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Utskrift Indata Felhantering Funktioner och moduler (grunder)

Läs mer

Kurslitteraturen. C-nivå Villkorssatser [kap 8] if & elif & else and & or Loopar [kap 9] for

Kurslitteraturen. C-nivå Villkorssatser [kap 8] if & elif & else and & or Loopar [kap 9] for Inför provet Provet skrivs för hand och är uppdelad i två delar. Den första delen är på E-nivå och den andra delen är på C- och A-nivå. För att det ska bli enklare för er att träna inför provet så har

Läs mer

Förkortning och förlängning av rationella uttryck (s. 27 Origo 3c)

Förkortning och förlängning av rationella uttryck (s. 27 Origo 3c) 1 Print 1 Algebraiska 2 Variabler 1 Algebraiska 3 Input 1 Algebraiska 4 For 1 Algebraiska uttryck, Rationella uttryck 1 Algebraiska uttryck, Gränsvärden Förkortning och förlängning av rationella uttryck

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

Klassdeklaration. Metoddeklaration. Parameteröverföring Syntax: Class Declaration Modifier Class Body Basic Class Member Klassdeklaration class Class Member Field Declaration Constructor Declaration Method Declaration Identifier Class Associations Motsvarar

Läs mer

Övningsuppgifter kapitel 8

Övningsuppgifter kapitel 8 Inst. för Systemteknik Introduktion till programmering (SMD 180), 5 p Övningsuppgifter kapitel 8 1. Listor är en viktig datatyp i Python. Hur definierar kursboken lista? Vad kallas de värden som tillsammans

Läs mer

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser

Introduktion till programmering SMD180. Föreläsning 2: Variabler, uttryck och satser Introduktion till programmering Föreläsning 2: Variabler, uttryck och satser 1 1 Värden De grundläggande saker som en dator manipulerar resultaten av beräkningar kallas värden Värden vi stött på: 2 och

Läs mer

Extramaterial till Matematik Y

Extramaterial till Matematik Y LIBER PROGRAMMERING OCH DIGITAL KOMPETENS Extramaterial till Matematik Y NIVÅ TVÅ Taluppfattning och tals användning ELEV Det finns många olika programmeringsspråk. I den här uppgiften ska du få bekanta

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt

Föreläsning 2 Programmeringsteknik och C DD1316. Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C DD1316 Mikael Djurfeldt Föreläsning 2 Programmeringsteknik och C Python introduktion Utskrift Inläsning Variabler Datatyp Aritmetiska operatorer Omvandling

Läs mer

Lennart Rolandsson, Uppsala universitet, Ulrica Dahlberg och Ola Helenius, NCM

Lennart Rolandsson, Uppsala universitet, Ulrica Dahlberg och Ola Helenius, NCM Matematik Gymnasieskola Modul: Matematikundervisning med digitala verktyg II Del 1: Om programmering Aktiviteter Del 1 Lennart Rolandsson, Uppsala universitet, Ulrica Dahlberg och Ola Helenius, NCM Ni

Läs mer

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska Matlab-föreläsning 3 (4), 17 september, 2015 Innehåll Sekvenser (från förra föreläsningen) Upprepning med for-slingor och while-slingor Villkorssatser med if - then -else - Logik Sekvenser - repetion från

Läs mer

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p Skriven av Michael Andersson Introduktion Programmering I högnivåspråk fokuserar på själv problemet (algoritmen) istället

Läs mer

Introduktion till programmering SMD180. Föreläsning 3: Funktioner

Introduktion till programmering SMD180. Föreläsning 3: Funktioner Introduktion till programmering Föreläsning 3: Funktioner 1 1 Mer matematik Vi har sett matematiska uttryck med variabler, värden och operatorer, ex: 17+n pi/2 hours*60+minutes Kan man även skriva uttryck

Läs mer

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc.

MATLAB the Matrix Laboratory. Introduktion till MATLAB. Martin Nilsson. Enkel användning: Variabler i MATLAB. utvecklat av MathWorks, Inc. Introduktion till MATLAB Martin Nilsson Avdelningen för teknisk databehandling Institutionen för informationsteknologi Uppsala universitet MATLAB the Matrix Laboratory utvecklat av MathWorks, Inc. Matematisk

Läs mer

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4: (22 januari 2016 F2.1 ) Föreläsning 2 Täcker material från lektion 1, 2, 3 och 4: Datatyper Aritmetik Tecken och strängar Klasser, Objekt Metoder Villkor, villkorssatser och iterationer main-metoden Kodstandard

Läs mer

Digitalt lärande och programmering i klassrummet

Digitalt lärande och programmering i klassrummet Stockholm 2018-02-14 14 februari 2018 Digitalt lärande och programmering i klassrummet Programmera i Python med micro:bit Introduktion I förra lektionen gick vi igenom grunderna i hur man programmerar

Läs mer

Förkortning och förlängning av rationella uttryck (s. 29 Origo 3b)

Förkortning och förlängning av rationella uttryck (s. 29 Origo 3b) 1 Print 1 Algebraiska 2 Variabler 1 Algebraiska 3 Input 1 Algebraiska 4 For 1 Algebraiska uttryck, Rationella uttryck Förkortning och förlängning av rationella uttryck (s. 29 Origo 3b) Eleverna kan träna

Läs mer

MMA132: Laboration 2 Matriser i MATLAB

MMA132: Laboration 2 Matriser i MATLAB MMA132: Laboration 2 Matriser i MATLAB Introduktion I den här labben skall vi lära oss hur man använder matriser och vektorer i MATLAB. Det är rekommerad att du ser till att ha laborationshandledningen

Läs mer

729G04 Programmering och diskret matematik. Python 3: Loopar

729G04 Programmering och diskret matematik. Python 3: Loopar 729G04 Programmering och diskret matematik Python 3: Loopar Översikt Labbar Punktnotation och strängmetoder Loopar Labb 3 Labbar? Punktnotation Punktnotation Ni har stött på punktnotation tidigare - kapitel

Läs mer

KPP053, HT2015 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

KPP053, HT2015 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner KPP053, HT2015 MATLAB, Föreläsning 1 Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner MATLAB Väletablerat Mycket omfattande program GNU OCTAVE Öppen

Läs mer

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde:

Variabler. TANA81: Beräkningar med Matlab. Matriser. I Matlab skapas en variabel genom att man anger dess namn och ger den ett värde: TANA81: Beräkningar med Matlab - Variabler och Matriser - Logiska uttryck och Villkor - Repetitionssatser - Grafik - Funktioner Variabler I Matlab skapas en variabel genom att man anger dess namn och ger

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Sammanfattning period 1 Eric Elfving Institutionen för datavetenskap 1 oktober 2013 Översikt Ett C++-programs uppbyggnad Variabler Datatyper Satser Uttryck Funktioner

Läs mer

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Att förstå variabler Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata. Vad är en variabel? En variabel är en plats att lagra information. Precis

Läs mer

Programmering i matematik på gymnasial nivå: workshop

Programmering i matematik på gymnasial nivå: workshop Programmering i matematik på gymnasial nivå: workshop Ta två häften Ett häfte med uppgifter Ett häfte med referensblad Båda häftena finns längst fram i salen Syfte med workshop Förtydliga förändringarna

Läs mer

v. 42 Python HT17 En introduktion Oscar Bergqvist

v. 42 Python HT17 En introduktion Oscar Bergqvist v. 42 HT17 Python En introduktion Oscar Bergqvist oscar.bergqvist@stockholm.se 1 Innehåll 2 IDLE... 3 2.1 Det interaktiva läget... 3 2.2 Standardläget... 3 2.3 Färger i IDLE... 3 3 Variabler... 3 3.1 Namn...

Läs mer

JavaScript Block Editor:

JavaScript Block Editor: Micro:bit Tärningen Att räkna med slumpen genom t.ex. tärningsslag och föra statistik över antal slag kan vara tidskrävande. Speciellt om man ska gör 100 st eller 1000 st kast. Genom att använda programmering

Läs mer

Variabler och konstanter

Variabler och konstanter Variabler och konstanter Deklareras automatisk när man stoppar in data i dem. X = 7 Y = A Z = Kalle Definieras av att de har: ett namn (X) en datatyp (Integer) ett värde (t.ex. 7) Lagras i datorns minne!

Läs mer

v. 43 Python HT17 En introduktion Oscar Bergqvist

v. 43 Python HT17 En introduktion Oscar Bergqvist v. 43 HT17 Python En introduktion Oscar Bergqvist oscar.bergqvist@stockholm.se 1 Innehåll 2 IDLE... 3 2.1 Det interaktiva läget... 3 2.2 Standardläget... 3 2.3 Färger i IDLE... 3 3 Variabler... 3 3.1 Namn...

Läs mer

MicroPython Ett textbaserad programmeringsspråk för Micro:bit

MicroPython Ett textbaserad programmeringsspråk för Micro:bit MicroPython Ett textbaserad programmeringsspråk för Micro:bit Introduktion till informationsteknologi 1DT051 2018-09-24 karl.marklund@it.uu.se Uppsala universitet Programming, problemlösning och algoritmer

Läs mer

Planering Programmering grundkurs HI1024 HT 2014

Planering Programmering grundkurs HI1024 HT 2014 Planering Programmering grundkurs HI1024 HT 2014 Föreläsning V36 Föreläsning 1 Vad är programmering? Boken! Kurs-PM Vad är ett program? Kompilerande- Interpreterande Programmeringsmiljö Hello World! Att

Läs mer

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31 TANA17 Matematiska beräkningar med MATLAB för M, DPU Fredrik Berntsson, Linköpings Universitet 27 oktober 2015 Sida 1 / 31 TANA17 Kursmål och Innehåll Målet med kursen är att Ge grundläggande färdighet

Läs mer

Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner

Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner Lektion 4, del 1, kapitel 10 Funktioner i JavaScript Inlärningsmål Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner Introduktion

Läs mer

Programmering I Tobias Wrigstad fredag, 2009 augusti 28

Programmering I Tobias Wrigstad fredag, 2009 augusti 28 Programmering I Tobias Wrigstad tobias@dsv.su.se Vad är programmering? Lågnivåspråk och högnivåspråk Kompilering och interpretering Variabler Notation för flödesschema (flow chart) Kontrollstrukturer (conditionals,

Läs mer

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Grundläggande satser och uttryck Eric Elfving Institutionen för datavetenskap 5 augusti 2014 Översikt Uttryck Litteraler Operatorer Satser Villkor Upprepning Teckenhantering

Läs mer

Grunderna i C++ T A. Skapad av Matz Johansson BergströmLIMY

Grunderna i C++ T A. Skapad av Matz Johansson BergströmLIMY Grunderna i C++ ARK 385: Virtuella Verktyg i en Materiell värld AT Arkitektur & Teknik Chalmers Tekniska Högskola 2009 - Kursen skapades (3 förel.) 2010-6 förel. + 2 projekt 2011-8 förel. Helt omarbetade

Läs mer

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det?

Föreläsning 10 Datalogi 1 DA2001. Utskrift på skärmen. Syntax. print( Hej ) Hur är det? Hej. print( Hej,end= ) print( Hur är det? ) HejHur är det? Föreläsning 10 Datalogi 1 DA2001 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer på skärmen print( Hej ) print( Hur är det?

Läs mer

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner KPP053, HT2016 MATLAB, Föreläsning 1 Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner MATLAB Väletablerat Mycket omfattande program GNU OCTAVE Öppen

Läs mer

Föreläsning 3 Programmeringsteknik och C DD1316. Innehåll i listor. Uppdateringsoperatorer. +,* och listor. Listor. Indexering

Föreläsning 3 Programmeringsteknik och C DD1316. Innehåll i listor. Uppdateringsoperatorer. +,* och listor. Listor. Indexering Föreläsning 3 Programmeringsteknik och C DD1316 Innehåll i listor En lista kan innehålla element av olika typer: [ hej, 151, 10.59] uppdateringsoperatorer listor tupler strängar for-slingor importera moduler

Läs mer

Visual Basic, en snabbgenomgång

Visual Basic, en snabbgenomgång Visual Basic, en snabbgenomgång Variabler och Datatyper En variabel är som en behållare. Olika behållare passar bra till olika saker. I Visual Basic(härefter VB) finns olika typer av behållare för olika

Läs mer

Övningar i 2D2050. Per-Anders Staav (kallas Pa) Epost: eller

Övningar i 2D2050. Per-Anders Staav (kallas Pa) Epost: eller Övningar i 2D2050 Per-Anders Staav (kallas Pa) Epost: pasta@kth.se eller pastaav@algonet.se Läser till civilingengör på Elektro 180 p inriktning mot programmering. Har jobbat extra som lärare på Nada sedan

Läs mer

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser // En första version av BankKonto-klassen class BankKonto { private String namn; private long nr; private double saldo; private double ränta; // Klassen TestaBankKonto // Klassens uppgift är att skapa

Läs mer

Programmeringsteknik I

Programmeringsteknik I Programmeringsteknik I Föreläsning 2: Grundläggande Java Johan Öfverstedt Java Grundläggande begrepp Datatyper Selektion if Räckvidd (scope) Iteration while Klasser Objekt Metoder Metodhuvudet Kodstandarden

Läs mer

DD1314 Programmeringsteknik

DD1314 Programmeringsteknik Skolan för Datavetenskap och kommunikation DD1314 Programmeringsteknik Föreläsning 1 o print o variabler o reserverade ord o input o kommentarer o beräkningar o datatyper o if-satser Kursinformation Programmering:

Läs mer

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter.

Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter. TAIU07 Föreläsning 3 Logik och Jämförelser. Styrsatser: Villkorssatsen if och repetitonssatsen for. Scriptfiler. Kommentarer. Tillämpningar: Ett enkelt filter. 27 januari 2016 Sida 1 / 21 Logiska variabler

Läs mer

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Laboration 2 Objektorienterad programmering i Java I Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6 Syfte: Att kunna använda sig av olika villkors- och kontrollflödeskonstruktioner

Läs mer

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26 TAIU07 Matematiska beräkningar med MATLAB för MI Fredrik Berntsson, Linköpings Universitet 15 januari 2016 Sida 1 / 26 TAIU07 Kursmål och Innehåll Målet med kursen är att Ge grundläggande färdighet i att

Läs mer

Introduktion till programmering och Python Grundkurs i programmering med Python

Introduktion till programmering och Python Grundkurs i programmering med Python Introduktion till programmering och Python Hösten 2009 Dagens lektion Vad är programmering? Vad är en dator? Filer Att tala med datorer En första titt på Python 2 Vad är programmering? 3 VAD ÄR PROGRAMMERING?

Läs mer

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32)

Dagens program. Programmeringsteknik och Matlab. Administrativt. Viktiga datum. Kort introduktion till matlab. Övningsgrupp 2 (Sal Q22/E32) Programmeringsteknik och Matlab Övning Dagens program Övningsgrupp 2 (Sal Q22/E2) Johannes Hjorth hjorth@nada.kth.se Rum 458 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d2

Läs mer

Introduktion till MATLAB

Introduktion till MATLAB 29 augusti 2017 Introduktion till MATLAB 1 Inledning MATLAB är ett interaktivt program för numeriska beräkningar med matriser. Med enkla kommandon kan man till exempel utföra matrismultiplikation, beräkna

Läs mer

Inledande programmering med C# (1DV402) Summera med while"-satsen

Inledande programmering med C# (1DV402) Summera med while-satsen Summera med while"-satsen Upphovsrätt för detta verk Inledande programmering med C# (1DV402) Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får

Läs mer

Introduktion till Matlab

Introduktion till Matlab Introduktion till Matlab Inledande matematik, I1, ht10 1 Inledning Detta är en koncis beskrivning av de viktigaste delarna av Matlab. Till en början är det enkla beräkningar och grafik som intresserar

Läs mer

Exempel: Exempel: Exempel: Exempel: $djur=array("ko","katt","älg"); foreach ($djur as $d) { echo $d. " "; } Resultat. ko katt älg

Exempel: Exempel: Exempel: Exempel: $djur=array(ko,katt,älg); foreach ($djur as $d) { echo $d.  ; } Resultat. ko katt älg Loopar och upprepning Vill man upprepa kod flera gånger så istället för att skriva en massa rader så kan man lägga koden i ett kodblock som man sedan loopar. Det finns ett par olika typer av loopar, FORloop,

Läs mer

i LabVIEW. Några programmeringstekniska grundbegrepp

i LabVIEW. Några programmeringstekniska grundbegrepp Institutionen för elektroteknik Några programmeringstekniska grundbegrepp 1999-02-16 Inledning Inom datorprogrammering förekommer ett antal grundbegrepp som är i stort sett likadana oberoende om vi talar

Läs mer

Övningsuppgifter till föreläsning 2 Variabler och uttryck

Övningsuppgifter till föreläsning 2 Variabler och uttryck Sid 1 (5) Övningsuppgifter till föreläsning 2 Variabler och uttryck Syfte Syftet med övningsuppgifterna är att träna på: Aritmetik, variabler, tilldelning, scanf och printf Generellt Diskutera gärna uppgifterna

Läs mer

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera Föreläsning 2 Variabler, tilldelning och kodblock if-satsen Logiska operatorer Andra operatorer Att programmera Variabler Det är i variabler som all data (information) lagras. Genom att ändra värde på

Läs mer

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell www.bjornregnell.se

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell www.bjornregnell.se Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell www.bjornregnell.se Mål Så enkelt som möjligt: låg tröskel Ett riktigt programmeringsspråk: inget tak Roliga uppgifter som går

Läs mer

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik och C DD1316. Programmering. Programspråk Föreläsning 2 steknik och C DD1316 python introduktion Variabler Datatyp Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program

Läs mer

Typkonvertering. Java versus C

Typkonvertering. Java versus C Typer Objektorienterad programmering E Typkonvertering Typkonvertering Satser: while, for, if Objekt Föreläsning 2 Implicit konvertering Antag att vi i ett program deklarerat int n=3; double x = 5.2; Då

Läs mer

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera Föreläsning 2 Operatorer Tilldelning Kodblock if satsen Logiska uttryck Att programmera En operator tar ett eller två data och producerar ett svar. Typexemplet är +. Den tar t.ex två heltal och producerar

Läs mer

3137 Bestäm ekvationen för den räta linje som går genom punkterna med koordinaterna a) (5, 3) och (3, 5)

3137 Bestäm ekvationen för den räta linje som går genom punkterna med koordinaterna a) (5, 3) och (3, 5) vux Lektion Kapitel Uppgift Lösning med programmering 3 Input Räta linjens ekvation 4 For 1 Algebra, Rita grafen till en andragradsfunktion 3137 Bestäm ekvationen för den räta linje som går genom punkterna

Läs mer

Koda ett mattetest 5 av 5. Lektionen handlar om att göra ett mattetest som fungerar för alla multiplikationstabeller. Koda ett mattetest 5 av 5

Koda ett mattetest 5 av 5. Lektionen handlar om att göra ett mattetest som fungerar för alla multiplikationstabeller. Koda ett mattetest 5 av 5 Lektionen handlar om att göra ett mattetest som fungerar för alla multiplikationstabeller. Lektionsförfattare: Christer Sjöberg Till läraren 1. Att automatisera svaret 2. Slumptal En digital lektion från

Läs mer

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion

Introduktion till programmering SMD180. Föreläsning 4: Villkor och rekursion Introduktion till programmering Föreläsning 4: Villkor och rekursion 1 1 Några inbyggda funktioner (med resultat!) Konverterar mellan de grundläggande typerna: >>> int("32") 32 >>> int(3.999) 3 >>> float(32)

Läs mer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer Programmering hh.se/db2004 Föreläsning 3: Java. Grundtyper, variabler och arrayer Hej Då, Karel! Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Center for Research on Embedded

Läs mer

PROGRAMMERING ÅK 9 INTRODUKTION

PROGRAMMERING ÅK 9 INTRODUKTION PROGRAMMERING ÅK 9 INTRODUKTION VARFÖR PROGRAMMERING? Med programmering kan man: Skapa nästan vad som helst som är digitalt. Allt som är digitalt är uppbyggt av kod som människor har skrivit, finns i både

Läs mer

1 Iteration. 1.1 for-satsen

1 Iteration. 1.1 for-satsen 1 Iteration Iteration innebär en upprepning, repetition av satser. Vi har nu sett hur en villkorssats kan välja att utföra ett satsblock beroende på om ett villkor är uppfyllt, selektion. För selektion

Läs mer

Funktioner. Linda Mannila

Funktioner. Linda Mannila Funktioner Linda Mannila 13.11.2007 Vad kan vi nu? Primitiva datatyper Tal, strängar, booleska värden Samlingsdatatyp Listan Utskrift Indata Felhantering Intro till funktioner och moduler Villkorssatsen

Läs mer

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv Datorlära 6 Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv 1 Arbeta med Strängar Strängar skapas med text inom citattecken, enkla eller dubbla.!>> str=

Läs mer

Grundläggande datalogi - Övning 1

Grundläggande datalogi - Övning 1 Grundläggande datalogi - Övning 1 Björn Terelius October 30, 2008 Python är ett tolkat språk som kan köras interaktivt. tcs-ray:~/grudat08>python >>> 11+3*4 23 >>> a = 15 >>> b=a >>> print "a =", a, "b

Läs mer

Programmering i C, 7,5 hp

Programmering i C, 7,5 hp Programmering i C, 7,5 hp Föreläsning 4 VÄLKOMNA! 31 switch-satsen Antag att vi har en heltalsvariabel a som skall styra programflödet Antag vidare att a kan anta tex 5 olika värden 1,2,3,4,5 printf( Mata

Läs mer

SMD 134 Objektorienterad programmering

SMD 134 Objektorienterad programmering SMD 134 Objektorienterad programmering Dagens agenda: Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer Konstanter av de olika typerna. Heltalsräkning

Läs mer

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php Introlektion PHP är ett av de enklare språken att lära sig just pga. dess dynamiska struktur. Det används för att bygga upp båda stora och mindre system. Några vanliga system som använder sig av PHP är

Läs mer

Planering Programmering grundkurs HI1024 HT TIDAA

Planering Programmering grundkurs HI1024 HT TIDAA Planering Programmering grundkurs HI1024 HT 2016 - TIDAA Föreläsning V35 Föreläsning 1 Programmering Kurs-PM Programmeringsmiljö Hello World! Variabler printf scanf Föreläsning 2 Operatorer Tilldelning

Läs mer

Dagens program. Programmeringsteknik och Matlab. Viktiga datum. Ett första exempel. Programmall, vad behöver vi i ett javaprogram?

Dagens program. Programmeringsteknik och Matlab. Viktiga datum. Ett första exempel. Programmall, vad behöver vi i ett javaprogram? Programmeringsteknik och Matlab Övning 2 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312

Läs mer

Iteration while-satsen

Iteration while-satsen Datatypen double TDA143 I1 Programmerade system Föreläsning 3 (OH-bilder 3) Iteration while-satsen Christer Carlsson I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna,

Läs mer

Parameteröverföring. Exempel. Exempel. Metodkropp

Parameteröverföring. Exempel. Exempel. Metodkropp Exempel atriangle.changesize (100, 50); // OK atriangle.changesize (100); // fel antal atriangle.changesize ( 1, 50); // fel datatyp char c = atriangle.getarea (); // fel datatyp Parameteröverföring I

Läs mer

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Från laboration 3 till 4 I laboration 3 har du implementerat klasser implementerat metoder i klasserna I laboration 4 kommer du att implementera

Läs mer

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk

Föreläsning 2 Programmeringsteknik DD1310. Programmering. Programspråk Föreläsning 2 steknik DD1310 Python introduktion Variabler Datatyper Aritmetiska operatorer av typer Reserverade ord logiska operatorer If-sats kommentarer betyder att instruera en dator Ett program är

Läs mer

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn.

Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E. Föreläsning 4: Villkor och rekursion. Modulus-operatorn. Några inbyggda funktioner (med resultat!) Introduktion till programmering D0009E Föreläsning 4: Villkor och rekursion Konverterar mellan de grundläggande typerna: >>> int("") >>> int(.999) >>> float().0

Läs mer

Slump och statistik med Scratch. Se video

Slump och statistik med Scratch. Se video Se video I lektionen simuleras hundratals tärningskast på kort tid. Eleverna får skapa en statistikapplikation och lära sig att skapa och modifiera algoritmer. Måns Jonasson, Internetstiftelsen, har arbetat

Läs mer

Introduktion till Matlab

Introduktion till Matlab Introduktion till Matlab Analys och Linjär Algebra, del A, K1/Kf1/Bt1, ht10 1 Inledning Ni kommer använda Matlab i nästan alla kurser i utbildningen. I matematikkurserna kommer vi ha studio-övningar nästan

Läs mer

Räkna med C# Inledande programmering med C# (1DV402)

Räkna med C# Inledande programmering med C# (1DV402) Räkna med C# Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll i verket

Läs mer

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära

Läs mer

Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner

Introduktion till programmering D0009E. Föreläsning 5: Fruktbara funktioner Introduktion till programmering D0009E Föreläsning 5: Fruktbara funktioner 1 Retur-värden Funktioner kan både orsaka en effekt och returnera ett resultat. Hittills har vi ej definierat några egna funktioner

Läs mer

Introduktion till programmering SMD180. Föreläsning 9: Tupler

Introduktion till programmering SMD180. Föreläsning 9: Tupler Introduktion till programmering Föreläsning 9: Tupler 1 1 Sammansatta datatyper Strängar Sekvenser av tecken Icke muterbara Syntax: "abcde" Listor Sekvenser av vad som helst Muterbara Syntax: [1, 2, 3]

Läs mer

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad 1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen

Läs mer

JavaScript del 3 If, Operatorer och Confirm

JavaScript del 3 If, Operatorer och Confirm JavaScript del 3 If, Operatorer och Confirm Under förra uppgiften så kollade vi på hur användaren kan ge oss information via promt(), vi använde den informationen både för att skriva ut den och för att

Läs mer

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1 Skolan för Datavetenskap och kommunikation DD1310/DD1314/DA3009 Programmeringsteknik Föreläsning 1 Kursinfo Diagnostiskt prov Python-intro: print variabler reserverade ord input kommentarer beräkningar

Läs mer

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer

Läs mer

Föreläsning 3. Iteration while-satsen

Föreläsning 3. Iteration while-satsen Föreläsning 3 Iteration while-satsen Datatypen double I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna, som används för att lagra tal (t.ex. int och double), har

Läs mer

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator

Viktiga begrepp. Algoritm. Array. Binärkod. Blockprogrammering. Bugg / fel och felsökning. Dataspel. Dator Viktiga begrepp Den här ordlistan är till för dig som går kursen Om Programmering. Eftersom detta är en grundläggande kurs har vi i vissa fall gjort en del förenklingar. En del begrepp är svåra att förenkla,

Läs mer

TANA17 Matematiska beräkningar med Matlab

TANA17 Matematiska beräkningar med Matlab TANA17 Matematiska beräkningar med Matlab Datorlektion 3. Repetitionssatser och Programmering 1 Introduktion Denna övning syftar till att träna programmering med repetitionssatser och villkorssatser. Undvik

Läs mer

Logik och kontrollstrukturer

Logik och kontrollstrukturer Logik och kontrollstrukturer Flödet av instruktioner i ett programmeringsspråk bygger vi upp med hjälp av dess kontrollstrukturer. I C har vi exemplen if, if else, while, do while. Dessutom finns switch

Läs mer