[ sida 1 ] Introduktion till Programutveckling från Information till Tillämpning (7,5 hp) Provmoment: Ladokkod: Tentamen ges för: Tentamen (5 hp) 21IP1A ASYST14h Datum och tid: 2014-12-16, kl 09.00 – 13.00 Hjälpmedel: Inga hjälpmedel tillåtna Rättningstiden för en tentamen vid HIT är högst 20 arbetsdagar (ca 4 veckor). Utöver rättningstiden tillkommer administrativ tid för StudentCentrum och administration för distribution av tentamen samt inregistrering av resultat. Resultatet bör därför vara synligt på ”MittKonto” senast inom 5 veckor efter skrivningstillfället. Betyg: Maxpoäng på denna tentamen är 40 poäng. För betyget Godkänd på tentamen krävs minst 20 poäng. För betyget Väl Godkänd på tentamen krävs minst 30 poäng. Allmänna anvisningar: 1. Skriv endast på ena sidan av pappret, ej fram och baksida. 2. Ange tydligt till vilken fråga svaret hör. 3. Lägg svaren i samma ordning som frågorna i tentamenshäftet 4. Svårlästa svar kan inte rättas! 5. Ansträng er att besvara frågorna tydligt. 6. Markera på omslaget till tentamen vilka frågor du lämnat svar på. 7. Om du finner uppgifterna i tentamenstexten ofullständiga skall du göra egna antaganden för de uppgifter du saknar. Redovisa dina egna antaganden. Samtliga frågor besvaras med kurslitteratur och föreläsningar som utgångspunkt. Om du använt ytterligare informationsmaterial för dina svar, anger du från vilket material i dina svar. Ett tips är att du ägnar som första steg lite tid åt att gå igenom frågorna för att därigenom planera och disponera tiden på bästa sätt. Du bör även vid denna inspektion fundera lite över hur frågan är formulerad för att uttolka frågans intention. Begrepp som t ex, diskutera, exemplifiera, beskriv och förklara säger något om frågans innebörd och hur du bör svara. Lycka till med tentamen! Carina Hallqvist, fråga 1, 3-8 (070-7614048) Björn Abelli, fråga 2 (0709-955910) OBS!! Vid en skriftlig tentamen måste studenten visa att hen har tillräckliga kunskaper inom problemområdet. Många gånger är det möjligt att ge exempel och illustrera, ibland det bästa eller till och med det enda sättet, och kan påverka poängsättningen för svaret. Om du anser att en frågeställning inte är komplett, så är det upp till dig att komplettera med eventuellt saknade förutsättningarna. I sådana fall måste du också ange eventuella tillkommande förutsättningar i ditt svar. [ sida 2 ] Markera rätt svar för kryssfrågorna med ett tydligt X i därför avsedd ruta i svarsfälten nedan. ! På kryssfrågorna är endast ett svar korrekt. Om mer än en ruta är ikryssad på en fråga räknas det som ett felaktigt svar. Svarsformulär för fråga 1 1.1 "A "B "C "D 1.6 "A "B "C "D 1.11 "A "B "C "D 1.16 "A "B "C "D 1.2 "A "B "C "D 1.7 "A "B "C "D 1.12 "A "B "C "D 1.17 "A "B "C "D 1.3 "A "B "C "D 1.8 "A "B "C "D 1.13 "A "B "C "D 1.18 "A "B "C "D 1.4 "A "B "C "D 1.9 "A "B "C "D 1.14 "A "B "C "D 1.19 "A "B "C "D Varje korrekt svar ger 0,5 poäng, dvs. max 10 poäng för fråga 1. Glöm inte att lägga denna sida i tentamenshäftet! 1.5 "A "B "C "D 1.10 "A "B "C "D 1.15 "A "B "C "D 1.20 "A "B "C "D [ sida 3 ] Delfrågor för fråga 1. Kryssa i dina svar på sidan 2! 1.1. Vad kallas den katalog i katalogträdet som ligger på högsta nivån? A. B. C. D. Överordnad katalog (Parent directory) Underkatalog (Subdirectory) Rotkatalog (Root directory) Arbetskatalog (Working directory) För uppgifterna 1.2 – 1.4, matcha nätverkstopologin med lämpligaste beskrivning 1.2. Busstopologi 1.3. Stjärntopologi 1.4. Ringtopologi A. Noderna är sammankopplade i en loop. Alla meddelanden går i en riktning. B. Noderna är kopplade till en centrum-nod genom vilken alla meddelanden går. C. Noderna inom nätverket är hierarkiskt länkade till varandra. D. Noderna är kopplade via en kommunikationslinje via vilken alla meddelanden går i båda riktningarna. 1.5. Vilket av följande är en nätverksenhet som dirigerar ett paket till sin slutdestination? A. modem B. gateway C. nod D. router För uppgifterna 1.6 – 1.9, matcha filsuffixet med vilket innehåll vi bör kunna förvänta oss 1.6. 1.7. 1.8. 1.9. mp3 vb jpg doc A. ordbehandlingsdokument. B. ljudfil. C. bildfil. D. källkodsfil 1.10. Vilket av följande är en del av en HTML-tagg och ger ytterligare information om elementet? A. HTML B. attribut C. märkningsspråk (markup language) D. hypertext [ sida 4 ] För uppgifterna 1.11 - 1.14, matcha ordet eller akronymen med med den utelämnade blanka delen. 1.11. URL 1.12. Java applet 1.13 Tag 1.14. XML A. B. C. D. ___________ sätts in i dokument för att beskriva hur information skall visas/presenteras. En _____________är ett program som designats för att vara inbäddat i HTML dokument. Delar av en ________ är en dators värdnamn (hostname) där information lagras. ____________ är ett metaspråk (metalanguage). 1.15. Vilket av följande beskriver en fil som måste läsas eller skrivas på ett linjärt sätt? A. binärfil B. sekventiell fil C. textfil D. katalog 1.16. Vilket av följande innehåller ett register för programinstruktioner? A. B. C. D. kontrollenheten arithmetisk/logiska enheten sekundärminnet primärminnet För uppgifterna 1.17 - 1.20, matcha grinden med ett korrekt påstående om den. 1.17. AND 1.18. NAND 1.19. OR 1.20. NOT A. B. C. D. Ger utsignal 0 endast om alla insignaler är 1. Ger utsignal 1 endast om alla insignaler är 1. Ger utsignal 0 endast om alla insignaler är 0. Inverterar insignalen. Glöm inte att lägga svarssidan (sida 2) för kryssvaren i det gula tentamenshäftet! För de följande frågorna bör svaren vara korta och koncisa, dvs. att det inte borde behövas några längre essäer. Svaret för respektive fråga skall skrivas på ett separat blad, tydligt angivet vilken fråga det är ett svar på. [ sida 5 ] Fråga 2 (10p) Nedanstående program börjar med att användaren matar in ett positivt heltal, varefter programmet skriver ut talet i dess binära form, dock i omvänd ordning jämfört vad vi är vana med. a) Vilken rad visar att detta är en så kallad rekursiv metod? Ange radnumret och motivera varför det gör det till en rekursiv metod.(2p) b) Vad blir utskriften om användaren matar in talet 10? (1p) c) Alla rekursiva metoder kan göras om så att det fungerar utan rekursion. Skriv om metoden BinaryPrint utan att förändra metodsignaturen, så att den fortfarande skriver ut talet i sin binära form, men utan att använda rekursion. (7p) 1 using System; 2 3 class Program 4 { 5 static void Main(string[] args) 6 { 7 Console.Write("Ange ett positivt heltal: "); 8 int tal = int.Parse(Console.ReadLine()); 9 BinaryPrint(tal); 10 } 11 12 static void BinaryPrint(int heltal) 13 { 14 if (heltal < 2) 15 { 16 Console.WriteLine(heltal); 17 } 18 else 19 { 20 Console.Write(heltal % 2); 21 BinaryPrint(heltal / 2); 22 } 23 } 24 } [ sida 6 ] Fråga 3… (2p) Vad är Turingtestet? Ge en beskrivning av vad det testar och hur det genomförs. Fråga 4… (2p) Namnge minst fyra typer av data som kan lagras i en dator. Fråga 5… (4p) Två av de linjära datastrukturer som vi sett i kursen är stackar och köer. Ge en beskrivning av dessa datastrukturer – fokusera på hur elementen ordnas och vilka operationer som kan göras på respektive datastruktur. Använd gärna figurer, men ge generella beskrivningar. Fråga 6… (2+3p) a) Hur fungerar sorteringsalgoritmen Bubble Sort? Ge en förklaring i ord som beskriver algoritmens arbetssätt. b) Använd Bubble Sort för att sortera nedanstående vektor. Visa stegvis hur algoritmen arbetar genom att visa exakt hur elementen förflyttas. 16 4 13 9 2 10 Fråga 7… (0,5 + 0,5 + 0,5 + 0,5 = 2p) Fyll i de saknade orden: a) _________________ data är en konstant (continuous) representation av information. b) _________________ data är en diskret (discrete) representation av information. c) En mental modell som hjälper oss att hantera komplexitet kallas för en ______________________ d) Unicode skapades som ett superset på den tidigare ________________ för att öka möjlig teckenrepresentation. Fråga 8… (2 + 3 = 5p) I denna uppgift skall ni designa en algoritm som läser in tre tal från användaren ett i taget, och sedan skriver ut summan av det första och det sista talet. a) Beskriv algoritmen i ord. b) Ange algoritmen i pseudokod. Se appendix A för vilka operationer ni får använda i pseudokoden – endast dessa är tillåtna. Detta är sista sidan Glöm inte att lägga dina svar (inklusive sida 2 från detta häfte, formuläret för kryssfrågorna) i det gula tentamenshäftet! Lägg svaren i samma ordning som frågorna! [ sida 7 ] Appendix A – Notation för pseudokods Variabler Enkla variabler: Använd variabelnamn som inleds med liten bokstav, t.ex. summa eller tal. Enkla variabler behöver inte deklareras innan de används. Vektorer: skall deklareras innan de används, genom att ange typ och storlek. Exempelvis: integer data[20]. För att referera till en plats i vektorn, använd [ ], exempelvis data[7]. Enkla satser Tilldelning: Använd Set … to …., exempelvis: Set summa to 64 eller Set tal to tal + 1 Input/output: Read för input och Write för output, exempelvis Read num eller Write summa eller Write ’Summan är’ + summa Kontrollstrukturer Selektion (Val): Använd IF, eventuellt med ett ELSE. Syntaxen är: IF (villkor) satser om villkoret är sant respektive IF (villkor) satser om villkoret är sant ELSE satser om villkoret är falskt Repetition (Loop): Använd WHILE med följande syntax: WHILE (villkor) satser att upprepa