2015-03-18.kl.08-13 (TDDD87)

2015-10-29.kl.08-13
Tentaupplägg
TIPS 1:
Läs igenom ALLA uppgifterna. Välj den du känner är lättast först. Det kan gärna ta 10-20 minuter.
Försök skriva saker som kan vara problem i uppgifterna. Är det något du absolut kommer att fastna
på så kanske det är fel uppgift att ge sig på. Tiden du lägger på att noga läsa uppgifterna tjänar du in
på att välja rätt uppgift.
TIPS 2:
Kolla ibland till kommunikationsfönstret. Det kan ha kommit information till alla utan att ni skickat
in en fråga. Kanske gäller det dig också (d.v.s. den uppgift du jobbar med).
TIPS 3:
Sista timmen är vi normalt sett lite tydligare och ger lite "bättre" återkoppling på era fel. Före detta
kan man få högre betyg, så då får ni själva leta reda på vad som skall rättas till. Under hela tentan
ger vi dock information om vilket symptom felet uppvisar om vi kompletterar. Om ni är nära G
tidigt på tentan kan detta kanske ge G i slutet (vi meddelar detta i så fall). Har ni fått ett meddelande
om att detta kan ge betyg 3, men inte högre i kombination med andra uppgifter och ni är nöjda med
betyg 3 och vill gå kan ni alltid skicka ett meddelande till oss så blockerar vi de övriga uppgifterna
så att du kan få ditt betyg och gå.
TIPS 4:
Om ni har problem med kompilator, Emacs eller annat som INTE har med uppgifterna att göra, räck
upp handen så kommer en assistent. Detsamma gäller om hur man kopierar givna filer
" cp given_files/* . " eller liknande.
Frågor om själva uppgifterna tar vi i första hand via tentasystemet.
Vi hinner inte svara på frågor de sista 10 minutrarna på tentan. Då ägnar vi all tid åt att rätta uppgifter
för att alla skall hinna få svar innan ni går hem. Om det är så att ni skickar in en uppgift precis i slutet
av tentan hinner vi förstås inte, men då får ni gärna skicka ett mail för att få reda på hur det gick.
Vi rapporterar in resultaten så fort vi kan efter tentan. Det tar ett par dagar med pappershantering efter
detta så räkna med att de är i LADOK om ca en vecka. Kolla med era kompisar om de fått poäng innan
ni skickar mail till oss.
Betygsgränser:
1 uppg
2 uppg
2 uppg
3 uppg
13:00
12:00
10:30
12:00
Betyg 3
Betyg 4
Betyg 5
Betyg 5
Bonustid från laborationerna tillkommer till dessa tidsgränser.
Lycka till med tenterandet och hoppas att alla får G på minst en uppgift idag.
M.v.h.
/Torbjörn (examinator)
2015-10-29.kl.08-13
Uppgift 1 (Summera personer)
Skriv ett program som läser in fem personer, summerar dessa och skriver ut resultatet på skärmen. Med
personers summa avses summan av personernas ålder. Personerna skrivs in på egna rader (max 60
tecken) och har följande format:
Förnamn, Efternamn, Kön, Ålder
Du kan utgå ifrån att alla namn endast består av tecknen 'A'-'z' och ' ' (blanksteg).
Körexempel:
Mata in fem personer:
Torbjorn, Turbocrook, Man, 51
Erik, Electric Musician, Man, 27
Kimberly, Kidnapper, Woman, 25
Magnus, Master Thief, Man, 33
Viktor, Vandal, Man, 24
Summan blev 160.
KRAV: Inläsningen av en persons relevanta data skall ske i ett underprogram.
KRAV: Programmet skall vara generellt gjort, så att det t.ex. är enkelt att ändra från fem till sex
personer.
2015-10-29.kl.08-13
Uppgift 2 (Femton-spel)
Ett femton-spel är ett litet pussel för en spelare. Pusslet består av femton numrerade brickor som sitter i
en 4x4 ram. Det blir alltså en "tom" plats i ramen där man kan skjuta in en intilliggande bricka. Spelet
går ut på att ordna brickorna på följande vis:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
I den här uppgiften skall du slumpa ut hur spelet ser ut från början (innan det är löst). Programmet skall
ge en ny slumpad uppsättning varje gång det körs. Även den tomma platsens position skall vara
slumpad. Observera att varje bricka är unik, d.v.s. talen på brickorna förekommer endast en gång.
Körexempel:
Här är ditt slumpade femton­spel:
+­­+­­+­­+­­+
| 6|12| 3| 4|
+­­+­­+­­+­­+
|15| | 9| 2|
+­­+­­+­­+­­+
| 1| 7| 8|14|
+­­+­­+­­+­­+
|11|10| 5|13|
+­­+­­+­­+­­+
2015-10-29.kl.08-13
Uppgift 3 (Mycket Minus)
På filen MINUS.TXT ligger det många minustecken. I slutet av filen ligger också ett tal. Din uppgift är
att läsa igenom filen och sedan skriva ut talet på skärmen. Talet kan vara negativt, det beror ju på hur
många minus som ligger framför. Kom ihåg att dubbla minustecken blir positivt igen. Tre minus
innebär negativt, o.s.v. Det kan förekomma radbrytningar i filen, dessa får inte läsas med Get för
character (eftersom detta är odefinierat i språket).
Lös problemet generellt. Vi har andra testfiler (med samma format) som vi testar ditt program med.
Körexempel:
Talet i filen är ­27.
2015-10-29.kl.08-13
Uppgift 4 (Stora sedlar)
Under oktober månad fick vi ett par nya sedlar i Sverige.
Det som är nytt är att vi får en tvåhundrakronorssedel.
Om man tittar framöver kommer vi även att få nya mynt
och då får vi tillbaka tvåkronan. Det visar sig dock att
människor idag inte egentligen använder kontanter
särskilt ofta. Om man t.ex. skall köpa en ny bil eller en
villa är det helt enkelt inte praktiskt att casha eftersom
man då får stå pinsamt länge vid bankomaten. Problemet med sedlar med större valörer är själva
trycket (se bilden). Istället skulle man kunna skriva ut valören med exponentialform, och därmed öppna
upp en helt ny värld av möjligheter för riksbanken.
Skriv ett program som låter användaren mata in en valör (en 1:a, 2:a eller 5:a följt av ett antal nollor)
och som sedan skriver ut valören i exponentialform. Inmatningen avslutas med en punkt. Inläsningen
av hela valörtalet skall ske i underprogram som heter Get. Eventuel upprepning skall ske med
rekursion. Utskriften av valören i exponentialform skall ske i ett underprogram som heter Put.
Körexempel 1:
Mata in valören: 10000.
Valören i exponentialform 1*10^4
Körexempel 2:
Mata in valören: 500000.
Valören i exponentialform 5*10^5
Körexempel 3:
Mata in valören: 200000000000000000.
Valören i exponentialform 2*10^17
Körexempel 4:
Mata in valören: 1.
Valören i exponentialform 1*10^0