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 tre alternativ till uppgift. Ni ska välja och lösa en av uppgifterna nedan. 

 

 

Uppgiften ska vara inlämnad senast  klockan 13:00 den 13:e december 2023.

Inlämning görs i SAM, enligt dessa anvisningar.

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

Algoritmer och funktionsobjekt

Uppgiften handlar om att skriva ett program för att interaktivt filtrera en ordlista för att hitta en lösning till ordspelet Wordle.

Uppgiften ger främst träning på standardalgoritmer och funktionsobjekt, samt strängar och strömmar.

Uppgiften finns här: inl-wordle.pdf

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.