Göm menyn

TDIU08 Problemlösning och programmering

Ht1-Ht2 2020


Senaste nytt...


17/8  C++-tenta 2021-08-24
 

Hejsan!

Tentan går på distans i Zoom. Länk till RÖTT Zoom-rum: Klicka här för RÖTT Zoom-rum.

Tentaregler för tentan hittas HÄR.

Själva tentauppgifterna kan hittas HÄR efter tentans start.

Uppgifterna skickas in via SC. Se "Tentaklienten SC" i menyn till vänster för info om hur du startar denna.

Om ni får problem som inte kan lösas via Zoom eller EC, ring vårt journummer: 013-28 24 90

m.v.h. Torbjörn o Viktor


9/8  Inför C++-tenta 2021-08-24
 

Hejsan!

Information om C++-tentan 2021-08-24 kl 14-19 kommer komma ut efter anmälningstiden gått ut. Denna info kommer via mail till de som är anmälda till tentan.

Tentan kommer gå på distans via Zoom.

m.v.h. Torbjörn o Viktor


16/3  Tentauppgifter för C++-tenta 2021-03-16
 

Hej,

Själva tentauppgifterna hittar ni på följande länk:

Tentauppgifter

Själva uppgifts-pdf:en är "forbidden" fram tills kl 15:00, då låser vi upp den.

Se till att uppgradera både Zoom och Thinlinc i god tid innan tentan.
Zoom-rummet vi använder är: OBS: Det kan stå "Duggarum" när man ansluter i Zoom, men det är rätt rum som ni har anslutit till. OBS!

Zoom-ID: 684 4880 3233
Lösenord: 884278

Direktlänk: Klicka här

Om ni får problem som inte kan lösas via Zoom eller EC, ring vårt journummer: 013-28 24 90

En annan kommentar: man kan bara starta studentklienten (/courses/TDDD11/SC/smeagol) i ett visst tidsintervall. Det är bara under själva tiden man har dugga/tenta som man kan starta upp denna.

m.v.h.

Torbjörn & Viktor


12/1  Tentauppgifter för C++-tenta 2021-01-13
 

Hej,

Själva tentauppgifterna hittar ni på följande länk:

Tentauppgifter

Själva uppgifts-pdf:en är "forbidden" fram tills kl 09:00, då låser vi upp den.

Se till att uppgradera både Zoom och Thinlinc i god tid innan tentan.
Zoom-rummet vi använder är: OBS: Det står "Duggarum" när man ansluter i Zoom, men det är rätt rum som ni har anslutit till. OBS!

Zoom-ID: 684 4880 3233
Lösenord: 884278

Direktlänk: Klicka här

Om ni får problem som inte kan lösas via Zoom eller EC, ring vårt journummer: 013-28 24 90

En annan kommentar: man kan bara starta studentklienten (/examfs/scripts/SC/smeagol) i ett visst tidsintervall. Det är bara under själva tiden man har dugga/tenta som man kan starta upp denna.

m.v.h.

Torbjörn & Erik


4/1  Resultat från senaste tentan
 

Hejsan,

Resultatet från senaste Ada-tentan (4/1) är nu infört i LUPP, mail kommer snart angående tentabetyg. Om du har frågor kring uppgifterna eller din lösning, ta gärna kontakt med Viktor Olsson (viktor.olsson@liu.se).

m.v.h. Torbjörn och Erik


31/12  Tentauppgifter för tenta 2021-01-04
 

Hej,

Själva tentauppgifterna hittar ni på följande länk:

Tentauppgifter

Själva uppgifts-pdf:en är "forbidden" fram tills kl 09:00, då låser vi upp den.

Se till att uppgradera både Zoom och Thinlinc i god tid innan tentan.
Zoom-rummet vi använder är: OBS: Det står "Duggarum" när man ansluter i Zoom, men det är rätt rum som ni har anslutit till. OBS!

Zoom-ID: 684 4880 3233
Lösenord: 884278

Direktlänk: Klicka här

Om ni får problem som inte kan lösas via Zoom eller EC, ring vårt journummer: 013-28 24 90

En annan kommentar: man kan bara starta studentklienten (/examfs/scripts/SC/smeagol) i ett visst tidsintervall. Det är bara under själva tiden man har dugga/tenta som man kan starta upp denna.

m.v.h.

Torbjörn & Erik


14/12  Duggauppgifter för C++/Ada-dugga 2020-12-15
 

Hej,

Själva duggauppgifterna hittar ni på följande länk:

Duggauppgifter

Själva uppgifts-pdf:en är "forbidden" fram tills kl 13:30, då låser vi upp den.

Här kommer Zoom-rummet vi använder för duggan: ( OBS! Annat Zoom-rum än vanligt! OBS! )

Zoom-ID: 684 4880 3233
Lösenord: 884278

Direktlänk: Klicka här

Om ni får problem som inte kan lösas via Zoom eller EC, ring vårt journummer: 013-28 24 90

En annan kommentar: man kan bara starta studentklienten (/examfs/scripts/SC/smeagol) i
ett visst tidsintervall. Det är bara under själva tiden man har dugga/tenta som man kan starta upp denna.

m.v.h.

Viktor & Erik


10/12  Resultat från senaste C++-duggan
 

Hejsan,

Resultatet från senaste C++-duggan (2020-12-10) är nu infört i LUPP. Om du har frågor kring uppgifterna eller din lösning, ta gärna kontakt med din assistent i första hand för återkoppling.

m.v.h. Viktor


09/12  Resultat från senaste UPG1-tentan
 

Hejsan,

Resultatet från senaste UPG1-tentan (2020-12-08) är nu infört i LUPP. Om du har frågor kring uppgifterna eller din lösning, ta gärna kontakt med din assistent i första hand för återkoppling.

m.v.h. Viktor


09/12  Duggauppgifter för C++-dugga 2020-12-10
 

Hej,

Själva duggauppgifterna hittar ni på följande länk:

Duggauppgifter

Själva uppgifts-pdf:en är "forbidden" fram tills kl 10:30, då låser vi upp den.

Här kommer Zoom-rummet vi använder för duggan: (samma Zoom-rum "som vanligt")

Zoom-ID: 686 0089 6091
Lösenord: 200882

Direktlänk: Klicka här

Om ni får problem som inte kan lösas via Zoom eller EC, ring vårt journummer: 013-28 24 90

En annan kommentar: man kan bara starta studentklienten (/examfs/scripts/SC/smeagol) i
ett visst tidsintervall. Det är bara under själva tiden man har dugga/tenta som man kan starta upp denna.

m.v.h.

Viktor & Erik


07/12  Tentauppgifter för tenta 2020-12-08
 

Hej,

Själva tentauppgifterna hittar ni på följande länk:

Tentauppgifter

Du väljer själva om du vill skriva Ada-tentan eller C++-tentan. Notera att du inte får göra båda.

Själva uppgifts-pdf:en är "forbidden" fram tills kl 14:00, då låser vi upp den.

Här kommer Zoom-rummen vi använder för tentan. Observer att vi använder 2 Zoom-rum idag beroende på om ni tänker skriva Ada eller C++-tenta:

Zoom-ID C++: 686 0089 6091
Lösenord C++: 200882

Direktlänk C++: Klicka här

Zoom-ID Ada: 684 4880 3233
Lösenord Ada: 884278

Direktlänk Ada: Klicka här

Om ni får problem som inte kan lösas via Zoom eller EC, ring vårt journummer: 013-28 24 90

En annan kommentar: man kan bara starta studentklienten (/examfs/scripts/SC/smeagol) i ett visst tidsintervall. Det är bara under själva tiden man har dugga/tenta som man kan starta upp denna.

m.v.h.

Viktor & Erik


28/11  Duggauppgifter för C++-dugga 2020-12-03
 

Hej,

Själva duggauppgifterna hittar ni på följande länk:

Duggauppgifter

OBS! TIDIGARE TID. SE MAIL IFRÅN TORBJÖRN FÖR MER DETALJER VARFÖR

Själva uppgifts-pdf:en är "forbidden" fram tills kl 08:10, då låser vi upp den.

Här kommer Zoom-rummet vi använder för duggan: (samma Zoom-rum "som vanligt")

Zoom-ID: 686 0089 6091
Lösenord: 200882

Direktlänk: Klicka här

Om ni får problem som inte kan lösas via Zoom eller EC, ring vårt journummer: 013-28 24 90

En annan kommentar: man kan bara starta studentklienten (/examfs/scripts/SC/smeagol) i ett visst tidsintervall. Det är bara under själva tiden man har dugga/tenta som man kan starta upp denna.

m.v.h.

Viktor & Erik


30/11  Kod från dagens lektion
 

Hejsan,

Här är koden från min (distans-)lektion idag:

taco_kvall.cpp

fib_files.cpp

m.v.h.

Erik


26/11  Resultat från senaste C++-duggan
 

Hejsan,

Resultatet från senaste C++-duggan (DU C2, 23/11) är nu infört i LUPP. Om du har frågor kring uppgifterna eller din lösning, ta gärna kontakt med din assistent i första hand för återkoppling.

m.v.h. Viktor


20/11  Duggauppgifter för C++-dugga 2020-11-23
 

Hej,

Själva duggauppgifterna hittar ni på följande länk:

Duggauppgifter

Själva uppgifts-pdf:en är "forbidden" fram tills kl 10:30, då låser vi upp den.

Här kommer Zoom-rummet vi använder för duggan: (samma Zoom-rum "som vanligt")

Zoom-ID: 686 0089 6091
Lösenord: 200882

Direktlänk: Klicka här

Om ni får problem som inte kan lösas via Zoom eller EC, ring vårt journummer: 013-28 24 90

En annan kommentar: man kan bara starta studentklienten (/examfs/scripts/SC/smeagol) i ett visst tidsintervall. Det är bara under själva tiden man har dugga/tenta som man kan starta upp denna.

m.v.h.

Viktor & Erik


19/11  Kod från dagens lektion
 

Hejsan,

Dagens lektionsuppgift var från en gammal tenta, ni hittar sådana tentor under "Gamla Tentor" i menyn till vänster. (Just denna var från kursens föregångare TDIU01).

Lösningsförslaget hade lite annorlunda approach än hur vi löste det på lektionen (vi fokuserade mest på vector och struct) så jag lägger här även upp koden från min lektion.

m.v.h.

Erik


18/11  Morgondagens lektion (torsdag 8-10) går även på distans
 

Hejsan,

Morgondagens lektion (torsdag 19/11, kl 8-10) går även på distans för den som kan eller vill delta på campus. Genomgången hålls i samma zoom-rum som föreläsningarna.

m.v.h.

Erik


17/11  "Headerguards" (eller "includeguards")
 

I slutet på föreläsningen idag så hade vi tre filer:

poster.cpp med själva huvudprogrammet. book.h med deklarationen av typen Book, och funktionsdeklarationer. book.cpp med funktionskroppar.

I poster.cpp gör vi #include "book.h" Notera att vi här gör " för headers som vi själva skapar, och dessa måste ligga i samma mapp som filerna som gör inkluderingen.

Nu har vi en bra datatyp för att hantera böcker, men vi skulle även kunna skapa en header-fil med en datatyp för hela bokhyllor. T.ex. genom att ha en vector. Huvudprogrammet skulle då kunna håla reda på en hel uppsättning böcker.

Låt oss låtsas som att vi har en bookcase.h också. Då kommer denna behöva ha tillgång till book.h för att kunna använda Book. I det läget har vi inkluderingar i flera steg:

        poster.cpp
        |        |
        |        V
        |    bookcase.h
        |        |
        V        V
        book.h
        

Pilarna här motsvarar inkluderingar.

Problemet ligger nu i hur dessa inkluderingar går till. Som jag nämnde på föreläsningen görs detta av preprocessorn, som helt enkelt klipper in koden. Det som då är tråkigt är att t.ex. deklarationen av Book, d.v.s:

        struct Book_Type
        {
        ...
        };
        

kommer ju faktiskt med två gånger när vi kompilerar poster.cpp! En gång för att vi direkt klipper in den från book.h och en gång från boocase.h eftersom den i sin tur klippt in den från book.h.

Detta kan leda till tråkiga kompileringsfel om "multipla deklarationer".

Hur löser man då detta? Jo, tricket är att på något sätt markera i h-filen att detta bara skall tas med en gång. Det man då kan göra är att skapa en sk. Include Guard. Man utnyttjar då preprocessorns förmåga att själv kunna hålla koll på symboler, och att preprocessorn har egna if-satser. Man kan t.ex. skriva så här till preprocessorn:

        #define PELLE 16
        

Då kommer alla förekomster av PELLE bytas om 16 i koden. Om vi utelämnar 16 så kommer PELLE bytas ut mot 0. Man kan också skriva så här:

        #ifdef PELLE
      

#endif

Vilket innebär att om symbolen PELLE är definierad så tar vi med det som står i ifsatsen, annars så hoppar vi över detta stycke.

Nu skall jag direkt säga att detta är mycket "hackigt" och gammal C-stil. Det finns nästan alltid något modernare, säkrare och snyggare sätt att lösa sina problem än att utnyttja preprocessorn. För vårt nuvarande problem finns det dock inte och vi får modifiera book.h på detta sätt:

        #ifndef BOOK__H
        #define BOOK__H
      

// Det som fanns i book.h sedan tidigare // ...

#endif

Detta kan man tolka på följande vis:

        "Om följande symbol INTE är definierad: BOOK_H"
        "definiera BOOK_H"
      

// Det som fanns i book.h sedan tidigare // ... "..slut på if-satsen"

Symbolen BOOK__H är godtyckligt vald och kunde ha varit vilken identifierare som helst, men man brukar ta samma som filnamnet, fast med stora bokstäver och _ istället för punkt.

Rent logiskt så blir det så att när preprocessorn läser igenom filen första gången så finns inte symbolen BOOK_H, preprocessorn definierar den och tar med stycket. Följande gånger som preprocessorn behandlar filen så är symbolen redan definierad och koden i book.h tas INTE med - fiffigt!

Det finns i nuläget ett alternativ till detta. Jag tar upp det för att det är mycket vanligt att det används istället för "include guards". Det man istället då gör är att sätta följande rad kod längst upp i book.h:

        #pragma once
        

Då säger man till att denna fil bara skall tas med en gång. #pragma once är inte med i c++-standarden MEN nästan alla kompilatorer stöder detta, så man kan använde det ganska riskfritt.

Tyvärr är detta problem något som inte kan lösas snyggare än dessa två sätt. Det är på gång med "modules" i c++, men vi får nog vänta ett par år till med det och acceptera att här har Ada överläge så länge.

Det var allt om detta.

Tack och hej!


12/11  Zoom-rum för laborationer framöver
 

Hejsan,

Framöver kommer ni hitta länkar till zoom-rummen för laborationer i "Schema över grupper". Klicka helt enkelt på länken i schemat för att komma till rätt Zoom-rum.

m.v.h. Erik


6/11  Tentappgifter för tenta 2020-11-10
 

Hej,

Själva tentauppgifterna hittar ni på följande länk:

Tentauppgifter

Själva uppgifts-pdf:en är "forbidden" fram tills kl 14:00, då låser vi upp den.

Om ni får problem som inte kan lösas via Zoom eller EC, ring vårt journummer: 013-28 24 90

Här kommer Zoom-rummet vi använder för tentan: (samma som duggan)

Zoom-ID: 686 0089 6091
Lösenord: 200882

Direktlänk: Klicka här

En annan kommentar: man kan bara starta studentklienten (/examfs/scripts/SC/smeagol) i ett visst tidsintervall. Det är bara under själva tiden man har dugga/tenta som man kan starta upp denna.

m.v.h.

Viktor & Erik


3/11  Dagens laborationer går på distans via Zoom
 

Hejsan,

Även dagens (tisdag 3/11) laborationer kommer att gå på distans (se meddelandet nedan om handledartiderna senare i veckan). För dagen gäller dock följande zoom-rum:

        Tisdag kl 13-15 (endast grupp A):
        Di1a_A1, Di1a_A2 - ID: 685 6125 2608, lösen: 123456, Erik Nilsson, erik.nilsson@liu.se
        Di1b_A1, Di1b_A2 - ID: 650 9655 5794, lösen: 920419, Hanna Rissler, hanna.rissler@liu.se
        El1_A1, El1_A2   - ID: 672 8645 8931, lösen: 678302, Jenny Hanås, jenny.hanas@liu.se
      

Tisdag kl 17-19 (endast grupp B): Di1a_B1, Di1a_B2 - ID: 693 9614 3955, lösen: 072066, Fabian Ovik Karlsson, fabian.ovik.karlsson@.liu.se Di1b_B1, Di1b_B2 - ID: 647 1551 7323, lösen: 987654, Martin Jonsson, martin.jonson@liu.se El1_B1, El1_B2 - ID: 650 9655 5794, lösen: 920419, Hanna Rissler, hanna.rissler@liu.se


2/11  Handledning på fredag den 6/11 kl 15-17 och måndag den 9/11 kl 10-12
 

Hejsan,

På fredagen den 6/11 kl 15-17 och måndagen den 9/11 kl 10-12 är det "handledartid". Detta är i princip ett lab.-pass på distans. För detta kommer vi använda Zoom. Ni kommer att få ett visst Zoom-rum beroende på vilken labgrupp ni tillhör (se nedan).

Sedan kommer det gå till på följande vis. Ni jobbar på via thinlinc (eller om ni har installerat mjukvara på era egna maskiner). Tänk på att inte köra helskärmsläge i thinlinc (tryck på F8 för att komma åt inställningar) så att ni kan se Zoom samtidigt, precis som på duggan. När ni behöver hjälp ansluter ni till Zoom-rummet och kommer då att hamna på kö i väntrummet. Assistenten släpper in er en och en och svarar på era frågor och/eller diskuterar med er. Nar man fått hjälp/är klar lämnar man mötet helt, och ansluter igen när man behöver hjälp nästa gång. På så sätt blir det lite rättvist också.

OBS: ni måste själva lämna mötet, om vi tvingas göra "remove" på er så kan ni inte komma in igen. Det vill vi helst inte behöva göra...

        För fredagen gäller följande rum:
        Di1a_A1, Di1a_A2 - ID: 685 6125 2608, lösen: 123456, Erik Nilsson, erik.nilsson@liu.se
        Di1a_B1, Di1a_B2 - ID: 693 9614 3955, lösen: 072066, Fabian Ovik Karlsson, fabian.ovik.karlsson@.liu.se
        Di1b_A1, Di1b_A2 - ID: 650 9655 5794, lösen: 920419, Hanna Rissler, hanna.rissler@liu.se
        Di1b_B1, Di1b_B2 - ID: 672 8645 8931, lösen: 678302, Jenny Hanås, jenny.hanas@liu.se
        El1_A1, El1_A2   - ID: 647 1551 7323, lösen: 987654, Martin Jonsson, martin.jonsson@liu.se
        El1_B1, El1_B2   - ID: 640 982 7431,  lösen: AdaArKul, Simon Törnqvist, simon.tornqvist@liu.se
      

För måndagen gäller följande rum: Di1a_A1, Di1a_A2 - ID: 688 0968 7221, lösen: 827549, Alma Wärnsater, alma.warnsater@liu.se Di1a_B1, Di1a_B2 - ID: 614 9592 1345, lösen: 001337, Alice Paulsen, alipa232@student.liu.se Di1b_A1, Di1b_A2 - ID: 628 9925 5516, lösen: 161567, Christoffer Österberg, chros928@student.liu.se Di1b_B1, Di1b_B2 - ID: 672 8645 8931, lösen: 678302, Jenny Hanås, jenny.hanas@liu.se El1_A1, El1_A2 - ID: 637 9632 9764, lösen: 796797, Joel Melkersson Dalén, joeme633@student.liu.se El1_B1, El1_B2 - ID: 652 1650 0338, lösen: 011340, Johanna Lundin, johlu784@student.liu.se

Hoppas detta är klart och tydligt.

m.v.h.

Erik


22/10  Schema för HT2 publicerat
 

Hejsan,

Schemat för HT2 finns nu under "Schema över grupper" i menyn till vänster.

m.v.h. Viktor


16/10  Resultat från dugga 5
 

Hejsan,

Resultatet från dugga 5 (16/10) är nu infört i LUPP. Om du har frågor kring uppgifterna eller din lösning, ta gärna kontakt med din assistent i första hand för återkoppling.

m.v.h. Viktor


12/10  Duggauppgifter för dugga 2020-10-16
 

Hej,

Själva duggauppgifterna hittar ni på följande länk:

Duggauppgifter

Själva uppgifts-pdf:en är "forbidden" fram tills kl 10:30, då låser vi upp den.

Om ni får problem som inte kan lösas via Zoom eller EC, ring vårt journummer: 013-28 24 90

En annan kommentar: man kan bara starta studentklienten (/examfs/scripts/SC/smeagol) i ett visst tidsintervall. Det är bara under själva tiden man har dugga/tenta som man kan starta upp denna.

m.v.h.

Viktor & Erik


7/10  Handledning på onsdag 10-12
 

Hejsan,

Idag kl 10-12 är det "handledartid". Detta är i princip ett lab.-pass på distans. För detta kommer vi använda Zoom. Ni kommer att få ett visst Zoom-rum beroende på vilken labgrupp ni tillhör (se nedan).

Sedan kommer det gå till på följande vis. Ni jobbar på via thinlinc (eller om ni har installerat mjukvara på era egna maskiner). Tänk på att inte köra helskärmsläge i thinlinc (tryck på F8 för att komma åt inställningar) så att ni kan se Zoom samtidigt, precis som på duggan. När ni behöver hjälp ansluter ni till Zoom-rummet och kommer då att hamna på kö i väntrummet. Assistenten släpper in er en och en och svarar på era frågor och/eller diskuterar med er. Nar man fått hjälp/är klar lämnar man mötet helt, och ansluter igen när man behöver hjälp nästa gång. På så sätt blir det lite rättvist också.

OBS: ni måste själva lämna mötet, om vi tvingas göra "remove" på er så kan ni inte komma in igen. Det vill vi helst inte behöva göra...

        Di1a_A1, Di1a_A2 - ID: 685 6125 2608, lösen: 123456, Erik Nilsson, erik.nilsson@liu.se
        Di1a_B1, Di1a_B2 - ID: 693 9614 3955, lösen: 072066, Fabian Ovik Karlsson, fabian.ovik.karlsson@.liu.se
        Di1b_A1, Di1b_A2 - ID: 650 9655 5794, lösen: 920419, Hanna Rissler, hanna.rissler@liu.se
        Di1b_B1, Di1b_B2 - ID: 636 0787 2260, lösen: 342670, Didrik Bergström, didbe513@student.liu.se
        El1_A1, El1_A2   - ID: 647 1551 7323, lösen: 987654, Martin Jonsson, martin.jonsson@liu.se
        El1_B1, El1_B2   - ID: 614 9592 1345, lösen: 001337, Alice Paulsen, alipa232@student.liu.se
        

En sak som vi har märkt händer ibland i zoom är att det står fel text i väntrummet. Det kanske t.ex. står "Föreläsning Ada" när ni ansluter till mitt zoom-rum, men så länge ni har skrivit in rätt ID och lösen från tabellen ovan så kommer ni komma in rätt. Detta är troligtvis en bug i Zoom (någon gjorde fel på en "Put" någonstans :-)

Jag har även skrivit dit mailadresserna i tabellen ovan så att ni kan maila er assistent om något går fel. Själva labfrågorna tar vi dock helst via Zoom just under handledningspasset. Utanför labtid kan man dock alltid maila frågor till sin laborationsassistent.

Hoppas detta är klart och tydligt.

m.v.h.

Erik


6/10  Resultat från dugga 4
 

Hejsan,

Resultatet från dugga 4 (6/10) är nu infört i LUPP. Om du har frågor kring uppgifterna eller din lösning, ta gärna kontakt med din assistent i första hand för återkopplning.

m.v.h. Viktor


5/10  Duggauppgifter för dugga 2020-10-06
 

Hej,

Själva duggauppgifterna hittar ni på följande länk:

Duggauppgifter

Själva uppgifts-pdf:en är "forbidden" fram tills kl 13:30, då låser vi upp den.

Om ni får problem som inte kan lösas via Zoom eller EC, ring vårt journummer: 013-28 24 90

En annan kommentar: man kan bara starta studentklienten (/examfs/scripts/SC/smeagol) i ett visst tidsintervall. Det är bara under själva tiden man har dugga/tenta som man kan starta upp denna.

m.v.h.

Viktor & Erik


30/9  Resultat från dugga 3
 

Hejsan,

Resultatet från dugga 3 (30/9) är nu infört i LUPP. Om du har frågor kring uppgifterna eller din lösning, ta gärna kontakt med din assistent i första hand för återkopplning.

m.v.h. Viktor


29/9  Duggauppgifter för dugga 2020-09-30
 

Hej,

Själva duggauppgifterna hittar ni på följande länk:

Duggauppgifter

Själva uppgifts-pdf:en är "forbidden" fram tills kl 10:30, då låser vi upp den.

En annan kommentar: man kan bara starta studentklienten (/examfs/scripts/SC/smeagol) i ett visst tidsintervall. Det är bara under själva tiden man har dugga/tenta som man kan starta upp denna.

m.v.h.

Viktor & Erik


24/9  Resultat från dugga 2
 

Hejsan,

Resultatet från dugga 2 (23/9) är nu infört i LUPP. Om du har frågor kring uppgifterna eller din lösning, ta gärna kontakt med din assistent i första hand för återkopplning.

m.v.h. Erik


23/9  Duggauppgifter
 

Hej,

Själva duggauppgifterna hittar ni på följande länk:

Duggauppgifter

Själva uppgifts-pdf:en är "forbidden" fram tills kl 10:30, då låser vi upp den.

En annan kommentar: man kan bara starta studentklienten (/examfs/scripts/SC/smeagol) i ett visst tidsintervall. Det är bara under själva tiden man har dugga/tenta som man kan starta upp denna.

m.v.h.

Viktor & Erik


23/9  Kommandoradsargument
 

Hejsan,

Eftersom jag inte hann med att ta upp kommandoradsargument på föreläsningen och det inte finns någon vidare beskrivning i labhandledningen tar jag och kompletterar här med lite information om just kommandoradsargument.

Först måste man förstå vad detta nu är. Det är så att när man startar upp ett program så skriver man kanske vanligtvis bara programnamnet, fast med ./ framför, i terminalen t.ex:

        ./momstabellen
        

Då kör programmet igång. Men man kan också skriva in mer saker direkt på samma rad när man kör programmet. T.ex:

        ./momstabellen hejhej 133 lite_text 3.14
        

Dessa kallas för "argument" eller "kommandoradsargument" och finns faktiskt tillgängliga inne i programmet om man senare vill komma åt dem. Man behöver dock använda ett särskilt paket som heter Ada.Command_Line. I detta paket finns det i huvudsak två funktioner som är av intresse:

        Argument_Count    - En funktion som returnerar antalet parametrar
        som skickades med när programmet startade. Det
        är 0 i vårt första exempel och 4 i vårt andra.
      

Argument - En funktion som tar en heltalsparameter N och returnerar det N:te argumentet som skrevs in på kommandoraden.

Om jag alltså i programmet momstabellen.adb gör följande:
        with Ada.Text_IO;   use Ada.Text_IO;
        with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
        with Ada.Command_Line;   use Ada.Command_Line;
      

procedure Momstabellen is

begin Put(Argument_Count, width => 0); New_Line; Put(Argument(1)); end Momstabellen;

Och vi kör andra exemplet från ovan (det när jag startade programmet med "hejhej 133" o.s.v.) Så kommer jag alltså få ut talet 4 och strängen "hejhej".

Det man skall veta är att Argument-funktionen returnerar alltid en sträng, och allt som skrivs in på kommandoraden är strängar. Även om jag skriver in 3.14 är det alltså inte en float utan strängen "3.14". Därför kan det vara bra att veta hur man omvandlar strängar som innehåller tal till motsvarande datatyp. Det kan man göra så här:

        I : Integer;
        F : Float;
        begin
        I := Integer'Value("133"); -- I blir heltalet 133
        F := Float'Value("3.14");  -- F blir flyttalet 3.14
        
En sista sak som är bra att veta är att man alltid bör kontrollera att man har fått argument till sitt program innan man försöker använda dem. Om jag t.ex. kör mitt momstabell-program från ovan men inte skriver in några argument, d.v.s. om jag bara startar det med:
        ./momstabell
        
Då kommer Argument-funktionen att krascha med Constraint_Error, eftersom den inte kan plocka fram det första argumentet.

Det är ungefär allt man behöver kunna om kommandoradsargument. Det kan vara smidigt ibland när man vill få indata till programmet på direkten och inte låta programmet läsa in det med Get. (Många linux-kommandon funkar ju så).

Lättaste sättet att lära sig detta är nog dock att sätta sig på laboration och testa själv, och sedan diskutera med assistent om man kör fast eller har frågor. Det rekommenderar jag varmt.

Hoppas allt går bra i övrigt med kursen, ha en fin vecka.

m.v.h. Erik Nilsson


11/9  Duggauppgifter
 

Hej,

Själva duggauppgifterna hittar ni på följande länk:

Duggauppgifter

Själva uppgifts-pdf:en är "forbidden" fram tills kl 10:30, då låser vi upp den.

En annan kommentar: man kan bara starta studentklienten (/examfs/scripts/SC/smeagol) i ett visst tidsintervall. Det är bara under själva tiden man har dugga/tenta som man kan starta upp denna.

m.v.h.

Viktor & Erik


10/9  Zoom-rum för duggorna i kursen
 

Hej,

Här kommer Zoom-rummen vi använder för duggorna i kursen.

Zoom-ID: 686 0089 6091
Lösenord: 200882

Direktlänk: Klicka här

m.v.h.

Viktor


7/9  Zoom-video och snabbstartsguide för duggor och tentor
 

Hej,

Under "Distansdatortenta" i menyn till vänter finns nu en snabbstartsguide inför duggor (och tentor). I den guiden finns det även länkat en video för hur Zoom kommer användas under dessa pass.

m.v.h.

Erik & Viktor


3/9  Filer för dagens dugga
 

Hej,

Två "testuppgifter" finns nu HÄR för dagens dugga. Filen markerad med "92MAXX" innehåller en uppgift där man behöver använda Get_Line, medans den andra filen inte gör det.

Observera att denna dugga endast är diagnostisk och inte betygsgrundade på något sätt.

m.v.h.

Viktor


25/8  Välkommen till första föreläsningen på Zoom!
 

Hejsan!

Välkommen till första föreläsningen i din grundläggande programmeringskurs, måndagen den 31:a augusti kl 08:15.

Föreläsningen (och följande föreläsningar) kommer hållas på distans i följande Zoom-rum:

        ID: 621 6630 4812
        Passcode: 555444
        

Ni hittar information om zoom (och inloggning via SSO) på liU:s gemensamma sida: Klicka här

När ni ansluter kommer ni hamna i ett väntrum. Vi släpper in er när föreläsningen börjar (vid 08.15).

Ett par regler som kommer gälla:

  • Vi kommer ha samma zoom-rum för alla föreläsningar (om inget annat anges).
  • Vi kommer att kräva att ni är inloggade med SSO (d.v.s. med liu-id), dock inte på första föreläsningen där vi tillåter icke-inloggade "guests". Om ni är guests så vill vi ändå att ni byter ert namn till ert riktiga namn, då vi vill veta vilka som sitter på föreläsningen (man högerklickar på sig själv i zoom för att göra detta).
  • Frågor under föreläsningen ställs i chatten som vi då och då kollar av. Inget annat får skrivas i chatten (typ hälsningar, skämt m.m.). Vi tolererar inte spammning.
  • Man får inte spela in ljud eller bild på föreläsningen, fotografera eller skärmdumpa (gäller på vanliga föreläsningar också).

I övrigt finns all kursinformation på denna kurshemsida.

Åter igen: varmt välkommen till kursen!

m.v.h.

Kursledarna

Erik Nilsson

Viktor Olsson

Torbjörn Jonsson

Emma Enocksson Svensson


13/8  Kurshemsidan uppdaterad
 

Hejsan, nu skall det absolut mästa av den relevanta informationen för årets kursomgång finnas på dessa sidor.

OBS: Omtentan för DAT1 som går nu i augusti kommer ske på distans, läs mer om upplägget under "Distansdatortenta" i menyn till vänster.

m.v.h. Erik (kursledare)



Sidansvarig: Viktor Olsson
Senast uppdaterad: 2020-08-13