TDIU06 Programmering g.k. Laborationer LAB2. Vt1, Dessa laborationer ingår i examinationsmomentet LAB2 och ska göras i läsperiod Vt1.

Storlek: px
Starta visningen från sidan:

Download "TDIU06 Programmering g.k. Laborationer LAB2. Vt1, Dessa laborationer ingår i examinationsmomentet LAB2 och ska göras i läsperiod Vt1."

Transkript

1 LINKÖPINGS TEKNISKA HÖGSKOLA Institutionen för datavetenskap Avdelningen för programvara och system (SaS) Tommy Olsson TDIU06 Programmering g.k. Laborationer LAB2 Vt1, 2007 Dessa laborationer ingår i examinationsmomentet LAB2 och ska göras i läsperiod Vt1. Innehåll 9. Containrar, algoritmer, iteratorer Infixkalkylator Associativa containrar och funktionsobjekt Map, sortering, funktionsobjekt Funktionsobjekt... 8

2 2 Laborationshandledning TDIU06

3 TDIU06 Laborationshandledning 3 Laboration 9 Containrar, algoritmer, iteratorer I den här laborationen ska du prova på att arbeta med container-objekt (vector och list) i kombination med iteratorer och algoritmer. De tre första labtillfällena (varav ett reservtillfälle är avsedda att disponeras för denna uppgift). Skriv ett program som gör följande: 1. Öppna en textfil som innehåller heltal i textformat. Textfilens namn ska anges på kommandoraden och vanliga kontroller av kommandoraden och öppning av textfilen ska göras av programmet. 2. Läs in heltal från textfilen och lagra talen i en std::vector. 3. Skriv ut de inlästa talen på cout. Använd for-sats och indexering för att stega igenom vectorn. 4. Sortera talen i stigande ordning med algoritmen std::sort. 5. Skriv ut de sorterade talen på cout. Använd for-sats och iterator för att stega igenom vectorn. 6. Ta bort alla dubbletter som eventuellt finns. Detta görs i två steg: Använd först algoritmen std::unique. Observera att unique endast flyttar om värdena så att alla unika värden återfinns i början av vectorn. unique returnerar en iterator som anger slutet för de unika värdena, i form av positionen efter sista unika värdet. Ta sedan bort de värden som finns efter det sista unika värdet i vectorn med medlemsfunktionen erase. Undersök dock gärna vad som egentligen finns i vectorn efter det sista unika värdet. 7. Skriv ut talen i vectorn (som nu ska innehålla enbart unika värden i stigande ordning) på cout. Använd algoritmen std::copy och std::ostream_iterator. 8. Kopiera värdena i vectorn till en annan vector så att de kommer i omvänd ordning (dvs i sjunkande ordning). Använd algoritmen std::reverse_copy. 9. Skriv ut talen i kopian på cout. 10. Kopiera värdena från kopian till en std::list med hjälp av std::copy och std::back_inserter. 11. Skriv ut innehållet i listan på cout (värdena ska komma i sjunkande ordning). 12. Sortera listan. 13. Skriv ut den sorterade listan på cout (värdena ska alltså komma i stigande ordning). Nivå 2 (frivillig) Utskrifter har gjorts på flera olika sätt i uppgifterna ovan. Ytterligare en möjlighet är att överlagra operator<< för vector, så att man kan skriva ut en vectors, t.ex., innehåll med ett uttryck på formen: cout << vec << endl; Nivå 3 (frivillig) Prova ytterligare algoritmer på datastrukturena vector och list om tiden medger. Redovisning Lämna in programkoden på papper till din assistent (använd IDAs omslag för laborationsredovisning). Skicka även koden via e-post. Läsanvisningar C++ direkt, kapitel 12 och Appendix C.

4 4 Laborationshandledning TDIU06 Laboration 10 Infixkalkylator Uppgifter är att skriva ett program som kan läsa enkla aritmetiska uttryck och beräkna deras värde. Ett uttryck i taget ska kunna matas i på en rad och programmet ska beräkna och skriva ut resultatet. Använd standardbibliotekskomponenter i så hög grad som möjligt (strömmar, containrar, iteratorer, algoritmer, etc. utan att gå till överdrift:). Försök välja den mest lämpade komponenten då det finns flera tänkbara alternativ. Om man behöver en sekventiell datastruktur kan ju t.ex. vector, list eller deque vara möjliga alternativ men någon av dem kanske är att föredra, beroende på hur man ska sätta in och ta bort element i strukturen. Diskutera gärna lösningsförslag med assistenten innan du kodar. Det kommer en forsättning på denna uppgift i kursen TDDI10 Objektorienterad programmering. Ni som ska gå den kursen bör se till att lösningen, speciellt då det gäller hanteringen av prioritet och associativitet, följer anvisningarna nedan.. Annars kan detta behöva göras om i TDDI10! Addition, subtraktion, multiplikation och division ska kunna utföras på heltalsvärden (innehåller enbart siffror 0-9) och reella värden (innehåller enbart siffror och en decimalpunkt). När programmet körs kan det se ut enligt följande (inmatning med fet stil): Välkommen till räknedosan! Skriv ett uttryck i taget på en egen rad: = / / = * * = 55.5 Ett inläst infixuttryck ska först omvandlas till motsvarande postfixuttryck med den s.k. järnvägsalgoritmen. De tre infixuttrycken i exemplet ovan motsvaras av följande postfixuttryck (till höger): / / * * I postfixuttryck (även kallad omvänd polsk notation) kommer operatorerna i den ordning de ska utföras och efter sina operander. Det gör att postfix lämpar sig väl för maskinell bearbetning. Ingen kunskap om vad som följer längre fram i uttrycket behövs för att kunna ta beslut om åtgärd i olika lägen. Om man t.ex. läser det tredje uttrycket ovan ( * ) och kommer till *, kan multiplikationen utföras eftersom 3 och 12 redan har lästs. Man behöver alltså spara operander man läser, så att man lätt kan återfinna dem när de ska ingå i en beräkning. När man läser vidare och kommer till +, är det redan lästa värdet 21 och resultatet av den föregående multiplikationen som ska adderas. Man behöver alltså även spara resultat av beräknade deluttryck. Både järnvägsalgoritmen och postfixberäkningsalgoritmen kan förefalla komplicerade, men de är enkla genom att en stack kan användas för att spara saker som ska användas senare. I järnvägsalgoritmen sparas operatorer på en stack, enligt regler som baseras på operatorernas prioritet och associativitet. Vid postfixberäkningen sparas operander och beräknade deluttryck enligt mycket enkla regler. Båda algoritmerna gås igenom på den andra lektionen i läsperioden. Använd std::map för att hantera operatorernas prioritet, t.ex. en map för operatorernas inkommande prioritet och en map för deras stackprioritet. Att använda två prioriteter för varje operator är egentligen ett sätt att någorlunda enkelt hantera prioritet och associativitet. I ett sammansatt uttryck som ska 1+2 beräknas först, eftersom addition och subtraktion har samma prioritet och är vänsterassociativa. Även detta kommer att gås igenom på den andra lektionen. Två funktioner ska finnas, en för att omvandla ett inläst infixuttryck till motsvarande postfixuttryck och en funktion för att beräkna värdet av ett postfixuttryck.

5 TDIU06 Laborationshandledning 5 Det är tillåtet att förutsätta att det alltid finns ett mellanrum mellan operander och operatorer i indata (det förenklar inläsningen avsevärt) och att inmatade infixuttryck alltid är korrekta (inga felkontroller krävs alltså). Nivå 2 (frivillig) Lägg in felkontroller, så att felaktiga uttryck upptäcks och felmeddelanden skrivs ut, i stället för det beräknade värdet. Det kan t.ex. se ut enligt följande: Felaktigt uttryck: operand där operator förväntades + 1 Felaktigt uttryck: operator där operand förväntades Felaktigt uttryck: operator avslutar 1 / 0 Felaktigt uttryck: division med 0 foo + 1 Felaktigt uttryck: otillåten symbol Felkontroller kan tänkas läggas in vid inläsningen av ett infixuttryck och/eller vid beräkningen av ett postfixuttryck. Det ingår i uppgiften att försöka komma på så många (alla) felmöjligheter som möjligt. Om man inte matar in något på en rad ska inte det betraktas som ett fel, utan programmet ska då hoppa över postfixberäkningen och vänta på en ny inmatning. Använd gärna undantag (exception) för att hantera fel. För att göra det någorlunda enkelt kan man kasta undantag av typen const char* (t.ex. throw "division med 0"). Nivå 3 (frivillig) Utöka syntaxen så att även parenteser kan ingå i infixuttrycken, t.ex. (postfix till höger) ( ) * ( ) * ( 1 ) 1 ( ) tomt parentesuttryck enbart tillåts (eller så förbjuder man) Lägg in ytterligare felkontroller som behövs när nu syntaxen utökats med parenteser, för att upptäcka fel som t.ex. följande: ( ) ( ) 3 1 ( + 2 ) 1 ( ) + 2 Nivå 4 (frivillig) Gör det möjligt att skriva infixuttryck utan att behöva ha mellanrum mellan elementen. Detta komplicerar inläsningen en hel del. Redovisning Lämna in programkoden på papper till din assistent (använd IDAs omslag för laborationsredovisning). Skicka även koden via e-post. Läsanvisningar C++ direkt, kapitel 12 och Appendix C.

6 6 Laborationshandledning TDIU06 Laboration 11 Associativa containrar och funktionsobjekt Denna laborationsuppgift består av ett två mindre uppgifter, som främst gäller associativa containrar och funktionsobjekt. Övning på användning av std::priority_queue och std::pair. Skriv ett program som skapar en "att-göra-lista". Först ska programmet läsa in ett antal uppgifter som ska utföras med tillhörande prioritet (heltal 1-9, högt värde hög prioritet). Inmatningen till programmet kan se ut enligt följande: Ange på varje rad prioritet och uppgift (avsluta med Control-D): 3 Mata fågeln 4 Klippa gräset 1 Städa rummet 5 Mata hunden 4 Mata katten 2 Diska 2 Tvätta Utskriften kan se ut enligt följande: Att göra: 5: Mata hunden 4: Mata katten 4: Klippa gräset 3: Mata fågeln 2: Tvätta 2: Diska 1: Städa rummet Använd std::priority_queue och lagra prioritet och uppgift i std::pair. Nivå 2 (frivillig) Ändra i programmet så att lågt prioritetsvärde i stället betyder hög prioritet. Deklarationen för priority_queue är (något förenklad ): template <class T, class Container = vector<t>, class Compare = less<t> > class priority_queue; T är alltså den typ av element som ska lagras, Container är den containertyp som används för att lagra elementen (förval är std::vector) och Compare är den jämförelse som ska användas för att ordna element i prioritetskön (funktionsobjektsklassen std::less är förvald). Här kan man, genom att uttryckligen ange en annat funktionsobjektsklass än std::less<t>, styra hur prioritetsjämförelsen ska göras. Standardvalen motsvarar att man uttryckligen deklarerar ett priority_queue-objekt för T lika med int på följande sätt: priority_queue<int, vector<int>, less<int> > pq; Denna deklaration kan vi alltså göra betydligt enklare genom: priority_queue<int> pq; I vårt fall vill vi alltså ha något annat än less<int>, och måste då också ange argumentet vector<int>. Finns det något standardfunktionsobjekt som kan användas?

7 TDIU06 Laborationshandledning 7 Laboration 12 Map, sortering, funktionsobjekt Övning på std::map, std::sort och funktionsobjekt. Skriv ett program som läser en text från en textfil och räknar hur många gånger varje bokstav förekommer i texten. Det är tillåtet att anta att endast bokstäver i det engelska alfabetet (A-Z) förekommer. Ingen skillnad mellan stora och små bokstäver ska göras. Använd std::map. När hela texten är läst ska programmet skriva ut en tabell som (i bokstavsordning) visar hur många gånger varje bokstav förekom i texten. Bokstäver i alfabetet som inte alls förekommer i texten kommer inte heller att ingå i tabellen. Nivå 2 (obligatorisk) Ändra i (en kopia) av programmet så att tabellen skrivs ut i frekvensordning, dvs de vanligast förekommande bokstäverna ska komma först och de mindre vanligt förekommande sist. Detta kan man göra genom att kopiera innehållet i mappen till en std::vector och sortera vectorn med avseende på bokstävernas frekvensen. Algoritmen std::sort finns i två varianter, en som (underförstått) använder operator <. För std::pair, som vi alltså har i mappen och kopierat till vectorn, finns två jämförelseoperatorer definierade, operator == och operator <. Operator == returnerar: x.first == y.first && x.second == y.second Operator < (som är den som bestämmer hur elementen i mappen ordnas) returnerar: x.first < y.first (!(x.first < y.first) && x.second < y.second) Algoritmen std::sort finns också i en variant som antingen kan ges en vanlig funktion eller ett funktionsobjekt som ska användas vid jämförelser. För att sortera element med avseende på frekvens måste vi alltså skriva en funktion eller konstruera ett funktionsobjektstyp, vilka i första hand jämför med avseende på komponenten second i paren (där antalet lagras), eventuellt i andra hand på komponenten first. Skriv en vanlig funktion, t.ex. med namnet descending, som kan jämföra två pair med avseende på komponenten second (eventuellt i andra hand på komponenten first). Använd den som tredje argument till sort: sort(v.begin(), v.end(), descending); Nivå 3 (frivillig) Definiera ett funktionsobjekt för att göra jämförelsen. Ska man göra det helt efter konstens alla regler ska man härleda från hjälpklassen std::binary_function men i detta fall kan vi definiera en struct, t.ex. med namnet descending som har medlemsfunktionen operator(). Ett objekt av typen descending kan ges till sort som tredje argument: sort(v.begin(), v.end(), descending()); Ett objekt av typ descending skapas alltså av descending().

8 8 Laborationshandledning TDIU06 Laboration 13 Funktionsobjekt Detta är främst en övning på funktionsobjekt. Uppgiften går ut på att skriva ett program som läser en text och sparar alla vanliga ord i texten i en std::vector. När hela texten har lästs ska orden sorteras och alla dubbletter ska tas bort. Sedan ska programmet skriva ut orden, separerade med mellanrum. Utskriftsraderna ska ha en maxlängd (t.ex. 72 tecken). Så länge som det finns plats för nästa ord och ett mellanrum till på den aktuella utskriftsraden, skrivs ordet och mellanrummet ut, annars skrivs först ett nyradstecken ut och sedan ordet och mellanrummet. Enbart ord som innehåller minst två bokstäver ska sparas i vectorn. Stora och små bokstäver är distinkta, till exempel ska ord, Ord och ORD ska behandlas som tre olika ord. Indata kan bestå av strängar som antingen är riktiga ord eller namn (innehåller enbart bokstäver och enkla bindestreck inuti orden, t.ex. hej, Nisse och Karl-Jan ), eller innehåller annat än bokstäver och enkla, inneslutna bindestreck (t.ex. X15, -foo, foo--bar och bar-, som alltså inte är "ord"). Interpunktionstecken (komma, punkt, kolon, semikolon, frågetecken, utropstecken, citattecken) kan förekomma. Sådana sitter först eller sist i ett ord, dvs inget mellanrum före till exempel ett kommatecken men däremot efter, om inte radslut följer direkt. Apostrof för att ange genitiv när subjektet slutar på s, t.ex. Anders bil kan förekomma i en svensk text. I en engelsk text kan den engelska konventionen ( s) för att ange genitiv förekomma, t.ex. Andy s car. Parenteser kan förekomma. För varje läst sträng kan man göra följande för att hitta ett riktigt ord: Ta bort alla inledanden citattecken och vänsterparenteser. Ta bort alla avslutande interpunktionstecken, citattecken, apostrofer och högerparenteser. Ta bort engelsk genitivändelse ( s). Kontrollera att strängen endast innehåller bokstäver och bindestreck. Om det finns bindestreck, kontrollera att endast enskilda, inneslutna sådana finns. Om en sträng klarar den sista kontrollen och har minst längd 2, sparas den som ett riktigt ord. Programmet ska läsa strängar från indatatexten och hitta de "riktiga" ord som finns i texten. Efter att vectorn med orden har sorterats och alla dubbletter tagits bort, ska orden skrivas ut. Använd algortimen std::for_each och en egen funktion print_word för att skriva ut orden. Funktionen print_word anropas av for_each för varje ord i vectorn och har i uppgift, förutom att skriva ut varje ord följt av ett mellanrum, även att kontrollera när det är dags att generera en ny rad i utskriften. Utskrift ska göras på std::cout. Nivå 2 (obligatorisk) Byt funktionen print_word mot en funktionsobjektsklass print_word av struct-typ. Variabler för att hålla reda på maximal radlängd (konstant) och aktuell radlängd kan vara statiska variabler i operator(), för att undvika datamedlemmar i klassen i detta skede. Utskrift ska göras på std::cout. Nivå 3 (frivillig) Gör om struct:en till class. Maximal radlängd och aktuell radlängd ska vara datamedlemmar i klassen och ska initieras av en konstruktor, vilken ska ha den maximala radlängden som parameter (med förvalt argument 72). Utskrift ska göras på std::cout. Nivå 4 (frivillig) Lägg till möjligheten att även binda utströmmen via ett konstruktorargument (typ ostream&) med std:.cout som förvalt argument. Nu ska man alltså kunna skapa funktionsobjekt av typen print_word på tre olika sätt, dels utan argument (då ska utströmmen vara cout och maximal radlängd ska vara 72), del genom att ange ett heltalsvärde som anger den maximala radlängden (utströmmen ska vara cout), eller genom att ange både en utström och en maximal radlängd.

Övningsuppgifter. TDIU04 Programmering i C++, standardbibliotek. Innehåll. Vt Lektion Lektion Lektion Lektion 4...

Övningsuppgifter. TDIU04 Programmering i C++, standardbibliotek. Innehåll. Vt Lektion Lektion Lektion Lektion 4... TDIU04 Programmering i C++, standardbibliotek Vt1 2015 Övningsuppgifter Innehåll Lektion 1... 2 Lektion 2... 3 Lektion 3... 4 Lektion 4... 5 Lektion 5... 6 De tre senaste tentorna finns tillgängliga via

Läs mer

Standard Template Library

Standard Template Library Linköpings Universitet Institutionen för datavetenskap (IDA) UPP-gruppen 2015-11-01 Standard Template Library Mål Denna laboration går ut på att öva på att använda de givna klasser och algoritmer som finns

Läs mer

TDDI14 Objektorienterad programmering

TDDI14 Objektorienterad programmering LINKÖPINGS TEKNISKA HÖGSKOLA Institutionen för datavetenskap Avdelningen för programvara och system Tommy Olsson 2015-05-27 Datortentamen i TDDI14 Objektorienterad programmering Provkod DAT1 Datum 2015-06-01

Läs mer

TDIU01 - Programmering i C++, grundkurs

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

Läs mer

TDDI TDDI22 Tentaregler

TDDI TDDI22 Tentaregler Inloggning TDDI22 Tentaregler Logga in i tentasystemet genom att välja session exam system och logga in med ditt vanliga LiU- ID. Välj inte att ha denna session som standardsession. Verifiera att dina

Läs mer

TDDI22 (exempel) TDDI22 Tentaregler

TDDI22 (exempel) TDDI22 Tentaregler Inloggning TDDI22 Tentaregler Logga in i tentasystemet genom att välja session exam system och logga in med ditt vanliga LiU- ID. Välj inte att ha denna session som standardsession. Verifiera att dina

Läs mer

TDDI TDDI22 Tentaregler

TDDI TDDI22 Tentaregler Inloggning TDDI22 Tentaregler Logga in i tentasystemet genom att välja session exam system och logga in med ditt vanliga LiU- ID. Välj inte att ha denna session som standardsession. Verifiera att dina

Läs mer

Lektionsuppgifter. TDDI14 Objektorienterad programmering. Lektionsplanering Lektion Lektion Lektion

Lektionsuppgifter. TDDI14 Objektorienterad programmering. Lektionsplanering Lektion Lektion Lektion LINKÖPINGS TEKNISKA HÖGSKOLA Institutionen för datavetenskap Programvara och system Tommy Olsson 2014-02-05 Lektionsplanering.................................. 2 Lektion 1..........................................

Läs mer

Introduktionslaboration

Introduktionslaboration LINKÖPINGS TEKNISKA HÖGSKOLA Institutionen för datavetenskap Avdelningen för programvara och system (SaS) Tommy Olsson 2006-08-31 TDIU06 Programmering g.k Introduktionslaboration Ht1, 2006 Detta häfte

Läs mer

Algoritmbiblioteket (STL) Designstrategi Generiska algoritmer som fungerar på godtyckliga samlingsdatatyper, vilka har iteratorer.

Algoritmbiblioteket (STL) Designstrategi Generiska algoritmer som fungerar på godtyckliga samlingsdatatyper, vilka har iteratorer. Algoritmbiblioteket (STL) (f.d.) Standard Template Library Samlingstyper (containers) Algoritmer Funktionsobjekt Adaptrar Designstrategi Generiska algoritmer som fungerar på godtyckliga samlingsdatatyper,

Läs mer

Programmering C: Tentamen of 5 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator

Programmering C: Tentamen of 5 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator Programmering C: Tentamen 2008-05-31 1 of 5 Örebro universitet Institutionen för teknik Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se) Tentamen i Programmering grundkurs och Programmering

Läs mer

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

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

Läs mer

Kursmaterial för laborationer i

Kursmaterial för laborationer i Kursmaterial för laborationer i IMPA TDDC 68 Sammanställt av Torbjörn Jonsson 2007-02-09 INNEHÅLL Allmänt om C++-laborationerna 1 De olika laborationerna: Lab0: Grundläggande C++ 3 Lab1: Sortering med

Läs mer

TDDC74 Lab 02 Listor, sammansatta strukturer

TDDC74 Lab 02 Listor, sammansatta strukturer TDDC74 Lab 02 Listor, sammansatta strukturer 1 Översikt I denna laboration kommer ni att lära er mer om: Mer komplexa rekursiva mönster, procedurer och processer. Hur man kan hantera listor och andra enklare

Läs mer

Tentamen, Algoritmer och datastrukturer

Tentamen, Algoritmer och datastrukturer UNDS TEKNISKA ÖGSKOA (6) Institutionen för datavetenskap Tentamen, Algoritmer och datastrukturer 23 8 29, 8. 3. Anvisningar: Denna tentamen består av fem uppgifter. Totalt är skrivningen på 36 poäng och

Läs mer

Tentamen EDAF30 Programmering i C++

Tentamen EDAF30 Programmering i C++ LUNDS TEKNISKA HÖGSKOLA 1(6) Institutionen för datavetenskap Tentamen EDAF30 Programmering i C++ 2016 01 11, 8.00 13.00 Hjälpmedel: En valfri C++-bok. OH-bilderna från föreläsningarna är inte tillåtna.

Läs mer

Intro till standardbiblioteket. Eric Elfving

Intro till standardbiblioteket. Eric Elfving Intro till standardbiblioteket Eric Elfving 1 Behållare (containers) 2 Iteratorer 3 Algoritmer 15 mars 2018 2 / 13 Bibliotekets behållare delas in i tre grupper: Sekevensbehålare (Sequence containers)

Läs mer

Operatoröverlagring. endast operatorsymboler definierade i C++ kan överlagras = += -= *= /= %= ^= &= = <<= >>= < > <= >= ==!= && > ->*, [ ] ( )

Operatoröverlagring. endast operatorsymboler definierade i C++ kan överlagras = += -= *= /= %= ^= &= = <<= >>= < > <= >= ==!= && > ->*, [ ] ( ) TDDC76 PoD OH Föreläsning C++ 83 Operatoröverlagring endast operatorsymboler definierade i C++ kan överlagras + - * / % ^ & ~! > = += -= *= /= %= ^= &= = = < > = ==!= && ++ -- -> ->*, [ ]

Läs mer

Programmering i C++ EDA623 Mallar. EDA623 (Föreläsning 12) HT / 29

Programmering i C++ EDA623 Mallar. EDA623 (Föreläsning 12) HT / 29 Programmering i C++ EDA623 Mallar EDA623 (Föreläsning 12) HT 2013 1 / 29 Mallar Innehåll Klassmallar Funktionsmallar EDA623 (Föreläsning 12) HT 2013 2 / 29 Containerklasserna vector, deque och list utgör

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) 2008-03-12.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som läser igenom en textfil som heter FIL.TXT och skriver ut alla rader där det står ett decimaltal först på raden. Decimaltal

Läs mer

TDDC77 Objektorienterad Programmering

TDDC77 Objektorienterad Programmering TDDC77 Objektorienterad Programmering Föreläsning 3 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Operatorer Java Standard Library Inmatning Operatorer operatorer En operator är en

Läs mer

Innehåll. Pekaren this Självreferens. Klasser Resurshantering, representation. Överlagring av operatorer. Överlagring av operatorer

Innehåll. Pekaren this Självreferens. Klasser Resurshantering, representation. Överlagring av operatorer. Överlagring av operatorer Innehåll EDAF30 Programmering i C++ 8. Klasser; resurshantering och polymorfism Sven Gestegård Robertz Datavetenskap, LTH 2016 1 Klasser 2 Operatorer 3 Klasser, resurshantering Rule of three Move semantics

Läs mer

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

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

Läs mer

Innehåll. 1 Funktionsmalllar. 2 Klassmallar. struct Name { string s; //... }; const Name & minimum ( const Name & a, const Name & b) { if(a.s < b.

Innehåll. 1 Funktionsmalllar. 2 Klassmallar. struct Name { string s; //... }; const Name & minimum ( const Name & a, const Name & b) { if(a.s < b. Innehåll EDAF30 Programmering i C++ Generisk programmering med templates (mallar) Sven Gestegård Robertz Datavetenskap, LTH 2015 1 Funktionsmalllar 2 Generisk programmering med templates (mallar) 2/1 Generisk

Läs mer

C++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen

C++ 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 mer

2D1387, Programsystemkonstruktion med C++ 01/02 1

2D1387, Programsystemkonstruktion med C++ 01/02 1 2D1387, Programsystemkonstruktion med C++ 01/02 1 Slide 1 Del4 Klassmallar, funktionsmallar och STL Ämnesområden denna föreläsning: Funktionsmallar (function templates) Klassmallar Mallar för medlemmar

Läs mer

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

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

Läs mer

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim Agenda (halvdag)

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim  Agenda (halvdag) Objektorienterad programmering Föreläsning 9 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda (halvdag) Fält Grunderna Fält med komponenter av struct-typ Fält med referenser Standardklassen

Läs mer

C++ - En introduktion

C++ - En introduktion C++ - En introduktion De imperativa grunderna för dig som kan programmera Eric Elfving Institutionen för datavetenskap 1 / 72 Översikt 1 Grunderna 2 Uttryck och satser 3 Funktioner 4 Poster 1 Grunderna

Läs mer

TDDI TDDI22 Tentaregler

TDDI TDDI22 Tentaregler Inloggning TDDI22 Tentaregler Logga in i tentasystemet genom att välja session exam system och logga in med ditt vanliga LiU- ID. Välj inte att ha denna session som standardsession. Verifiera att dina

Läs mer

TDDI TDDI22 Tentaregler

TDDI TDDI22 Tentaregler Inloggning TDDI22 Tentaregler Logga in i tentasystemet genom att välja session exam system och logga in med ditt vanliga LiU- ID. Välj inte att ha denna session som standardsession. Verifiera att dina

Läs mer

TDIU01 - Programmering i C++, grundkurs

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

Läs mer

Kapitel 4 - Mallar. Kapitel 4. Introduktion till mallar STL. 2D1387 Programsystemkonstruktion med C++ 1

Kapitel 4 - Mallar. Kapitel 4. Introduktion till mallar STL. 2D1387 Programsystemkonstruktion med C++ 1 Kapitel 4 Introduktion till mallar STL 2D1387 Programsystemkonstruktion med C++ 1 Kapitel 4 - Klassmallar, funktionsmallar och STL Funktionsmallar Klassmallar Mallar för medlemmar Specialisering Standardbiblioteket

Läs mer

Kapitel 4. Funktionsmallar. Mallar. Introduktion till mallar STL

Kapitel 4. Funktionsmallar. Mallar. Introduktion till mallar STL Kapitel 4 Introduktion till mallar STL Kapitel 4 - Klassmallar, funktionsmallar och STL Funktionsmallar Klassmallar Mallar för medlemmar Specialisering Standardbiblioteket för mallar (STL): Namnrymden

Läs mer

Kapitel 4. Funktionsmallar. Mallar. Introduktion till mallar STL

Kapitel 4. Funktionsmallar. Mallar. Introduktion till mallar STL Kapitel 4 Introduktion till mallar STL Kapitel 4 - Klassmallar, funktionsmallar och STL Funktionsmallar Klassmallar Mallar för medlemmar Specialisering Standardbiblioteket för mallar (STL): Namnrymden

Läs mer

Skizz till en enkel databas

Skizz 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 mer

Objektorienterad programmering Föreläsning 4

Objektorienterad programmering Föreläsning 4 Objektorienterad programmering Föreläsning 4 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda Introduktion till objektorientering Klasser och Objekt Instansvariabler Metoder Introduktion

Läs mer

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag Datum: 2008-08-14 Tid: 08-12 Plats: PC6-PC7 i E-huset. Jour: Per-Magnus Olsson, tel 285607 Jourhavande kommer att besöka skrivsalarna varje

Läs mer

TDIU01 (725G67) - Programmering i C++, grundkurs

TDIU01 (725G67) - Programmering i C++, grundkurs . TDIU01 (725G67) - Programmering i C++, grundkurs Program, datatyper och IO Eric Elfving Institutionen för datavetenskap 7 oktober 2015 Översikt 2/14 Struktur på ett C++-program Köra ett program Variabler

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs . TDIU01 - Programmering i C++, grundkurs Datalagring - poster och vektorer Eric Elfving Institutionen för datavetenskap 7 oktober 2015 Poster 2/17 struct Book string title; string author; int pages; ;

Läs mer

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Datatyper 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 mer

Innehåll. Exceptionella händelser (exceptions, undantag ) Felhantering Tre nivåer av felhantering: Nivå 2: exceptions (eller returvärde)

Innehåll. Exceptionella händelser (exceptions, undantag ) Felhantering Tre nivåer av felhantering: Nivå 2: exceptions (eller returvärde) Innehåll EDAF30 Programmering i C++ 7. Felhantering. Sven Gestegård Robertz Datavetenskap, LTH 2017 1 Felhantering Exceptions Exceptions och resurshantering Specifikation av exceptionella händelser Static

Läs mer

Tentamen EDAF30 Programmering i C++

Tentamen EDAF30 Programmering i C++ LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Tentamen EDAF30 Programmering i C++ 2017 04 20, 14:00 19:00 Hjälpmedel: En valfri C++-bok. Andra papper med anteckningar eller utskrifter är

Läs mer

Objektorienterad programmering D2

Objektorienterad 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 mer

Parameteröverföring. Exempel. Exempel. Metodkropp

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

Läs mer

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag Datum: 2009-04-15 Tid: 8-12 Plats: SU-salar i B-huset. Jour: Per-Magnus Olsson, tel 285607 Jourhavande kommer att besöka skrivsalarna ungefär

Läs mer

ADT Kö. Seminarium 4 Köer och Stackar Innehåll. Operationer. ADT Stack. Definition. Definition

ADT Kö. Seminarium 4 Köer och Stackar Innehåll. Operationer. ADT Stack. Definition. Definition Seminarium 4 Köer och Stackar Innehåll ADT:erna Kö och Stack Definitioner Operationer Exempel på användning Givna klasser i Java Interfacet Queue Klassen Stack Klassen LinkedList Klassen PriorityQueue

Läs mer

Tentamen *:85/2I4123 C

Tentamen *:85/2I4123 C DSV Sid 1(6) *:85/2I4123 Jozef Swiatycki 2006-01-21 Tentamen *:85/2I4123 C++ 2006-01-21 Denna tentamen består av fyra uppgifter som tillsammans kan ge maximalt 30 poäng. För godkänt resultat krävs minst

Läs mer

Klassdeklaration. Metoddeklaration. Parameteröverföring

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

Läs mer

Johan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen

Johan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen Tentamen för teknisk kemi, 10p, moment 1 29 november 1999 Skrivtid 9-15 Hjälpmedel: av följande böcker. - U. Bilting och J. Skansholm: Vägen till C - A. Kelley & I. Pohl: A Book on C Maxpoäng: Gräns för

Läs mer

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011 1 of 7 Ö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 mer

TDIU01 Programmering i C++

TDIU01 Programmering i C++ TDIU01 Programmering i C++ Föreläsning 6 - Klasser Eric Elfving, eric.elfving@liu.se Institutionen för datavetenskap (IDA) Avdelningen för Programvara och system (SaS) Klasser När vi skapade vår lista

Läs mer

Användarhandledning Version 1.2

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

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik I 2018-03-16 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Innehåll. Introduktion till objektorientering. OOP (objektorienterad programmering) Objekt, instanser, klasser

Innehåll. Introduktion till objektorientering. OOP (objektorienterad programmering) Objekt, instanser, klasser Föreläsning 1 Innehåll Introduktion till objektorientering OOP (objektorienterad programmering) Objekt, instanser, klasser C++ OO i C++ Standardbibliotek Utökningar från C (syntaktiskt socker) Introduktion

Läs mer

Nedan skapar vi klassen Person innehållande datamedlemmar för förnamn, efternamn, ålder, längd och vikt:

Nedan skapar vi klassen Person innehållande datamedlemmar för förnamn, efternamn, ålder, längd och vikt: 8. Objektorientering Skälet till att C++ är ett av de mest använda programspråken är att det är objektorienterat. Detta bygger vidare på begreppet struct (ursprungligen från språket C som inte är objektorienterat),

Läs mer

Kalkylator för aritmetiska uttryck

Kalkylator för aritmetiska uttryck Linköpings Universitet Institutionen för datavetenskap (IDA) UPP-gruppen 2016-08-26 Kalkylator för aritmetiska uttryck I den här uppgiften ska du arbeta med ett program för att behandla enkla aritmetiska

Läs mer

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga. Tentamen Programmeringsteknik II 2014-0-27 Skrivtid: 0800 100 Tänk på följande Skriv läsligt! Använd inte rödpenna! Skriv bara på framsidan av varje papper. Börja alltid ny uppgift på nytt papper. Lägg

Läs mer

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

Tentamen 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 mer

Innehåll. Parametriserade typer. Klassmallar. Klassmallen Vektor Konstructor med std::initializer_list. Klassmallen Vektor Medlemsfunktioner

Innehåll. Parametriserade typer. Klassmallar. Klassmallen Vektor Konstructor med std::initializer_list. Klassmallen Vektor Medlemsfunktioner Innehåll EDAF30 Programmering i C++ 10. Generisk programmering. Mallar och funktionsobjekt Sven Gestegård Robertz Datavetenskap, LTH 2017 1 Funktionsobjekt Mallar med variabelt antal argument 10. Generisk

Läs mer

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Laboration 1. kompilera-ikonen exekvera-ikonen Programmerade system I1 Syfte Laboration 1. Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i att skriva

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik II 2018-10-19 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Föreläsning 22 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webacademy.se Agenda Rekursion Samlingar Listor Mängder Avbildningstabeller 1 Rekursion För att förstå rekursion

Läs mer

Introduktionslaboration

Introduktionslaboration TDDC76 Laborationshandledning 1 TDDC76 Programmering och datastrukturer Introduktionslaboration Denna introduktionslaboration introducerar programmeringsspråket C++, hur du skriver enkla C++-program samt

Läs mer

Laboration 3. Kalkylator för aritmetiska uttryck. Kalkylatorn ska kunna läsa antingen enbokstavskommandon eller infixuttryck. Exempel på infixuttryck:

Laboration 3. Kalkylator för aritmetiska uttryck. Kalkylatorn ska kunna läsa antingen enbokstavskommandon eller infixuttryck. Exempel på infixuttryck: TDDC76 Laborationshandledning 1 Laboration 3 Kalkylator för aritmetiska uttryck I den här uppgiften att du ska arbeta med ett program för att behandla enkla aritmetiska uttryck. Delar av programmet är

Läs mer

Uppgifter till praktiska tentan, del A. (7 / 27)

Uppgifter till praktiska tentan, del A. (7 / 27) Uppgifter till praktiska tentan, del A. (7 / 27) I. Sortering/Sökning: III II. Representation/Omvandling/format/protokoll: II III. Strukturering: II I alla problem, där bokstäver förekommer, antar vi att

Läs mer

Innehåll. Klasserna vector och deque

Innehåll. Klasserna vector och deque Innehåll EDAF30 Programmering i C++ Standardbiblioteket: Datastrukturer och algoritmer Sven Gestegård Robertz Datavetenskap, LTH 2015 1 Datastrukturer, containerklasser Sekvenser Insättning 2 Insättningsiteratorer

Läs mer

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C 1 of 8 Ö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 mer

LÖSNINGSFÖRSLAG TENTAMEN

LÖSNINGSFÖRSLAG TENTAMEN LÖSNINGSFÖRSLAG TENTAMEN OBJEKTORIENTERAD PROGRAMMERING I JAVA 5P FRISTÅENDE KURS, DAG (ITM - ÖSTERSUND) MÅNDAG 2 JUNI, 2003, KL. 8-13 TID: 5 TIMMAR ANTAL UPPGIFTER: 8 MAX POÄNG: 43 BETYGSKALA: UNDERKÄND

Läs mer

Programmering B med Visual C++ 2008

Programmering B med Visual C++ 2008 Programmering B med Visual C++ 2008 Innehållsförteckning 1 Repetition och lite nytt...5 I detta kapitel... 5 Programexekvering... 5 Loop... 5 Källkod... 6 Verktyg... 6 Säkerhetskopiera... 6 Öppna, kompilera,

Läs mer

1 Klasser och objektorientering Vad är objektorientering?

1 Klasser och objektorientering Vad är objektorientering? 1 Klasser och objektorientering Vad är objektorientering? Det finns olika synsätt på programmering, dessa olika synsätt kallas för paradigm. De vanligaste paradigmen är det imperativa/proceduriella, det

Läs mer

Grunderna i SQL del 1

Grunderna i SQL del 1 Grunderna i SQL del 1 1. SELECT-frågor 2. SELECT 3. WHERE 4. ORDER BY 5. Inre join 6. Yttre join 7. Andra typer av join 8. Union 9. Aggregatfunktioner 10. Gruppera och summera Kap. 3 Kap. 4 Kap. 5 utom

Läs mer

Programmering A. Johan Eliasson johane@cs.umu.se

Programmering 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 mer

TUTORIAL: KLASSER & OBJEKT

TUTORIAL: KLASSER & OBJEKT TUTORIAL: KLASSER & OBJEKT I denna tutorial lär vi oss att använda klasser och objekt samt hur vi bygger en enkel applikation kring dessa. I tutorialen kommer det finnas en mängd kod som du antingen kan

Läs mer

Föreläsning 3. Stack

Föreläsning 3. Stack Föreläsning 3 Stack Föreläsning 3 ADT Stack Stack JCF Tillämpning Utvärdera ett postfix uttryck Stack implementerad med en array Stack implementerad med en länkad lista ADT Stack Grundprinciper: En stack

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Strömmar, externa filer och kommandoradsargument Eric Elfving Institutionen för datavetenskap 7 oktober 2015 Översikt 2/32 Strömmar Kommandoradsargument Jämförelseoperatorer

Läs mer

Laboration 1 Introduktion till Visual Basic 6.0

Laboration 1 Introduktion till Visual Basic 6.0 Laboration 1 Introduktion till Visual Basic 6.0 Förberedelse Förbered dig genom att läsa föreläsningsanteckningar och de kapitel som gåtts igenom på föreläsningarna. Läs även igenom laborationen i förväg.

Läs mer

Övningsuppgifter kapitel 8

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

Läs mer

Generell (template) programmering. Effektiv C++ Slutliga tips Genomgång av gammal tenta. Daniel Aarno Allt som fungerar som x ÄR x

Generell (template) programmering. Effektiv C++ Slutliga tips Genomgång av gammal tenta. Daniel Aarno Allt som fungerar som x ÄR x Generell (template) programmering Funktionsobjekt och funktionspekare Iteratorer Algoritmer Effektiv C++ Slutliga tips Genomgång av gammal tenta Daniel Aarno bishop@kth.se 2 int compare(int i1, int i2)

Läs mer

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

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

Läs mer

TDIU Regler

TDIU Regler Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt

Läs mer

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011, Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1 Måndagen den 10 januari 2011, 8.15 12.15 Tentamen består av två delar, del A och del B. Del A innehåller 10 kryssfrågor på olika teman

Läs mer

Tentamen i. Programmering i språket C

Tentamen i. Programmering i språket C 1 of 6 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering i språket C för D1 m fl, även distanskursen lördag 25 februari

Läs mer

1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet

1 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 mer

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN HI1024 Programmering, grundkurs TEN2 2016-12-22 KTH STH Flemingsberg 8.15-13.00 Tillåtna hjälpmedel: Kursboken C PROGRAMMING A Modern Approach K. N. King helt utan anteckningar Alternativt C från början

Läs mer

Uttryck, satser och strömhantering

Uttryck, satser och strömhantering Linköpings Universitet Institutionen för datavetenskap (IDA) UPP-gruppen 2018-09-06 Mål Uttryck, satser och strömhantering I denna laboration ska du lära dig Formaterad inläsning och utskrift Vanliga repetitions-

Läs mer

Innehåll. Användardefinierade typer. Användardefinierade typer Kategorier. Konstruktorer. Konstruktorer Två sätt att skriva initiering av medlemmar

Innehåll. Användardefinierade typer. Användardefinierade typer Kategorier. Konstruktorer. Konstruktorer Två sätt att skriva initiering av medlemmar Innehåll EDAF30 Programmering i C++ 3. Mer om klasser. Funktionsanrop Sven Gestegård Robertz Datavetenskap, LTH 2017 1 Klasser pekaren this const för objekt och medlemmar Kopiering friend inline 2 Funktionsanrop

Läs mer

TDIU01 - Programmering i C++, grundkurs

TDIU01 - Programmering i C++, grundkurs TDIU01 - Programmering i C++, grundkurs Underprogram - Funktioner Eric Elfving Institutionen för datavetenskap 18 september 2014 Översikt 2/22 Återblick till satsblocken Funktioner - Namngivna satsblock

Läs mer

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C 1 of 7 Örebro universitet Institutionen för teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen fredag 15

Läs mer

Användning av typeid. Operatorerna typeid och. Filen typeinfo.h måste inkluderas. typeid

Användning av typeid. Operatorerna typeid och. Filen typeinfo.h måste inkluderas. typeid Operatorerna typeid och dynamic_cast mm - 1 Användning av typeid mm - 2 Vid dynamiskt bindning av funktioner vet man inte vilket objekt som funktionen binds till vid exekveringstillfället. Ofta saknar

Läs mer

Föreläsning 18 Filer och avbildningar

Föreläsning 18 Filer och avbildningar Föreläsning 18 Filer och avbildningar Grundkurs i programmering Jan Lönnberg Institutionen för datateknik -universitetets högskola för teknikvetenskaper 15.11.2011 Avbildningar Hur skulle du göra en: Ordlista

Läs mer

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

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

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Föreläsning 7 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Konstanter och readonly Statiska klasser Standardklassen Math Parameteröverföring Referensen

Läs mer

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng TENTAMEN I PROGRAMMERING Ansvarig: Jan Skansholm, tel 7721012 Betygsgränser: Hjälpmedel: Sammanlagt maximalt 60 poäng. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng Skansholm,

Läs mer

Övning från förra gången: readword

Övning från förra gången: readword (9 september 2010 T4.1 ) Övning från förra gången: readword /** readword.c * * int readword(char w[], int n) { * * Läser tecken tills en bokstav påträffas. * Läser och lagrar sedan högst n-1 bokstäver

Läs mer

TDDC74 Lab 04 Muterbara strukturer, omgivningar

TDDC74 Lab 04 Muterbara strukturer, omgivningar TDDC74 Lab 04 Muterbara strukturer, omgivningar 1 Översikt I den här laborationen kommer ni att lära er mer om: Tillstånd, och skillnader mellan ren funktionell programmering och imperativ. Skillnaden

Läs mer

Tentamen i. för D1 m fl, även distanskursen. lördag 28 maj 2011

Tentamen i. för D1 m fl, även distanskursen. lördag 28 maj 2011 1 of 7 Ö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 mer

TDIU20 (exempel) TDIU20 Tentaregler

TDIU20 (exempel) TDIU20 Tentaregler Inloggning TDIU20 Tentaregler Logga in i tentasystemet genom att välja session exam system och logga in med ditt vanliga LiU- ID. Välj inte att ha denna session som standardsession. Verifiera att dina

Läs mer

TDDC76 - Programmering och Datastrukturer

TDDC76 - Programmering och Datastrukturer TDDC76 - Programmering och Datastrukturer Objektorientering - Klasser Eric Elfving Institutionen för datavetenskap 1 / 20 Återblick struct struct är bra att ha för att skapa aggregat - slå ihop flera data

Läs mer

Tentamen: Datordel Programmeringsteknik

Tentamen: Datordel Programmeringsteknik Tentamen: Datordel Programmeringsteknik Datum: 2013-02-22 Tid: 9:00-14:00 Sal: Ansvarig: Resultat: Hjälpmedel: Betygsgränser: Ulf Johansson Anslås inom 3 veckor. Inga Sammanlagt 30 p för G, 45 p för VG.

Läs mer