Nyhetsflöde
Logga in till din kurswebb
Du är inte inloggad på KTH så innehållet är inte anpassat efter dina val.
Har du frågor om kursen?
Om du är registrerad på en aktuell kursomgång, se kursrummet i Canvas. Du hittar rätt kursrum under "Kurser" i personliga menyn.
Är du inte registrerad, se Kurs-PM för ID1218 eller kontakta din studentexpedition, studievägledare, eller utbilningskansli.
I Nyhetsflödet hittar du uppdateringar på sidor, schema och inlägg från lärare (när de även behöver nå tidigare registrerade studenter).
Absolut bästa sättat att lära sig något är att försöka lösa uppgifterna och sedan jämföra löningen med andra studenters. Genom att se olika lösningar och förstå vilka misstag man gör själv så lär man sig betydligt mer än att titta på ett facit.
Vore bra med facit för dem som bara ska skriva omtenta och pluggar själva.
Saknar facit. Osäker på hur jag ska förstå vad som är rätt lösning genom att jämföra med en annan student som undrar samma sak.
Saknar vänner. Osäker på hur jag skall få tag på dessa lösningar du pratar om.
Svar uppskattas.
Saknar både vänner och facit.Osäker på vart jag ska ta vägen.
Jag kan tyvärr inte hjälpa dig med det det, David, men här kommer lösningen på 2012-tentans första fråga. Någon annan som vill hjälpa till att fylla tomrummet?
-module(bubble).
-export([bsort/1]).
bubble([]) ->
[];
bubble([A|[]]) ->
[A|[]];
bubble([A|T]) ->
[B|R] = bubble(T),
if
B < A ->
[B|[A|R]];
true ->
[A|[B|R]]
end.
bsort([]) ->
[];
bsort([A|[]]) ->
[A|[]];
bsort(L) ->
[A|T] = bubble(L),
[A|bsort(T)].
-module(bubbles).
-export([bsort/1]).
bubble([]) ->
{done, []};
bubble([A|[]]) ->
{done, [A|[]]};
bubble([A|T]) ->
{Status, [B|R]} = bubble(T),
if
B < A ->
{more, [B|[A|R]]};
true ->
case Status of
done ->
{done, [A|[B|R]]};
more ->
{more, [A|[B|R]]}
end
end.
bsort([]) ->
[];
bsort([A|[]]) ->
[A|[]];
bsort(L) ->
{NewStatus, L2} = bubble(L),
if
NewStatus == done ->
L2;
NewStatus == more ->
[A|T] = L2,
[A|bsort(T)]
end.
Ska dagens tenta läggas upp snart så man kan gå igenom den för eventuella felaktiga lösningar?
Johan Montelius redigerade 19 december 2012
övningstentor Här är gamla tentor men årets tentamen kommer att se lite annorlunda ut. Avsnittet med den operationella semantiken är bortplockat så de andra delarna blir kanske lite större alternativt jämförelse och skillnader mellan Java, Elrang och C++ som vi pratat om en del.
* 2012-06-18.pdf
* 2011-12-16.pdf
* 2010-06-18.pdf
* 2010-12-16.pdf
Tentamen Resultatet på tentamen skall ni ha fått via Daisy. Här är de rätta svaren och lite kommentarerer om uppgifterna.¶
* 2012-12-10.pdf
Johan Montelius redigerade 20 juni 2013
övningstentor Här är gamla tentor men årets tentamen kommer att se lite annorlunda ut. Avsnittet med den operationella semantiken är bortplockat så de andra delarna blir kanske lite större alternativt jämförelse och skillnader mellan Java, Erlang och C++ som vi pratat om en del.
* 2012-06-18.pdf
* 2011-12-16.pdf
* 2010-06-18.pdf
* 2010-12-16.pdf
Tentamen Resultatet på tentamen skall ni ha fått via Daisy. Här är de rätta svaren och lite kommentarerer om uppgifterna.
* 2012-12-10.pdf
* 2013-06-04.pdf
"The first step is to implement fields, the file field.h contains a class definition Field where you have to complete the code for the member functions. [...] You also have to complete printing of the fields contained in field.cc."
Var finns dessar filer som refereras till i uppgiften?
Johan Montelius redigerade 22 november 2012
Vem har inte löst en sudoku, men har du skrivit ett program som löser en? Det knepiga i denna uppgift är kanske inte så mycket att lösa sudokun utan att hålla rätt på utnyttjandet av minne. Om man glömmer att avallokera sin a objekt så slår man snart i taket för hur mycket minne maskinen har.
* 2-2.pdf
* 2-2.zip
Nu ligger de också uppe :-)
Hej, en fråga angående funktionen "void prune(digit d)" i field.h. Man ska ta bort d från bitsettet, men det ska fortfarande vara inkluderat.
Hur ska man lyckas med detta, har jag missförstått det ifall jag trodde att alla siffror som var inkluderade var de siffror som var med i bitsettet?
Dvs, tar du bort något från settet så blir den inte längre inkluderad?
Eller hur kan man ta bort någonting från bitsettet och fortfarande ha det inkluderat?
(Just nu har jag bara Maskat bort den medelst bitwise operatorer)
d måste vara inkluderad INNAN man tar bort den. Efteråt ska den naturligtvis inte vara inkluderad. ;)
Johan Montelius redigerade 26 november 2012
* cpp V.pdf
På sida 5 har du ett ' på fel ställe (kan du hitta den?).
På sida 8 ska ss vara const.
På sida 11 har du markerat argumenten med const, men ingen referens. Missade du den eller använder du const bara för att det går?
Johan Montelius redigerade 23 november 2012
* cpp IV.pdf
= är naturligtvis höger-associativ a = b = c är lika med a = (b = c). I exemplet där vi definerar opertaor= så kommer vi först att exekvera b.operator=(c) som returnera b och därefter exekvera a.operator=(b).
I C++11 kan även konstruktorer anropa andra konstruktorer. Detta kallas för delegerande konstruktorer.
På sida 25 har du ett typo. Det står "Student s = new Student(24);", när det naturligtvis ska stå "Student* s = new Student(24);".
Nu vet jag inte vad du har sagt, men sida 33 och 34 är exempel på vad du INTE ska göra. Du måste göra en kopia på pekaren. För övrigt är minneshantering INTE svårt att få rätt. Använd smartpekare (vilket du självfallet av någon anledning inte har nämnt)!
Tack, fixat. - Jo, minneshantering är svårt, det är därför det utvecklas stöd för att hantera problemen.
Du får det att låta som om att hantera minne manuellt--med lämpliga verktyg, förstås--är väldigt svårt. Detta är inte sant.
Att hantera minneshantering utan verktyg kan dock vara svårt. Det vill jag hålla med om.
Du har typon på sida 31. Specifikt så befinner sig stjärnan på fel plats (a*) istället för (*a) och du använder komma i for-loopen istället för semikolon.
Samma sak på sida 33.
Finns det någon anledning till varför du använder new när det inte behövs? Du har också glömt delete. Eller ännu bättre, smarta pekare.
Index operatorn i vector ger odefinerat beteende om du försöker komma åt index som inte existerar, men många implementationer brukar fånga upp dessa fel i debug-kod (t ex Visual Studio). Har du provat kompilerat g++ med debug-info el. dylikt?
Här är för övrigt en bra länk för att få lite info om smarta pekare: http://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-/C9-Lectures-Stephan-T-Lavavej-Standard-Template-Library-STL-3-of-n
Det kommer säkert hjälpa väldigt mycket med labbarna.
Johan Montelius redigerade 19 november 2012
* cpp III.pdf
Tack, fixat typos.
Har inte provat med debug-info, skall se om man kan fånga en del fel vid kompilering.
Tack för länken.
Kanon ! det gick utan error . Tack
men om jag kör
$ g++ sndcopy.cc -o sndcopy
In file included from sndcopy.cc:14:0:
sndreader.h:17:21: fatal error: sndfile.h: No such file or directory
compilation terminated.
Du måste ange sökvägen till där kompilatorn kan hitta filen sndfile.h.
Du kan ange detta genom att lägga till kommandoraden -I till g++.
$ g++ -l /cygdrive/c/Users/Eman/Desktop/Labb/libsndfile-1.0.25//usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: cannot find -l/cygdrive/c/Users/Eman/Desktop/Labb/libsndfile-1.0.25/collect2: ld returned 1 exit status
det som händer ? hur kan jag göra det ?
Det ska INTE vara mellanslag mellan -I och sökvägen, så
g++ infile -o outfile -Isökväg
(Det är stort i, btw, och inte litet L.)
tack
Det funkat !
Tack så mycket
Lärare Johan Montelius redigerade 23 november 2012
Seminarium grupp 3
Lärare Johan Montelius redigerade 12 november 2012
FGästföreläsning
Hoppas kunna bjuda in två representater från idustrin som kan ge exempel på hur C++ och Erlang kan användas i störrer projekt.¶
Lärare Johan Montelius redigerade 23 november 2012
Hoppas kunna bjuda in två representater från industrin som kan ge exempel på hur C++ och Erlang kan användas i störrer projekt.
Lärare Johan Montelius redigerade 6 december 2012
Hoppas kunna bjuda in två representater från industrin som kan ge exempel på hur C++ och Erlang kan användas i större projekt.Manne Fagerlind från HiQ och Joe Armstrong från Ericsson
Finns det inga lösningar till de gamla tentor?