Göm menyn

TDIU08 Problemlösning och programmering

Föreläsning


För varje föreläsning anges rekommenderade kapitel i "Programming, principles and Practice Using C++", andra upplagan och för "A Tour of C++", första upplagan. Det finns även gamla referenser till boken "Problem solving with C++" som avser åttonde upplagan och till "C++ direkt" tredje upplagan, 2011.
Observera att föreläsningsmaterialet och tillhörande föreläsningsbeskrivningar är det som ligger kvar sedan den gamla kursen TDIU01. Vi kommer använda materialet till viss del på C++-föreläsningarna. Det kan tillkomma material inför, eller efter föreläsningarna hålls i år. Själva innehållet i föreläsningarna kan variera något från upplägget i TDIU01 eftersom deltagarna förväntas vara bekanta med många koncept från kursens Ada-del.

Fö 1   

C++ OH-0 | OH-1 | Extramaterial om typer | Kodexempel momstabell

Ett c++-programs utseende, bufferthantering och in- och utmatning. Grundläggande begrepp och konstruktioner. Språkets element, variabler, grundläggande datatyper, deklarationer, uttryck och operatorer.

Variabler: deklaration, datatyp, initiering, tilldelning (=). Konstanter.

Grundläggande datatyper: int (heltal), double (reella tal, flyttal), char (tecken), bool (logiska värden, sant/falskt)

Uttryck: Operatorer och operander. Beräkningsregler för uttryck.
Aritmetiska uttryck, operatorerna +, -, *, /, %. Automatiska typomvandlingar.
Beräkningsordning för sammansatta uttryck: prioritet och associativitet, operanders beräkningsordning.
Tilldelning: =
Stegningsoperatorena ++ och - -
Relationsoperatorer: ==, !=, <, <=, >, >=
Logiska operatorer: &&, ||, !

Satser: Sekvens, val (selektion) och repetition (iteration).
Sammansatta satser: satsblock {...}, if, if-else, switch, while, do-while, for.
Uttryckssatser (uttryck som avslutas med semikolon kan stå som en sats).

Tecken och texter, strängar.
Datatypen char för att hantera tecken, teckenlitteraler (t.ex. 'A', '+', '?', '\n', '\t'). Teckenhanteringsfunktioner (<cctype>).

Läsanvisningar:

A Tour of C++
Kap 1.1-3,5,7
Programming Principles and Practices
Kap 2.1-4, 3, 4.1-4
C++ direkt
kap 1, 2.1-2.6 (speciellt 2.1-2.2, 2.4), 2.9, 5.1-5.2, 5.7.1, 2.3, 2.5-2.6, 15.6-15.7, 3.1-3.3
Problem solving
1.3, 2.1-2.3, 2.5, 2.4, 3
Även
Klassificering och omvandling av tecken

Fö 2  

C++ OH-blad

Funktioner

Funktionsdeklaration. Funktionsdefinition. Funktionsanrop.
Parametrar. Resultatvärde, eller void. Lokala variabler.
Parameteröverföring. Begreppen parameter-argument. Värdeanrop, referensanrop.

Användning av const och referens för inparametrar som är av komplicerad typ, t.ex. i samband med överföring av objekt av typ string eller vector - effektivt och säkert.

Läsanvisningar:

A Tour of C++
Kap 1.4
Programming Principles and Practices
Kap 4.5, 8.5.1-7
C++ direkt
4.1-4.7
Problem solving
4.3-4.4, 5.1-5.3

Fö 3

C++ OH-Bilder (exempelkod)

Fält, string och vector samt poster

Fokuserar på string och vector men ger information om deras gemensamma anfader fälten. Tar även upp poster (aggregat, struct)

std::vector (<vector>). En endimensionell datastruktur som anpassar sin storlek efter behovet. Se vector.

std::string (<string>), deklaration, initiering, exempel på operationer. string.

Läsanvisningar:
A Tour of C++
1.5, 1.8, 2.2, 9.2,
Programming Principles and Practices
3.2, 4.6
C++ direkt
2.8, 3.3 (2.7 och 3.4 som orientering)
Problem solving
8.2, 8.3 (7.1, 8.1 som orientering)

Poster (struct)

Definition av en enkel posttyp (struct) Item, deklaration av struct-variabel, initiering, åtkomst till struct-komponenter med punktoperatorn, tilldelning av struct-objekt (=) samt överföring av struct-objekt till och från funktioner. jämförelse av struct-objekt med operatorer. (C++ direkt: 15.3)

Läsanvisningar:

A Tour of C++
2.2
Programming Principles and Practices
9.4.1
C++ direkt
15.3, 5.5
Problem solving
10.1

Fö 4  

C++OH-Bilder

Strömmar, filströmmar, strängströmmar, kommandoradsargument

Strömmar. Strömtyperna istream, ostream, stream. Standardströmmarna cin, cout, cerr och clog. Felhantering i samband med strömmar. Strömflaggor (failbit, badbit, eofbit) och funktioner för att operera på dessa för att undersöka strömmars tillstånd, eof(), good(), fail(), bad(), clear(). Formaterad inmatning med >>. Oformaterad inmatning med t.ex. get(), get(c), getline(), peek(), read(), etc. Formaterad utmatning med << och olika manipulatorer manipulatorer av olika slag för att bestämma utmatningformat för tal och text (t.ex. fixed, setprecision, setw, etc.). Oformaterad utmatning med put(c) och write(). (C++ direkt 11.1-11.3).

Filströmmar: deklaration (ifstream, ofstream, fstream), öppning, läsning, skrivning och stängning av filströmmar. (C++ direkt 11.4)

Strängströmmar, istringstream, ostringstream, stringstream. Används för att koppla string-objekt till strömmar för att kunna läsa och skriva innehåll i string-objekt med ström-operationer, t.ex. << och >>.

Kommandoradsargument,argc och argv. Används för att låta användaren skicka indata till vårt program i samband med körning.

Läsanvisningar:

C++ direkt
11.1-11.4, 11.8
Problem solving
6.1


Sidansvarig: Torbjörn Jonsson
Senast uppdaterad: 2015-11-04