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: 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 19:00 Betyg 3 2 uppg 18:00 Betyg 4 2 uppg 16:30 Betyg 5 3 uppg 18:00 Betyg 5 Lycka till med tenterandet och hoppas att alla får G på minst en uppgift idag. M.v.h. /Torbjörn (examinator)
Uppgift 1 (Korrupt tangentbord) Ditt tangentbord har gått sönder! Tyvärr har det hänt något med det så att när man matar in flera rader text så blir det helt oläsligt! Det råkar vara så att sista tecknet på första raden hamnar först på andra raden. De två sista tecknen på andra raden hamnar först på tredje raden o.s.v. Denna lilla bild illustrerar vad som händer: Det du försöker mata in. Det var en gång e ngammal man, s ominre frid och sann ingfann. Han kom tilldenna jord med stil,han for I rymdenmån ga mil! Hur det ser ut eftersom ditt tangentbord är trasigt. Du kan utgå ifrån att man alltid matar in rader som är längre än antalet rader som har matats in. Skriv ett program som läser in meningar (maximalt 100 tecken långa). Raderna matas in på det konstiga formatet som beskrivs innan. Programmet skall sedan mata ut hur raderna skall se ut om tangentbordet inte hade varit trasigt. Utmatningen är dock lite fördröjd. Den första utmatningen kommer inte för än man har matat in två rader, sedan kommer in och utmatning ske vart annan gång. Programmet skall upprepa tills användaren stänger av det med Ctrl-C. Observera att några av inmatningarna nedan avslutas med ett blanksteg för att utmatningen skall bli rätt. INMATNING: Det var en gång e INMATNING: ngammal man, s => INMATNING: ominre frid och sann => INMATNING: ingfann. Han kom => INMATNING: tilldenna jord med => INMATNING: stil,han for I => INMATNING: rymdenmån => INMATNING: ga mil! =>
Uppgift 2 (Koordinatsystem) Skriv ett program som låter användaren mata in två punkter (d.v.s. två uppsättningar X- och Y-värden), och som sedan ritar ut ett koordinatsystem. Axlarna skall ritas ut med bindestreck ('-') och vertikalix ('') och avslutas med pilar ('>' resp. 'A'). X-axeln skall vara exakt 80 tecken lång. Y-axeln skall vara exakt 24 tecken lång. Punkterna skall ritas ut med asterisker '*'. Användaren matar alltid in heltal i de korrekta intervallen. Gör koordinatsystemet så att origo hamnar i mitten. Om en punkt hamnar på en axel så skall punkten ritas ut ovanpå. Mata in punkt 1 (X,Y): 5,5 Mata in punkt 2 (X,Y): 3,0 A * * + > KRAV: Lös problemet generellt. Om man t.ex. skulle vilja modifiera programmet så att det ritar ut ett större koordinatsystem så skall man bara behöva ändra på ett fåtal ställen.
Uppgift 3 (Korrupt fil) På filen KORRUPT.TXT finns det en text. Tyvärr har det hänt något med texten som gör den tämligen oläslig! Det råkar vara så att sista tecknet på sista raden har hamnat först på näst sista raden. De två sista tecknen på näst sista raden har hamnat först på näst näst sista raden o.s.v. Denna lilla bild illustrerar vad som har hänt: gång en n, somdet var en nninggammal ma tillinre frid och sa il,fann. Han kom endenna jord med st!han for I rymd många mil Detta innebär också att de R sista tecknen på första raden hamnar på en ny rad före allt annat i filen, där R är antalet rader i filen (från början). Du kan utgå ifrån att filens alla rader är minst lika långa som antalet rader i filen. Skriv ett program som läser igenom filen och skriver ut den korrekt i terminalen. Raderna i filen är maximalt 100 tecken långa.
Uppgift 4 (Fem och ett halvt) När man frågar barn (och vissa vuxna) hur gamla de är så svarar de ofta med ett antal år "och ett halvt". Du skall i denna uppgift skapa en numerisk datatyp Year_Type som klarar av hela och halva tal. Du får använda dig av vad du vill för att åstadkomma detta. Det finns ett givet program test_year_type.adb som skall testa din kod. Du skall lägga till datatypsdefinitionen och de underprogram som behövs ovanför huvudprogrammet. Du skall göra underprogrammen Get, Put och "+" för datatypen Year_Type. Du får inte ändra på huvudprogrammets kod. Formatet för Year_Type är alltid ett positivt heltal, sedan kommer eventuellt ett '½'-tecken. Talet avslutas alltid med ordet "years". Vi får acceptera att det blandas lite svenska och engelska i denna uppgift då denna datatyp är tänkt att användas internationellt. OBS: Eftersom tecknet '½' är ett unicode-tecken behövs det två characters för att representera det. Läs därför in den delen av indatan med en två tecken lång sträng och jämför med strängen "½". Körexempel 1: Mata in en ålder: 5½ years Mata in en till ålder: 7½ years Er sammanlagda ålder är 13 years. Körexempel 2: Mata in en ålder: 6 years Mata in en till ålder: 27½ years Er sammanlagda ålder är 33½ years.