entaupplägg IP 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å. iden du lägger på att noga läsa uppgifterna tjänar du in på att välja rätt uppgift. IP 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). IP 3: Om ni har problem med kompilator, Emacs eller annat som INE 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. änk på att körexemplen bara är ett exempel på när programmet körs. esta 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 utminutera 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: id 1 poäng 19:00 (21:00) Betyg 3 3 poäng 18:00 (19:30) Betyg 4 3 poäng 16:30 (17:30) Betyg 5 4-... poäng 18:00 (19:30) Betyg 5 Vid omtenta finns ingen bonustid från laborationer. OB: 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. /orbjörn (examinator)
Uppgift 1 - och RO [1p] kriv ett program som läser in ett positivt heltal N (maximalt 99999). Programmet skall därefter läsa in 3 "operationer" som skall "köras" (i ordningen man skrev dem) på talet N. Operationerna kan antingen vara "" eller "RO". En -operation innebär att man längst till höger i N lägger till en dubblett av siffran längst till höger. Om man t.ex. kör på 134 så blir det 1344. En RO-operation innebär att man flyttar siffran som är längst till höger i N längst till vänster. Om man t.ex. kör RO på 1324 så blir det 4132. Operationerna matas in på egna rader. Programmet skall slutligen skriva ut det modifierade N-värdet. Mata in N: 134 RO N blev 41344. Mata in N: 12345 RO RO RO N blev 34512. Körexempel 3: Mata in N: 21 RO N blev 1222. IP: Gör underprogram för operationerna och RO.
Uppgift 2 - amla Mynt [1p] Nathalie tycker om att samla på amerikanska 25-centsmynt (s.k. "quarters"). Motivet på dessa mynt är självklart en pampig örn på ena sidan, och på andra sidan är det ofta en delstats emblem och karta. Nathalies mål är att samla quarters från alla 50 delstater. De första 20-25 delstaterna går fort att samla, men därefter börjar hon märka att hon ofta får dubbletter. Du skall i denna uppgift simulera förloppet då Nathalie samlar mynten och skriva ut hur många mynt som hon måste samla på sig för att få tag i alla 50. Vi utgår ifrån att hon alltid får slumpade mynt och att mynt från alla delstater är lika vanliga. Ditt program skall alltså skriva ut det totala antalet mynt som det behövdes. Eftersom det är slump inblandat kan det (bör) bli olika resultat vid olika programkörningar. Efter 326 mynt har Nathalie samlat mynt från 50 delstater. Efter 252 mynt har Nathalie samlat mynt från 50 delstater. Körexempel 3: Efter 50 mynt har Nathalie samlat mynt från 50 delstater. IP: Det är inte tänkt att du i denna uppgift skall göra några statistiska beräkningar. lumpa helt enkelt förloppet och håll reda på hur många mynt totalt som Nathalie har samlat och vilka mynt som har samlats. IP 2: Det kan vara bra att använda ett fält i denna uppgift.
Uppgift 3 - Wall of ext [2p] Vissa tentauppgifter ser jobbiga ut för att det är så mycket text. Det kan kännas som att man stirrar på en "vägg av text". I den här uppgiften skall du göra livet lite lättare genom att göra ett fönster i den väggen. kriv ett program som skriver ut filen WALL_OF_EX.X med ett cirkulärt fönster. änk dig att man har sågat ett runt hål mitt i filen. ecknen som är "i hålet" skall alltså inte skrivas ut, utan blanksteg skall skrivas ut istället. Hålets diameter skall vara ungefär lika stort som textens bredd, men får vara något större eller mindre. Låt hålet vara dubbelt så bred som det är lång. Eftersom tecken är ca dubbelt så långa som de är breda så blir det snyggast så. Du kan utgå ifrån att alla rader i filen är lika långa och att filen innehåller ungefär hälften så många rader som "kolumner". Hålet skall givetvis se snyggt ut om man ändrar innehållet i den givna filen, inom ramarna för vad som har beskrivits om filen ovan förstås. Körexempel: HI I A WALL OF EX HI I A WALL OF EX HI I A WALL OF EX HI I A WALL O F EX HI I A WAL LL OF EX HI I OF EX HI I I A WALL OF A WALL OF EX HI I A W A WALL OF I I A W LL OF EX A WALL EX A WALL HI I A EX HI OF EX AL LL X I A LL X HI F I I E A W X A WALL EX I A WAL F EX I I A W LL OF E A WALL OF OF EX A WALL OF EX L OF EX HI I A WALL OF EX A WALL OF EX A WALL OF EX HI I A WALL OF EX H A WALL OF EX HI I A WALL OF EX HI I A WALL OF EX HI IP: Det kan vara lämpligt att använda någon matematisk formel för att få till själva cirkeln..ex. x² + y² = r²
Uppgift 4 - Ordaddition [3p] I korsordstidningar ser man ibland små kluringar som kan se ut ungefär så här: Det man skall klura ut är alltså vilken siffra som hör till vilken bokstav, med antagandet att bokstäver och siffror alltid kopplas ett till ett (d.v.s. t.ex. kan 9 inte representeras av både A och B, och A kan inte betyda både 1 och 2). Med andra ord har varje bokstav en unik siffra. kriv ett program som läser in de två ord á fyra tecken som "summeras". Ett par saker gäller för dessa två ord: De får bestå av fyra olika bokstäver (stora bokstäver, A-Z). Orden för sig innehåller nödvändigtvis inte alla fyra bokstäverna, men tillsammans innehåller båda orden alla fyra bokstäver. amma bokstav kan förekomma flera gånger i samma ord Bokstäverna är inte nödvändigtvis A, B, L och V. "Orden" får börja med siffran 0. Programmet skall också läsa in det ord som är "summan", med exakt 5 tecken, också bestående av de fyra olika bokstäverna (men behöver inte innehålla alla fyra). Programmet skall sedan skriva ut en giltig lösning, d.v.s. ett förslag på vad bokstäverna står för för siffror. Om det inte finns någon lösning så skall programmet ange detta. Mata in ord ett (exakt 4 tecken): BALL Mata in ord två (exakt 4 tecken): ALVA Mata in summan (exakt 5 tecken): VBVBV En giltig lösning är: B = 4 A = 9 L = 2 V = 1 Mata in ord ett (exakt 4 tecken): INE Mata in ord två (exakt 4 tecken): INNE Mata in summan (exakt 5 tecken): ENE Det finns ingen giltig lösning! BALL A = + ALVA B = VBVBV L = V = IP: I filen ADDIION.X finns det många exempel på tal som fungerar att göra "ordaddition" med. Du kan använda dem för att testa ditt program med.