TENTAMEN. Programmering Grundkurs (HI1900) Skrivtid 13:15-18:15. Tisdagen 26 april Tentamen består av 8 sidor

Relevanta dokument
TENTAMEN. Programmering Grundkurs (HI1900) Skrivtid 13:15-18:15. Tisdagen 26 april Tentamen består av 8 sidor

Programmering Grundkurs (6H2950) Grundläggande Programmering (6A2001)

Programmering Grundkurs (6H2950) Grundläggande Programmering (6A2001)

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011,

HI1024 Programmering, grundkurs TEN

KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012

TENTAMEN. Programmering Grundkurs (HI1900) Skrivtid 13:15-18:15. Fredagen 14 januari Tentamen består av 8 sidor

ÖVNINGSTENTAMEN. HF1002, 6H3120, 6H3117 Diskret Matematik. Skrivtid 10:15-13:15. Torsdagen 20 maj Tentamen består av 4 sidor.

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

Tentamen TEN1 HI

TENTAMEN. HF1002, 6H3120, 6H3117 Diskret Matematik. Skrivtid 13:15-18:15. Torsdagen 7 juni Tentamen består av 5 sidor.

Programmering Grundkurs Laboration 1

TENTAMEN. HF1002, 6H3120, 6H3117 Diskret Matematik. Skrivtid 13:15-17:15. Måndag 19 december Tentamen består av 5 sidor.

TDIU Regler

TENTAMEN. HF1002, 6H3120, 6H3117 Diskret Matematik. Skrivtid 8:15-13:15. Måndag 8 juni Tentamen består av 4 sidor.

Tentamen i. för D1 m fl, även distanskursen. lördag 26 februari 2011

TDIU Regler

tentaplugg.nu av studenter för studenter

Programmeringsolympiaden 2016

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

Problemlösning (3/5) Lösningar

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

UPPGIFT 1 V75 FIGUR 1.

TDIU Regler

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

Tentamen TEN1 HI

UPPGIFT 1 EURO. Utdata: Två rader, som för indata ovan, ser ut som följer: Före resan: bank 1 Efter resan: bank 3

Programmeringsolympiaden Kvalificering mars 2005 FIGUR 1.

Tentamen i Sannolikhetslära och statistik Kurskod S0008M

UPPGIFT 1 VÄNSKAPLIGA REKTANGLAR

TENTAMEN. Rättande lärare: Sara Sebelius & Håkan Strömberg Examinator: Niclas Hjelm Datum:

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011,

Programmering C: Tentamen of 5 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator

TENTAMEN. HF1002, 6H3120, 6H3117 Diskret Matematik. Skrivtid 13:15-18:00. Fredag 28 maj Tentamen består av 4 sidor.

TDP Regler

TDP Regler

Tentamen i. för D1 m fl, även distanskursen. lördag 28 maj 2011

Problemlösning Lösningar

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Föreläsning 3. Programmering, C och programmeringsmiljö

Laboration 0. Enhetsbokstaven anges med ett kolon efter och man läser ofta ut detta, exempelvis C:(sekolon).

TENTAMEN. HF1002, 6H3120, 6H3117 Diskret Matematik. Skrivtid 13:15-18:15. Torsdagen 16 januari Tentamen består av 5 sidor.

Planering Programmering grundkurs HI1024 HT 2014

Tentamen ges för: Tentamensdatum: Tid:

TENTAMEN. Matematik 1 Kurskod HF1903 Skrivtid 13:15-17:15 Onsdagen 25 september 2013 Tentamen består av 3 sidor

Problem 1 I en familj fanns fem barn. När barnen väger sig flera åt gången får de följande resultat:

TENTAMEN. HF1002, 6H3120, 6H3117 Diskret Matematik. Skrivtid 13:15-18:15. Onsdagen 12 mars Tentamen består av 6 sidor.

Programmeringsolympiaden 2018

Programmeringsolympiaden 2011 Kvalificering

Den här texten ska förhoppningsvis underlätta en del av anpassningarna. Det kan säkert finnas en del fel och annat tok.

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Pangea Matematiktävling FRÅGEKATALOG. Första omgång 2016 Årskurs 9

kl Tentaupplägg

TENTAMEN. Programmering Grundkurs (HI1900) Skrivtid 8:15-13:15. Onsdagen 10 juni Tentamen består av 8 sidor

Problemlösning Lösningar

Programmering. Scratch - grundövningar

Tentamen i. Programmering i språket C

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN1 - Teoretisk tentamen Tid: Torsdagen den 20 oktober 2011,

1,3,5,7,9,...,99. Skriv ett program som genererar en multiplikationstabell med följande utseende

UPPGIFT 1 TVÅPOTENSER. UPPGIFT 2 HISSEN I LUSTIGA HUSET.

Programmeringsolympiaden 2010 Kvalificering

PROGRAMMERINGSTEKNIK TIN212

Algoritmer och datastrukturer. HI1029 8,0 hp Introduktion

Planering Programmering grundkurs HI1024 HT TIDAA

Programmering Grundkurs (HI1900) Teoridel

y y 1 = k(x x 1 ) f(x) = 3 x

Tentamen, EDAA10 Programmering i Java

NetBeans 5.5. Avsikt. Projektfönster

Extramaterial till Matematik Y

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Kompletterande lösningsförslag och ledningar, Matematik 3000 kurs A, kapitel 4. b) = 3 1 = 2

Uppgift 1a (Aktiekurser utan poster)

Belopp Belopp > procent

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

52 = Vi kan nu teckna hur mycket pengar han har, just när han har satt in sina 280 kr den tredje måndagen

Vilken skillnad gör det var du placerar det? Prova båda.

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Linjär algebra, HF1904 exempel 3 Datum: xxxxxx Skrivtid: 4 timmar Examinator: Armin Halilovic

Kängurutävlingen Matematikens hopp 2018 Benjamin

Linnéuniversitetet Institutionen för datavetenskap, fysik och matematik Per-Anders Svensson

NetBeans 7. Avsikt. Projektfönster

TENTA: TDDD11 & TDDC68. Tillåtna hjälpmedel. Starta Emacs, terminal och tentakommunikationsfönster. Skicka in frågor och uppgifter

TDP Regler

Betygsgränser: För. Skriv endast på en. Denna. Uppgift. 1. (2p) 2. (2p) Uppgift. Uppgift 1) 4. Var god. vänd.

kl Tentaupplägg

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Lutande torn och kluriga konster!

3, 6, 9, 12, 15, 18. 1, 2, 4, 8, 16, 32 Nu är stunden inne, då vill vill summera talen i en talföljd

Sidor i boken Figur 1: Sträckor

Systemkonstruktion Z2

Inlämningsuppgifter, EDAF30, 2015

Planering Programmering grundkurs HI1024 HT data

TDIU01 / 725G

Tentamen i: Hydraulik och Pneumatik. Totalt antal uppgifter: Datum: Examinator: Hans Johansson Skrivtid:

Transkript:

TENTAMEN Programmering Grundkurs (HI1900) Skrivtid 13:15-18:15 Tisdagen 26 april 2011 Tentamen består av 8 sidor Hjälpmedel Förutom dator med installerad Code::Blocks, Utforskaren, Acrobat reader och Notepad (inga andra program), den kurslitteratur som använts under kursen, samt egna anteckningar, programlistningar och böcker. Dock inga egna disketter, CD-ROM eller USB-minne. Under W:\PROV\C finns program- och datafiler som kan komma till användning vid lösandet av uppgifterna. Kopiera över dessa till ditt konto. Till alla uppgifter ska ett program levereras i form av källkod (C eller CPP-fil). Dina bidrag lägger du i en katalog i roten på H:. Katalogen ska ha samma namn som prefixet i din mailadress. Exempelvis för Kalle Kula: HDI02KEKA. Namnen på lösningarna ska ges UPPG1.C till UPPG8.C. De är endast dessa filer som kommer att bedömas. Inled varje program med ditt namn på en kommentarrad. Rättningen görs genom att programmen körs ett antal gånger för olika indata. Om resultatet överensstämmer med det förväntade bedöms programmet som korrekt och ger 2 poäng. Om ett program ej kan kompileras utan fel, är det knappast troligt att det kommer att ge några poäng. I det fall där programmet läser från och eller skriver till en fil, testas programmet oftast med en annan fil än den bifogade. Betygsgränser (HI1900): Poäng 14-16 12-13 10-11 8-9 7 6 Betyg A B C D E Fx Resultatet anslås på kursens hemsida ingforum.haninge.kth.se/c i kodat skick och i Bilda Lycka till! Håkan Strömberg Håkan Strömberg 1 KTH STH

Figur 1: 1 Trädgården En trädgårdsarkitekt har designat en modell för fruktträdgårdar, en kvadratisk historia där ett antal äppelträd omgärdar ett antal päronträd. I figur 1 ser vi tre storlekar från denna modell, med 2,3 och 4 äppelträd utefter en sida. Skriv ett program som tar emot uppgift om antalet äppelträd utefter en sida och som bestämmer det totala antalet äppel- respektive päronträd i hela trädgården. Ett körningsexempel: Antal äppelträd utefter en sida? 4 Det behövs 12 äppelträd Det behövs 9 päronträd Håkan Strömberg 2 KTH STH

Figur 2: 2 Vägning Vi har 9 kulor, numrerade 1...9 och en balansvåg. Vi vet att alla kulor utom en väger lika mycket. Den avvikande kulan är lättare. Med hjälp av följande schema kan man ta reda på vilken av kulorna som är lättare än de övriga. Vägning 1 Resultat Vägning 2 Resultat Kula 1,2,3 4,5,6 V 4 5 V 5 L 6 H 4 L 7 8 V 8 L 9 H 7 H 1 2 V 2 L 3 H 1 Först placerar vi alltså kulorna 1,2,3 i vänster vågskål och 4,5,6 i höger. Om resultatet blir att högra (H som i högra) vågskålen sjunker ned (raderna 7 till 9 i tabellen), vet vi att någon av kulorna 1,2,3 är den lättare. Vi placerar då 1 i den vänstra och 2 i den högra vågskålen. Om vi får jämvikt (L som i lika) går vi till rad 8 i tabellen och ser att det är kula 3 som är den lättare. På liknande sätt kan man alltid ta reda på vilken kula som är lättare genom endast två vägningar. Skriv ett program som ställer rätt frågor (två stycken), tar emot ett av svaren V,L eller H och som efter två vägningar (frågor) skriver ut numret på den kula som är lättare. Ett par körningsexempel: 1,2,3 <-> 4,5,6? L 7 <-> 8? V Kula 8 är lättare 1,2,3 <-> 4,5,6? V 4 <-> 5? V Kula 5 är lättare Håkan Strömberg 3 KTH STH

3 Snigeln i brunnen En snigel befinner sig på botten av en torrlagt brunn. Snigeln önskar komma upp ur brunnen, som är d meter djup. Under dagen (halva dygnet) kryper han upp u meter med konstant hastighet, men på natten (andra halvan av dygnet), när han sover glider han ned n meter. Skriv ett program som tar reda på hur lång tid (i dygn räknat) han behöver för att komma upp ur brunnen. Indata till programmet är brunnens djup (d meter), antal meter uppåt under dagtid (u meter) och antal meter nedåt under natten (n meter). Dessa variabler ska vara flyttal. Snigeln startar sin resa på morgonen och hinner tillryggalägga u meter innan det blir natt (om han nu inte råkar hinna ända upp innan dess). Ett körningsexempel: Brunnens djup? 10.0 Uppåt på dagen? 6.0 Nedåt på natten? 3.5 Snigeln når friheten efter 2.42 dygn Första dagen hinner han 6 meter upp. På natten glider han ned 3.5 meter till en nivå på 2.5 meter. Nästa dag hinner han upp till 8.5 meter innan han går till sängs och glider ned till nivån 5 meter under natten. Den tredje dagen kommer han att nå sitt mål och han behöver inte hela halva dygnet till detta och kommer därför upp efter 2.42 dygn (avrundat till två decimaler). 4 Ny tentamen Figur 3: En tentamen med 4 frågor och 5 svarsalternativ Istället för den här ganska besvärliga tentamen, skulle man kunna tänka sig en så kallad multiple choice-tentamen, det vill säga en tentamen med f < 100 frågor och med 2 a 10 svarsalternativ per fråga, och där det krävs g f för att bli godkänd. I valet av f, a, g, vill man ta reda på hur stor chansen är, att den student som inte har läst en enda rad i boken, ska kunna klara sig genom att enbart chansa på svaren. Skriv ett program som tar reda på hur många procent av 10000 gissande studenter som kommer att bli godkända på en tentamen med f frågor som har a alternativ (endast ett är rätt) och där det gäller att få g rätt för att bli godkänd. Ett körningsexempel: Antal frågor? 16 Antal Alternativ? 3 Gräns för godkänt? 8 12.7% av chansande studenter kommer att bli godkända Håkan Strömberg 4 KTH STH

Figur 4: 5 Det dubblerade gatunumret. Adam har fått en märklig arbetsuppgift! Han ska klistra nummer på gatans postlådor. Husen är numrerade från 1 till n < 100, men ett av husen har två postlådor. De kommer att få samma nummer (förstås) åtskilda av A och B. För tvåsiffriga nummer klistrar han upp två siffror. Innan han startar arbetet roar han sig med att summera alla siffror han har i påsen och får summan s. Han frågar då Bertil, om han kan säga vilken postlåda, vars nummer som är dubblerat. Bertil påstår att man måste ha en dator för att kunna besvara den frågan, men eftersom han inte kan programmera får du nu uppgiften att skriva programmet. Programmet ska fråga efter vilken summa Adam fick och svara med vilket lådnummer som är dubblerat Ett körningsexempel: Summan av alla siffrorna? 66 Lådnumret 6 är dubblerat Om ingen lådnummer hade varit dubblerat hade siffersumman blivit 1+2+3+4+5+6+7+8+9+1+0+1+1+1+2+1+3+1+4 = 60 Om det nu finns 6A och 6B blir summan 66. Hade vi tagit med ett hus till hade siffersumman blivit 60 + 1 + 5 = 66 och inget utrymme finns att dubblera något nummer. Hade vi tagit till ett hus mindre hade summan blivit 55 och vi kan aldrig nå upp till summan 66 genom att dubblera något lådnummer 15. Håkan Strömberg 5 KTH STH

6 Fingeravtryck......1111......111......11......11...11.111111.1111......11...11111...111.11......1...1...11......1...11...111111.1111...11......1...11...111...11.1...1......11...11...11...11......1...1...11...11...1......11...11...1.111111.111...1...1......1...1...11...111...1.11...11...1......1...1...1...111...1...1......1...11...11...1111.111...1...1...1......1...1...1...11...11...1.11...1...1...1......1...1...1...1...11...11...11...1...1......1...11...11...1...1......1...1...1...1...11...1111.11...11...1...1...1......1...1...1...111...1.111...1...1...1......1...1...1...11...1...1.1...1...1...1...1......1...1...1...1...1...11...11...1...1...1...1......1...1...1...111.11...1.1...1...1...1...1......1..1...1...1...1...11...1...11...1...1...1...1......1...1...1...1...1...1...1...1...1...1...1......1...1...1..1...1...11.11...1...1...1...1......1...1...1...1...1...11...11...1...1...1...1..1......1..1...1...1..1...1...11...1...1...1...1...1..1...1.....1...1...1...1...1...1...1...1...1..1.....1...1..1...1...1...1...1...1.11.1.1...1...1...1...1..1...1....1...1..1...1...1...1...1...1...1..1...1..1...1....1...1...1...1...1..1...1...1...1...1...1...1...1..1......1..1...1..1...1...1...1...1..1...1...1....1...1...1...1...1...1...1...1...1...1...1...1...1..1...1....1...1...1...1..1...1..1...1...1...1...1..1...1....1...1..1...1...1...1...1...1...1...1..1...1....1..1...1...1...1...1..1...1...1...1...1..1...1...1..1...1...1..1...1..1...1...1...1...1...1..1...1..1...1...1...1...1...1..1...1..1...1...1..1...1...1...1...1..1...1..1...1...1...1..1...1..1...1...1..1...1...1......1...1...1..1...1..1...1...1...1..1...1..1...1...1...1..1...1..1...1...1...1..1...1..1...1...1...1..1...1..1...1..1...1..1...1...1...1...1..1...1...1...1...1...1..1...1..1...1...1...1..1...1...1...1...1....1..1...1..1...1..1...1...1...1..1...1...1..1...1.....1..1...1..1...1...1..1...1...1...1...1..1...1.....1..1...1...1...1...1...1...1...1..1.....1..1...1...1...1...1...1...1...1...1...1...1...1...1..1...1.....1...1..1...1...1...1...1.1...1...1...1...1..1...1......1...1..1...1...1...1...1...1...1...1...1...1..1...1......1..1...1...1...1...11...1...1...1..1...1......1...1...1..1...1...1...1...1...1...1...1...1...1...1...1......1...1...1...1...1...1...11.1.11...1...1...1...1...1......1...1...1...1...1...1...1...1...1...1...1......1...1...1...1...1...1...1...1...1...1...1...1......1...1..1...1...11...11...11...1...1...1...1...1......1...1...1...1...1...111.11...1...1...1...1......1...1...1...1...1...1...1...1...1...1...1......1...1...1...1...1...1...11...1...1...1......1...1...1...11...11.111.1111.1...1...1...1...1...1......1...1...1...1...1...1...1...1...1......1...1...1...1...11...1...1...1......1...1...1...11...11.1...111...1...1...1......1...1...1...111.1111.1...11...1...1...1......1...1...1...11...11...11...1......1...1...11...11...1111...1...1......1...1...1...111...111.1...1...11......1...1...1...11.1...11...1...1......1...11...11...11...1...11......1...11.1...1111...1...1... Adam 81.9%...11...11...1111.111111.1...11...1... Bertil 77.8%...1...11...11...1... Caesar 78.6%...1...11...11...11... David 81.2%...1...1111...1111...11... Erik 65.6%...11...11.111111...11... Filip 100.0%...111...11... Gustav 75.0%...11.11...1111... Harald 79.9%...11111.111111.1... Ivar 80.5%... Jacob 79.6%... Figur 5: Fingeravtryck funnet på mordplatsen Figur 5 föreställer ett fingeravtryck. På filen fingeravtryck.txt finns flera, bland annat ett funnet på mordplatsen. Skriv ett program som matchar det funna fingeravtrycket med ett antal fingeravtryck från misstänkta. Fingeravtrycken på filen består av 80 rader med 80 tecken på varje. Endast tecknen 1 (siffran ett) och. (punkt) förekommer. Filen inleds med ett tal n 20, som anger hur många fingeravtryck den innehåller. På nästa rad finns texten Misstänkt. Därefter följer fingeravtrycket funnet på brottsplatsen. Därefter följer n 1 avtryck som inleds med ett namn ( 12 tecken) och därefter tillhörande avtryck. Programmet ska jämföra det första avtrycket med övriga, tecken för tecken och ange i en tabell hur stor procent av fingeravtrycket som överensstämmer med det misstänkta. Ett körningsexempel: Resultatet ser vi (av utrymmesskäl) till höger om avtrycket. Av allt att döma heter mördaren Filip! Håkan Strömberg 6 KTH STH

7 Hinderbanan Figur 6: I figur 6 ser vi en hinderbana med 10 banor. De gula markeringarna är hinder (alla lika höga). Får en löpare fritt välja, väljer han troligtvis en bana med så få hinder som möjligt. Skriv ett program som bestämmer vilken av de 10 banorna som har det minsta antalet hinder. Information om banans utseende finns på filen hinder.txt. Filen inleds med ett tal n < 100 som anger på hur många platser hinder placerats ut. Därefter följer n rader med två tal s 1 och s 2 s 1. s 1 anger från och med vilken bana hindret sträcker sig och s 2 anger till och med vilken bana hindret når. Ett körningsexempel: Bana 6 med 2 hinder 8 Personnummer, Namn och Telefonnummer struct person1{ struct person2{ char personnr[12]; char personnr[12]; char telenr[12]; char namn[48]; }; }; Till denna uppgift hör två binära filer telefonnr.dat skapad med struct person1 och namn.dat, skapade med struct person2. Som framgår av postbeskrivningarna ovan innehåller den första filen personnummer och telefonnummer för ett antal personer. Den andra filen ett antal personnummer och namn. Båda filerna innehåller < 10000 poster. Man önskar nu kombinera dessa filer och vill först ta reda på hur många fullständiga uppgifter det finns, det vill säga för hur många personer man känner personnummer, namn och telefonnummer. För 8055 personer finns tre uppgifter Håkan Strömberg 7 KTH STH