Problemlösning PROBLEMLÖSNING 2
|
|
- Agneta Lundström
- för 9 år sedan
- Visningar:
Transkript
1 PROBLEMLÖSNING 2 Introduktion 2 Dokumentation 2 Dela upp problem 2 Exempel på 3 Sekvens 3 Problem: Brygga kaffe i kaffebryggare 3 Problem: Klä på sig 10 Jordgubbsexemplet 11 Godisaffären 12 Selektion 14 Rabatt 17 Olika sorters kaffe 19 Potatis 21 Morötter 24 Olika rabatter 26 Relationsalgebra 28 Rabatt 32 Selektion med flera alternativ 33 Iteration 35 Mäta upp kaffe 35 Flera kunder 39 Kontrakt 39 Kontrakt för kaffebryggning 40 Maria Green Page 1 20/08/03
2 Introduktion I vardagen stöter vi på problem hela tiden. Det kan handla om små problem som vi inte ens funderar på hur vi ska lösa men det kan också vara större problem som kräver en del planering för att få till en bra lösning på. En del problem är roliga saker som man själv väljer att lösa medan andra är problem som man tvingas lösa även fast man kanske inte är så sugen. Programmering handlar egentligen om problemlösning. När man står inför en uppgift ligger den största delen av arbetet i att förstå och beskriva problemet samt dess lösning. När det är gjort går det oftast bra att skriva själva programkoden, om man gjort en bra lösning vill säga. Det är därför som denna första del handlar om problemlösning. Läs Problem solving with C++ delkap: Algorithms och Program design, s I den här modulen kommer det att ges exempel på olika typer av problem, både sådana hämtade från vardagslivet och från datavärlden. Problemen och lösningsförslag kommer att beskrivas detaljerat. Det kan ofta upplevas som många sidor text för enstaka problem men det är lättläst text med många bilder. Dessa beskrivningar fokuserar på att ge en hjälp till hur man kan tänka för att lösa ett problem och hur man kan dokumentera sin lösning så att man själv och andra enkelt kan förstå den. Dokumentation I avsnittet Program design i boken Problem solving with C++ beskriver författaren två olika faser i programutvecklingen, problemlösningsfasen och implementationsfasen. Han skriver att resultatet från problemlösningsfasen är en algoritm uttryck i vanlig engelska. Vi kommer att använda svenska när vi utrycker våra algoritmer. När man uttrycker en algoritm i ett naturligt språk (som svenska eller engelska) som ska implementeras i ett programmeringsspråk så brukar man prata om psuedokod. Display 1.6 i avsnittet Algorithms i Problem solving with C++ är ett exempel på pseudokod. Fler exempel på pseudokod kommer att visas både i detta kapitel och i de kommande då psuedokod är ett bra sätt att beskriva sitt program innan man implementerar det. Ett annat bra sätt att dokumentera sin lösning på ett problem är med ett diagram. Ett diagram kan ofta visa tydligare än pseudokod hur programmet är tänkt att fungera eftersom det ofta ger en bättre översikt. Det är också lätt för andra att tyda ett diagram. Det finns många olika standarder för hur man skriver diagram, tex UML och Booch. Under den här kursen kommer vi att använda diagram baserade på UML-standarden. Läs mer om algoritmer och pseudokod i Deitel kapitel 2.2 och 2.3. Dela upp problem När man ska lösa ett problem är det oftast bra att först försöka få någon form av överblick av problemet och sedan dela upp problemet i mindre, mer hanterbara delar. När man sedan löst de olika delarna så har man även löst huvudproblemet. Så här jobbar man mycket inom programvaruutveckling. Ofta är det dessutom flera personer som jobbar på ett och samma problem och olika människor kanske utvecklar olika delar. Då är det väldigt viktigt att alla Maria Green Page 2 20/08/03
3 utformar sina delar så att de passar ihop med de andras, vilket gör det extra viktigt med bra dokumentation. Det gäller att alla är införstådda med vad som gäller och då måste dokumentationen vara tydlig. Det är en fördel om alla använder samma dokumentationsmall, det vill säga använder samma typ av diagram, ligger på samma detaljeringsnivå samt tar med samma typ av fakta. Vi kommer att följa några exempel som kommer att utvecklas mer och mer efter hand. Detta kommer att varvas med kortare exempel som endast tar upp den del som fokuseras på för tillfället. För alla exempel kommer först en beskrivning av problemet, sedan följer förslag (kan vara ett eller flera) till en lösning av problemet, där tankarna kring arbetet redovisas. Lösningarna kommer att dokumenteras med flödesdiagram och/eller pseudokod. Exempel på Det mest omfattande exemplet är kaffeexemplet där flera nya begrepp tas upp. Där förklaras även hur man skriver flödesdiagram för olika konstruktioner. I de övriga exemplen fokuseras inte på hur man beskriver sin lösning utan mer på hur man kan tänka och komma fram till en lösning. Sekvens Vi börjar med första delen av kaffexemplet. Problem: Brygga kaffe i kaffebryggare Introduktion Vi ska börja med ett väldigt enkelt problem, att brygga kaffe i en kaffebryggare. De flesta ser antagligen inte detta som ett problem då de känner lösningen och kanske utför det flera gånger varje dag. För den som aldrig gjort det förut är det dock ett problem och vi ska nu formulera några tänkbara lösningar på detta problem. Lösning av problemet Till att börja med delar vi upp problemet i mindre beståndsdelar. För att brygga kaffe behöver vi två saker, vatten och kaffe. Vi gör en enkel beskrivning av hur man bryggar kaffe: Först mäter man upp vatten och sedan mäter man upp kaffe och sedan startar man kaffebryggaren. Detta är en sekvens av handlingar man utför och vi kan skriva det lite mer som instruktioner: Mät upp vatten Mät upp kaffe Starta kaffebryggaren Varje rad motsvarar en handling vi utför, en del av problemet löses av varje handling och om alla handlingar utförs så löses hela problemet, att brygga kaffe i kaffebryggare. Maria Green Page 3 20/08/03
4 Flödesdiagram Vi kan också illustrera lösningen med ett diagram. De olika handlingarna eller operationerna representeras av rektanglar: Mät upp vatten Man kan sedan sätta samman flera operationer i en sekvens: Mät upp vatten Mät upp kaffe Om man lägger till en början och ett slut, vilka representeras av ringar: så har man ett flödesdiagram. Mät upp vatten Mät upp kaffe Starta bryggaren Alternativ lösning När man löser problem finns det nästan alltid flera olika lösningar och vilken lösning som fungerar bäst beror på situationen. Ibland är alla lösningar lika bra och då spelar det ingen roll vilken man väljer. Vi har presenterat en lösning på vårt problem att brygga kaffe i kaffebryggare, men det är inte enda lösningen. I vår lösning av kaffebryggningen så har vi delat upp den i tre delar. Vi har också valt i vilken ordning vi ska utföra de tre operationerna. Detta är en lösning av problemet men vi kan lätt se att det finns flera alternativa lösningar. I de allra flesta fall så startar man ju bryggaren sist så att den operationen ska vara den sista av de tre känns ju ganska naturligt. Spelar det någon roll i vilken ordning man mäter upp vatten och kaffe? I de flesta kaffebryggare har det ingen betydelse vilket man gör först, ofta har ordningen bara med vana att göra. Det är därför nästan alltid en precis lika bra lösning att först mäta upp kaffe och sedan vatten för att till sist starta kaffebryggaren. Ett flödesdiagram för den ordningen skulle se ut så här: Maria Green Page 4 20/08/03
5 Mät upp kaffe Mät upp vatten Starta bryggaren Beskrivningen av vilka operationer som måste utföras och i vilken ordning de måste utföras för att lösa ett visst problem kallas för en algoritm. De två varianterna på kaffebryggningen som presenterats tidigare innehåller samma operationer men med olika ordning, de är alltså två olika algoritmer för att lösa samma problem. Mer detaljer Den tidigare beskrivningen av lösningen till kaffebryggningen är ganska översiktlig och för att verkligen kunna brygga kaffe måste man specificera mer detaljerat hur man utför de olika momenten. Om vi börjar med att mäta upp vatten så fyller man oftast vatten i kannan och häller det sedan i kaffebryggarens behållare för vatten. Detta kan skrivas som instruktioner eller ritas som diagram: Mät upp vatten i kannan Häll vattnet i behållaren Vatten Mät upp vatten i kannan Häll vattnet i behållaren Maria Green Page 5 20/08/03
6 Denna detaljering kan vi föra in det ursprungliga diagrammet genom att byta ut operationen Mät upp vatten mot de två stegen ovanför. Vi ökar detaljeringsgraden. Ibland vill man föra in det i samma diagram men ibland vill man ha separata diagram för att inte tappa översikten. Mät upp vatten i kannan Häll vattnet i behållaren Mät upp kaffe Starta bryggaren Nästa steg vi vill beskriva mer detaljerat är hur man mäter upp kaffe. Först måste man ha något att mäta upp kaffet i, dvs en melittatratt med ett filter i, så det måste man först sätta dit. Sedan använder man lämpligen en skopa och mäter upp kaffe med. Kaffe Sätt ett filter i melittan Mät upp kaffe med en skopa Maria Green Page 6 20/08/03
7 Vi kan föra in även denna del i det stora diagrammet. Det gör vi genom att byta ut Mät upp kaffe mot de två operationerna ovan. Mät upp vatten i kannan Häll vattnet i behållaren Sätt ett filter i melittan Mät upp kaffe med en skopa Starta bryggaren Om vi vill behålla modulariteten på en hög nivå kan vi istället ha kvar det ursprungliga diagrammet och referera till de två separata diagrammen för mer detaljer. Detta kan göras med en kommentar. Mät upp vatten Se diagram Kaffe Mät upp kaffe Se diagram Vatten Starta bryggaren Maria Green Page 7 20/08/03
8 Variabler och pseudokod För att vi ska veta hur mycket vatten och kaffe vi ska ha måste vi veta hur många koppar kaffe vi ska brygga. Vi kan använda en variabel antal som talar om hur många koppar vi ska brygga. När vi mäter upp vatten, mäter vi upp antal koppar vatten. Om vi för in detta i diagrammet ser det ut som följande: Mät upp vatten i kannan till antal koppar Häll vattnet i behållaren Sätt ett filter i melittan Mät upp kaffe med en skopa Starta bryggaren Maria Green Page 8 20/08/03
9 Vi måste också sätta antal till ett värde någonstans också, tex för att brygga fyra koppar kaffe, sätt antal = 4. Vi kan lägga till en operation först i sekvensen som bestämmer antal koppar. Bestäm antal koppar Mät upp vatten i kannan till antal koppar Häll vattnet i behållaren Sätt ett filter i melittan Mät upp kaffe med en skopa Starta bryggaren Vi kan också beskriva detta flöde med ord: Bestäm antal koppar Mät upp vatten i kannan till antal koppar Häll vattnet i behållaren Sätt ett filter i melittan Mät upp kaffe med en skopa Starta bryggaren (detta är ett exempel på pseudokod, en beskrivning av en algoritm, skriven på svenska) Maria Green Page 9 20/08/03
10 Ett annat exempel där vi kan se hur ordningen kan spela roll beskrivs i hur man klär på sig. Problem: Klä på sig Varje morgon klär man (förhoppningsvis) på sig lite kläder innan man går ut. Ett exempel på vad man tar på sig är: skor, byxor, tröja, underkläder, jacka. När man tar på sig kläderna spelar det ju ganska stor roll i vilken ordning man tar på sig vissa plagg, medan när det gäller andra spelar det ingen roll. Om vi tittar på varje plagg för sig och ser vilka villkor som gäller för just det plagget. Det är ju inte så att man måste ha tagit på sig ett visst plagg innan man tar på sig det aktuella plagget, tex så finns det ju inget som säger att man måste ha tagit på sig underkläder innan man tar på sig byxorna även om det känns bekvämast. Däremot kan vi säga vad vi inte får ha tagit på oss innan när vi ska ta på oss ett visst plagg. Vi kan ju till exempel inte ha tagit på oss byxor innan vi tar på oss underkläderna (om vi inte vill se väldigt konstiga ut). Vi sätter därför upp villkoren för vad vi inte får ha tagit på oss innan det aktuella plagget. Skor Byxor Tröja Underkläder Jacka inga krav inte skor inte jacka inga andra kläder inga krav Vi kan se att skor och jacka inte har några krav på vilka kläder vi har på oss när vi tar på dem plaggen. Underkläder däremot får inte tas på efter några andra kläder, alltså måste vi ta på dem först. 1. Underkläder Vi ser att när vi ska ta på oss byxor så får vi inte ha skor på oss, byxorna måste vi alltså ta på oss före skorna. A. Byxor B. Skor Likadant är det med tröjan och jackan. a. Tröja b. Jacka Byxorna/skorna och tröjan/jackan har dock ingen relation till varandra så vilken ordning man gör det i spelar ingen roll. Möjliga ordningar blir då. 1. Underkläder 2. Byxor 3. Skor 4. Tröja 5. Jacka 1. Underkläder 2. Tröja 3. Jacka 4. Byxor 5. Skor 1. Underkläder 2. Tröja 3. Byxor 4. Jacka 5. Skor 1. Underkläder 1. Underkläder 1. Underkläder 2. Tröja 2. Byxor 2. Byxor 3. Byxor 3. Tröja 3. Tröja Maria 4. Green Skor 4. Skor Page Jacka 5. Jacka 5. Jacka 5. Skor 20/08/03
11 Det finns flera algoritmer som löser problemet. Du har säkert någon favorit av dessa som du använder för det mesta, men de är alla lika korrekta utefter de krav vi ställt upp. Om vi lägger till andra krav så kan antalet möjliga algoritmer förändras. Om vi till exempel säger att man inte får ta på sig skorna förrän man går ut, det vill säga sist av alla kläder, så försvinner hälften av alla de möjliga lösningarna ovan. Vi kan också ta oss en titt på Jordgubbsexemplet där ett enkelt dataprogram ska utvecklas. Jordgubbsexemplet Problem Herr Jansson odlar en massa jordgubbar och har självplock på dem. Det vill säga kunderna får själva komma dit och plocka så mycket jordgubbar de vill ha. När de plockat klart vägs jordgubbarna och kunden betalar. Kilopriset varierar lite beroende på tillgång och efterfrågan (och på vad grannen Hansson tar), men det brukar ligga på runt 20 kr/kg. Herr Jansson har inte tid att själv stå och väga jordgubbar hela dagarna, så hans barn och deras kompisar brukar hjälpa till. Ibland är det lite problem med hur mycket kunderna ska betala, ibland beror det på att huvudräkningen är svår och ibland på att herr Janssons barn glömmer bort vilket kilopris som gäller just den dagen. Jansson har kommit på att han kan använda en dator för att räkna ut priset (någon riktig kassaapparat vill han inte skaffa, då måste han ju börja betala en massa moms). Han har gått en kurs i programmering så han vet hur man skriver ett dataprogram som räknar ut priset, men först sätter han sig och skissar på en lösning. Lösning Han vill veta det totala priset som är: totalt pris = vikt * kilopris. Vikten varierar ju med varje kund och kilopris bestämmer ju herr Jansson varje dag och med andra ord varierar ju även det totala priset hela tiden. Det är alltså tre variabler här: totalpris, vikt och kilopris. För att kunna beräkna det totala priset måste vi ju först veta värdet på de två andra variablerna. Vilken av de variablerna som vi sätter först har dock ingen betydelse. Vi kan formulera två olika lösningar i pseduokod: Lösning 1 Lösning 2 1. Bestäm kilopriset 1. Bestäm vikten 2. Bestäm vikten 2. Bestäm kilopriset 3. Beräkna totalpris 3. Beräkna totalpris Det här är två olika algoritmer som löser samma problem på två olika sätt, men resultatet blir det samma vilken algoritm man än använder. Vi kan också beskriva de två lösningarna med var sitt diagram: Maria Green Page 11 20/08/03
12 Lösning 1 Lösning 2 Bestäm kilopriset Bestäm vikten Bestäm vikten Bestäm kilopriset Beräkna Beräkna Vi kommer att välja en av dessa lösningar för att fortsätta att utveckla den och jag väljer Lösning 1. Jag tycker det känns mer naturligt att först sätta kilopriset och sedan titta på den enskilde kundens vikt på sina jordgubbar. Det är dock precis lika rätt att välja Lösning 2. Nu är det dags att försöka själv. Här följer ett problem som liknar de vi tittat tidigare på. Försök lösa det och dokumentera din lösning med både diagram och pseudokod. Titta sedan på min lösning och jämför. Tänk på att det bara är ett förslag på hur man kan lösa problemet. Det finns flera olika sätt att lösa problemet på så även om din lösning ser annorlunda ut behöver det inte betyda att den är felaktig eller sämre än min. Godisaffären Problem Fru Jönsson har en liten godisaffär. I den säljer hon klubbor, chokladbitar och läsk. Ofta köper kunderna flera saker och då tycker hon det är väldigt besvärligt att räkna ut hur mycket kunden ska betala och hur mycket han/hon ska få tillbaka. Fru Jönsson har en dotter, fröken Jönsson, vars hobby är programmering och därför erbjuder hon sig att skriva ett dataprogram till sin mamma som kan räkna ut summan åt henne. Hon ber henne om en prislista och sätter sedan igång att designa sitt program. Hon dokumenterar sin lösning med både flödesdiagram och pseduokod för att lättare kunna förklara för sin nyfikna mamma vad hon ska göra. Prislista Klubba 2:- Chokladbit 5:- Läsk 10:- Uppgift: gör samma sak som fröken Jönsson Maria Green Page 12 20/08/03
13 Prisförändringar När fröken Jönsson visar sin lösning för sin mamma tycker fru Jönsson att det ser väldigt bra ut men så kommer hon på att hon bestämt sig för att höja priset på klubborna till Hur ska hon då göra? Uppgift: gör om lösningen från första delen Maria Green Page 13 20/08/03
14 Selektion Vi tar oss återigen en titt på vårt kaffeexempel. Enkel selektion I köket finns kanske bara ett uttag där kaffebryggaren står så det uttaget används antagligen till mycket annat än bara kaffebryggaren. På grund av detta sitter kontakten ofta inte i uttaget när man ska brygga kaffe och om den inte gör det måste man ju givetvis sätta i den för att man ska få något kaffe. Man kan välja att utföra vissa handlingar eller operationer beroende på situationen. Situationen beskrivs av ett uttryck som antingen kan vara sant eller falskt. Kontakten sitter i uttaget, är ett uttryck som antingen är sant eller falskt och vi kan avgöra om det är sant eller falskt genom att helt enkelt titta på kontakten. I det här läget är vi mest intresserade av om kontakten inte sitter i uttaget för det är ju bara då vi behöver utföra någon extra handling innan vi kan starta kaffebryggaren. Vi kan därför vända på uttrycket och säga kontakten sitter inte i uttaget. Detta uttryck går också att evaluera (utvärdera) till sant eller falskt. Om uttrycket är sant så sitter kontakten inte i och vi måste sätta i den. Om uttrycket är falskt så sitter kontakten redan i och vi behöver inte göra något innan vi startar kaffebryggaren. För att uttrycka det lite mer formellt: Om kontakten inte sitter i uttaget Sätt i kontakten Det går också bra att beskriva detta i ett diagram. Val, eller selektion som det också kallas, illustreras som en romb med en ingång och två utgångar. Inuti romben står ett villkor och vilken utgång som väljs beror på om uttrycket är sant eller falskt. Kontakten sitter inte i Om kontakten inte sitter i kommer vi att gå ut till höger ur romben och då vill vi ju sätta i kontakten vilket är en operation. Om uttrycket är falskt betyder det ju att kontakten redan sitter i och då behöver vi ju inte göra något. Kontakten sitter inte i Sätt i kontakten Maria Green Page 14 20/08/03
15 Maria Green Page 15 20/08/03
16 Vi kan föra in detta i det stora diagrammet. Bestäm antal koppar Mät upp vatten i kannan till antal koppar Häll vattnet i behållaren Sätt ett filter i melittan Mät upp kaffe med en skopa Kontakten sitter inte i Sätt i kontakten Starta bryggaren Maria Green Page 16 20/08/03
17 Herr Jansson stöter också på en situation där det finns olika valmöjligheter: Rabatt Herr Jansson tycker att de flesta kunderna plockar alldeles för lite jordgubbar. För att få dem att köpa mer erbjuder han en mängdrabatt. Om man handlar för mer än 200 kronor så får man 10% rabatt på hela summan. Detta vill han givetvis föra in i sitt dataprogram. Lösning När man beräknat det totala priset måste man kolla om det är 200 eller högre och i så fall dra ifrån rabatten. Så i pseudokod blir det: Om totalpris är 200 eller högre Dra ifrån rabatt på 10% Eller matematiskt uttryckt: Om totalpris >= 200 totalpris = totalpris * 0.9 Vi kan även illustrera detta med ett diagram totalpris >= 200 totalpris = totalpris * 0.9 Maria Green Page 17 20/08/03
18 Om vi för in denna del i det stora diagrammet ser det ut så här: Bestäm kilopriset vikt = antal kilo jordgubbar totalpris = kilopris * vikt totalpris >= 200 totalpris = totalpris * 0.9 Skriv ut totalpris I det här exemplet kan vi se att det finns olika sätt att uttrycka sig när man skriver pseudokod och diagram. Man kan antingen använda ett naturligt språk som svenska helt och hållet, eller blanda det med matematiska uttryck. Hur man väljer att uttrycka sig beror bland annat på vem man vänder sig till. Samma diagram kanske man ritar i flera versioner. Ett exemplar kan vara för att visa upp för chefen eller kunden. En annan version kan behövas för att använda vid själva implementation. Ytterligare en version vill man kanske ha som diskussionsunderlag tillsammans med kollegor och medarbetare. En annan viktig orsak att dokumentera sin lösning noggrant är för att programmet ska kunna underhållas och utvecklas i framtiden. Vi ska nu titta på fler varianter av selektion i vårt kaffeexempel. Maria Green Page 18 20/08/03
19 Olika sorters kaffe Ovan satte vi i sladden om det behövdes, annars fortsatte vi bara. Vi valde om vi ville utföra en extra handling eller inte. Man kan också ha två alternativa vägar där man måste välja en av dem. Till exempel så kan man ha två sorters kaffe hemma, ett vanligt mellanrostat och ett lite starkare mörkrostat. När man har gäster kan man fråga om de tycker om mörkrostat och om de gör det så brygger man det, annars brygger man vanligt mellanrostat kaffe. Om vi skulle visa detta i ett diagram skulle det se ut så här: Välj mellanrostat Tycker om mörkrostat Välj mörkrostat Det är fortfarande ett val vi gör, en selektion, precis som när vi valde om vi skulle sätta i sladden eller inte. Skillnaden är att här har vi två alternativa operationer som vi utför. Vi brygger antingen vanligt kaffe eller mörkrostat kaffe. Vi måste brygga en av sorterna men vi kan inte brygga bägge sorterna (i alla fall inte samtidigt). Inuti romben har vi precis som tidigare ett uttryck som kan evalueras till sant eller falskt. Antingen tycker man om mörkrostat och då är uttrycket Tycker om mörkrostat sant och vi väljer mörkrostat kaffe. Eller så tycker man inte om mörkrostat och då är uttrycket Tycker om mörkrostat falskt och vi väljer vanlig kaffe. ( Vet inte är inte ett godtagbart svar här, man måste svara ja eller nej). Maria Green Page 19 20/08/03
20 Vi sätter in den delen i det stora diagrammet. Bestäm antal koppar Mät upp vatten i kannan till antal koppar Häll vattnet i behållaren Sätt ett filter i melittan Välj vanligt Tycker om mörkrostat Välj mörkrostat Mät upp kaffe med en skopa Kontakten sitter inte i Sätt i kontakten Starta bryggaren Maria Green Page 20 20/08/03
21 I del 3.2 valde vi en av två vägar. Detsamma gör Herr Jansson att göra när han utökar sin verksamhet till att inkludera potatisförsäljning också. Potatis Herr Jansson har bestämt sig för att börja odla potatis också. Nu behöver han modifiera sitt program så att det fungerar för både jordgubbar och potatis. Han har märkt att de flesta köper antingen jordgubbar eller potatis så han bestämmer sig för att låta programmet räkna ut priset för antingen jordgubbar eller potatis. (Skulle någon vilja köpa bägge delarna får man helt enkelt köra programmet två gånger). Rabatten låter han vara densamma för både jordgubbar och potatis, 10%. Kilopriset däremot är olika för jordgubbar och potatis så det måste införas ytterligare en variabel, kiloprispotatis. Variabeln som betecknar kilopriset för jordgubbarna heter ju bara kilopris och för att det inte ska bli någon förvirring om vilket kilopris det gäller döper han om den till kiloprisjordgubbar. Maria Green Page 21 20/08/03
22 Det som skiljer programmen åt är alltså bara de två kiloprisen och beräkningen av det första totalpriset (det innan man dragit av eventuell rabatt). Designen skulle då kunna se ut så här: Bestäm kilopriset för jordgubbar och potatis Hur många kilo? vikt = antal kilo jordgubbar/potat totalpris = kiloprispotatis * vikt Kunden har jordgubbar totalpris = kiloprisjordgubbar * vikt totalpris >= 200 totalpris = totalpris * 0.9 Skriv ut totalpris Maria Green Page 22 20/08/03
23 Man skulle också kunna tänka sig att man först kollar om kunden har jordgubbar eller potatis och sedan matar in vikten. Designen för den lösningen skulle kunna se ut så här: Bestäm kilopriset för jordgubbar och potatis Kunden har jordgubbar vikt = antal kilo potatis vikt = antal kilo jordgubbar totalpris = kiloprispotatis * vikt totalpris = kiloprisjordgubbar * vikt totalpris >= 200 totalpris = totalpris * 0.9 Skriv ut totalpris Vi måste fortfarande ta reda på vikten innan vi kan beräkna det totala priset men det kan kännas naturligare att först välja sort och sedan ange vikten. Maria Green Page 23 20/08/03
24 Ibland finns det fler än två alternativ. Om man tittar på kaffeexemplet så kanske man tycker det är väldigt spännande att prova många olika kaffesorter så man kanske har fyra olika sorter att välja bland. Varje morgon gör man ett val när man klär på sig. De allra flesta har förhoppningsvis mer än två par byxor att välja mellan. Herr Jansson utökar sin verksamhet med ytterligare en produkt och för in nästlad selektion i sitt program. Morötter Herr Jansson har börjat odla morötter också. Han säljer inte så väldigt mycket morötter men det ger en extra slant i alla fall. Han bestämmer sig för att lägga in morötter i programmet och han låter dem vara rabattberättigade också. Maria Green Page 24 20/08/03
25 Om man utgår från den första designen från del 3 så skulle den nya designen kunna se ut så här: Bestäm kilopriset för jordgubbar, potatis & vikt = antal kilo jordgubbar/potat is/morötter Kunden har jordgubbar Kunden har potatis totalpris = kiloprisjordgubbar * vikt totalpris = kiloprismorötter * vikt totalpris = kiloprispotatis * vikt totalpris >= 200 totalpris = totalpris * 0.9 Skriv ut totalpris Maria Green Page 25 20/08/03
26 Om det första uttrycket Kunden har jordgubbar är sant så beräknas totalpriset för jordgubbarna och sedan dras eventuell rabatt ifrån. Om uttrycket Kunden har jordgubbar är falskt däremot så betyder ju det att kunden har antingen potatis eller morötter. Vi måste alltså utföra ytterligare en selektion. Vi gör ett andra uttryck som säger Kunden har potatis. Om detta uttryck är sant så har ju kunden potatis och då beräknas priset efter kilopriset på potatis. Om uttrycket däremot är falskt så måste ju kunden ha morötter. Vi kan uttrycka samma sak i pseudokod: Om kunden har jordgubbar totalpris = kiloprisjordgubbar * vikt annars om kunden har potatis totalpris = kiloprispotatis * vikt annars totalpris = kiloprismorötter * vikt Detta kallas för nästlad selektion. Man har flera selektions-satser inuti varandra. Man skulle också kunna skriva ihop dessa på följande sätt: Om kunden har jordgubbar totalpris = kiloprisjordgubbar * vikt annars om kunden har potatis totalpris = kiloprispotatis * vikt annars totalpris = kiloprismorötter * vikt Flödesdiagrammet ser likadant ut för denna andra typ av selektion. Det går fortfarande bara att välja en av de tre alternativen. Olika rabatter Den här sommaren blev det ingen bra jordgubbssommar. Efterfrågan på jordgubbar är stor och priserna höga. Herr Jansson vill inte längre ge rabatt på jordgubbarna, han får ju garanterat sålt alla jordgubbar ändå. Han vill ändå behålla rabatten på 10% på potatis och morötter. Då kan han helt enkelt lägga in rabatten på den väg som både potatis och morötterna passerar. Maria Green Page 26 20/08/03
27 Bestäm kilopriset för jordgubbar, potatis & vikt = antal kilo jordgubbar/potat is/morötter Kunden har jordgubbar Kunden har potatis totalpris = kiloprisjordgubbar * vikt totalpris = kiloprismorötter * vikt totalpris = kiloprispotatis * vikt totalpris >= 200 totalpris = totalpris * 0.9 Skriv ut totalpris Maria Green Page 27 20/08/03
28 Vad vi dock måste tänka på här är hur vi skriver psuedokoden. Om vi väljer den första varianten från del 4 bli det inga problem: Om kunden har jordgubbar totalpris = kiloprisjordgubbar * vikt annars om kunden har potatis totalpris = kiloprispotatis * vikt annars totalpris = kiloprismorötter * vikt om totalpris >= 200 totalpris = 0.9 * totalpris Här dras rabatten på både potatis och morötter (om totalpriset är 200 eller över) men inte på jordgubbar. Om vi väljer den andra varianten från del 4 måste vi dra av rabatten på två ställen för att det ska bli rätt: Om kunden har jordgubbar totalpris = kiloprisjordgubbar * vikt annars om kunden har potatis totalpris = kiloprispotatis * vikt om totalpris >= 200 totalpris = 0.9 * totalpris annars totalpris = kiloprismorötter * vikt om totalpris >= 200 totalpris = 0.9 * totalpris Ofta när man vill prata om förhållandet mellan saker tex om något är större än något annat så använder man de matematiska tecknen > och < samt =. Den som behöver lite repetition på relationsalgebra (tex vilket håll de ska vara vända åt) kan ta en titt på detta. Några enkla exempel på hur det kan se ut i en design med relationsalgebra finns också med. Relationsalgebra Grunderna x < y x är mindre än y x > y x är större än y x \ x är mindre än eller lika med y x \ x är större än eller lika med y Maria Green Page 28 20/08/03
29 Vi kan också skriva det utan specialtecknen RFK JHQRPDWWVNULYDVDPPDQRFK!PHG x <= y x är mindre än eller lika med y x >= y x är större än eller lika med y Bägge varianterna kommer att användas. Enkla exempel Här följer några enkla exempel på hur det kan se ut i diagram och pseudokod när problemen leder till att uttrycken för selektion är av matematiska enheter. Dörrvakt Calle Carlsson är dörrvakt på en krog med 20-års gräns. Det kan beskrivas så här: personen >= 20 Personen får komma in Om personen Personen får komma in Men det kan också beskrivas tvärtom: Om personen < 20 Personen får inte komma in Personen < 20 Personen får inte komma in Maria Green Page 29 20/08/03
30 Observera att motsatsen till LQWHlU XWDQEDUDNDQMXEDUDYDUDPHGSå en sida annars skulle det blir två olika betydelser. Om det stod Alternativ 1 Om personen Personen får komma in Alternativ 2 Om personen Personen får inte komma in Skulle det i alternativ 1 betyda att en 20-åring får komma in, medan det i alternativ 2 skulle betyda att en 20-åring inte får komma in. Sammansatta uttryck En dag bestämmer sig Calle Carlssons chef för att ändra åldersgränsen för killar till 23 år. Han tror att det ska bli lite lugnare på hans krog då. Så nu gäller för Calle att släppa in tjejer som är 20 år eller äldre och killar som är 23 år eller äldre. Vi har här två sammansatta uttryck: tjej och VDPW NLOOHRFK &DOOHVQ\DUHJOHU ser då ut så här: Alternativ 1 Om personen är tjej och Personen får komma in Eller om personen är kille och Personen får komma in Det kan också visas i ett diagram: personen är tjej och personen är kille och Personen får komma in Personen får komma in Maria Green Page 30 20/08/03
31 I den första selektionen ser vi att om personen antingen är under 20 och/eller om det är en kille så är uttrycket falskt. Det vill säga för alla personer under 20 (oavsett kön) är uttrycket falsk och för alla killar oavsett ålder är uttrycket falskt. Killarna får sin chans i det andra uttrycket. Där måste det vara en vara en kille (om vi antar att alla är antingen tjej eller kille så egentligen är den raden onödig) och han måste vara över 23 år för att uttrycket ska bli sant. Man kan testa att sin design stämmer genom att sätta upp några olika testfall. Här har vi kön med följande personer: 1. Jeanette 21 år 2. Anders 18 år 3. Johan 24 år 4. Leo 22 år 5. Katarina 19 år 6. Josefin 26 år 1. Jeanette är tjej och hon kommer in 2. Anders är inte tjej och inte går vidare till vänster, Anders är kille men inte han kommer inte in 3. Johan är inte tjej men - går vidare till vänster, Johan är kille och han kommer in 4. Leo är inte tjej men - går vidare till vänster, Leo är kille men inte 23 han kommer inte in 5. Katarina är tjej men inte går vidare till vänster, Katarina är inte kille och inte 23 hon kommer inte in 6. Josefin är tjej och hon kommer in Algoritmen fungerar. Man måste vara noga med vad man väljer för testfall så att alla fall blir representerade. I vårt fall har vi sex testfall men det behövs bara tre för att visa algoritmen fungerar, tex testfall 1, 3 och 4. Då finns det ett fall för varje väg. Det finns flera alternativa sätt att lösa det här problemet, flera olika algoritmer som ger samma resultat. Alternativ 2 Alla som är 23 eller äldre kommer ju in, vare sig de är kille eller tjej. Så man kan säga Om personen är Personen får komma in De som är under 20 får överhuvudtaget inte komma in, vare sig de är kille eller tjej så de bryr vi oss inte om nu. De som vi måste skilja åt mellan könen är de som är mellan 20 och 23. Om personen RFKSHUVRnen är tjej Personen får komma in Maria Green Page 31 20/08/03
32 Vi sätter samman dessa: Om personen är Personen får komma in Om personen RFKSHUVRQHQlUWMHM Personen får komma in Diagrammet skulle se ut så här: personen personen är tjej och Personen får komma in Personen får komma in Då var det dags att prova själv både vad gäller selektion av olika slag och relationsalgebra. Rabatt Problem Fru Jönsson tycker det är bra att hon själv får ange alla priser, men hon tycker det är jobbigt att alltid behöva göra det, det är ju inte så ofta hon byter pris på varorna. Fru Jönsson har dessutom några stamkunder som kommer varje dag och dom brukar hon ge lite rabatt. Om de handlar för över 30:- får de 3:- i rabatt och handlar de för över 40:- får de 5:- rabatt och handlar de för över 50:- får de 10:- rabatt. Det här vill hon också att hennes dotter ska lägga in i det fina dataprogrammet. Maria Green Page 32 20/08/03
33 Om man har väldigt många val kan det ibland kännas lite stort och klumpigt med massor av selektionssatser i diagrammet. Det finns en annan variant som fungerar i vissa sammanhang. Selektion med flera alternativ Det här med hur många koppar kaffe man ska sätta på är alltid en svår fråga. En kopp är ofta för lite för en person medan två kan vara lite för mycket. Är man många kanske man måste anpassa storleken på kopparna så att alla får lite. Nedan ses en liten tabell på hur många koppar kaffe som är lagom att brygga för olika antal människor: Antal personer Antal koppar När vi nu ska bestämma hur många koppar kaffe vi ska brygga, det vill säga sätta variabeln antal till ett bestämt värde, se första operationen i diagrammet, så skulle vi ju kunna göra en massa kontroller på samma sätt som tidigare. Antal pers. är 1 Brygga 2 koppar Antal pers. är 2 Brygga 3 koppar Först skulle vi kolla om antal personer är 1 och i så fall brygga 2 koppar och om inte kolla om antal personer är 2 osv. En sådan lösning växer väldigt snabbt till ett stort diagram så det finns en annan struktur som går att använda i dessa sammanhang. Den bygger också på att man kontrollerar om ett uttryck är sant eller inte. Om det är sant går man vidare till höger precis som tidigare och om det är falskt fortsätter man neråt och kontrollerar nästa villkor. Det som skiljer denna struktur från den förra är att även om uttrycket är sant så fortsätter den att kontrollera nästa uttryck. Ibland vill man att den ska göra det men om man inte vill det så måste man ange att strukturen ska brytas. I diagrammet anges detta med break och den operationen står alltså efter den operation som ska utföras då ett uttryck är sant. Maria Green Page 33 20/08/03
34 Antal pers. är 1 Brygga 2 koppar break Antal pers. är 2 Brygga 3 koppar break Antal pers. är 3 Brygga 4 koppar break Antal pers. är 4 Brygga 6 koppar break Det blir inget kaffe Om antal personer är 1 så brygger vi 2 koppar kaffe och sedan bryter vi. Vi har hittat en matchning och då behöver vi inte fortsätta att titta på nästa alternativ. Vill man däremot undersöka om det är flera alternativ som stämmer låter man bli att använda break. Om inget alternativ stämmer så blir det inget kaffe alls. Detta är default-alternativet, om inget stämmer hamnar man här. Diagrammet är redan ganska stort så det här deldiagrammet är bättre att låta bli att föra in i det stora diagrammet så att man inte tappar översikten. Istället namnger vi det här diagrammet och hänvisar till det i huvuddiagrammet. Maria Green Page 34 20/08/03
35 Iteration Vi upprepar hela tiden saker och då tänker jag inte bara på när vi pratar. När vi äter tar vi en tugga, en tugga till, en tugga till osv tills vi ätit upp allt eller vi inte vill ha mer. Detta kallas för att iterera. Vi upprepar iterationen ta en tugga till tills basfallet, tex vi har ätit upp allt, är uppnått. Nu ska vi ta en titt på hur detta används när vi kokar kaffe. Mäta upp kaffe Nu är det dags att mäta upp lagom mängd kaffe till vattnet. Ofta är det två skopor per kopp det vill säga antalet skopor kaffe som ska mätas upp är 2 * antal koppar. För att utföra detta tar vi en skopa kaffe 2 * antal gånger. Detta är en upprepning, en iteration, som ska utföras tills man mätt upp rätt antal skopor kaffe. När vi mäter upp kaffe räknar vi högt eller tyst för oss själva för att hålla reda på hur många skopor vi har tagit, vi kan här använda en variabel för detta, tagit. Vi ska fortsätta att ta en skopa kaffe åt gången tills tagit är lika med 2 * antal. Alltså ska vi fortsätta mäta upp kaffe så länge som tagit < 2 * antal. Varje gång innan vi tar en ny skopa kaffe måste vi kontrollera om vi har tagit tillräckligt många, har vi det slutar vi mäta upp kaffe, annars fortsätter vi med att ta en skopa till. Detta kan också representeras i diagrammet. Själva kontrollen om vi är klara eller inte representeras med en romb med en ingång och två utgångar. tagit < 2 x antal Uttrycket inuti romben är alltid ett uttryck som kan evalueras till sant eller falskt och de bägge utgångarna representerar därför dessa två alternativ. Antingen är det sant att tagit < 2 x antal och då går vi ut till höger eller så är tagit >= 2 x antal, det vill säga uttrycket är falsk och då går vi ut nedåt ur romben. Om uttrycket är falskt, det vill säga vi har mätt upp tillräckligt med kaffe, då ska vi ju fortsätta med nästa steg i sekvensen vilket är att starta kaffebryggaren. Om uttrycket däremot är sant så betyder det ju att vi ska lägga i mer kaffe så då måste vi ha en operation för det. tagit < 2 x antal Mät upp 1 skopa Maria Green Page 35 20/08/03
36 Nu har vi ju mätt upp en skopa och då måste vi ju öka på vår variabel tagit också. Det är också en egen operation, vilken vi lägger till efter Mät upp 1 skopa. Observera att dessa kommer i sekvens efter varandra trots att de står bredvid varandra. Vilken sekvens (ordning) de olika operationerna kommer i beror på pilarna, inte på var rektanglarna är i förhållande till varandra. Det är dock bra att vara så konsekvent som möjligt och låta tiden gå neråt när det passar, eftersom det blir mer lättläst då. Här blir det mest lättläst att låta tiden gå åt höger vilket vi ser snart i vidareutvecklingen av diagrammet. tagit < 2 x antal Mät upp 1 skopa Öka tagit med 1 När vi tagit en skopa kaffe och ökat vår räknare tagit så ska vi göra en ny koll på om vi behöver ta mer kaffe eller inte. Vi drar därför en pil tillbaka till innan kollen (romben) så att vi kan utföra kollen igen. tagit < 2 x antal Mät upp en skopa kaffe Öka tagit med 1 Vi kommer att fortsätta gå runt, runt i denna loop tills villkoret inuti romben blir falskt, det vill säga tills vi mätt upp tillräckligt med kaffe. Maria Green Page 36 20/08/03
37 Det finns en sak som vi måste göra innan vi går in i loopen första gången och det är att nollställa räknaren tagit det vill säga vi börjar räkna från första skopan vi tar. Detta kan kännas självklart och som en onödig detalj att skriva ner, men vi kommer att se andra exempel på när det inte är lika självklart vad som är startläge. nollställ tagit tagit < 2 x antal Mät upp en skopa kaffe Öka tagit med 1 Observera att man måste nollställa tagit före pilen kommer in, skulle man rita tvärtom: nollställ tagit tagit < 2 x antal så skulle tagit nollställas varje gång, det vill säga istället för att räkna ett, två, tre för varje skopa kaffe skulle man säga ett, ett, ett och man skulle få skopa kaffe i all evighet. Maria Green Page 37 20/08/03
38 Om vi för in detta deldiagram i det stora diagrammet kommer det att se ut så här: Bestäm antal koppar Mät upp vatten i kannan till antal koppar Häll vattnet i behållaren Sätt ett filter i melittan Välj vanligt Tycker om mörkrostat Välj mörkrostat nollställ tagit tagit < 2 x antal Mät upp en skopa kaffe Öka tagit med 1 Kontakten sitter inte i Sätt i kontakten Starta bryggaren Maria Green Page 38 20/08/03
39 Iteration används ofta för att köra ett program ända tills man väljer att avsluta det. Hur detta går till visar Herr Jansson. Flera kunder Herr Jansson har många kunder varje dag och han vill inte behöva starta om programmet varje gång det kommer en ny kund. Han vill inte heller behöva skriva in alla priser varje gång, alla kunder betalar ju samma kilopris. Herr Jansson väljer då att lägga in en iteration i sitt program. Bestäm kilopriset för jordgubbar, potatis & Det finns fler kunder Ta hand om kund Först sätter han priserna och sedan behandlar han en kund åt gången så länge som det finns fler kunder. Hur han tar hand om kunden har han lagt i ett separat diagram för att det inte ska bli för stort. Det diagrammet innehåller inskrivning av vikt och beräknande av pris med eventuella rabatter. Kontrakt Vi ska också titta lite på vad kontrakt kan användas till. Alla människor tecknar kontrakt i olika former vid olika tillfällen. För att få en lägenhet måste man skriva på ett kontrakt i vilket man förbinder sig att betala hyra varje månad och i gengäld får man bo i lägenheten och får ett visst underhåll av den utfört. Så länge vi betalar i får vi bo kvar i lägenheten (om vi inte festar alldeles för mycket och har arga grannar) men om vi slutar betala vet vi inte vad som händer. Antingen kanske bostadsbolaget skickar dina räkningar till en indrivningsfirma eller så kanske de anmäler dig till kronofogden eller så kanske de helt enkelt vräker dig. Resultatet när du bryter mot kontraktet är odefinierat. Vi tecknar dagligen muntliga kontrakt. När du bestämmer med en kompis att ni ska träffas på en viss plats vid en viss tidpunkt för att göra något kul tex gå på bio, så förväntar du dig att han eller hon ska komma till den bestämda platsen vid den bestämda tidpunkten (med Maria Green Page 39 20/08/03
40 akademisk kvart möjligtvis). Om din kompis kommer i tid så går ni och ser bion och har förhoppningsvis en trevlig kväll. Om din kompis bryter mot kontraktet och inte kommer så finns det inget som säger hur du reagerar. Vissa kanske ringer kompisen, någon annan kanske går hem och en tredje kanske ringer någon annan kompis eller går på bio själv. Inom problemlösning delar man ofta upp problemet i mindre delar. Vi har tidigare nämnt att det är väldigt viktigt att dokumentera varje del ordentligt så att de andra delarna vet vad den delen gör. Den typen av dokumentation bör ju fokusera på exakt den information som de övriga delarna behöver känna till om just den delen. Man sätter upp kontrakt mellan delarna på samma sätt som du sätter upp ett kontrakt med hyresbolaget eller med din kompis. Se mer exempel på hur kontrakt kan användas för olika delar i Kaffeexemplet. Kontrakt för kaffebryggning I kapitel 3 insåg vi att kontakten måste sitta i uttaget för att vi ska kunna starta kaffebryggaren. Vi kan säga att det är ett villkor att kontakten är i för att vi ska kunna starta kaffebryggaren. Eftersom det är ett villkor som måste gälla innan vi kan starta kan vi säga att det är ett förvillkor. Alltså, om starta kaffebryggaren är en funktion, så är förvillkoret till den funktionen att kontakten sitter i. Eftervillkoret till funktionen, det vill säga det som gäller efter att vi utfört funktionen starta kaffebryggaren, är att kaffebryggaren är igång. Om förvillkoret är uppfyllt så gäller eftervillkoret, det vill säga den som använder kaffebryggaren kan vara garanterad att om kontakten sitter i uttaget innan man startar bryggaren så är kaffebryggaren igång efter att man startat den. Funktion: starta kaffebryggaren Förvillkor: kontakten sitter i uttaget Eftervillkor: kaffebryggaren är igång Om förvillkoret inte är uppfyllt så vet vi ju inte vad som gäller efter att funktionen är klar. Om kaffebryggaren hade batterier skulle den kunna vara igång ändå, men den största sannolikheten är ju att den inte är startad (jag har aldrig sett en kaffebryggare med batterier). Poängen är att resultatet är odefinierat när förvillkoret inte är uppfyllt. Hur ska vi då kunna avgöra om förvillkoret är uppfyllt innan vi försöker utföra funktionen? I det här exemplet är det ju ganska enkelt, vi tittar helt enkelt på kontakten och ser om den sitter i eller inte. Om kontakten inte sitter i så sätter vi i den innan vi försöker starta kaffebryggaren. Om kontakten sitter i behöver vi ju inte göra något, det är ju ingen mening med att sätta i kontakten om den redan är i, förvillkoret är ju redan uppfyllt. Vi kan också se hela processen med att brygga kaffe som en funktion. För att kunna brygga kaffe måste vi ju ha två saker, vatten och kaffe. Om vi har detta och sedan brygger kaffe så vet vi ju att resultatet blir att vi har färdigt kaffe. Förvillkoret till funktionen är ju alltså att det finns tillräckligt med vatten och tillräckligt med kaffe. För att kunna avgöra hur mycket vatten och hur mycket kaffe som behövs måste vi ju veta hur många koppar kaffe vi ska brygga. Att bestämma antal koppar vi ska brygga måste alltså göras innan vi påbörjar funktionen att brygga kaffe. Vi kan också säga att antal inte kan ha vilket värde som helst. I min kaffebryggare kan man max brygga 10 koppar åt gången. Vi vet ju också att man inte kan brygga ett negativt antal koppar kaffe, man kan ju inte säga att man ska brygga -2 koppar kaffe! Om vi vet att vi vill brygga 4 koppar kaffe och vi vet att vi har vatten till 4 koppar och kaffe som räcker till 4 koppar, det vill säga 2*4 skopor kaffe, så vet vi att när funktionen är Maria Green Page 40 20/08/03
41 klar så har vi 4 koppar nybryggt kaffe att njuta av. För- och eftervillkor anges ofta i en blandning av svenska (eller engelska) och matematiska uttryck, ungefär som pseudokod. Funktion: brygga kaffe Förvillkor: 0 DQWDONRSSDU och mängden vatten DQWDONRSSDU och mängden kaffe 2 * antal koppar Eftervillkor: angivet antal koppar kaffe är bryggt Maria Green Page 41 20/08/03
PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4
Modul 2 Byggstenar PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4 Byggstenar 4 Nyckelord 4 Tecken 4 Syntax 5 Standardbibliotek 5 Vårt första program 5 Variabler 6 Konstanter 9 Operatorer 9 Övningar 9 Mer operatorer
Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret 2014-2015. Lektion 1
Kattis Lektion 1 I kursen används onlinedomaren Kattis (från http://kattis.com) för att automatiskt rätta programmeringsproblem. För att få ett konto på Kattis anmäler du dig på Programmeringsolympiadens
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
Malvina 5B Ht-15. Kapitel 1 Drakägget
1 Kapitel 1 Drakägget Hej jag heter Felicia och är tio år. Jag bor på en gård i södra Sverige och jag har ett syskon som heter Anna. Hon är ett år äldre än mig. Jag har även en bror som är ett år, han
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
Övning: Föräldrapanelen
Övning: Föräldrapanelen Bild 5 i PowerPoint-presentationen. Material: Bilder med frågor (se nedan) Tejp/häftmassa Tomma A4-papper (1-2 st/grupp) Pennor (1-2 st/grupp) 1) Förbered övningen genom att klippa
Övning: Föräldrapanelen Bild 5 i PowerPoint-presentationen.
Övning: Föräldrapanelen Bild 5 i PowerPoint-presentationen. Material: Bilder med frågor (se nedan) Tejp/häftmassa Tomma A4-papper (1-2 st/grupp) Pennor (1-2 st/grupp) 1) Förbered övningen genom att klippa
om läxor, betyg och stress
2 126 KP-läsare om läxor, betyg och stress l Mer än hälften av KP-läsarna behöver hjälp av en vuxen hemma för att kunna göra läxorna. l De flesta tycker att det är bra med betyg från 6:an. l Många har
Introduktion till programmering D0009E. Föreläsning 1: Programmets väg
Introduktion till programmering D0009E Föreläsning 1: Programmets väg 1 Vad är en dator? En maskin vars beteende styrs av de innehållet (bitmönster) som finns lagrade i datorns minne (inte helt olikt förra
Erik står i mål Lärarmaterial
sidan 1 Författare: Torsten Bengtsson Vad handlar boken om? Boken handlar om Erik som är fotbollsmålvakt. Idag ska de spela match. Hans pappa är tränare och vill gärna att laget ska vinna. I bilen dit
Läsnyckel Hallon, bäst av alla av Erika Eklund Wilson
Läsnyckel Hallon, bäst av alla av Erika Eklund Wilson Hegas arbetsmaterial heter nu Läsnycklar med lite mer fokus på samtal och bearbetning. Vi vill att böckerna ska räcka länge och att läsaren ska aktiveras
Jag ritar upp en modell på whiteboard-tavlan i terapirummet.
VAD ÄR PROBLEMET? Anna, 18 år, sitter i fåtöljen i mitt mottagningsrum. Hon har sparkat av sig skorna och dragit upp benen under sig. Okej, Anna jag har fått en remiss från doktor Johansson. När jag får
Instruktioner för dig som ska söka till Mattekollo 2016
Instruktioner för dig som ska söka till Mattekollo 2016 Matematik är KUL men Mattekollo 2016 har tyvärr ett begränsat antal platser, nämligen 40 stycken. Det blir även ett roligare kollo om de som kommer
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
NORDEN I BIO 2008/09 Film: Goðir gestir (Island 2006) Svensk text
1 Har du köpt tillräckligt med saker? 2 Tja... Jag vet inte. Vad tycker du? Borde jag handla mer saker? 3 Är det nån på ön som du inte har köpt nåt åt? 4 -Ja, en. -En? 5 -Dig. -Men jag bor inte på ön...
1 december B Kära dagbok!
1 december B Kära dagbok! (Fast egentligen är det ju ingen dagbok, utan en blå svenskaskrivbok från skolan. Jag bad fröken om en ny och sa att jag hade tappat bort den andra. Sen kan jag bara säga att
Värderingsövning -Var går gränsen?
OBS! jag har lånat grundidén till dessa övningar från flera ställen och sedan anpassat så att man kan använda dem på högstadieelever. Värderingsövning -Var går gränsen? Detta är en övning i att ta ställning
Heta tips för dig som går i grundskolan och snart ska ut på din första PRAO
Heta tips för dig som går i grundskolan och snart ska ut på din första PRAO Av: Studie- och yrkesvägledarna i Enköpings kommun 2008 Idékälla: I praktiken elev, Svenskt Näringsliv Varför PRAO? För att skaffa
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
Mitt Jobb svenska som andraspråk
Sara elektriker AV-nummer 41511tv 2 Programvinjett /Sara är i en lägenhet, hon spikar, borrar och monterar./ SARA elektriker. Jag är utbildad starkströmselektriker. Jag har ju alltid gillat mycket tekniska
Allan Zongo. Lärarmaterial. Allan Zongo. Vad handlar boken om? Mål från Lgr 11: Författare: Henrik Einspor
sidan 1 Författare: Henrik Einspor Vad handlar boken om? Max är en kille som bor ute på landet med sin mamma och pappa. En kväll störtar ett rymdskepp nära deras hus. I rymdskeppet finns en Alien. Max
CS - Computer science. Datateknik Informationsbehandling Datalogi Datavetenskap (ÅA 2008)
CS - Computer science Datateknik Informationsbehandling Datalogi Datavetenskap (ÅA 2008) Vad datateknik INTE är: Att studera datorer Att studera hur man skriver datorprogram Att studera hur man använder
Hemliga Clowndocka Yara Alsayed
Hemliga Clowndocka Yara Alsayed - Olivia vakna! Du kommer för sent till skolan, ropade mamma. - Ja jag kommer. Olivia tog på sig sina kläder och åt frukosten snabbt. När hon var klar med allt och står
Sune slutar första klass
Bra vänner Idag berättar Sunes fröken en mycket spännande sak. Hon berättar att hela skolan ska ha ett TEMA under en hel vecka. Alla barnen blir oroliga och Sune är inte helt säker på att han får ha TEMA
Lärarmaterial. Böckerna om Sara och Anna. Vilka handlar böckerna om? Vad tas upp i böckerna? Vem passar böckerna för? Vad handlar boken om?
sidan 1 Böckerna om Sara och Anna Författare: Catrin Ankh Vilka handlar böckerna om? Böckerna handlar om två tjejer i 15-årsåldern som heter Sara och Anna. De är bästa vänner och går i samma klass. Tjejerna
Kapitel 1 hej Hej jag heter Trulle jag har ett smeknamn de är Bulle. Min skola heter Washinton Capitals jag går i klass 3c de är en ganska bra klass.
Kapitel 1 hej Hej jag heter Trulle jag har ett smeknamn de är Bulle. Min skola heter Washinton Capitals jag går i klass 3c de är en ganska bra klass. Jag har en kompis i min klass han är skit snäll mot
Fortsättningskurs i programmering F 2. Algoritmer i Programutveckling Hugo Quisbert 20130122. Problemexempel 1
Fortsättningskurs i programmering F 2 Algoritmer i Programutveckling Hugo Quisbert 20130122 1 Exempel 1 Problemexempel 1 En souvenirbutik behöver ett datorprogram som omvandlar ett pris i svenska kronor
Föreläsning 3.1: Datastrukturer, en översikt
Föreläsning.: Datastrukturer, en översikt Hittills har vi i kursen lagt mycket fokus på algoritmiskt tänkande. Vi har inte egentligen ägna så mycket uppmärksamhet åt det andra som datorprogram också består,
Läsnyckel Anna och Simon. Solresan av Bente Bratlund
Läsnyckel Anna och Simon. Solresan av Bente Bratlund Hegas arbetsmaterial heter nu Läsnycklar med mer fokus på samtal och bearbetning. Vi vill att böckerna ska räcka länge och att läsaren ska aktiveras
Likabehandling och trygghet 2015
Likabehandling och trygghet 2015 1 Jag är Man 58 48,3 Kvinna 58 48,3 Jag avstår från att definiera 4 3,3 mig Total 120 100 100% (120/120) 2 Det känns bra att gå i skolan Alltid 46 38,3 Oftast 55 45,8 Ibland
Utvärdering 2015 deltagare Voice Camp
Utvärdering 15 deltagare Voice Camp 8 deltagare Har det varit roligt på lägret? (%) 1 8 6 4 1 Ja Nej Varför eller varför inte? - Enkelt, jag älskar att sjunga och det är alltid kul att träffa nya vänner
Hur det är att vara arbetslös i fina Sverige.
Hur det är att vara arbetslös i fina Sverige. Är det inte meningen att samhället ska hjälpa de som har det mindre bra? Är det inte meningen att man ska få stöd till ett bättre mående och leverne? Är det
Kombinationer och banor i agilityträningen
Kombinationer och banor i agilityträningen av Emelie Johnson Vegh och Eva Bertilsson, publicerad i Canis 2012 En av de saker som gör agility så fantastiskt roligt är den ständiga variationen. Ingen tävlingsbana
Modul 3 - Modularisering
Modul 3 Modularisering MODULARISERING 2 FUNKTIONER 3 Funktionsdefinition 4 Funktionsanrop 5 Funktionskroppen 5 Slumpa funktionen rand() 6 Värdeanrop 6 Variablers räckvidd 8 Referensanrop 8 DELPROGRAM 10
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
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...
Idag ska jag till djurparken! Wow vad kul det ska bli. Det var 2 år sedan jag var där sisst? Hur gammal var Rut då?
MATTE PÅ ZOO HEJSAN! Jag heter Mattias och jag är 8 år. Jag kallas Matte, det har jag gjort sedan jag var väldigt liten. Jag har tre syskon. Elin, Matilda och Rut. Elin är två år mindre än mig. Matilda
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
Först vill vi förklara några ord och förkortningar. i broschyren: impulsiv för en del personer kan det vara som att
Hej! Du som har fått den här broschyren har antagligen ett syskon som har ADHD eller så känner du någon annan som har det. Vi har tagit fram den här broschyren för att vi vet att det inte alltid är så
Veronica s. Dikt bok 2
Veronica s Dikt bok 2 Det är bra att ha en syster Min syster betyder så mycket för mig. Jag vet att hon betyder likadant för mig. Om jag vill henne något så vet jag att hon finns där för mig. Jag är glad
System.out.println("Jaså du har "+ antalhusdjur+ " husdjur"); if ( antalhusdjur > 5 ) System.out.println("Oj det var många);
1 Villkor och styrsatser I de program vi sett tidigare har programkörning inneburit att sats efter sats utförts i den ordning de skrivits i källkoden. Vi har inte kunna ändra programmets uppförande beroende
Projekt Rapport. RaidPlanner. Jeanette Karlsson UD10
Projekt Rapport RaidPlanner Jeanette Karlsson UD10 Abstrakt: Denna rapport handlar om mitt projekt i kursen Individuellt Mjukvaruutvecklings projekt. Rapporten kommer att ta upp hur jag gått tillväga,
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
LEKTION 2 Användbarhet
LEKTION Användbarhet Uppmärksamma det positiva Fundera och skriv ner olika situationer där barnet gör något positivt och du kan ge ditt barn uppmärksamhet och beröm. Fundera och skriv ner på vilket sätt
1. Inledning, som visar att man inte skall tro på allt man ser. Betrakta denna följd av tal, där varje tal är dubbelt så stort som närmast föregående
MATEMATISKA INSTITUTIONEN STOCKHOLMS UNIVERSITET Christian Gottlieb Gymnasieskolans matematik med akademiska ögon Induktion Dag 1 1. Inledning, som visar att man inte skall tro på allt man ser. Betrakta
Tappa inte bort häftet för det ska du lämna in tillsammans med de skriftliga arbetsuppgifterna. Lycka till! Sofia
Namn: Klass: Din uppgift: Ni kommer att arbeta med detta vecka 39 till vecka 43. Ni har svensklektionerna till ert förfogande. Uppgifterna ska lämnas in, allt tillsammans, senast måndag vecka 45. Då blir
Ha rätt sorts belöning. Åtta tips för bästa sätt hur du tränar din hund. Grunden till all träning:
Åtta tips för bästa sätt hur du tränar din hund Grunden till all träning: Gör det lätt för hunden! Börja alltid på en nivå som är enkel för hunden och bygg på svårigheterna. På det sättet tycker hunden
BRÖLLOP. prislista 2015
BRÖLLOP prislista 2015 BRÖLLOP Bröllop är något väldigt, väldigt speciellt. Även om jag fotograferat massor av bröllop, så blir jag varje gång tagen av hur tydligt man ser personligheter i alla val som
Utskrift av inspelat samtal hos Arbetsförmedlingen
BJÖRN L BERGLUND UTSKRIFT AV SAMTAL HOS AF 1 (9) Utskrift av inspelat samtal hos Arbetsförmedlingen Samtalet ägde rum hos Arbetsförmedlingen i Sollentuna tisdag 13 juni 2006 kl. 11.00 Inspelningen är cirka
Vilken skillnad gör det var du placerar det? Prova båda.
Micro:bit- Namnskylt Vi börjar med att döpa programmet till något. Till exempel ditt namn. Det gör du längst ner i mitten. Nu ska vi göra ett enkelt program som med lysdioderna skriver ditt namn. När du
STRESS ÄR ETT VAL! { ledarskap }
{ ledarskap } STRESS ÄR ETT VAL! SLUTA SÄTTA PLÅSTER PÅ DINA SYMPTOM NÄR DU ÄR STRESSAD. LÖS PROBLEMEN VID KÄLLAN ISTÄLLET OCH FUNDERA ÖVER VILKA VAL DU GÖR SOM CHEF. E n undersökning visar att 70 procent
Max, var är du? LÄSFÖRSTÅELSE MARIA FRENSBORG ARBETSMATERIAL FÖR LÄSAREN
ARBETSMATERIAL FÖR LÄSAREN MARIA FRENSBORG LÄSFÖRSTÅELSE kapitel 1 scouterna(sid 3, rad 8), grupp för ungdomar som tycker om naturen försvunnen (sid 3, rad10), borta parkeringen (sid 4, rad 1), där man
Vad är Verdandi? utbildningsmaterial MEDLEMS- UTBILDNING FÖR BARN OCH UNGDOMAR
Vad är Verdandi? utbildningsmaterial MEDLEMS- UTBILDNING FÖR BARN OCH UNGDOMAR 2 VAD ÄR VERDANDI? VAD ÄR VERDANDI? 3 TRÄFF 1 Medlemsutbildning för barn och ungdomar Detta är en version av förbundets medlemsutbildning
Annika Mårtensson Katarina Neiman Hedensjö LÄSFÖRSTÅELSE
Annika Mårtensson Katarina Neiman Hedensjö LÄSFÖRSTÅELSE Bakklubben Bakom Hanna och Matilda satt i Hannas kök och tuggade på varsin snustorr scones. Kan vi inte sluta med vår bakklubb, försökte Matilda
Läsnyckel. Spelar roll? Författare: Camilla Jönsson. Innan du läser. Medan du läser
Läsnyckel Spelar roll? Författare: Camilla Jönsson Spelar roll? är en fristående fortsättning på boken Vem bryr sig? Här får vi lära känna förövaren, Sigge, han som mobbade och misshandlade. Nu har Sigge
jonas karlsson det andra målet
jonas karlsson det andra målet noveller wahlström & widstrand 064802Det andra målet.orig.indd 3 12/21/06 3:03:00 PM Wahlström & Widstrand www.wwd.se Jonas Karlsson 2007 Tryck: GGP Media GmbH, Tyskland
Barns medverkan i den sociala barnavården hur lyssnar vi till och informerar barn. Lyssna på barnen
Barns medverkan i den sociala barnavården hur lyssnar vi till och informerar barn Lyssna på barnen 1 En tanke att utgå ifrån För att förstå hur varje unikt barn uppfattar sin specifika situation är det
Lärarrummet för lättläst lattlast.se/larare
Kampen mot klockan - funderingsfrågor, diskussion om tid och skrivövning Ämne: Svenska, SVA, Årskurs: 7-9 Lektionstyp: reflektion, diskussion, skrivövning Lektionsåtgång: 2-5 Upp och hoppa! hojtar mamma.
Det finns en del tomma rutor där det är fritt fram att fylla på med egna idéer och upptäcker. Lycka till som utbildare!
En liten verktygslåda med metoder för utbildaren Här nedan följer en liten övningsbank kring pedagogiska verktyg & metoder som ni bidragit till. Övningarna är indelade i följande kategorier: Presentationsövningar
Övning 1: Vad är självkänsla?
Självkänsla Inledning OBS! Hela föreläsningen ska hålla på i 45 minuter. Samla gruppen och sitt gärna i en ring så att alla hör och ser dig som föreläsare. Första gången du träffar gruppen: Föreläsaren
Om barns och ungas rättigheter
Om barns och ungas rättigheter Att barn och unga har egna rättigheter har du kanske hört. Men vad betyder det att man har en rättighet? Sverige och nästan alla andra länder i världen har lovat att följa
Illustrationer: Hugo Karlsson, Ateljé Inuti Projektledare: Elinor Brunnberg. Mälardalens högskola Text: Kim Talman, Jeanette Åkerström Kördel, Elinor
JONNY VILL VARA ENSAM Om trötta föräldrar och karusellen med professionella Illustrationer: Hugo Karlsson, Ateljé Inuti Projektledare: Elinor Brunnberg. Mälardalens högskola Text: Kim Talman, Jeanette
Kap,1. De nyinflyttade
Kap,1 De nyinflyttade Det är mitt i sommaren och Clara sitter i fönstret och tittar ut, hon ser dem nyinflyttade bära in flyttkartonger. Mamma hade sagt att dom hade en tjej som är lika gammal som Clara.
Innehåll. Kreativitet en introduktion 7 Varför vara kreativ på jobbet? 8. Öka kreativiteten hur gör man det? 10 Människor 11 Miljö 19 Metod 25
Innehåll Förord 5 Kreativitet en introduktion 7 Varför vara kreativ på jobbet? 8 Öka kreativiteten hur gör man det? 10 Människor 11 Miljö 19 Metod 25 Kreativa möten 27 Idédiamanten en strukturerad metod
Utvärdering av föräldrakurs hösten 2013
Utvärdering av föräldrakurs hösten 2013 - Har du verktyg för att bemöta din oroliga och nedstämda tonåring? Föräldrakursen oro/nedstämdhet är ett samarbete mellan Råd & stöd, Gamla Uppsala familjeenhet
Du är klok som en bok, Lina!
Du är klok som en bok, Lina! Den här boken handlar om hur det är när man har svårt att vara uppmärksam och har svårt att koncentrera sig. Man kan ha svårt med uppmärksamheten och koncentrationen, men på
Lyssna på oss. Vi vet. Ungdomsexperterna på BUP i Karlstad tipsar. föräldrar och andra vuxna vad de behöver lära sig för att ge barn och unga bra stöd
Lyssna på oss. Vi vet. Ungdomsexperterna på BUP i Karlstad tipsar föräldrar och andra vuxna vad de behöver lära sig för att ge barn och unga bra stöd Föräldrar borde förstå att man inte kan diskutera när
Vad svarade eleverna?
Vad tycker eleverna om sina skolor? Vad svarade eleverna? Tjej 78 50 % Kille73 47 % Vill inte svara 8 5 % Vad är det bästa med din skola? att man känner alla. maten och att fröknarna har tid med en bra
Samhällskunskap. Ett häfte om. -familjen. -skolan. -kompisar och kamratskap
Samhällskunskap Ett häfte om -familjen -skolan -kompisar och kamratskap 1 I det här häftet kommer du att få lära dig: Vad samhällskunskap är Hur olika familjer och olika slags vänskap kan se ut Hur barn
Den försvunna diamanten
Den försvunna diamanten Jag sitter utanför museet i London, jag ser en man gå lite misstänksamt ut genom dörren. Jag går in på museet och hör att personalen skriker och säger att diamanten är borta. Diamanten
Du är klok som en bok, Lina! Janssen-Cilag AB
Du är klok som en bok, Lina! Janssen-Cilag AB Den här boken handlar om hur det är när man har svårt att vara uppmärksam och har svårt att koncentrera sig. Man kan ha svårt med uppmärksamheten och koncentrationen,
Innehållsförteckning. Introduktion. Kapitel 1Introduktion. sid 1. Kapitel 2Bilhandlarn. sid 3. Kapitel 3Döskallemasken. sid 5
Innehållsförteckning Kapitel 1Introduktion. sid 1 Kapitel 2Bilhandlarn. sid 3 Kapitel 3Döskallemasken. sid 5 Kapitel 4 De misstänkta. sid 7 Kapitel 5 Förhöret. sida 9 Kapitel 6 Den splitternya bilen. sida
Matematik. Kursprov, vårterminen 2012. Elevhäfte. Del I och Del II. Elevens namn och klass/grupp
Kursprov, vårterminen 2012 Matematik Elevhäfte Del I och Del II 1a Elevens namn och klass/grupp Prov som återanvänds omfattas av sekretess enligt 17 kap. 4 offentlighets- och sekretesslagen. Detta prov
Jojo 5B Ht-15. Draken
1 Draken Kapitel 1 drakägget - Jojo kan du gå ut och plocka lite ved till brasan frågade mamma - Okej jag kommer sa jag Å föresten jag heter Jojo och jag är 11 år jag bor i ett rike som kallas älvänka
Demolektion moraliskt resonerande Lukas problemsituation
Demolektion moraliskt resonerande Lukas problemsituation Huvudtränare: David: huvudtränare Medtränare: Emese Deltagare: David, Nathanael, Robert, Julia, Mujje, Hassan 1 Planering innan lektionen: David
Tusen gånger starkare
Tusen gånger starkare Intro: Vilka ord passar in på vår klass? o I par o Helklass o Paret väljer tre ord de är överens om Hur skulle du vilja att klassen skulle vara? o I par o I helklass o Paret väljer
Hur fungerar en robot? 1 av 3
Lektionen handlar om datalogiskt tänkande för ökad förståelse för digital teknik. Lektionsförfattare: Ann Ulfves Till läraren 1. Vad är en robot? 2. Klä roboten Svea Sida 1 av 14 3. Jämför med varandra
Lärarmaterial. Vad handlar boken om? Mål från Lgr 11. Förmågor som tränas. Forfattare: Mette Vedsø
sidan 1 Forfattare: Mette Vedsø Vad handlar boken om? Kamals morfar är död så Kamals mormor ska flytta hem till dem. Mormor ska bo i Kamals rum vilket betyder att Kamal måste dela rum med brorsan Omar
Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 2014-2015. Lektion 4
Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret 014-015 Denna lektion ska vi studera rekursion. Lektion 4 Principen om induktion Principen om induktion är ett vanligt sätt att bevisa
Föreläsning 2. Operativsystem och programmering
Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data
Eleverna i Kallingeskolan F-6 har gjort en egen tolkning av likabehandlingsplanen
Eleverna i Kallingeskolan F-6 har gjort en egen tolkning av likabehandlingsplanen Det finns en likabehandlingsplan som gäller för barn och vuxna på Kallingeskolan och där står det saker som vi måste veta
Nu är pappa hemma Lärarmaterial. Vad handlar boken om? Mål från Lgr 11 och förmågor som tränas. Eleverna tränar på följande förmågor
sidan 1 Författare: Christina Wahldén Vad handlar boken om? Boken handlar om en tjej som alltid är rädd när pappa kommer hem. Hon lyssnar alltid om pappa är arg, skriker eller är glad. Om han är glad kan
Manual för diskrimineringstester. En vägledning i hur du kan testa om du blir utsatt för diskriminering på bostadsmarknaden.
Manual för diskrimineringstester En vägledning i hur du kan testa om du blir utsatt för diskriminering på bostadsmarknaden. Vill du testa om du blir utsatt för diskriminering på bostadsmarknaden? I den
Han som älskade vinden
Draken är färdig hos smeden Torbjörn Nilsson i Råby. Jörgens lilla blå MG Midget får också vara med på bild. Han som älskade vinden Det var en gång en man som tyckte om det som rörde sig. Han älskade vinden
Man blir ju trött av att jobba!
Förord Ni undrar säkert varför jag skriver en bok, och framför allt varför ni ska ödsla er tid och läsa den? Jag är ju som vilken mamma som helst. Jag arbetar, hämtar, lämnar, hjälper till med läxor, lagar
Bästa vänner Det är bra att ha en bästa vän tycker jag. Vår vänskap kommer att hålla för alltid. Jag är glad för att vi är bästa vänner.
Veronicas Diktbok Bästa vänner Det är bra att ha en bästa vän tycker jag. Vår vänskap kommer att hålla för alltid. Jag är glad för att vi är bästa vänner. Vi gör roliga saker tillsammans. Jag kommer alltid
Det sista slaget. www.viljaforlag.se. Arbetsmaterial LÄSARE. Författare: Tomas Dömstedt
Arbetsmaterial LÄSARE Det sista slaget Författare: Tomas Dömstedt Bakgrund Det här materialet hör till boken Det sista slaget som är skriven av Tomas Dömstedt. Materialet är tänkt som ett stöd för dig
VAD KAN VI GÖRA. Boendelista på samtliga hushåll Hålla denna uppdaterad
VAD KAN VI GÖRA Boendelista på samtliga hushåll Hålla denna uppdaterad Se över våra egna bostäder, garage, insynsskydd m.m. (T.ex. fönsterlås, larm, altandörrar). Tänk på att fönster och altandörrar oftast
Hubert såg en gammal gammal gubbe som satt vid ett av tälten gubben såg halv död ut. - Hallå du, viskar Hubert
Ökpojken Mitt i natten så vaknar Hubert han är kall och fryser. Han märker att ingen av familjen är där. Han blir rädd och går upp och kollar ifall någon av dom är utanför. Men ingen är där. - Hallå är
Konsten att leda workshops
Konsten att leda workshops Förbättra din kommunikation, prestation och ledarskap. www.lacinai.se 1 Några grundbultar: I ett seminarium är målet satt liksom innehållet I en workshop är målet satt, men innehållet
Har du koll på energi kostnaderna hemma eller springer den bara iväg varje månad och du har absolut ingen koll på vart det går?
Har du koll på energi kostnaderna hemma eller springer den bara iväg varje månad och du har absolut ingen koll på vart det går? Vår ide är en E-pad som får dig att hålla koll på kostnaderna. Den räknar
Fortsättningskurs i programmering F 3. Algoritmer i programutveckling II Hugo Quisbert Flödesplaner med selektion
Fortsättningskurs i programmering F 3 Algoritmer i programutveckling II Hugo Quisbert 20130123 1 Flödesplaner med selektion 2 1 Exempel 1 selektion Om köpesumman är 1000 kr eller mer erhålles 10 % rabatt.
Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1
Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut
Grundläggande ellära. Materiellåda art nr. 1. I den första uppgiften skall du använda ett batteri, 2 sladdar med banankontakter och en lös glödlampa.
1 Mtrl: Materiellåda art nr Grundläggande ellära 1. I den första uppgiften skall du använda ett batteri, 2 sladdar med banankontakter och en lös glödlampa. Koppla så att lampan lyser. Rita hur du kopplade.
DEN RUNDA TUNNELN EN UNDERSKATTAD FIENDE
DEN RUNDA TUNNELN EN UNDERSKATTAD FIENDE Av Marie Hansson När man är nybörjare i agility, eller ser sporten utifrån, är det lätt att tro att just den runda tunneln är det allra lättaste hindret! Och det
DATALOGISK TÄNKANDE OCH PROGRAMMERING CETIS OKTOBER 2017
DATALOGISK TÄNKANDE OCH PROGRAMMERING CETIS OKTOBER 2017 VAD ÄR DET FÖRSTA NI TÄNKER PÅ? Datalogiskt tänkande Programmering FRÅGOR I FOKUS IDAG Varför är digitala kompetenser och programmering viktigt
Allmänt om kraft. * Man kan inte se, känna eller ta på en kraft, men däremot kan man se verkningarna av en kraft.
Kraft Allmänt om kraft * Man kan inte se, känna eller ta på en kraft, men däremot kan man se verkningarna av en kraft. * Det finns olika krafter t ex; tyngdkraft, friktionskraft, motkraft. * Krafter kan
SEMESTERTIDER. Olof Röhlander i samarbete med Johny Alm
SEMESTERTIDER Olof Röhlander i samarbete med Johny Alm Den blomstertid nu kommer.. underbara rader som sjungs över hela landet inom kort, rekreation och semester står för dörren! Hur är det i dessa tider
Innehållsförteckning. Kapitel 1
Innehållsförteckning Kapitel 1, Zara: sid 1 Kapitel 2, Jagad: sid 2 Kapitel 3, Slagna: sid 3 Kapitel 4, Killen i kassan: sid 5 Kapitel 5, Frågorna: sid 7 Kapitel 6, Fångade: sid 8 Kapitel 1 Zara Hej, mitt