[ sida 1 ] Introduktion till Programutveckling - från Information till Tillämpning (7,5 hp) Provmoment: Ladokkod: Tentamen ges för: Tentamen (5 hp) 21IP1 SYST13h atum och tid: 2014-08-25, 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 Studententrum 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. etyg: 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. llmänna anvisningar: 1. Skriv endast på ena sidan av pappret, ej fram och baksida. 2. nge 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. nsträ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. u bör även vid denna inspektion fundera lite över hur frågan är formulerad för att uttolka frågans intention. egrepp 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! nna Palmquist, fråga 4-5 (0734-612003) jörn belli, fråga 1-3 (0709-955910) ecilia Sönströd, fråga 6-7 (0709-479852) OS!! Vid en skriftlig tentamen måste studenten visa att han/hon 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 1.6 1.11 1.16 1.2 1.7 1.12 1.17 1.3 1.8 1.13 1.18 1.4 1.9 1.14 1.19 1.5 1.10 1.15 1.20 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 det gula tentamenshäftet!
[ sida 3 ] elfrågor för fråga 1. Kryssa i dina svar på sidan 2! 1.1. Vilket av följande skadliga program bäddar in en kopia av sig själv i ett annat program?. virus. mask (worm). trojansk häst. logisk bomb För uppgifterna 1.2 1.4, matcha nätverkstopologin med lämpligaste beskrivning 1.2. usstopologi 1.3. Stjärntopologi 1.4. Ringtopologi. Noderna är sammankopplade i en loop. lla meddelanden går i en riktning.. Noderna är kopplade till en centrum-nod genom vilken alla meddelanden går.. Noderna inom nätverket är hierarkiskt länkade till varandra.. Noderna är kopplade via en kommunikationslinje via vilken alla meddelanden går i båda riktningarna. 1.5. Vilket av följande beskriver aktiviteten att hämta in en sida från sekundärminnet, vilket kan leda till att en annan sida tvingas ut till sekundärminnet?. swapping. kontextbyte. partitionering. virtuellt minne För uppgifterna 1.6 1.8, matcha delen av den magnetiska disken med rätt benämning.. Spår. lock. xel. Sektor 1.9. Vilket av följande beskriver en fil som måste läsas eller skrivas på ett linjärt sätt?. binärfil. sekventiell fil. textfil. katalog 1.10. Vilket av följande är en nätverksenhet som dirigerar ett paket till sin slutdestination??. modem. gateway. nod. router
[ sida 4 ] För uppgifterna 1.11-1.13, matcha operatorn med rätt operatorkategori. 1.11. MO. Relationsoperatorer 1.12. N. oolska operatorer 1.13. >. Unära operatorer. ritmetiska operatorer 1.14. Vilken typ av moln används exklusivt av en specifik grupp eller organisation?. Publika moln. Privata moln. Gemensamma moln (community cloud). Hybridmoln 1.15. Vilket av följande utgör i Visual asic.net en 16-bitars heltalstyp? ) yte ) Short ) Integer ) Long 1.16. Vilket av följande innehåller programräknaren (program counter)?. 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. N 1.18. NN 1.19. OR 1.20. NOT. 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 (5p) Nedanstående program börjar med att användaren matar in ett tiosiffrigt personnummer (utan bindestreck), varefter programmet kontrollerar ifall personnumrets kontrollsiffra är korrekt eller inte. et inmatade personnumret lagras internt som en textsträng, ur vilken varje enskild siffra bryts ut och omvandlas från tecken till det tal siffran motsvarar med hjälp av den inbyggda funktionen Integer.Parse(). a) Om det inmatade personnumret är ofullständigt, dvs innehåller färre än 10 siffror, på vilken rad kommer då programmet att krascha? b) Under förutsättning att ett korrekt personnummer matas in, vad kommer då att skrivas ut i slutet av programmet? När en funktion anropas har de data som används vid metodanropet olika benämningar beroende på om man ser den utifrån (vid anropet) eller inifrån metoden. a) Vad är den korrekta benämningen på användningen av variabeln personnr på rad 9? b) Vad är de korrekta benämningarna (det finns två synonyma begrepp) på användningen av variabeln pnr på rad 6? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 Module Module1 Sub Main() onsole.write("mata in ett 10-siffrigt personnummer: ") im pnr s String = onsole.readline() onsole.writeline(validatepnr(pnr)) End Sub Public Function ValidatePnr(personnr s String) s oolean im siffra s Integer = 0 im summa s Integer = 0 im i s Integer = 0 While (i < 10) siffra = Integer.Parse(personnr(i)) ' Konverterar tecknet till tal siffra = siffra * 2 If siffra > 9 Then siffra = siffra \ 10 + siffra Mod 10 End If summa = summa + siffra + Integer.Parse(personnr(i + 1)) i = i + 2 End While Return (summa Mod 10 = 0) End Function End Module
[ sida 6 ] Fråga 3 (5p) Skriv källkoden för ett program i Visual asic.net som läser in ett tal från användaren och sedan med hjälp av en loop skriver ut multiplikationstabellen för det talet. Exempel på utskrift ser du nedan. Fråga 4 (2p) Namnge fem typer av data som kan lagras i en dator. Fråga 5 (3p) Subtraktion med binära tal. Vad blir resultatet av subtraktionen nedan? 0101-0011
[ sida 7 ] Fråga 6 (2+3p) a) Hur fungerar sorteringsalgoritmen ubble Sort? Ge en förklaring i ord som beskriver algoritmens arbetssätt. b) nvänd ubble 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 (2+3p) Vid design av program och algoritmer kan man använda en metodologi som kallas topdown. a) Ge en detaljerad beskrivning av hur detta fungerar. b) Tillämpa top-downdesign för att designa en algoritm som spelar Hangman (hänga gubben). Observera att ni inte skall skriva någon kod eller pseudokod, utan bara tillämpa designprincipen så att ni kommer ner till delar som kan skrivas som pseudokod. Fråga 8 (2+3p) En av de stora utmaningarna inom artificiell intelligens är att få datorer att hantera mänskligt språk, så kallat naturligt språk. a) Vilka olika uppgifter måste en dator klara av för att kunna kommunicera med människor på naturligt språk? b) iskutera kort hur långt man har kommit i lösande av dessa uppgifter, dvs. vad man klarar ganska bra och vad man fortfarande har problem med. etta ä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 8 ] ppendix Notation för pseudokods Variabler Enkla variabler: nvä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: nvä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): nvä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): nvänd WHILE med följande syntax: WHILE (villkor) satser att upprepa