PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4
|
|
- Ellen Forsberg
- för 8 år sedan
- Visningar:
Transkript
1 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 10 Teckenuppsättningar 11 Fler program 12 Övningar 13 Kontrollstrukturer 13 Selektion 13 if/else 14 Övningar 15 Flera operationer i en sats 15 switch 16 Övningar 21 Villkorsoperatorn 21 Iteration 21 While 22 Övningar 24 Do/while 24 for 26 Övningar 27 Maria Green Page 1 20/08/03
2 Programmering I första modulen sysslade vi med problemlösning och vi lärde oss olika sätt att beskriva våra lösningar. Nu är det dags att börja titta på hur man kan implementera sina lösningar så att det blir dataprogram av dem. Vi ska i den här modulen lära de grundläggande byggstenarna i C++ så att vi kan skriva enklare program i C++ och köra dem. Vad är då programmering? Vi har ju diskuterat kaffebryggning en del. I det enklaste fallet sa vi att brygga kaffe innefattar tre steg: 1. Mät upp vatten 2. Mät upp kaffe 3. Tryck på knappen Tänk dig nu att du skulle beskriva samma sak för en kines som endast pratar kinesiska, hur gör du då? Använder en tolk! Du pratar med tolken som översätter dina instruktioner till kinesen. Svenska Kinesiska Du Tolken Kinesen På samma sätt måste du använda en tolk när du pratar med en dator för han förstår inte svenska utan han talar maskinspråk. Denna tolk heter kompilator och den översätter dina instruktioner till maskinspråk. Kompilatorn Maskinspråk Du Tolken Datorn Maria Green Page 2 20/08/03
3 Problemet med den här tolken är att den inte heller förstår vanlig svenska. Om vi tänker oss fallet där vi pratar med kinesen igen och tänker oss att tolken inte pratar svenska utan bara engelska och kinesiska. Vi har ju lärt oss att prata engelska och då kan vi kommunicera med tolken som sedan kan översätta till kinesen. Engelska Svenska Kinesiska Du Tolken Kinesen På samma sätt måste vi nu lära oss ett nytt språk för att kunna kommunicera med tolken som ska prata med datorn. Den typ av språk vi måste lära oss kallas för programmeringsspråk och det specifika programmeringsspråk vi ska lära oss i den här kursen heter C++. (Ni har säkert hört talas om andra programmeringsspråk också som t ex Java, Prolog, Pascal) C++ Kompilatorn Maskinspråk Du Tolken Datorn Alla programmeringsspråk består av vissa byggstenar, vilka det är kan vara lite olika i olika typer av språk men här ska vi prata om hur C++ är uppbyggt. Maria Green Page 3 20/08/03
4 Grundläggande semantik Byggstenar C++ består av ett antal byggstenar: Nyckelord Tecken Syntax Variabler Konstanter Operatorer Vi kommer att gå igenom dessa i tur och ordning. Nyckelord Vår tolk som ska tolka mellan engelska och kinesiska förstår inte allt man kan säga på engelska, han är t ex inte så bra på slang och dialekter. Faktiskt så har han ett begränsat ordförråd och om man använder något ord som han inte känner till säger han bara Jag förstår inte det ordet. På samma sätt måste man använda en viss uppsättning av ord när man pratar med kompilatorn. Dessa ord kallas för nyckelord (keywords) och är ord som är reserverade för att använda när man pratar med kompilatorn. Varje ord har en speciell betydelse som ni kommer att lära er under kursens gång. Ex på nyckelord är if, delete, return, new. En sammanställning av alla nyckelord finns i Deitel & Deitel Fig Tecken För att återigen gå tillbaks till vår kinesiske tolk så är han också väldigt känslig när han ska översätta skrivet material. Om vi skriver: Hello i am going to the beach do you want to come så förstår han inte det utan vi måste sätta ut punkter odyl Hello! I am going to the beach. Do you want to come? På samma sätt måste man använda vissa tecken när man pratar med kompilatorn för att han ska förstå vad saker börjar och slutar och vad de betyder Exempel på tecken är olika typer av parenteser, vanlig ( ), hårda [ ] och mjuka }. Dessa används vid olika tillfällen för att avgränsa kod. Ett annat tecken som används väldigt flitigt är semikolon ;. Det används för att avgränsa olika satser ungefär på samma sätt som man avgränsar meningar med punkt. Situationstecken används för att avgränsa textsträngar och dubbla snedstreck // för att skriva kommentarer som inte tillhör själva programkoden. Maria Green Page 4 20/08/03
5 Syntax Vår kinesiske tolk är som sagt inte så bra på engelska, om man använder en felaktig grammatik så förstår han inte, om man t ex säger The button press istället för Press the button så säger tolken, jag förstår inte, du måste ha gjort något grammatiskt fel På samma sätt talar kompilatorn om ifall vi har skrivit något som är syntaktiskt fel. Standardbibliotek Detta är egentligen inga bibliotek utan prototyper som innehåller en massa färdig kod. I dagligt tal brukar de dock benämnas som bibliotek. Det finns en mängd olika bibliotek med kod för olika saker, tex finns det et med matematik-funktioner. Ett annat vanligt bibliotek som används i de allra flesta program är iostream som behövs då man ska skriva ut på skärmen och läsa in från tangentbordet. Vårt första program Vi ska nu skriva ett program i C++ som skriver ut Hello på skärmen. Man öppnar helt enkelt en vanlig texteditor, skriver sin kod i den. Därefter kompilerar man programmet och sedan kan man köra det. Mer information om hur man gör kommer snart. Det första vi behöver i vårt program är ett ställe där programmet ska starta. Alla program startas i funktionen main. Funktioner anges med namn och parenteser (mer om detta i modul 4). main() bör också skriva nyckelordet int framför, varför förklaras senare: int main() Nu ska vi ha själva innehållet i funktionen. För att man ska vet var funktionen börjar och slutar använder man mjuka parenteser }. int main() //Här inne kan vi sedan skriva vår kod } Ovan ser en kommentar, den föregås av // och den raden hoppar kompilatorn över så där kan man skriva vad som helst. Vi ska nu fylla på med lite kod som skriver ut Hello. int main() std::cout << Hello ; std::cout << endl; return 0; Maria Green Page 5 20/08/03
6 } Raden std::cout<< Hello ; skriver ut Hello på skärmen. std::cout anger att vi vill skriva ut på skärmen. << är en operator som vi kommer att prata mer om senare. används runt vår textsträng för att tala om var strängen börjar och slutar. ; avslutar satsen. endl används för att få en ny rad (det finns fler sätt, se boken). Eftersom vi har ett returvärde (int) så måste vi skriva return sist i main-funktionen och vi väljer att returnera 0. Mer om detta i modul 4. Nu saknas det bara en sak för att vi ska kunna kompilera programmet. För att vi ska kunna använda cout måste vi inkludera ett bibliotek som heter iostream. Då skriver vi först i programmet #include <iostream> # talar om att det är ett preprocessor direktiv, vilket betyder att det utförs innan själva kompileringen börjar. Så hela vårt program ser nu ut så här: #include <iostream> int main() std::cout << Hello ; std::cout << endl; } return 0; Skriv nu in detta program och testa att kompilera det och köra det innan du går vidare. Instruktioner om hur du gör finns på hemsidan, se Kompilera och köra programmet Hello. Läs också Deitel kap 1.21 Ett tips för att lära sig programmera så snabbt och enkelt som möjligt är att kopiera alla exempel till en editor. Kompilera dem sedan och testkör dem. Prova därefter att ändra någon liten del eller lägga till något. Kompilera igen och kör. På så sätt ser man vad som händer på ett tydligare sätt. Tänk dock på att all exempel inte är fullständiga utan kanske bara visar en liten del av ett program. En tumregel är att finns main med är programmet oftast komplett och körbart. Variabler En variabel har: ett Namn t ex summa, x, efternamn ett Värde t ex 5, 7.2, karlsson en Typ t ex heltal, decimaltal, sträng en Position i minnet Maria Green Page 6 20/08/03
7 namn Position i minnet summa 5 värde typ: heltal Några typer: Svenska Engelska C++ Heltal Integer int Flyttal (decimaltal) Floating point number float Tecken (t ex en bokstav) Character char När man ska skapa en variabel talar man om vilken typ den ska ha och vad den ska heta. int summa; Minne tilldelas automatiskt så det behöver man inte fundera över. När man vill ge den ett värde skriver man: summa = 5; Man kan också ge den ett värde direkt när man skapar den genom att skriva: int x = 7; Man ska tänka på att alltid ge variabler relevanta namn som talar om vad de används till. Andra exempel: int tal = 7; float kvot = 3.6; char bokstav = a ; Programexempel #include <iostream> int main() int tal; //Variabeln tal deklareras som heltal std::cout << "Mata in ett tal: "; std::cin >> tal; std::cout << tal; //Text skrivs ut //Värdet på tal läses in //Värdet på tal skrivs ut } return 0; Maria Green Page 7 20/08/03
8 Utskriften blir: Mata in ett tal: 5 5 Utskrifter av olika program kommer att visas i fyllda rutor som den till vänster. Text som matas in markeras i fetstil. Allt som står efter // på en rad är kommentarer i programmet. Använd mycket kommentarer i början så att du minns vad du gjort och varför. Även då man kan programmera är det bra att kommentera sin kod mycket så att det blir lättare både för sig själv och för andra att förstå vad som händer. Med lite modifiering (fetmarkerad text) av exemplet ovan #include <iostream> int main() int tal; //Variabeln tal deklareras som heltal std::cout<<"mata in ett tal: "; //Text skrivs ut std::cin>>tal; //Värdet på tal läses std::cout<<"du matade in: "<<tal <<endl; //Värdet på tal //skrivs ut } return 0; blir utskriften istället: Mata in ett tal: 5 Du matade in: 5 endl ger som nämnts tidigare en ny rad. Ett tips är att alltid lägga på en ny rad i slutet så att man är säker på att allt skrivs ut. std::cout<<"du matade in: "<<tal <<endl; kan också skrivas på två rader: std::cout<<"du matade in: "<<tal; std::cout<<endl; Läs om ett annat enkelt exempel i Deitel, kap 1.22 och om minneskoncept i kap Man kan även deklarera flera variabler på samma rad om de är av samma typ. Ex) int x, summa, tal; float kvot, medlevarde; Maria Green Page 8 20/08/03
9 Konstanter En konstant har också namn, typ och position men ett värde man inte kan förändra. Man anger att det är en variabel genom att skriva nyckelordet const framför. Ex) const int tal = 10; const float limit = 4.2; Man måste initialisera en konstant när man deklarerar den. Ofta använder man versaler för konstanter för att skilja på konstanter och variabler: Ex) const int MAX = 20; Vi kommer att se exempel på användningsområden senare. Operatorer Det finns olika sorters operatorer, t ex aritmetiska t ex + - / * tilldelning = jämförelse t ex < > == logiska operatorer andra t ex >> ( ) [ ] Vi har sett exempel på tilldelning och aritmetiska operatorer (i boken). Läs mer om aritmetiska operatorer i kapitel Några ytterligare exempel: Division med heltal (integer) 9 / 2 = 4 8 / 3 = 2 Division med flyttal (float) 9 / 2 = / 3 = Modulus: ger resten vid en heltalsdivision 9 % 2 = 1 (9 / 2 = 4 + resten 1) 8 % 3 = 2 (8 / 3 = 2 + resten 2) Vanlig tilldelning är när man ger en variabel ett värde, tex x = 7. Man kan också ha tilldelning tillsammans med aritmetiska operatorer. Information om tilldelningsoperatorn finns i kap Övningar Gör self-review exercise 2.4 och 2.6 Maria Green Page 9 20/08/03
10 Mer operatorer När man programmerar vill man ofta öka eller minska en variabel med 1. Ex) int x = 5; //öka x med 1 x = 5 + 1; Eftersom detta är en väldigt vanlig operation har man skapat en speciell operator för att öka ++ eller minska -- med 1, kallade inkrement eller dekrement operatorer. Ex) int x = 5; //öka x med 1: x++; I de fall där operatorn används i uttryck har det betydelse om operatorn står framför eller bakom variabeln, ++x är inte samma sak som x++. När operatorn står framför (kallas preinkrement) utförs ökningen först, dvs ++x returnerar värdet av x+ 1. Ex) a = 2, b = 2; c = ++a * 5; //++a ger 2+1 = 3 och sedan gånger 5 = 15 //Resultat: a = 3, c = 15 Om operatorn står efter variabeln (postinkrement) returnerar x++ värdet av x. Ex) a = 2, b = 2; d = b++ * 5; //b++ ger 2 och sedan gånger 5 = 10 och //så ökar vi på b också //Resultat: b = 3, d = 10 Läs mer om dessa operatorer i kap Jämförelse-operatorer finns beskrivna i kap Ett vanligt fel som kan vara svårt att upptäcka är att man använder ett = istället för två = = när man ska göra jämförelser. De här operatorerna fungerar bra för heltal. Ska man däremot jämföra två flyttal (decimaltal) så får man istället titta på om skillnaden mellan talen är väldigt liten. Detta beror på att datorn räknar numeriskt. Ex) float tal1 = 7.2 Om tal1 == 7.2 Om tal1 7.2 är mindre än //svaret är nej //svaret är ja! Ex) float tal1 = 5.3 float tal2 = 5.3 Om tal1 == tal2 Om tal1 tal2 är mindre än //svaret är nej //svaret är ja! Logiska operatorer Logiska operatorer är desamma som används inom matematiken. Logiskt icke (NOT):! Logiskt och (AND): && Maria Green Page 10 20/08/03
11 Logiskt eller (OR): Logiska operatorer kan kombineras med andra operatorer Ex) a == 3 && b > 9 c <= 7 d > 5 Vi såg också flera exempel på hur dörrvakten Calle Carlsson avgjorde vilka som fick komma in och inte i del 3 av Relationsalgebra. I exemplet i kap 1.25 såg vi också att det finns sätt att slippa skriva std:: framför cout och cin mfl. I fortsättningen kommer inte detta att skrivas ut och vid de tillfällen det endast ges delar av program som kodexempel kommer det att antas att raderna using std::cout, using std::cin etc finns med precis som inkluderingar och main. Teckenuppsättningar Varje tecken representeras egentligen av ett heltal och det finns olika teckenuppsättningar som talar om vilket tal varje tecken ska representera. Två kända teckenuppsättningar är ASCII och unicode. I den här kursen kommer vi att använda ASCII, en tabell finns i Appendix B i Deitel. I ASCII så har bokstaven A värdet 65, B 66 osv. Ex) char teck1 = a ; cout << teck1 << endl; cout << static_cast<int>(teck1) << endl; a 97 Teck1 är av typen char som bara kan innehålla ett enda tecken. När vi skriver ut det vanligt blir det ett a på skärmen men om vi väljer att skriva ut heltalsvärdet (med hjälp av static_cast<int>, mer om detta senare i kursen) så skrivs ASCII-värdet för a ut, vilket är 97. Inkrement- och dekrement-operatorerna (++ och --) fungerar även på char och det är ASCII-värdet som ökas eller minskas då. Ex) char teck2 = G ; teck2++; cout << teck2 << endl; H Maria Green Page 11 20/08/03
12 Siffersymbolerna 0, 1, 2,, 9 har också ASCII-värden, 48, 49, 50,, 57. Om man har en siffra i form av en char kan man ta fram värdet på den genom att dra bort värdet på talet 0, dvs 48. Titta i ASCII-tabellen och räkna. Ex) char siffra = 4 ; int varde; varde = siffra - 0 ; // blir 4 Det går bra att använda våra svenska bokstäver när man skriver ut på skärmen och i en del miljöer går det bra att använda dem även i namn på variabler, filer odyl men inte i alla. Min rekommendation är därför att inte använda å, ä och ö i namn av olika slag. Fler program Vi tittar på det program som herr Jansson ville utveckla för att använda när han sålde jordgubbar bland annat. Vi börjar med den första lösningen han hade, ta gärna en titt på diagrammet i Jordgubbsexemplet del 1 utvecklad lösning. Pseudokoden såg ut så här för den utvecklade delen av den första lösningen: Bestäm kilopriset Fråga Hur många kilo? Läs in antal kilo och spara i variabeln vikt totalpris = kilopris * vikt Skriv ut totalpris Om vi ska skriva ett program som gör detta kan koden se ut så här: #include <iostream> using std::cout; using std::cin; using std::endl; int main() float kilopris, vikt, totalpris; kilopris = 4.9; cout<<"hur många kilo? "; cin>>vikt; totalpris = kilopris * vikt; cout<<"totalpris: "<<totalpris <<endl; } return 0; Maria Green Page 12 20/08/03
13 Övningar Titta nu på din lösning av del 2 av Godisaffären. Utgå ifrån diagrammet och/eller pseudokoden och skriv ett program som fru Jönsson kan använda i sin affär. När du gjort det kan du jämföra det med min lösning, men tänk åter på att även om våra lösningar skiljer sig åt behöver din lösning inte vara fel utan bara ett alternativt sätt att lösa uppgiften på. Det finns även en del övningar med svar i boken som jag rekommenderar att ni gör. Selfreview Questions: Kontrollstrukturer För att styra exekveringen i ett program används olika typer av kontrollstrukturer. Hittills har vi sett en av dessa kontrollstrukturer, sekventiell struktur. I sekventiell struktur händer allt i den ordning som satserna står i filen. Vi kommer även att använda selektion och iteration. Läs kap 2.4 i Deitel. Här introduceras en annan typ av flödesdiagram än de ni sett tidigare, UML (Unified Model Language). De diagram ni sett tidigare bygger på denna standard så de är väldigt lika, jämför gärna olika exempel. Selektion Om vi går tillbaka och tittar på några av våra exempel i modul 1 så ser vi att vi redan vet vad selektion är. I Kaffeexemplet del 3 var det första val vi stötte på det där vi skulle välja om vi skulle sätta i sladden eller inte. Det beskrevs ju i både diagram och i pseudokod: Om kontakten inte sitter i uttaget Sätt i kontakten Det handlar om villkor som styr exekveringen, dvs vilka vägar programmet tar. Villkoren kan evalueras till sanna eller falska, tex: 10 kronor är mer än fem kronor sant jag är längre än Michael Jordan falskt Vi såg också flera exempel på hur dörrvakten Calle Carlsson avgjorde med hjälp av olika villkor, vilka som fick komma in och inte i del 2 och 3 av Relationsalgebra. Det finns tre varianter av selektion: if/else Maria Green Page 13 20/08/03
14 switch villkorsoperatorn och vi ska titta på hur de fungerar alla tre. if/else Exempel) om minimum poäng på en tenta för att få godkänt är 60 gäller följande: om studentens poäng är högre än eller lika med 60 studenten är godkänd Om villkoret är sant så är studenten godkänd Om villkoret är falskt så är studenten inte godkänd Om vi vill skriva ut en text när studenten är godkänd skulle det se ut så här: om studentens poäng är högre än eller lika med 60 skriv ut Godkänd och om vi nu översätter detta till C++-kod skulle det se ut så här: if( poang >= 60 ) cout<< Godkänd ; Samma exempel finns i kap 2.5. Titta även på diagrammet och se hur det stämmer överens med koden. Herr Jansson hade också en valsituation när han skulle börja ge rabatter i Jordgubbsexemplet del 2 Pseudokoden såg ut så här: Om totalpris > X totalpris = totalpris * 0.9 Det enda vi egentligen behöver göra nu är att översätta från psuedokod till C++-kod. Om blir if och så måste vi sätta uttrycket inom parenteser. if(totalpris > X) totalpris = totalpris * 0.9; Och så får vi inte glömma ; i slutet av satsen. Observera dock att det inte ska vara något semikolon efter uttrycket i if-satsen. Maria Green Page 14 20/08/03
15 I nästa del av Jordgubbsexemplet har Herr Jansson bestämt sig för att börja sälja potatis också, vilket gör att han får två olika kilopriser att välja mellan, ett för jordgubbar och ett för potatis. Om vi tittar på det första diagrammet och skriver ner pseduokoden för det skulle det se ut så här: Om kunden har jordgubbar totalpris = kiloprisjordgubbar * vikt; Annars totalpris = kiloprispotatis * vikt; Här har vi två alternativ och detta är också bara att översätta till C++. Vi måste dock ah ett sätt att representera vilken vara kunden har, vi bestämmer att varan är j för jordgubbar och p för potatis. if(vara == j) totalpris = kiloprisjordgubbar * vikt; else totalpris = kiloprispotatis * vikt; I exemplet med kaffebryggaren gör vi också ett val av detta slag när vi väljer mellan mörkrostat eller vanligt kaffe. I kap 2.6 kan vi se hur man kan utöka exemplet med betyg. Här ser ni också exempel på nästlade if-satser. Sådana har ni också sett tidigare när Herr Jansson började sälja morötter i Jordgubbsexemplet del 4. Övningar Ta er en titt på er övningsuppgift med Godisaffären del 3 och försök skriva kod till den. Sedan kan ni titta på min lösning. Lägg till en koll ifall kunden har betalt för lite och skriv i så fall ut en lämplig kommentar. Gör self-review exercise 2.3 och 2.7 Flera operationer i en sats I det sista exemplet i kap 2.6 så utför man två operationer i else-satsen. Då måste man använda } för att ange vilka operationer som ska utföras, en god vana är att alltid använda } även om man bara har en operation. Ex) if(vara == j) totalpris = kiloprisjordgubbar * vikt; } Maria Green Page 15 20/08/03
16 else totalpris = kiloprispotatis * vikt; } Ni kommer att se } placerade på lite olika sätt. I boken sätter de den första på samma rad som uttrycket. Fördelen med att sätta den på en ny rad är att koden blir luftigare och lättare at läsa. Det viktigaste är att ni indenterar korrekt och är konsekventa. Vi har sett flera exempel på hur if/else används, så här ser if/else-strukturen ut lite mer allmänt: if (villkor) satser if (villkor) satser 1 else satser 2 if (villkor 1) satser 1 else if (villkor 2) satser 2 else if (villkor 3) satser 3 else if (villkor n) satser n else satser n+1 Det går också bra att ha sammansatta villkor. I Relationsalgebra del 3 var det flera villkor som gällde för att Calle Carlsson skulle få släppa in dem. Tex kunde man få komma in om man var tjej och minst 20 år eller om man var kille och minst 23 år. När man har sådana sammansatta uttryck använder man logiska operatorer och mer om dem kan du läsa i kap Ett vanligt fel som är lätt att göra är att använda tilldelningsoperatorn = istället för jämförelseoperatorn ==. Se exempel i kap 2.20 switch I vissa sammanhang blir det onödigt krångligt att använda if/else-satser, tex när man ska testa en variabels värde mot många olika alternativ. Då kan man använda switch. I kaffeexemplet skulle vi bestämma hur många koppar kaffe vi skulle koka. Nu var ju alternativen inte så många men de flesta kanske kan ha fler gäster än mig hemma. Maria Green Page 16 20/08/03
17 Allmänt uttryckt ser switch-strukturen ut så här: switch (uttryck) case värde1: satser1; break; case värde2: satser2; break; case värden: satsern; break; default: satser; } Först har vi nyckelordet switch och innanför parenteser har vi det uttryck som vi ska switcha på. Det finns en stor skillnad mellan uttrycken som används i if/else och i switch. I switch kan vi inte använda jämförelse-uttryck som x > 10 utan vi måste ha en variabel eller dylikt där. I kaffeexemplet skulle uttrycket vara personer. Uttrycket måste vara av typen int, char eller enum (mer om enum senare i kursen). Inuti de mjuka parenteserna har vi sedan olika case, olika fall på svenska. Värde 1, värde 2 osv är de olika värden som uttrycket kan ta. I kaffeexemplet var värdena 1, 2, 3 och 4. Default är den sats som man hanar i om inget av fallen ovan stämmer. Man måste inte ha en default-sats men ofta vill man ha med den. För varje fall specificerar man sedan vad man vill utföra om det fallet är det giltiga, satser. I Kaffeexemplet bryggde vi olika många koppar beroende på vilket fall som var sant. Man kan ha flera operationer efter varandra och här behöver man inte avgränsa dem med }. Efter satserna använder man break för att avbryta selektionen. Om man glömmer break kommer exekveringen fortsätta på nästa rad. I vissa fall är detta vad man vill och då utelämnar man helt enkelt break, men för det mesta vill man gå ur switchsatsen när man hittat ett fall som matchar. Ex) Vi har en bok med en massa olika kapitel. Vi vill ha ett program där vi kan skriva in kapitelnumret och få en utskrift av titeln på kapitlet. Maria Green Page 17 20/08/03
18 Diagrammet skulle kunna se ut så här: kapitel 1 sant Skriv ut Introduction break falskt kapitel 2 Skriv ut Control Structures break falskt kapitel 3 Skriv ut Functions break falskt Skriv ut kapitlet finns ej Och pseudokoden: om kapitel är 1 skriv ut Introduction om kapitel är 2 skriv ut Control Structures om kapitel är 3 skriv ut Functions... annars skriv ut kapitlet finns ej Maria Green Page 18 20/08/03
19 och slutligen koden: #include <iostream> using std::cout; using std::cin; int main() int kapitel; cout << "Mata in ett kapitel: "; cin >> kapitel; switch(kapitel) case 1 : cout<< Introduction ; break; case 2 : cout<< Control Structures ; break; case 3 : cout<< Functions ; break; default: cout<< kapitlet finns ej ; } //slut switch return 0; }//slut programmet I exemplet ovan var det variabeln kapitel som var uttrycket. Kapitel är av typen int och kan ta de olika värdena 1, 2, 3 osv. I nästa exempel ska vi se hur uttrycket kan vara en variabel av typen char, det vill säga ett tecken. Ex) När barn ska lära sig alfabetet så får de ofta associera de olika bokstäverna till olika saker som börjar på den bokstaven, tex djur eller leksaker. Vi vill skriva ett program där man får mata in en bokstav och utskriften blir en sådan sak, tex apa för a, björn för b osv. Vi presenterar här inte hela programmet utan nöjer oss med att visa exempel till och med bokstaven C. (Man skulle ju kunna protestera mot att ett ord skrivs ut när barnen lär sig bokstäverna, men med lite fantasi kan man ju byta det ordet mot en bild. Programmering med bilder ingår dock inte i denna kurs.) Pseudokoden skulle kunna bli: om bokstaven är a skriv ut apa om bokstaven är b skriv ut björn om bokstaven är c skriv ut cykel... annars skriv ut finns ej i alfabetet Maria Green Page 19 20/08/03
20 Finns ej i alfabetet skulle ju kunna användas om barnet trycker på något konstigt tecken. Flödesdiagrammet för detta program kan se ut så här: sant bokstav a Skriv ut apa break falskt bokstav b Skriv ut björn break falskt bokstav c Skriv ut cykel break falskt Skriv ut finns ej i alfabetet Och om vi helt enkelt översätter detta till kod: #include <iostream> using std::cout; using std::cin; int main() char bokstav; cout << "Mata in en bokstav: "; cin >> bokstav; switch(bokstav) case a : cout<< apa ; break; case b : cout<< björn ; break; case c : cout<< cykel ; break; // Maria Green Page 20 20/08/03
21 default: cout<< finns ej i alfabetet ; } //slut switch return 0; }//slut programmet Övningar Gör self-review exercise Villkorsoperatorn Det tredje varianten av selektion är villkorsoperatorn? vilken tas upp tillsammans med if/else i kapitel 2.6. Iteration Att iterera betyder att upprepa något. Vi upprepar operationer hela tiden i vårt dagliga liv. Om vi läser en bok eller en tidning så måste vi ju vända blad, upprepade gånger vänder vi blad. När vi äter för vi gaffeln till munnen upprepade gånger. Att vända blad och att föra gaffeln till munnen är de operationer vi utför, frågan är hur länge håller vi på att upprepa oss. Vi kan ju inte sitta och vända blad i all evighet utan bara så länge det finns blad att vända, det vill säga så långe boken inte är slut. Likaså kan vi ju inte sitta och föra gaffeln till munnen resten av våra liv utan det gör vi ju bara så länge det finns mat på tallriken och vi fortfarande är hungriga. Vi fortsätter så länge ett visst villkor är sant. Detta villkor brukar kallas brytvillkor och i ovanstående fall kan det vara boken är inte slut. Vi kan också ha sammansatta uttryck precis som vid selektion. Brytvillkoret för att sluta äta är det finns mat på tallriken och jag är hungrig. Om maten tar slut spelar det inte någon roll om jag är hungrig eller inte, det finns inte mer mat. Om jag är mätt och inte vill ha mer så spelar det ingen roll om det finns mer mat eller inte (den kan få bli matlåda istället). För att hela uttrycket ska bli sant måste bägge uttrycken inuti vara sanna. I kaffeexemplet såg vi iteration i form av att mäta upp kaffe, en skopa åt gången. Där fortsatte vi tills vi hade mätt upp rätt antal skopor. I program använder man ofta olika typer av räknare för att utföra en operation rätt antal gånger. Det finns tre olika varianter på iteration: while do/while for och vi ska gå igenom de alla tre. Maria Green Page 21 20/08/03
22 While While betyder ju så länge och det är precis i den betydelsen det används i C++. Whilestrukturen ser ut så här: while (villkor) satser Villkoret är brytvillkoret som vi pratade om tidigare och är alltså ett uttryck som kan evalueras till sant eller falskt. Så länge som uttrycket är sant utför vi de satser som står under. Man brukar beteckna detta för en loop (eller slinga på svenska). Har man flera satser avgränsar man dem med mjuka parenteser } precis som vid andra tillfällen: while (villkor) sats 1 sats 2 sats n } Läs kap 2.7 och 2.8 i Deitel. Man måste inte alltid öka på räknaren, man kan även minska den. Man behöver inte heller öka eller minska med 1 utan man kan välja vilket tal som helst. Ex) Initiera talet sant tal > 0 Skriv ut talet Minska talet falskt int tal = 10; while ( tal > 0 ) Maria Green Page 22 20/08/03
23 } cout << tal <<endl; tal = tal -3; Här minskar vi talet med 3 vid varje iteration. Utskriften blir: Vad blir utskriften om vi ändrar tal till 9 istället? skrivs inte ut eftersom när tal är 0 kommer vi inte att gå in i loopen och utföra operationerna. Man måste inte alltid bestämma i förväg hur många iterationer som ska utföras. Det kan bestämmas under programmets gång. Läs kap 2.9 i Deitel. För alla typer av iteration gäller några grundregler: Initialt värde för variabeln/variablerna i uttrycket Detta kan antingen sättas av programmeraren som i vårt exempel här och det i Fig 2.7 eller av användaren som i exemplet i Fig 2.9. Det viktiga är att det sätts till något innan man försöker testa på det. Det finns ett brytvillkor som kan uppnås Det måste finnas ett brytvillkor som kan uppnås annars kommer iterationen att fortsätta i all evighet. Brytvillkoret kan vara som i vårt exempel tal > 0 eller exemplet i Fig 2.7 gradecounter >= 10. Det kan också vara sammansatt uttryck av olika slag. Det måste vara ett uttryck som kan evalueras till sant eller falskt. Man måste närma sig kontrollvariabeln Ett vanligt nybörjarfel är att man skriver en loop som innehåller ett brytvillkor som tex x < 10 och så initierar man x = 1, men så glömmer man att öka x. Detta leder då till en oändlig loop, det vill säga den fortsätter tills man stänger av programmet med våld. Man måste helt enkelt se till att brytvillkoret någon gång uppfylls. Detta måste inte göras med räknare som ökas eller minskas. I exemplet i Fig 2.9 ser vi hur man kan låta användaren styra hur länge iterationen ska fortsätta. Maria Green Page 23 20/08/03
24 Se även kap 2.13 Övningar Gör self-review exercise 2.13 a och d, 2.5 och 2.10 Läs kap 2.10 Do/while En struktur som fungerar nästan precis likadant som while är do/while. Skillnaden är att med do/while utförs iterationen alltid minst en gång. do satser while (villkor) ; Observera semikolonet efter while-satsen. Maria Green Page 24 20/08/03
25 Om vi tittar på samma exempel som tidigare då vi skriver ut ett tal kan det se ut så här: Initiera talet Skriv ut talet Minska talet tal > 0 sant t falskt int tal = 10; do cout << tal <<endl; tal = tal -3; } while ( tal > 0 ); Utskriften blir densamma som för while-loopen: Maria Green Page 25 20/08/03
26 Skillnaden blir om vi tex väljer ett annat startvärde. Om vi i while-loopen sätter x = 0 vid start så kommer ingen utskrift att ske. Om vi däremot sätter x = 0 i do/while-loopen så kommer 0 att skrivas ut eftersom loopen alltid utförs minst en gång då kollen mot villkoret ligger sist i hela uttrycket. Läs kap for Den tredje och sista typen av iteration är for-loopen. Läs om den i kapitel 2.14 och 2.15 i boken. All iteration går att göra med alla typerna men de olika typen passar bäst i olika sammanhang. Ni kommer att se detta i exempel och när ni själva skriver kod. Exemplet tidigare med ett tal som ska skrivas ut kan givetvis utföras med en for-loop: int tal; for(tal = 10; tal >10; tal = tal 3) cout << tal; } Diagrammet ser likadant ut som för while-loopen: Initiera talet sant tal > 0 Skriv ut talet Minska talet falskt Det går också utmärkt att deklarera variabeln inuti for-loopen. Tänk dock på att den endast är känd inuti loopen då. Mer om variablers räckvidd (scope) tas upp i nästa modul. Maria Green Page 26 20/08/03
27 for(int tal = 10; tal >10; tal = tal 3) cout << tal; } Ta en titt på 2.16 switch som vi hoppade över förut då vi ej hade gått igenom iteration vilket används i exemplet i det kapitlet. Övningar Avsluta den här modulen med att läsa sammanfattningen i kap Dessa regler går lika bra att applicera på de diagram som ni sett här som på bokens UML-diagram. Gör också self-review exercise 2.12 och 2.13 d. Maria Green Page 27 20/08/03
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 merProgrammeringsteknik med C och Matlab
Programmeringsteknik med C och Matlab Kapitel 2: C-programmeringens grunder Henrik Björklund Umeå universitet Björklund (UmU) Programmeringsteknik 1 / 32 Mer organisatoriskt Imorgon: Datorintro i lab Logga
Läs merProgrammering 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 merDagens 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 för ingenjörer, VT06 2 Repetition Repetition -
Läs merTDIU01 - 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 merTDIU01 - 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 merProgrammering A. Johan Eliasson johane@cs.umu.se
Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer
Läs merSMD 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 merOperatorer 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 mer1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler
1 Datorn som miniräknare I detta avsnitt tas upp hur man kan skriva program som utför enkla räkneoperationer och skriver resultat på skärmen. Syftet är i huvudsak att se hur flera satser kan bygga upp
Läs merAtt använda pekare i. C-kod
Att använda pekare i C-kod (Bör användas av de som känner sig lite hemma med C-programmering!) Rev 1, 2005-11-23 av Ted Wolfram www.wolfram.se Syfte: Man kan tycka att det är komplicerat att använda pekare
Läs mer1 Funktioner och procedurell abstraktion
1 Funktioner och procedurell abstraktion Det som gör programkonstruktion hanterlig och övergripbar och överhuvudtaget genomförbar är möjligheten att dela upp program i olika avsnitt, i underprogram. Vår
Läs merProgrammera 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 merProgrammering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010
Föreläsning 6 Kapitel 5 5.1 switch-satsen Vi ser på ett par exempel ur boken: int a; srand(time(0)); a=rand()%6+1; if(a==1) printf("hej Du glade\n"); else if(a==2) printf("god dag\n"); else if(a==3) printf("är
Läs merKlassdeklaration. 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 mer1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet
1 Texthantering I detta avsnitt tas det upp två sätt att arbeta med text i C++ program. Det första sättet som behandlas är hanteringen av textfält. Texter i C++ består utav en serie med enstaka tecken
Läs merSkizz till en enkel databas
Skizz till en enkel databas Data: Register En vektor Funktioner: Databas Initiera huvudloop Avsluta Poster (struct( struct) val Mata in Skriv ut Spara Hämta Ändra Radera Enligt diskussion 1999-11-23 Bertil
Läs merGrundläggande programmering med C# 7,5 högskolepoäng
Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)
Läs merFöreläsning 1 & 2 INTRODUKTION
Föreläsning 1 & 2 INTRODUKTION Denna föreläsning Vad händer under kursen? praktisk information Kursens mål vad är programmering? Skriva små program i programspråket Java Skriva program som använder färdiga
Läs merFö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äs merFö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Övningar Dag 2 En första klass
Kurs i C++ Sid 1 (5) Övningar Dag 2 En första klass Denna övning går ut på att steg för steg bygga upp en klass och skapa objekt. Vi kommer att utgå från en sammansatt datatyp i en struct och parallellt
Läs merLogik 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 merGrunderna i stegkodsprogrammering
Kapitel 1 Grunderna i stegkodsprogrammering Följande bilaga innehåller grunderna i stegkodsprogrammering i den form som används under kursen. Vi kommer att kort diskutera olika datatyper, villkor, operationer
Läs merEnkla datatyper minne
Enkla datatyper minne 143.56 sant Sonja A falskt 18 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 1 Addera två tal Algoritmen Summera tal Mata in två tal Beräkna Skriv ut resultat Mata in tal 1 Mata in
Läs merAnvä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 merTentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012
1 of 6 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen
Läs merF4. programmeringsteknik och Matlab
Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner
Läs merFöreläsning 6: Introduktion av listor
Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.
Läs merVem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Vem är vem på kursen Objektorienterad programvaruutveckling GU (DIT011) Kursansvarig : Katarina Blom, tel 772 10 60 Rum: 6126 (E-huset)
Läs merProgrammering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.
Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java
Läs merProblemlösning PROBLEMLÖSNING 2
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
Läs merRödGrön-spelet Av: Jonas Hall. Högstadiet. Tid: 40-120 minuter beroende på variant Material: TI-82/83/84 samt tärningar
Aktivitetsbeskrivning Denna aktivitet är utformat som ett spel som spelas av en grupp elever. En elev i taget agerar Gömmare och de andra är Gissare. Den som är gömmare lagrar (gömmer) tal i några av räknarens
Läs merUppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa
Lena Kallin Westin 2005-08-22 Institutionen för datavetenskap Umeå universitet TENTAMEN Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa Inlämnad Poäng Kurs : Programmeringsteknisk
Läs merVisual 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 merObjektorienterad programmering i Java
Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet
Läs merFöreläsning 4: Poster
Föreläsning 4: Poster Följande är genomgånget: type Person_Type is Namn : String(30); Skonr : Float; Kon : Boolean; Diskussion runt detta med olika typer m.m. Har tagit upp vilka operationer man kan göra
Läs merUttryck och villkor. Föreläsning 2
Uttryck och villkor Föreläsning 2 Dagens kluring Finn fem fel! #include int main(void) printf("resistans hos R1 (ohm) : ") scanf("%d",r1); printf("resistans hos R2 (ohm) : "); scanf("%d",r2);
Läs merEn kort text om programmering i C.
En kort text om programmering i C C skapades 1972 av Brian Ritchie och Dennis Kerighan på Bell Labs i USA Det blev det språk som är mest använt genom tiderna Det finns många olika språk Pascal, FORTH,
Läs merBjörn Abelli Programmeringens grunder med exempel i C#
Björn Abelli Programmeringens grunder med exempel i C# Övningshäfte (bearbetning pågår) Senaste uppdatering: 2004-12-12 I denna version finns övningar för de mest centrala avsnitten. Häftet kommer att
Läs merIntroduktion till PHP
PHP - Grund Copyright 2016 Mahmud Al Hakim mahmud@dynamicos.se www.webacademy.se Introduktion till PHP PHP = PHP: Hypertext Preprocessor PHP är ett programmeringsspråk. PHP är ett skriptspråk som körs
Läs merChapter 3: Using Classes and Objects
Chapter 3: Using Classes and Objects I dessa uppgifter kommer du att lära dig om hur man använder klasser och metoder från java biblioteket. Du kommer inte att förstå allt som händer bakom metod anrop
Läs merProgrammering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08
Programmering A C# VT 2010 Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Innehåll Hjälp och referenser... 3 Kap 1 Introduktion... 3 Steg för steg... 3 Kapitel 2 Variabler...
Läs merInledande programmering med C# (1DV402) 27+15=42 1 (22)
27+15=42 1 (22) Variabler 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
Läs merUttryck och villkor. Föreläsning 2
Uttryck och villkor Föreläsning 2 Dagens kluring Finn fem fel! #include int main(void) printf("resistans hos R1 (ohm) : ") scanf("%d",r1); printf("resistans hos R2 (ohm) : "); scanf("%d",r2);
Läs merTentamen på kursen DA7351, Programmering 1. 051102, kl 08.15-12.15. Malmö högskola Teknik och samhälle. DA7351, Programmering 1 1 051102
Tentamen på kursen DA7351, Programmering 1 051102, kl 08.15-12.15 Tillåtna hjälpmedel: Valfri bok om Java. Vid bedömning av lösningarna tas hänsyn till om dessa uppfyller de krav på programkvalitet (strukturering,
Läs merProgrammering 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 merEditering, Kompilering och Exekvering av Javaprogram
UMEÅ UNIVERSITET Institutionen för informatik B.1, Programmeringens grunder, 5 poäng Editering, Kompilering och Exekvering av Javaprogram Introduktion Syftet med kursmomentet Programmeringens grunder (B.1)
Läs merLösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll, 040110.
1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Denna tenta kommer att vara färdigrättad On 14/1-04 och kan då hämtas på mitt
Läs merEn villkorssats är den konstruktion som finns i C++ för att göra en selektion av två alternativa sekvenser. Formen för if satsen är
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
Läs merÖversikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll 2010-04-22
Översikt 732G11 PROGRAMMERING 1 Institutionen för datavetenskap Om kursen Vad är programmering (bra för)? Programmeringsspråket Java Utvecklingsmiljön Eclipse Genomgång av några programexempel Programmering
Läs merTentamen OOP 2015-03-14
Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning
Läs merProva på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09
Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09 1. Introduktion till webbprogrammering Webbprogrammering består av ett antal
Läs merVariabler 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 merC++ Slumptalsfunktioner + switch-satsen
C++ Slumptalsfunktioner + switch-satsen Veckans avsnitt består av ett antal lite udda funktioner man kan ha nytta av när man skriver program. Det är en slumptalsgenerator och lite annat smått och gott.
Läs merKompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Läs merDatatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek
De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000
Läs merLathund. C för inbyggda system
Lathund C för inbyggda system Revision 1 2000-09-21 Anders Arvidsson Jonny Martinsson Synpunkter välkomnas! Innehållsförteckning 1 Introduktion...3 1.1 Assembler kontra C...3 1.2 Kodexempel...3 1.3 MPLAB...4
Läs merFöreläsning 2: Avlusning och antilustekniker
2D1458, Problemlösning och programmering under press Föreläsning 2: Avlusning och antilustekniker Datum: 2007-09-11 Skribent(er): Emil Hesslow, Stefan Pettersson Föreläsare: Per Austrin Föreläsningen handlade
Läs merMatematisk Modellering
Matematisk Modellering Föreläsning 1 Anders Heyden Matematikcentrum Lunds Universitet Matematisk Modellering p.1/37 Denna föreläsning (läsvecka 1) Vad handlar kursen om, mål, kurskrav, ide. Matematisk
Läs merUppgift 1 (Oläsliga krypterade meddelanden)
Uppgift 1 (Oläsliga krypterade meddelanden) Ofta vill man kryptera text för att inte andra skall se vad man skrivit. I den givna filen KRYPTERAD_TEXT.TXT finns en krypterad text som kan vara av intresse
Läs merIntroduktion till algoritmer - L0 - Grunder i C++ Matematikgymnasiet, Läsåret 2014-2015. L0 - Grunder i C++
Introduktion till algoritmer - L0 - Grunder i C++ Matematikgymnasiet, Läsåret 01-015 L0 - Grunder i C++ Det här är den första lektionen i kursen Introduktion till algoritmer vid Matematikgymnasiet, läsåret
Läs merTentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)
Grundläggande programmering med C# Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng TEN1 NGC011 Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) (Ifylles av student) (Ifylles av student)
Läs merC++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen
C++ Funktioner 1 Teori När programmen blir större och mer komplicerade är det bra att kunna dela upp programmet i olika delar som gör specifika saker, vilket kan göra programmet mer lättläst. Ett sätt
Läs mer732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor
732G11 Linköpings universitet 2011-02-01 1 2 3 Strukturdiagram Strukturdiagram används för att visa hur ett program fungerar. Man kan se alla val och upprepningar som sker i programmet. Består av tre (!)
Läs merSystem.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
Läs merFö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 merAlla 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 merC-programmering, föreläsning 1 Jesper Wilhelmsson
C-programmering, föreläsning 1 Jesper Wilhelmsson Introduktion till C Variabler, Typer, Konstanter Operatorer Villkorliga satser if-else, switch Loopar for, while, do... while Inmatning och utmatning stdin
Läs merOBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar.
Värmdö Gymnasium Programmering A 110123 Lektion C1 Grunder Att programmera handlar mycket om att lära sig att analysera det problem eller den funktion man vill att programmet ska ha, och översätta det
Läs merLösningar till uppgifterna sätts ut på kurssidan på nätet idag kl 13.00. Omtentamen i Programmering C, 5p, A1, D1, E1, Fri, Pr1, Te/Ek1, 040607.
1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till uppgifterna sätts ut på kurssidan på nätet idag kl 13.00. Denna tenta kommer att vara färdigrättad On 9/6 och kan då hämtas på mitt tjänsterum,
Läs merObjektorienterad 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 merObjektorienterad programmering D2
Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste
Läs merOutline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst
Outline Objektorienterad Programmering (TDDC77) Föreläsning IV: while, for, do while, switch, arrayer Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Ordning Villkorliga hopp I Normalt sett så
Läs merElektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 Mikrodatorteknik
Elektroteknik MF1016 föreläsning 9 MF1017 föreläsning 7 - Inbyggda system - Analog till digital signal - Utvecklingssystem, målsystem - Labutrustningen - Uppbyggnad av mikrokontroller - Masinkod, assemblerkod
Läs merGrunderna 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 merIntroduk+on +ll programmering i JavaScript
Föreläsning i webbdesign Introduk+on +ll programmering i JavaScript Rune Körnefors Medieteknik 1 2012 Rune Körnefors rune.kornefors@lnu.se Språk Naturliga språk Mänsklig kommunika+on T.ex. Svenska, engelska,
Läs merIntroduktion till arv
Introduktion till arv 6 INTRODUKTION TILL ARV Arv Generell-Speciell Arv för att utnyttja det vi redan gjort Återanvändning Basklass Härledd klass Varför arv? Inför en subklass för att uttrycka specialisering
Läs merITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet
ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,
Läs merF5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander
F5 Selektion och iteration ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Boolska uttryck Boolska uttryck använder sig av jämförelseoperatorer < > = ==!= Resultatets datatyp är boolean
Läs merTentamen i. för D1 m fl, även distanskursen. lördag 19 januari 2013
1 of 7 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen
Läs merJavisst! Uttrycken kan bli komplicerade, och för att få lite överblick över det hela så gör vi det så enkelt som möjligt för oss.
8-2 Förenkling av uttryck. Namn: eller Konsten att räkna algebra och göra livet lite enklare för sig. Inledning I föregående kapitel lärde du dig vad ett matematiskt uttryck är för någonting och hur man
Läs merLäs detta innan du fortsätter, eller skriv ut det, klicka runt lite och läs samtidigt.
Bruksanvisning Installera CubeBiz... 2 Välj språk... 2 När du vill köra testversionen i 15 dagar... 3 När du köper en CubeBiz-licens... 3 Registrera en giltig licensnyckel... 3 Starta ett nytt projekt...
Läs merInstruktioner 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
Läs merÖ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 merFelsökning av mjukvara
KUNGLIGA TEKNISKA HÖGSKOLAN Felsökning av mjukvara Programmering av en NXT-robot Max Kufa [03/08-13] mkufa@kth.se Introduktionskurs i datateknik (II1310) Sammanfattning Syftet med laborationen var att
Läs merFör att skriva data till skärmen ( konsolen) används objektet System.out tillsammans med metoden println eller print.
1 Inmatning och utskrift Inmatning från tangentbord och utskrift till skärm sker i java med hjälp av objekten System.out och System.in. Dessa båda objekt är exempel på strömmar. En ström är en typ som
Läs merFöreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden
Föreläsning 7 Uttryck, Operatorer Och Kontrollflöden Nyckelord I Java abstract double int super boolean else interface switch break extends long synchronized byte final native this case finally new throw
Läs mer"if"-satsen. Inledande programmering med C# (1DV402)
"if"-satsen 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 if-satsen
Läs merExamination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: 2014-12-17 Tid: 9.00-12.00 (OBS 3 tim) Rum: V
Data och Informationsteknik / Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Erland Holmström Göteborg 16 dec 2014 Examination i PROGRAMMERINGSTEKNIK F1/TM1
Läs merBerä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 merDatorlära 3 Octave Workspace ovh mijlö Skriva text på skärmen Värdesiffror Variabler och typer Strängar Makro Vektorer
Datorlära 1 Introduktion till datasystemet, epost konto, afs hemkonto Introduktion till datorer och datasalar Open Office Calculator Beräkningar med Open Office Calc Diagram med OO Calc Datorlära 2 Utforma
Läs merÖversikt. Installation av EasyPHP 1. Ladda ner från http://www.easyphp.org/ Jag använder Release 5.3.4.0 2. Installera EasyPHP.
Laboration 1 Översikt 1. Att komma igång med laborationsmiljön a. installera Aptana Studio 3 b. Installera EasyPHP 2. Testa lite programmering a. Testa enkla uppgifter b. Testa automatiskt 3. Skapa inloggningsformulär
Läs merFöreläsning 3: Typomvandling, villkor och val, samt textsträngar
Föreläsning 3: Typomvandling, villkor och val, samt textsträngar Camilla Kirkegaard camilla.kirkegaard@liu.se Linköpings universitet Sweden October 14, 2013 1 Innehåll n n n n n Repetition Typomvandlingar
Läs merData, typ, selektion, iteration
Data, typ, selektion, iteration En programmeringkurs på halvfart IDT, MDH ttp://www.negative-g.com/nolimits/no%20limits%20defunct%20coasters.htm 1 Dagens agenda Talrepresentation Typkonvertering Sekvens
Läs merParameterö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 merModul 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
Läs merTwincat: PLC Control
Dokument Förklaring Dat. Revision KI-221-003-003 Kom igång med trukturerad Text 080402 1.0 Twincat: PLC Control Kom igång med Strukturerad Text (ST) programmering 1. Kod exempel. a. Exemplen som demonstreras
Läs mer732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val
732G11 Linköpings universitet 2011-01-26 1 2 3 4 Program recept 1 spaghetti = 100; 2 salt = 1; 3 olja = 5; 4 köttbullar = 8; 5 ketchup = 0,5; 6 koka(salt, spaghetti); 7 micra(köttbullar); 8 Om(micron ==
Läs merExempel på ett litet Ada-program
Exempel på ett litet Ada-program -- En kommentar som beskriver något. with Ada.Text_IO; procedure Mini is -- Deklarationer. K : constant Integer := 5; X, Y : Integer; -- Körbar kod. Ada.Text_IO.Put( Utskrift
Läs mer