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. I körexemplen har vi markerat det som användaren matar in på tangentbordet med fet och kursiverad stil. Tänk på att körexemplen bara är ett exempel på när programmet körs. Testa ditt program noga och tänka över hur programmet skall fungera vid andra indata. Vi hinner normalt sett inte svara på frågor de sista 10 minuterna 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. Betygsgränser: Tid TekFak FilFak 1 poäng 19:00 Betyg 3 Betyg G 3 poäng 18:00 Betyg 4 3 poäng 16:45 Betyg VG 3 poäng 16:30 Betyg 5 >=4 poäng 18:00 Betyg 5 >=4 poäng 18:15 Betyg VG OBS: Delpoäng delas inte ut på uppgifterna. För att få poäng på en uppgift måste man alltså lösa uppgiften helt (och enligt specifikation). Lycka till med tenterandet och hoppas att alla får G på minst en uppgift idag. M.v.h. /Torbjörn (examinator)
Uppgift 1-18 sekunder i tolv [1p] Isadora står på sin balkong och fifflar med skumpaflaskan. Skall hon hinna hälla upp drickan så att vännerna kan skåla exakt på tolvslaget? Nedanför på gården springer Patrik. Han har varit hemma och hämtat en tändare så att han kan tända på sina fyrverkeripjäser som han ställt upp. Skall han hinna fram och tända på så att de avfyras precis vid tolvslaget? För att nyårsfirande skall bli lyckat vill vi ju självklart att båda skall hinna! Skriv ett program där användaren får mata in den exakta tidpunkten när Isadora börjar fiffla och när Patrik börjar springa från porten. Programmet skall sedan mata ut en tidslinje för hur det går för båda personerna. Det tar 12 sekunder för Isadora att få upp korken. Patrik har 40 meter att springa och han springer 5 m/s. Du kan utgå ifrån att användaren alltid matar in klockslag som börjar på 23:59. Tidslinjen börjar alltid vid den tidpunkt där den tidigaste personen börjar (tidigast 23:59:00) men går alltid till midnatt (00:00:00) så att man ser exakt hur många sekunder som de båda har att njuta på. När börjar Isadora? 23:59:42 När börjar Patrik? 23:59:49 T I P 42 + 43 44 45 46 47 48 49 + 50 51 52 53 + 54 55 56 + 57 58 59 00 När börjar Isadora? 23:59:52 När börjar Patrik? 23:59:46 T I P 46 + 47 48 49 50 51 52 + 53 + 54 55 56 57 58 59 00 KRAV: Då T < 10 skall tiden skrivas ut med inledande nollor.
Uppgift 2 - Mazarin [1p] Skriv ett rekursivt program som kontrollerar om en upprepande inmatning är en mazarin. eller en mazaron, eller en mazakran, etc. Mata in: rororo Din inmatning är en mazaron. Mata in: krakrakrakrakra Din inmatning är en mazakran. Körexempel 3: Mata in: strustrustrustrustru Din inmatning är en mazastrun. Körexempel 4: Mata in: ririririririririririririririri Din inmatning är en mazarin. Körexempel 5: Mata in: gege Din inmatning är en mazagen. TIPS: Inmatningen är godtyckligt lång, men du kan utgå ifrån att alla bokstäver i det upprepande mönstret är unika.
Uppgift 3 - Adventljusstake [2p] Skriv ett program som ritar ut en adventsljusstake. En sådan ljusstake består av 4 ljus där man börjar tända ljus 1 på första advent, och tänder ljus 2 på andra advent, o.s.v. Sekvensen av ljus (längderna på ljusen) blir därför strikt stigande. Längden på ljusen är slumpade mellan 1 och 6 inklusive lågan (asterisken). Eftersom det är slump iblandat bör man inte få samma ljusstake två körningar i rad (även om det är möjligt). Blanka rader ovanför ljusen får förekomma. Körexempel 3: KRAV/TIPS: Se upp för fullständig uppräkning. Som vanligt är detta INTE okej. TIPS: Använd ett fält.
Uppgift 4 - Hitta telefonnummer [2p] En spik med radioaktivitet har sabbat telefonerna på rymdstationen Feynman.Teknikerna Osorio och Preuitt har skickats ut från Bell Phone Co. för att reparera telefonledningarna men dessvärre är databasen över telefonnummer helt uppmixad också. Du måste skriva ett datorprogram för att hjälpa dem extrahera telefonnumren igen. Filen TELEFON.TXT har en massa siffror och några vågräta streck i sig. Här är ett exempel på hur filen kan se ut: 1237604781346450879634789512786567234-5482156 18923569371893746591623457134-578671439527810 12039854719028-650783465478126406713529841026 1589234576-8903645807126504958165986712985435 210459874230875467804561078561876578162578456 237145628971234986723951407267981345-79879862 149083754018942645078163458701265347861258045 14890057091367048-12-667237891526289038913894 348956728967910356896752981267597862359781673 123760478134645087963478951278656723454821560 18923569371893746591623457134-578671439527810 120398547190286507803465478126406713529841026 1589234576-8903645807126504958165986712985435 21045987423087546780456107856187657816-257845 237145628971234986723951407267981345-79879862 149083754018942645078163458701265347861258045 14890-5709136748-1236672378915262890389138945 348956728967910356896752981267597862359781673 149-08375401894264507816345870126534786125804 14890-5709136748-1236672378915262890389138945 Filens rader är alltid 45 tecken långa och det är alltid exakt 20 rader i filen. I filen gömmer det sig telefonnummer. Vi utgår ifrån att alla telefonnummer har följande format NNN-NNNNNNN, där N är en siffra. Samma siffra kan vara med i fler telefonnummer. Ett telefonnummer får inte gå över två rader. Ordningen som du skriver ut de hittade telefonnumren är inte viktig. Körexempel: Följande telefonnummer hittades: 234-5482156 134-5786714 028-6507834 576-8903645 345-7987986 134-5786714 576-8903645 345-7987986 890-5709136 748-1236672 149-0837540 890-5709136 748-1236672