lu.se

Datavetenskap

Lunds Tekniska Högskola

Denna sida på svenska This page in English

Inlämningsuppgift

Uppgiften

En programmeringuppgift skall göras i C++. Uppgiften skall lösas i grupp om 2 personer och lämnas in gemensamt av varje grupp. I år finns två alternativ till uppgift. Ni ska välja och lösa en av uppgifterna nedan. 

 

 

Uppgiften ska vara inlämnad senast  klockan 08:00 den 21:e december 2020.

Inlämning görs i SAM, se uppgiftsbeskrivningen för instruktioner.

Eventuellt kan det se ut som att inlämningen fastnar vid “Processing...”, men uppgiften blir inlämnad ändå. För säkerhets skull: om detta händer, maila kursansvarig och fråga om er uppgift kommit in i systemet. Skicka inte in flera gånger.

Dispens för att lämna in uppgiften senare än ovan angiven dag kan beviljas om det finns starka skäl. Sådan dispens måste sökas hos kursansvarig i rimlig tid före sista inlämningsdag.

Uppgiftsalternativ

Containers, iteratorer och templates

Uppgiften handlar om att skapa en abstraktion som gör det möjligt att effektivt konkatenera containers utan att faktiskt kopiera några element.

Uppgiften ger främst träning på templates samt iteratorer och datastrukturer.

Uppgiften finns här: inl-concat.pdf

För att testa att man faktiskt inte kopierar något kan man använda en typ som inte går att kopiera. Ett exempel på en sådan finns i  NoCopy.h, och ett exempel på hur man skapar en std::vector av denna utan kopiering finns i NoCopyExample.cc

Kortaste vägen i en graf: Dijkstras algoritm

Uppgiften handlar om att implementera klasser för att beskriva en graf samt att implementera Dijkstras algoritm för att hitta kortaste vägen mellan noder i grafen.

Uppgiften ger träning på att implementera klasser och algoritmer enligt en given specifikation och att läsa från fil samt använda standardbibliotekets datastrukturer och algoritmer.

Uppgiften finns här: inl-dijkstra.pdf , exempel på testfall finns i dijkstra-test.tar.gz och en exempel-graf finns i graf.txt 

Notera att testfallen bara är exempel och inte utgör ett fullständigt acceptanstest. De behöver därför utökas. Notera också att den givna koden gör antaganden om vad klasser och filer heter. Om det inte stämmer med ditt program behöver du justera testfallen.