Regler Student fr lmna salen tidigast en timme efter tentans start. Vid toalettbesk eller rkpaus ska pauslista utanfr salen fyllas i. All form av kontakt mellan studenter under tentans gng r strngt frbjuden. Bcker och anteckningssidor kan komma att granskas av tentavakt i samband med tentans start samt under tentans gng. Frgor om specifika uppgifter eller om tentan i stort ska stllas via tentasystemet. Systemfrgor kan stllas till assistent i sal. Ingen uppgift rttas efter tentatidens slut. S lnge en uppgift inte har betyget Underknd kan den kompletteras till godknt. Ingen kompletteringsmjlighet ges de sista tio minuterna. Inga elektroniska hjlpmedel fr medtas. Mobiltelefon ska vara avstngd och ligga i jacka eller vska. Inga ytterklder eller vskor fr frvaras vid skrivplatsen. Antal uppgifter 5 Antal sidor (exklusive denna) 5 Hjlpmedel En bok om C++ (t.ex. C++ Direkt) Ett A4-ark med egna anteckningar Betygssttning Tentan innehller fem uppgifter. Fr godknt betyg krvs minst tv avklarade uppgifter. Fr grnser fr hgre betyg, se i tabell 1. Tid (timmar) Antal uppgifter Betyg 3 3 5 4 4 5 4 3 4 Tabell 1: Grnser fr hgre betyg Bonus frn labserien Bonus kan endast utnyttjas vid frstagngstentamen. VND!
Inloggning Information Logga in p tentakontot med fljande anvndaruppgifter: Anvndarnamn: examx Lsenord: kluring1 Flj menyvalen s lngt det gr tills du ska mata in ett engngslsenord. Tag fram ditt LiU-kort och visa det fr tentavakten fr att f detta lsenord. Nr du r inloggad r det viktigt att du startar tentaklienten genom att hgerklicka p bakgrunden och vlja tentaklient i menyn. Kompilering Det finns ett antal olika alias som kan frenkla vid kompilering: g++11 Kompilering med c++11-standarden w++11 Kompilering med c++11-standard samt varningsflaggor g++11filter g++11 med gccfilter - ett program som snyggar till kompileringsmeddelanden w++11filter w++11 med gccfilter Avslutning Tryck p knappen mrkt exit i menyn lngst nere p skrmen och vlj ok. Vnta ett tag och tryck sedan p knappen Avsluta tentamen nr det r mjligt. Nr detta r gjort r det omjligt att logga in igen.
Uppgift 1 Talet 999 r lite speciellt. Om man tar ett slumpmssigt valt tal, tex 4761 och multiplicerar detta tal med 999 fr man s klart en produkt, i detta fall 4756239. Delar man upp produkten i tresiffriga tal bakifrn fr man i detta fall talen 239, 756 och 4. Tar man summan av de tresiffriga talen kommer man, enligt en vlknd tidning, alltid att f summan 999, oavsett ursprungstal! (Det finns dock vissa tal som ger en produkt av 999) Gr ett program som slumpar ut fem tal i intervallet [1, 10000] och fr varje tal skriver ut produkten nr man multiplicerar talen med 999 samt kontrollerar att summan faktiskt blir 999 enligt tabellen i krexemplet (dr s klart ursprungstalet ska vara slumpat). Observera att vi hr tagit bort inledande nollor i tripletter, ni fr dock ha dem med om ni vill. Slumptal Produkt Summering 36 35964 964+35=999 190 189810 810+189=999 29 28971 971+28=999 1045 1043955 955+43+1=999 4806 4801194 194+801+4=999
Uppgift 2 De av er som sett Star Wars vet att karaktren Yoda anvnder en, fr oss, ganska underlig talfljd. Lingvistiker har analyserat detta och mnga anser att han anvnder OSV-talfljd (dvs ordningen objekt, subjekt, verb). Att gra en fullstndig versttning frn vr normala SVO-talfljd till OSV kan vara lite jobbigt s i denna uppgift antar vi att Yoda helt enkelt vnder p meningen. Din uppgift blir drfr att skapa ett program som lter anvndaren mata in en mening. Ditt program ska sedan skriva ut meningen med orden i omvnd ordning. OBS: Du behver i denna uppgift inte bry dig om versaler och gemener eller skiljetecken som punkter och komman. Mata in en mening: Yoda r hftig Omvnd ordning: hftig r Yoda
Uppgift 3 Nr man var yngre var det hftigt att skapa egna sprk. Ett vanligt ltsassprk r rvarsprket som uppfanns av Astrid Lindgren fr Kalle Blomkvist dr varje konsonant dubblas och ett o stts in mellan dem. Vokaler och andra tecken lmnas ofrndrade. Exempelvis blir det svenska ordet apa apopa p rvarsprket. Din uppgift hr r att skapa ett program som ber anvndaren mata in en fras (en rad) p rvarsprket och sedan ska programmet skriva ut frasen p svenska. Mata in en fras p rvarsprket: hohejoj jojagog hohetoteror Anondoderorsos! Frasen p svenska: hej jag heter Anders! Körexempel 2 Mata in en fras p rvarsprket: Anonnona kokokokaror kokafoffofe Frasen p svenska: Anna kokar kaffe
Uppgift 4 Citatet Det finns bara 10 sorters mnniskor. De som frstr binra talsystemet och de som inte gr det. r en gammal goding som ni kanske hrt talas om. I denna uppgift gller det att skriva ett program som tar emot 3 positiva heltal som indata och skriver ut det heltal man fr om man tar det frsta talet tolkat som ett tal i talbasen det andra talet och omvandlar detta till talbasen det tredje talet. Antag att man startar programmet p fljande stt: GIVET: Inga talbaser utanfr intervallet [2, 10] kommer att frgas efter. Det kommer inte att testas med tal som ligger utanfr intervallet [0, 1023] i decimala talsystemet d detta kan ge upphov till sifferkombinationer som i andra talbaser inte kan lagras i en int. Det r alltid 3 argument (heltal) som anges vid programstarten. Mata in tal: 42 Mata in talbas: 10 Mata in talbas att omvandla till: 2 Talet 42 (bas 10) = 101010 (bas 2). Körexempel 2 Mata in tal: 42 Mata in talbas: 10 Mata in talbas att omvandla till: 7 Talet 42 (bas 10) = 60 (bas 7). Körexempel 3 Mata in tal: 42 Mata in talbas: 10 Mata in talbas att omvandla till: 8 Talet 42 (bas 10) = 52 (bas 8). Körexempel 4 Mata in tal: 1010 Mata in talbas: 8 Mata in talbas att omvandla till: 5 Talet 1010 (bas 8) = 4040 (bas 5).
Körexempel 5 Mata in tal: 31 Mata in talbas: 8 Mata in talbas att omvandla till: 10 Talet 31 (bas 8) = 25 (bas 10).
Uppgift 5 Ibland kan examinator f fr sig att gra en rituppgift. Hr slpper vi ls vra artistiska begvningar i snygga ascii-art bilder. Nr man vl har ritat ett msterverk vill man ju sjlvklart spara undan detta p fil. Dessvrre tar sdana bilder ofta upp stor plats (en bild som r 1024x1024 tecken stor tar ju faktiskt upp en Megabyte!). Nr allt kommer kring r det ju dock mest bara luft i sdana bilder, dr med vill man grna komprimera dessa p ngot smidigt stt. En assistent har skrivit ett program som komprimerar ascii-art bilder p fljande vis: Om det p en rad finns N st p varandra fljande lika tecken T i bildfilen s byts dessa ut mot strngen NT i den komprimerade filen. Om man t.ex. har bilden: +------+ +------+ Blir den krypterade filen: +6-+ 6 6 6 +6-+ Skriv ett program, unpack, som packar upp filer som komprimerats p ovanstende stt och skriver ut dem i terminalen. Filnamnet skall anges p kommandoraden. Om inget argument ges, eller om filen inte kan lsas ska programmet skriva ut ett felmeddelande och avbrytas. >> unpack PACKED_SQUARE.TXT +------+ +------+ Det finns en given testdatafil som innehller en komprimerad bild. Denna fil behver inte kopieras utan kan anvndas direkt som indata till ditt program genom att skriva fljande: >> unpack given_files/ascii_test_picture.txt Det r givet att det ALDRIG finns flersiffriga heltal i filen. Det r allts maximalt ett tecken som motsvarar heltalet N, d.v.s. N < 10.