TDT4102 - eksempelprogrammer i C++ (2020 - 2021)

Dette er en oversikt over videoer som forklarer de eksempelprogram jeg benyttet i C++ forelesningene våren 2021. De går i mer detalj enn det jeg rakk i forelesningene. Datoen i kolonne 1 tilsvarer forelesningsdatoen for min (Lasse Natvig) parallel våren 2021. Selve koden ligger lagret i et eget github-repo. Selv om jeg ikke jobber i TDT4102-faget lenger kan jeg prøve å svare på spørsmål og evt. rette feil eller svakheter i eksempelprogrammene dersom du sender meg en e-post om det.
Studenter som tar TDT4102 våren 2022 eller senere må primært følge de eksempler, forelesninger og annet tilbud den utgaven av faget gir. Informasjonen her er bare ment som et alternativt ekstratilbud..
(Notasjonen sX-Y henviser til slide nr. X til Y for den aktuelle forelesning)

 Dato

Eksempelprogram-videoer og "bonus"(bruk av debugger m.m.)

11/1
Uke 2
old_hello (s21, 14 min). * TDT4102-"blank" project" * Debugger breakpoint
casting (s26, 14 min). * TDT4102-examples * Debugger step-over, step-into, step-out

12/1

Uke 2

hello_graphics (s17, 13 min). * TDT4102-examples * Debugger: variables, locals * VS code: graphics window and text console
vector_intro (s22, 15 min). * Eksempel-kode fra github * VScode: folding av kode * Debugger: flere breakpoint, fjerne breakpoint, watch, call stack
graph_1 (s24-27, 17 min). *VScode: "no problems but still problems", narrowing conversion feil
graph_2 (s28-29, 9 min ) * Svært enkel skalering av data, koordinater for enkel 2D grafikk.

18/1

Uke 3

string (s6-7,9, 9 min) * Alternative syntakser for initiering av streng. Innsetting av tegn, stoi, stod
graph_3 (s14-16 , 8 min) * VScode folding av kode * constexpr, bruk av funksjoner, grafikk
bug_1 (s27 , 9 min) * VScode: stopp ved ulovlig instruksjon(bug), call stack, flyttall - begrenset nøyaktighet, build and run debug vs. build and run release
param_passing (s33, 11 min) * Parameterverføring, tilfeldige tall, rand, måling av tidsforbruk

19/1

Uke 3

type_1 (s6-7, 25 min) * VScode: "no problems but still problems", unsafe conversion, narrowing, double precision, reading input
palette (s9-11, 13 min) * Vector_ref, unnamed objects, new, color values
string_2 (s12-13, 14 min) * debugger, look into string, unsafe old C-string
int_input (s17-18, 13 min) * sikker innlesing av heltall
kattis_example (s20-21, 19 min) * Bruk av Kattis, koding uten std_lib_facilities.h

25/1

Uke 4

drill (s16, 4 min) * VS code and clang error messages.
exception (s18-25, 18 min) * VS code kommentere ut og inn blokk av kode * aksess via [i] eller .at(i) *debugger break on exception, continue, debug vs. release mode
NordicLetters
(s30, 8 min) * Nordic letters (Æ Ø Å) in console and to or from file
Æ, Ø og Å - windows (7 min) * Enklere video for utskrift under windows, start fra tom folder.

1/2

Uke 5

guessRandom (s3, 13 min) * rand() og srand(), forward-deklarasjon, assert, æ ø å
date
(s5-12, 15 min) * class constructor, get-functions, exceptions
month (s24-25, 9 min) * overloading operator++ and operator<<
cleanAir_intro (s27, 5 min) * simple simulation with graphics, demo
discs (s28, 14 min) * Overloading of operator< for struct brukt i vector

8/2
Uke 6
cleanAir_tour (s21-30, 44 min) * Detailed explanation of all code in CleanAir * map, downcasting and much more
stringstream (s36-37, 9 min) * istringstream, ostringstream, stringsstream.
15/2
Uke 7
map_sort (s3, 9 min) * map med struct som nøkkel, overlagring av operator << og <
friend (s4-5, 5 min) * nøkkelordet friend ved operator-overlagring, setfill og setw
graph_demo (s13, 8 min) * move av grafikk-objekt, line-style, arv av klasse
subClass (s42, 13 min) * klasser og arv, upcasting, delegating constructor
22/2
Uke 8

GUI_1 (s17-30, 26 min) * call_back-funksjoner, Button, Menu m.m.
pointer (s33, 10 min) * pekere, adresse-operator, dereferering, C-tabell
(Utenfor pensum: CMB getting started (8 min), CMB-background (12 min))

1/3
Uke 9
myVector_1 (s7-13, 7 min) * basis vector-struktur, new for dynamisk minne som C-tabell
this (s18-20, 8 min) * få tak i "koden sitt eget objekt", this-pekeren
myVector2 (s23-28, 16 min) * minne-lekkasje, motivasjon kopi-konstruktør og tilordnings-operator, minnebruk og overvåking
cArrays-Part1 (s29-30, 11 min) * globale C-tabeller, manglende initiering, watch-vindu, peker-artimetikk
8/3
Uke 10
cArrays-Part2 (s8-12, 13 min) * C-strenger, null-terminering, 1 og 2-dimensjonale C-tabeller
callSequence (s13, 10 min) * Rekkefølge på kall av kopi-konstruktør m.m. ifm. klasser og arv
myVector3 (s14-18, 18 min) *myVector m/ initialiserings-liste, indeks-sjekk med .at(i) m.m
myVector4 (s25-29, 9 min) * generisk myVector med template, generisk programmering
linkedList (s30, 10 min) * lenket liste, pekere, nullptr
15/3
Uke 11
uniquePtr (s8-12, 11 min) * unique_ptr, make_unique, debugger step-into
myVector5 (s18-20,36, 14 min) * move, exception, iterator
listFriend (s26-28, 10 min) * friend class deklarasjon
(Utenfor pensum: CMB local testing (12 min) * Enkel testing før CMB-upload, litt om powershell, .bat-fil og file-compare i VScode
22/3
Uke 12
iterator (s4-7, 10 min) *iterator, ulike typer
algo_1 (s8-14, 11 min) * find, find_if, predikat, funksjons-objekt
map_2 (s26-27, 5 min) * map, size, insert, erase, at
12/4
Uke 15
algo_2 (s4-8, 14 min) * for_each, unique_copy, merge, transform, set-operations
algo_3 (s10-14, 10 min) *accumulate, inner_product, partail_sum, sort
C-string (s22-23, 13 min) * strcpy, strcpy_s, strcat, strncat, strchr, strstr
arguments (s29, 4 min) * int main(int argc, char* argv[ ]), kommandolinjeargumenter
13/4
Uke 15
testing (s10-16, 23 min) * enkel automatisert testing med test-cases på fil
list_and_tree (s22-28, 18 min) * Lenkes liste og binær tre, bruk av rekursjon
Sist oppdatert: .
Web Hits