Uppgift 1 ( Betyg 3 uppgift )

Storlek: px
Starta visningen från sidan:

Download "Uppgift 1 ( Betyg 3 uppgift )"

Transkript

1 kl Uppgift 1 ( Betyg 3 uppgift ) Olika personer äter olika mycket mat. Vissa är sådana som alltid äter mycket. Andra äter lite och vissa äter mer vid vissa tillfällen. Hur hänger detta då ihop? I en nyligen utkommen forskningsrapport visar det sig att mängden mat man äter beror på en massa faktorer. Här följer en lista på några av dem: Personens längd, midjemått, vikt. Tid sedan senaste måltid. Tid på dagen. Ämnesomsättning. Matens och omgivningens temperatur. Ja, ni förstår att det finns mycket mer som detta kan bero på. I denna uppgift har vi tagit den förenklade formel som gäller för hur många ägg en person kan klara av att äta på fastande mage på juldagen efter en bastant middag på julaftonskvällen. Formeln tar endast hänsyn till personens längd (L), tid på dagen (T), antal timmar sen senaste måltid (N) och matens temperatur given i o C (C). Denna formel är uppdelad i två delar för att man lättare skall se hur den är uppbyggd. Formeln Capacity nedan används för att få fram kapaciteten personen har: T -- 5 C e 2 60C Capacity( T, C, L, N) = round N 20L Formeln Gastronomi räknar ut antalet ägg och ser ut på följande sätt: Din uppgift är att implementera (skapa) dessa funktioner i Ada och sen skriva ett program där användaren får mata in data för L, T, C och N. Programmet skall (förstås) skriva ut antalet ägg personen klarar av. OBS! Användaren matar in heltal, men beräkningarna skall ske med flyttal. Eventuella matematiska funktioner som kan behövas (t.ex. exp för e x ) finns i standardpaketet Ada.Numerics.Elementary_Functions. Attributet Float Rounding kan också vara bra att ha. Formlerna ovan bygger på rimliga indata på variablerna och dessa heltalsintervall är: T: [0, 24] C: [20, 50] L: [50, 250] N: [6, 24] Gastronomi( T, C, L, N) = N i = 1 CapacityTCLi (,,, ) i

2 kl Uppgift 2 I algebra tycker många om inversberäkningar på matriser. Detta finns förstås inbyggt i verktyg som MatLab, men er uppgift är att skapa en egen sådan i Ada. Er funktion skall heta Inverse (och ligga i det givna paketet Matrix_Handling) och den skall ta emot en kvadratisk matris. Funktionen skall ligga på en separat fil och kompileras tillsammans med huvudprogrammet Test_My_Inverse som finns givet. Vi antar för enkelhets skull att vi inte kommer att råka ut för att behöva byta rader i ursprungsmatrisen eller att vi får nollelement i diagonalen under beräkningsgången. Här följer ett exempel på hur beräkningarna skall gå till. Lösningsgången börjar med att vi sätter upp matrisen bredvid en enhetsmatris. Vi antar att vi har den matris som är till vänster i följande uppställning: Det gäller nu att få till en enhetsmatris av den vänstra sidan genom att utföra följande operationer ett antal gånger. 1. Sätt N = 1 2. Normalisera rad nummer N, d.v.s. se till att det element som ligger på diagonalen blir en 1:a. Detta görs i exemplet genom att dividera alla element på raden med talet som står på diagonalpositionen, d.v.s. position (N, N). 3. Därefter skall de övriga raderna nollställas i kolumn N. Detta görs genom att subtrahera eller addera den N:te raden (eventuellt multiplicerad med en faktor). 4. Öka N med 1 och börja om från punkt 2 tills alla rader är genomförda. Vi utför punkterna 2 och 3 för N = 1 givet exemplet ovan. Efter punkt 2 blir raderna: Efter punkt 3 ser det ut på följande sätt (subtrahera rad 1 med faktor 1 resp. 2 från rad 2 och 3): Vi fortsätter med N = 2 och får då efter punkt 2 (division med 2 gjord): Efter punkt 3 ser det ut som följer (vi har subtraherat med faktorn 2 på rad 1 och 3): Vi fortsätter med N = 3 och får då efter punkt 2 och 3 (division med -1 och subtrahera 1):

3 kl Uppgift 3 Ett jämnt antal personer, som leds av den snabbgående guiden Bridget, kom en natt fram till en bro som endast klarade av att bära två personer åt gången. Dessutom fanns det ett antal hål i bron vilket gjorde det farligt att gå över utan lyse. Nu hör det till saken att det inte fanns några lampor vid eller på bron och det var becksvart ute då inte ens månen syntes genom molntäcket. Som tur var hade sällskapet en ficklampa med sig. Dock bara en. Lösningen är självklar. Två personer får givetvis gå över med ficklampan och sen får en av dessa gå tillbaka (självklart med ficklampan) för att man sen skall få över fler personer. Nu finns en liten hake i allt detta. Personerna är inte lika snabba att gå och det råkar vara så att alla personer har olika hastighet som dessutom råkar göra att det tar 1 kvart för den snabbaste att gå över, 2 kvartar för näste och så vidare upp till N kvartar för den N:te och siste personen. När två personer går tillsamman över bron gäller dock att de måste hålla samma tempo som den långsammaste av dem. Det finns ytterligare en hake med det hela. Bron är så pass lång att en person inte orkar gå mer än två gånger i rad över bron (d.v.s. antingen fram och tillbaka eller tillbaka och fram). Att gå tre gånger över bron gör att personen blir okoncentrerad och antagligen faller i ett av hålen i bron. Detta får inte inträffa och därför skall ditt program se till att ingen går fler än två gånger över bron i rad. Har man vilat en gång är det ok att gå igen. Lösningen blir förstås att den snabbaste och den näst snabbaste kommer att turas om att gå en massa gånger. Din uppgift är att skriva en funktion som räknar ut hur lång tid det tar för sällskapet att komma över bron. Funktionen skall heta bridge_1 och ta emot hur stort sällskapet är (d.v.s. N). För att man skall veta vilka som går i vilken riktning skall funktionen skriva ut vilken/vilka som går över bron vid varje tillfälle (denna utskrift sker inuti funktionen). Ingen utskrift av tiden skall göras i funktionen utan detta skall returneras. Krav: Din lösning skall vara rekursiv. Körexempel: Mata in antal personer (inkl Bridget): 8 Person 1 och 2 går fram. Person 1 går tillbaka. Person 7 och 8 går fram. Person 2 går tillbaka. Person 1 och 2 går fram. Person 1 går tillbaka. Person 5 och 6 går fram. Person 2 går tillbaka. Person 1 och 2 går fram. Person 1 går tillbaka. Person 3 och 4 går fram. Person 2 går tillbaka. Person 1 och 2 går fram. Tiden blir 35 kvartar.

4 kl Uppgift 4 På hemsidan fins en lista av framtida viktiga händelser. Dessa är sparade i filen events.txt. Formatet på varje rad i filen är (se i filen för att se exakt hur det ser ut): <Årtal>:<Förutsägelse med maximalt 200 tecken> En hel del av förutsägelserna är tagna från science fiction. Det kommer från böcker, tv-serier, filmer etc. Vissa av dessa har även namn på vilka serier det är eller vem som kommit fram med profetian. Dessa referenser står isåfall inom parentes i slutet av raden. Årtalet kan vara ett normalt 4-siffrigt år, ett 5- eller 6-siffrigt år med ett kommatecken (,) som tusentalsavgränsare, ett tal med punkt som decimalavgränsare följt av ett av orden million, billion eller trillion. Händelser väldigt långt in i framtiden skrivs på exponentialform, t.ex. 10^17. Se i filen för mer detaljer. OBS! Detta är en exempelfil. Det kan vara fler eller färre rader i den fil vi använder. Skriv ett program som frågar användaren efter ett årtal och sedan skriver ut alla förutsägelser för detta år. Endast år som exakt matchar användarens indata skall beaktas av programmet. Om det inte finns någon förutsägelse för detta år skall programmet skriva ut att det inte fanns någon förutsägelse (se i exemplen nedan). Programmet skall avslutas när man skriver in årtalet 0. Körexempel: Year? 2024 This is the prediction(s) for year 2024: End of the World. Asteroid hits earth. Year? 2029 This is the prediction(s) for year 2029: No predictions found Year? 657,208 This is the prediction(s) for year 657,208: The Time Ships. The Morlock civilization. (Stephen Baxter) Year? 16,000 This is the prediction(s) for year 16,000: Vega is now the North Pole Star. Year? 1.1 billion This is the prediction(s) for year 1.1 billion: Sun will be 10% brighter than today. Moist Greenhouse Effect. Earth would start to lose its water via a moist greenhouse Year? 10^10^26 This is the prediction(s) for year 10^10^26: All iron nuclei collapse into black holes Year? 0

5 kl Uppgift 1 ( Betyg 3 uppgift ) Skriv ett program som låter användaren matat in en sträng bestående av maximalt 20 tecken. De tecken användaren matar in är i intervallet [ a, z ]. Inga andra tecken behöver hanteras då användaren är en snäll assistent som har koll på sina inmatningar. Programmet skall läsa in inmatningen till en sträng som är dimensionerad till 20 tecken (inte mer eller mindre). Användaren kan mata in godtyckligt lång sträng (dock skall endast de första 20 tecknen räknas som inmatning om det är fler än 20, resten skall kastas bort). Om användaren endast trycker på <ENTER>-knappen, d.v.s. inte matar in något, skall programmet avslutas. Om användaren matar in minst ett tecken skall inmatningen skrivas ut enligt nedan och en ny inmatning skall göras (utan att man behöver starta om programmet). Körexempel: Mata in en sträng med maximalt 20 tecken: abcd abcdefghijklmnopqrstuvwxyz a b c d Mata in en sträng med maximalt 20 tecken: bdac abcdefghijklmnopqrstuvwxyz b d a c Mata in en sträng med maximalt 20 tecken: qwertyuiop abcdefghijklmnopqrstuvwxyz q w e r t y u i o p Mata in en sträng med maximalt 20 tecken: Inget att skriva ut. Tack för idag! Tips: Om man tittar lite på ovanstående ser man att innehållet i strängen skrivs ut ett tecken per rad och med så många blanktecken som det finns tecken i alfabetet innan det aktuella tecknet före själva tecknet.

6 kl Uppgift 1 ( Betyg 3 uppgift ) Skriv ett program som låter användaren matat in en sträng bestående av maximalt 20 tecken. De tecken användaren matar in är i intervallet [ a, z ]. Inga andra tecken behöver hanteras då användaren är en snäll assistent som har koll på sina inmatningar. Programmet skall läsa in inmatningen till en sträng som är dimensionerad till 20 tecken (inte mer eller mindre). Användaren kan mata in godtyckligt lång sträng (dock skall endast de första 20 tecknen räknas som inmatning om det är fler än 20, resten skall kastas bort). Om användaren endast trycker på <ENTER>-knappen, d.v.s. inte matar in något, skall programmet avslutas. Om användaren matar in minst ett tecken skall inmatningen skrivas ut enligt nedan och en ny inmatning skall göras (utan att man behöver starta om programmet). Körexempel: Mata in en sträng med maximalt 20 tecken: abcd abcdefghijklmnopqrstuvwxyz a....b.....c......d... Mata in en sträng med maximalt 20 tecken: bdac abcdefghijklmnopqrstuvwxyz.b......d... a.....c... Mata in en sträng med maximalt 20 tecken: qwertyuiop abcdefghijklmnopqrstuvwxyz...q......w......e......r......t......y....u......i......o......p... Mata in en sträng med maximalt 20 tecken: Inget att skriva ut. Tack för idag! Tips: Om man tittar lite på ovanstående ser man att innehållet i strängen skrivs ut ett tecken per rad och med så många punkter som det finns tecken i alfabetet före och efter det aktuella tecknet runt själva tecknet.

7 kl Uppgift 1 ( Betyg 3 uppgift ) Skriv ett program som låter användaren matat in en sträng bestående av maximalt 20 tecken. De tecken användaren matar in är i intervallet [ a, z ]. Inga andra tecken behöver hanteras då användaren är en snäll assistent som har koll på sina inmatningar. Programmet skall läsa in inmatningen till en sträng som är dimensionerad till 20 tecken (inte mer eller mindre). Användaren kan mata in godtyckligt lång sträng (dock skall endast de första 20 tecknen räknas som inmatning om det är fler än 20, resten skall kastas bort). Om användaren endast trycker på <ENTER>-knappen, d.v.s. inte matar in något, skall programmet avslutas. Om användaren matar in minst ett tecken skall inmatningen skrivas ut enligt nedan och en ny inmatning skall göras (utan att man behöver starta om programmet). Körexempel: Mata in en sträng med maximalt 20 tecken: abcd abcdefghijklmnopqrstuvwxyz > -> --> ---> Mata in en sträng med maximalt 20 tecken: bdac abcdefghijklmnopqrstuvwxyz -> ---> > --> Mata in en sträng med maximalt 20 tecken: qwertyuiop abcdefghijklmnopqrstuvwxyz > > ----> > > > > > > > Mata in en sträng med maximalt 20 tecken: Inget att skriva ut. Tack för idag! Tips: Om man tittar lite på ovanstående ser man att innehållet i strängen bestämmer hur långt streck man ritar ut och på rätt plats kommer ett > -tecken.

8 kl Uppgift 1 ( Betyg 3 uppgift ) På MTV ser man ofta att de ger information om hur bra personer passar ihop. Detta kan man göra ungefär lika bra själv genom en enkel algoritm. Din uppgift är att skapa en sådan för att se om två personer passar bra ihop. Algoritmen går ut på att man låter användaren mata in sitt eget förnamn och förnamnet på den han/hon älskar. Ut från detta kommer en procentsats som anger hur bra chans man har att det skall bli ett bra förhållande. Procentsatsen kommer alltså att ligga i intervallet [0, 99]. För att beräkna procentsatsen gör man så att man går igenom personens eget namn och beräknas summan av alla tecken som finns i namnet. Denna summa skall sen divideras med summan man får för namnet på personen man älskar. I det värde man nu får fram skall man endast använda de första två decimalerna. Dessa anger den procentsats som anger förhållandets reella chans i det verkliga livet. För att lösa ovanstående gäller att varje tecken har det värde som det har i det vanliga svenska alfabetet (inklusive w ), d.v.s. a =1, b =2,..., ö =29. Vi antar att inga icke-svenska tecken ingår i namnen. Alla tecken som inte finns med i detta alfabet anses ha värdet 0 (noll). Inmatningen är maximalt 20 tecken lång och du får inte ha strängar som är längre än 20 tecken långa. Körexempel 1: Mata in ditt eget namn : kungen Mata in namnet på din älskade: silvia Sannolikheten för detta förhållande är ca 0%. Körexempel 2: Mata in ditt eget namn : julia Mata in namnet på din älskade: romeo Sannolikheten för detta förhållande är ca 80%. Körexempel 3: Mata in ditt eget namn : kalle Mata in namnet på din älskade: kajsa Sannolikheten för detta förhållande är ca 97%. Körexempel 4: Mata in ditt eget namn : antonietta florentia Mata in namnet på din älskade: bert Sannolikheten för detta förhållande är ca 86%.

9 kl Uppgift 2 Det finns ett givet huvudprogram som läser in heltal från tangentbordet och sen anropar en sorteringsprocedur som ligger i ett paket. Detta paket är också givet. Sorteringen sker med hjälp av den såkallade Bubble Sort som vi redan sett i laborationsserien och på lektion under kursens gång. Din uppgift är att skapa ett nytt paket och ändra i huvudprogrammet så att ditt nya paket används istället för det givna. OBS! Skicka in alla filer som behövs för att kunna kompilera och köra ditt program när du begär rättning. Det nya paketet skall ha en sorteringsprocedur som använder sig av en algoritm som kallas för Shaker Sort. Denna algoritm ser ut på följande sätt: 1. Sätt L till första index i fältet 2. Sätt R till sista index i fältet 3. Sätt I till L samt sätt N till R 4. Byt plats på det I:te och det (I+1):te värdet i fältet om det I:te värdet är störst 5. Om byte har skett: Sätt N till I 6. Öka I med 1 7. Gå till punkt 9 om I = R 8. Upprepa från punkt 4 9. Sätt R till N 10.Avbryt sorteringen om R = L 11.Sätt I till R 12.Byt plats på det I:te och det (I-1):te värdet i fältet om det I:te värdet är minst 13.Om byte har skett: Sätt N till I 14.Minska I med 1 15.Gå till punkt 17 om I = L 16.Upprepa från punkt Sätt L till N 18.Avbryt sorteringen om R = L 19.Gå till punkt 3 Till din hjälp har vi lagt upp ett program som du kan provköra för att se hur algoritmen fungerar. Detta program heter given_files/demo_shaker_sort.

10 kl Uppgift 3 Det finns ett givet program som stoppar in data i ett såkallat binärt sökträd i mappen given_files. Din uppgift är att komplettera detta program med en utskriftsprocedur som gör att man ser hur innehållet i trädet ser ut. Här följer en bild över hur ett binärt sökträd skulle kunna se ut Trädet är representerat i programmet som ett fält där index 1 motsvarar den översta noden i trädet (med talet 5). För att gå till vänster i trädet multiplicerar man det index man för tillfället är på med 2 och för att går till höger multiplicerar man den nod man är på med 2 samt adderar 1. Detta ger att de två noderna under toppnoden (de med värdena 3 resp. 8) har index 2 och 3 i fältet. Samma operationer utförs oavsett var i trädet man befinner sig. Din uppgift är att skriva ut trädets innehåll i sorterad ordning (utan att använda någon sorteringsalgoritm förstås) med det minsta talet först. Den enda jämförelse av data i trädet som är tillåten är om datat är 0 (noll) då detta motsvarar att det inte finns mer nedåt i trädet i denna gren. Talet noll kan alltså inte lagras i denna datastruktur. Vi antar att användaren inte matar in dubletter av data (även om detta skulle kunna vara möjligt utan större problem, men ett binärt sökträd skall inte innehålla dubletter). Körexempel 1: Mata in filnamn som indata skall läsas ifrån: TREE_INPUT1.TXT Det binära sökträdet innehåller nu: Körexempel 2: Mata in filnamn som indata skall läsas ifrån: TREE_INPUT2.TXT Det binära sökträdet innehåller nu: TIPS: Det kan vara trevligt med rekursion. KRAV: Du skall modifiera programmet så att det läser in det filnamn som man skall läsa in indatat från och sen hämtar datat därifrån förstås.

11 kl Uppgift 4 Det var en gång ett troll som hade en stor borg med en stor sal, 16 celler där man kunde hålla fångar och ett rum med en spak som hade två lägen (uppåt respektive nedåt). Trollet hade dessutom lyckats fånga 16 tomtar som han hade fört till sin stora sal i borgen. Tomtarna var väldigt rädda då de visste att troll äter tomtar och de såg ingen utväg att komma hem levande. Nu var det så att detta troll hade väldigt gott om mat och därför kände det sig väldigt upprymt och ville ge tomtarna en chans att få bli fria. Han bestämde sig för att berätta detta för tomtarna och det som var deras chans var att komma fram till ett sätt (en algoritm om man vill säga så) som gjorde att någon av tomtarna kunde avgöra om alla tomtar (inklusive tomten själv) varit inne i rummet med spaken. Tomtarna fick en liten stund att diskutera problemet och sen blev de bortförda till cellerna. Man bör observera att de efter detta inte kunde kommunicera på annat sätt än med hjälp av ovan nämnda spak. Något som ställer till alltihop är att trollet helt slumpmässigt plockar en tomte ur en cell och för denne till rummet med spaken. Det är inte givet att trollet tar ut en tomte en gång och sen är denna kvar i sin cell utan det kan lika gärna vara så att samma tomte råkar ut för att bli vald fler gånger. I rummet med spaken får tomten gör något av följande: 1) Ändra spakens läge. 2) Låta spaken stå kvar i samma läge. 3) Säga "Jag vet att alla har varit här nu". Om tomten väljer alternativ 3 kan detta vara korrekt och isåfall slipper alla tomtar ut ur borgen. Om detdäremot är så att någon tomte inte varit där när den utvalde tomten väljer alternativ 3 blir alla tomtarna uppätna av trollet. Om tomten väljer något av alternativen 1 eller 2 kommer trollet att föra tillbaka tomten till sin cell efter utfört uppdrag. Tomtarna kom fram till följande algoritm: 1. Tomte 1 är en såkallad räknetomte. han håller reda på hur många som varit i rummet. 2. Tomte 1 får endast fälla ned spaken och de andra får endast fälla upp spaken. 3. Då man inte vet om spaken är upp- eller nedfälld från början måste alla tomtar fälla upp spaken 2 gånger. 4. Detta gör att spaken kommer att vara i uppfällt läge antingen 30 eller 31 gånger. 5. Det behövs endast 29 gånger om spaken var uppfälld från början och detta gör att tomte 1 garanterat kan säga att alla varit där då han fäller ned spaken för 30:e gången. Din uppgift är att skriva ett program som simulerar detta förlopp och räknar hur många gånger trollet behöver plocka ut tomtar innan de blir fria. Själva slumpningen skall vara så att man slumpar vilken tomte som blir hämtad och om det är tomte nummer 1 skall denna räkna upp varje gång spaken är uppfälld och de andra skall fälla upp spaken två gånger var. Körexempel 1: Trollet hämtade ut tomtar 590 gånger. Körexempel 2: Trollet hämtade ut tomtar 568 gånger. Körexempel 3: Trollet hämtade ut tomtar 752 gånger.

12 kl Uppgift 5 Det finns ett givet huvudprogram som läser in heltal från tangentbordet och sen anropar en sorteringsprocedur som ligger i ett paket. Detta paket är också givet. Sorteringen sker med hjälp av den såkallade Bubble Sort som vi redan sett i laborationsserien och på lektion under kursens gång. Din uppgift är att skapa ett nytt paket och ändra i huvudprogrammet så att ditt nya paket används istället för det givna. OBS! Skicka in alla filer som behövs för att kunna kompilera och köra ditt program när du begär rättning. Det nya paketet skall ha en sorteringsprocedur som använder sig av en algoritm som kallas för Shaker Sort. Denna algoritm ser ut på följande sätt: 1. Sätt L till första index i fältet 2. Sätt R till sista index i fältet 3. Sätt I till L 4. Byt plats på det I:te och det (I+1):te värdet i fältet om det I:te värdet är störst 5. Om byte har skett: Sätt N till I 6. Öka I med 1 7. Gå till punkt 9 om I = R 8. Upprepa från punkt 4 9. Sätt R till N 10.Avbryt sorteringen om R = L 11.Sätt I till R 12.Byt plats på det I:te och det (I-1):te värdet i fältet om det I:te värdet är minst 13.Om byte har skett: Sätt N till I 14.Minska I med 1 15.Gå till punkt 17 om I = L 16.Upprepa från punkt Sätt L till N 18.Avbryt sorteringen om R = L 19.Gå till punkt 3 Till din hjälp har vi lagt upp ett program som du kan provköra för att se hur algoritmen fungerar. Detta program heter given_files/demo_shaker_sort.

13 kl Uppgift 6 Det finns ett givet program som stoppar in data i ett såkallat binärt sökträd i mappen given_files. Din uppgift är att komplettera detta program med en utskriftsprocedur som gör att man ser hur innehållet i trädet ser ut. Här följer en bild över hur ett binärt sökträd skulle kunna se ut Trädet är representerat i programmet som ett fält där index 1 motsvarar den översta noden i trädet (med talet 5). För att gå till vänster i trädet multiplicerar man det index man för tillfället är på med 2 och för att går till höger multiplicerar man den nod man är på med 2 samt adderar 1. Detta ger att de två noderna under toppnoden (de med värdena 3 resp. 8) har index 2 och 3 i fältet. Samma operationer utförs oavsett var i trädet man befinner sig. Din uppgift är att skriva ut trädets innehåll i sorterad ordning (utan att använda någon sorteringsalgoritm förstås) med det minsta talet först. Den enda jämförelse av data i trädet som är tillåten är om datat är 0 (noll) då detta motsvarar att det inte finns mer nedåt i trädet i denna gren. Talet noll kan alltså inte lagras i denna datastruktur. Vi antar att användaren inte matar in dubletter av data (även om detta skulle kunna vara möjligt utan större problem, men ett binärt sökträd skall inte innehålla dubletter). Körexempel 1: Mata in filnamn som indata skall läsas ifrån: TREE_INPUT1.TXT Det binära sökträdet innehåller nu: Körexempel 2: Mata in filnamn som indata skall läsas ifrån: TREE_INPUT2.TXT Det binära sökträdet innehåller nu: TIPS: Det kan vara trevligt med rekursion. KRAV: Du skall modifiera programmet så att det läser in det filnamn som man skall läsa in indatat från och sen hämtar datat därifrån förstås.

14 kl Uppgift 7 Det var en gång ett troll som hade en stor borg med en stor sal, 16 celler där man kunde hålla fångar och ett rum med en spak som hade två lägen (uppåt respektive nedåt). Trollet hade dessutom lyckats fånga 16 tomtar som han hade fört till sin stora sal i borgen. Tomtarna var väldigt rädda då de visste att troll äter tomtar och de såg ingen utväg att komma hem levande. Nu var det så att detta troll hade väldigt gott om mat och därför kände det sig väldigt upprymt och ville ge tomtarna en chans att få bli fria. Han bestämde sig för att berätta detta för tomtarna och det som var deras chans var att komma fram till ett sätt (en algoritm om man vill säga så) som gjorde att någon av tomtarna kunde avgöra om alla tomtar (inklusive tomten själv) varit inne i rummet med spaken. Tomtarna fick en liten stund att diskutera problemet och sen blev de bortförda till cellerna. Man bör observera att de efter detta inte kunde kommunicera på annat sätt än med hjälp av ovan nämnda spak. Något som ställer till alltihop är att trollet helt slumpmässigt plockar en tomte ur en cell och för denne till rummet med spaken. Det är inte givet att trollet tar ut en tomte en gång och sen är denna kvar i sin cell utan det kan lika gärna vara så att samma tomte råkar ut för att bli vald fler gånger. I rummet med spaken får tomten gör något av följande: 1) Ändra spakens läge. 2) Låta spaken stå kvar i samma läge. 3) Säga "Jag vet att alla har varit här nu". Om tomten väljer alternativ 3 kan detta vara korrekt och isåfall slipper alla tomtar ut ur borgen. Om detdäremot är så att någon tomte inte varit där när den utvalde tomten väljer alternativ 3 blir alla tomtarna uppätna av trollet. Om tomten väljer något av alternativen 1 eller 2 kommer trollet att föra tillbaka tomten till sin cell efter utfört uppdrag. Tomtarna kom fram till följande algoritm: 1. Tomte 1 är en såkallad räknetomte. han håller reda på hur många som varit i rummet. 2. Tomte 1 får endast fälla ned spaken och de andra får endast fälla upp spaken. 3. Då man inte vet om spaken är upp- eller nedfälld från början måste alla tomtar fälla upp spaken 2 gånger. 4. Detta gör att spaken kommer att vara i uppfällt läge antingen 30 eller 31 gånger. 5. Det behövs endast 29 gånger om spaken var uppfälld från början och detta gör att tomte 1 garanterat kan säga att alla varit där då han fäller ned spaken för 30:e gången. Din uppgift är att skriva ett program som simulerar detta förlopp och räknar hur många gånger trollet behöver plocka ut tomtar innan de blir fria. Själva slumpningen skall vara så att man slumpar vilken tomte som blir hämtad och om det är tomte nummer 1 skall denna räkna upp varje gång spaken är uppfälld och de andra skall fälla upp spaken två gånger var. Körexempel 1: Trollet hämtade ut tomtar 590 gånger. Körexempel 2: Trollet hämtade ut tomtar 568 gånger. Körexempel 3: Trollet hämtade ut tomtar 752 gånger.

15 kl Uppgift 1 ( Betyg 3 uppgift ) På MTV ser man ofta att de ger information om hur bra personer passar ihop. Detta kan man göra ungefär lika bra själv genom en enkel algoritm. Din uppgift är att skapa en sådan för att se om två personer passar bra ihop. Algoritmen går ut på att man låter användaren mata in sitt eget förnamn och förnamnet på den han/hon älskar. Ut från detta kommer en procentsats som anger hur bra chans man har att det skall bli ett bra förhållande. Procentsatsen kommer alltså att ligga i intervallet [0, 99]. För att beräkna procentsatsen gör man så att man går igenom de två namnen och parar ihop de tecken som står på samma position i namnet. Värdena på de tecken som ingår i ett par multipliceras ihop och alla dessa produkter skall adderas ihop. Om det ena namnet innehåller fler tecken än det andra utförs inte multipliceringen för dessa utan man tar bara värdet av dessa tecken och adderar till summan. Av den summa man får fram efter denna beräkning skall endast de två sista siffrorna användas och dessa anger den procentsats som anger förhållandets reella chans i det verkliga livet. För att lösa ovanstående gäller att varje tecken har det värde som det har i det vanliga svenska alfabetet (inklusive w ), d.v.s. a =1, b =2,..., ö =29. Vi antar att inga icke-svenska tecken ingår i namnen. Alla tecken som inte finns med i detta alfabet anses ha värdet 1 (ett). Inmatningen är maximalt 20 tecken lång och du får inte ha strängar som är längre än 20 tecken långa. Körexempel 1: Mata in ditt eget namn : kungen Mata in namnet på din älskade: silvia Sannolikheten för detta förhållande är ca 79%. Körexempel 2: Mata in ditt eget namn : julia Mata in namnet på din älskade: romeo Sannolikheten för detta förhållande är ca 11%. Körexempel 3: Mata in ditt eget namn : kalle Mata in namnet på din älskade: kajsa Sannolikheten för detta förhållande är ca 75%. Körexempel 4: Mata in ditt eget namn : antonietta florentia Mata in namnet på din älskade: bert Sannolikheten för detta förhållande är ca 2%.

16 kl Uppgift 2 Det finns ett givet huvudprogram som läser in heltal från tangentbordet och sen anropar en sorteringsprocedur som ligger i ett paket. Detta paket är också givet. Sorteringen sker med hjälp av den såkallade Bubble Sort som vi redan sett i laborationsserien och på lektion under kursens gång. Din uppgift är att skapa ett nytt paket och ändra i huvudprogrammet så att ditt nya paket används istället för det givna. OBS! Skicka in alla filer som behövs för att kunna kompilera och köra ditt program när du begär rättning. Det nya paketet skall ha en sorteringsprocedur som använder sig av en algoritm som kallas för Insertion Sort. Denna algoritm ser ut på följande sätt: 1. Sätt N till första index i fältet 2. Sätt D till det N:te värdet i fältet 3. Flytta alla värden som är större än D bland de första N-1 värdena i fältet ett steg (så att det bildas ett mellanrum mellan de mindre och de större värdena) 4. Stoppa in D i det mellanrum som skapas 5. Öka N med 1 6. Upprepa från punkt 2 tills det att N > sista index i fältet Till din hjälp har vi lagt upp ett program som du kan provköra för att se hur algoritmen fungerar. Detta program heter given_files/demo_insertion_sort.

17 kl Uppgift 3 Det finns ett givet program som stoppar in data i ett såkallat binärt sökträd i mappen given_files. Din uppgift är att komplettera detta program med en utskriftsprocedur som gör att man ser hur innehållet i trädet ser ut. Här följer en bild över hur ett binärt sökträd skulle kunna se ut Trädet är representerat i programmet som ett fält där index 1 motsvarar den översta noden i trädet (med talet 5). För att gå till vänster i trädet multiplicerar man det index man för tillfället är på med 2 och för att går till höger multiplicerar man den nod man är på med 2 samt adderar 1. Detta ger att de två noderna under toppnoden (de med värdena 3 resp. 8) har index 2 och 3 i fältet. Samma operationer utförs oavsett var i trädet man befinner sig. Din uppgift är att skriva ut trädets innehåll i sorterad ordning (utan att använda någon sorteringsalgoritm förstås) med det största talet först. Den enda jämförelse av data i trädet som är tillåten är om datat är 0 (noll) då detta motsvarar att det inte finns mer nedåt i trädet i denna gren. Talet noll kan alltså inte lagras i denna datastruktur. Vi antar att användaren inte matar in dubletter av data (även om detta skulle kunna vara möjligt utan större problem, men ett binärt sökträd skall inte innehålla dubletter). Körexempel 1: Mata in filnamn som indata skall läsas ifrån: TREE_INPUT1.TXT Det binära sökträdet innehåller nu: Körexempel 2: Mata in filnamn som indata skall läsas ifrån: TREE_INPUT2.TXT Det binära sökträdet innehåller nu: TIPS: Det kan vara trevligt med rekursion. KRAV: Du skall modifiera programmet så att det läser in det filnamn som man skall läsa in indatat från och sen hämtar datat därifrån förstås.

18 kl Uppgift 4 Det var en gång ett troll som hade en stor borg med en stor sal, 16 celler där man kunde hålla fångar och ett rum med en spak som hade två lägen (uppåt respektive nedåt). Trollet hade dessutom lyckats fånga 16 tomtar som han hade fört till sin stora sal i borgen. Tomtarna var väldigt rädda då de visste att troll äter tomtar och de såg ingen utväg att komma hem levande. Nu var det så att detta troll hade väldigt gott om mat och därför kände det sig väldigt upprymt och ville ge tomtarna en chans att få bli fria. Han bestämde sig för att berätta detta för tomtarna och det som var deras chans var att komma fram till ett sätt (en algoritm om man vill säga så) som gjorde att någon av tomtarna kunde avgöra om alla tomtar (inklusive tomten själv) varit inne i rummet med spaken. Tomtarna fick en liten stund att diskutera problemet och sen blev de bortförda till cellerna. Man bör observera att de efter detta inte kunde kommunicera på annat sätt än med hjälp av ovan nämnda spak. Något som ställer till alltihop är att trollet helt slumpmässigt plockar en tomte ur en cell och för denne till rummet med spaken. Det är inte givet att trollet tar ut en tomte en gång och sen är denna kvar i sin cell utan det kan lika gärna vara så att samma tomte råkar ut för att bli vald fler gånger. I rummet med spaken får tomten gör något av följande: 1) Ändra spakens läge. 2) Låta spaken stå kvar i samma läge. 3) Säga "Jag vet att alla har varit här nu". Om tomten väljer alternativ 3 kan detta vara korrekt och isåfall slipper alla tomtar ut ur borgen. Om detdäremot är så att någon tomte inte varit där när den utvalde tomten väljer alternativ 3 blir alla tomtarna uppätna av trollet. Om tomten väljer något av alternativen 1 eller 2 kommer trollet att föra tillbaka tomten till sin cell efter utfört uppdrag. Tomtarna kom fram till följande algoritm: 1. Tomte 1 är en såkallad räknetomte. han håller reda på hur många som varit i rummet. 2. Tomte 1 får endast fälla ned spaken och de andra får endast fälla upp spaken. 3. Då man inte vet om spaken är upp- eller nedfälld från början måste alla tomtar fälla upp spaken 2 gånger. 4. Detta gör att spaken kommer att vara i uppfällt läge antingen 30 eller 31 gånger. 5. Det behövs endast 29 gånger om spaken var uppfälld från början och detta gör att tomte 1 garanterat kan säga att alla varit där då han fäller ned spaken för 30:e gången. Din uppgift är att skriva ett program som simulerar detta förlopp och räknar hur många gånger trollet behöver plocka ut tomtar innan de blir fria. Själva slumpningen skall vara så att man slumpar vilken tomte som blir hämtad och om det är tomte nummer 1 skall denna räkna upp varje gång spaken är uppfälld och de andra skall fälla upp spaken två gånger var. Körexempel 1: Trollet hämtade ut tomtar 590 gånger. Körexempel 2: Trollet hämtade ut tomtar 568 gånger. Körexempel 3: Trollet hämtade ut tomtar 752 gånger.

19 kl Uppgift 5 Det finns ett givet huvudprogram som läser in heltal från tangentbordet och sen anropar en sorteringsprocedur som ligger i ett paket. Detta paket är också givet. Sorteringen sker med hjälp av den såkallade Bubble Sort som vi redan sett i laborationsserien och på lektion under kursens gång. Din uppgift är att skapa ett nytt paket och ändra i huvudprogrammet så att ditt nya paket används istället för det givna. OBS! Skicka in alla filer som behövs för att kunna kompilera och köra ditt program när du begär rättning. Det nya paketet skall ha en sorteringsprocedur som använder sig av en algoritm som kallas för Insertion Sort. Denna algoritm ser ut på följande sätt: 1. Sätt N till första index i fältet 2. Sätt D till det N:te värdet i fältet 3. Flytta alla värden som är större än D bland de första N-1 värdena i fältet ett steg (så att det bildas ett mellanrum mellan de mindre och de större värdena) 4. Stoppa in D i det mellanrum som skapas 5. Öka N med 1 6. Upprepa ovanstående till det att N > sista index i fältet Till din hjälp har vi lagt upp ett program som du kan provköra för att se hur algoritmen fungerar. Detta program heter given_files/demo_insertion_sort.

20 kl Uppgift 6 Det finns ett givet program som stoppar in data i ett såkallat binärt sökträd i mappen given_files. Din uppgift är att komplettera detta program med en utskriftsprocedur som gör att man ser hur innehållet i trädet ser ut. Här följer en bild över hur ett binärt sökträd skulle kunna se ut Trädet är representerat i programmet som ett fält där index 1 motsvarar den översta noden i trädet (med talet 5). För att gå till vänster i trädet multiplicerar man det index man för tillfället är på med 2 och för att går till höger multiplicerar man den nod man är på med 2 samt adderar 1. Detta ger att de två noderna under toppnoden (de med värdena 3 resp. 8) har index 2 och 3 i fältet. Samma operationer utförs oavsett var i trädet man befinner sig. Din uppgift är att skriva ut trädets innehåll i sorterad ordning (utan att använda någon sorteringsalgoritm förstås) med det största talet först. Den enda jämförelse av data i trädet som är tillåten är om datat är 0 (noll) då detta motsvarar att det inte finns mer nedåt i trädet i denna gren. Talet noll kan alltså inte lagras i denna datastruktur. Vi antar att användaren inte matar in dubletter av data (även om detta skulle kunna vara möjligt utan större problem, men ett binärt sökträd skall inte innehålla dubletter). Körexempel 1: Mata in filnamn som indata skall läsas ifrån: TREE_INPUT1.TXT Det binära sökträdet innehåller nu: Körexempel 2: Mata in filnamn som indata skall läsas ifrån: TREE_INPUT2.TXT Det binära sökträdet innehåller nu: TIPS: Det kan vara trevligt med rekursion. KRAV: Du skall modifiera programmet så att det läser in det filnamn som man skall läsa in indatat från och sen hämtar datat därifrån förstås.

21 kl Uppgift 7 Det var en gång ett troll som hade en stor borg med en stor sal, 16 celler där man kunde hålla fångar och ett rum med en spak som hade två lägen (uppåt respektive nedåt). Trollet hade dessutom lyckats fånga 16 tomtar som han hade fört till sin stora sal i borgen. Tomtarna var väldigt rädda då de visste att troll äter tomtar och de såg ingen utväg att komma hem levande. Nu var det så att detta troll hade väldigt gott om mat och därför kände det sig väldigt upprymt och ville ge tomtarna en chans att få bli fria. Han bestämde sig för att berätta detta för tomtarna och det som var deras chans var att komma fram till ett sätt (en algoritm om man vill säga så) som gjorde att någon av tomtarna kunde avgöra om alla tomtar (inklusive tomten själv) varit inne i rummet med spaken. Tomtarna fick en liten stund att diskutera problemet och sen blev de bortförda till cellerna. Man bör observera att de efter detta inte kunde kommunicera på annat sätt än med hjälp av ovan nämnda spak. Något som ställer till alltihop är att trollet helt slumpmässigt plockar en tomte ur en cell och för denne till rummet med spaken. Det är inte givet att trollet tar ut en tomte en gång och sen är denna kvar i sin cell utan det kan lika gärna vara så att samma tomte råkar ut för att bli vald fler gånger. I rummet med spaken får tomten gör något av följande: 1) Ändra spakens läge. 2) Låta spaken stå kvar i samma läge. 3) Säga "Jag vet att alla har varit här nu". Om tomten väljer alternativ 3 kan detta vara korrekt och isåfall slipper alla tomtar ut ur borgen. Om detdäremot är så att någon tomte inte varit där när den utvalde tomten väljer alternativ 3 blir alla tomtarna uppätna av trollet. Om tomten väljer något av alternativen 1 eller 2 kommer trollet att föra tillbaka tomten till sin cell efter utfört uppdrag. Tomtarna kom fram till följande algoritm: 1. Tomte 1 är en såkallad räknetomte. han håller reda på hur många som varit i rummet. 2. Tomte 1 får endast fälla ned spaken och de andra får endast fälla upp spaken. 3. Då man inte vet om spaken är upp- eller nedfälld från början måste alla tomtar fälla upp spaken 2 gånger. 4. Detta gör att spaken kommer att vara i uppfällt läge antingen 30 eller 31 gånger. 5. Det behövs endast 29 gånger om spaken var uppfälld från början och detta gör att tomte 1 garanterat kan säga att alla varit där då han fäller ned spaken för 30:e gången. Din uppgift är att skriva ett program som simulerar detta förlopp och räknar hur många gånger trollet behöver plocka ut tomtar innan de blir fria. Själva slumpningen skall vara så att man slumpar vilken tomte som blir hämtad och om det är tomte nummer 1 skall denna räkna upp varje gång spaken är uppfälld och de andra skall fälla upp spaken två gånger var. Körexempel 1: Trollet hämtade ut tomtar 590 gånger. Körexempel 2: Trollet hämtade ut tomtar 568 gånger. Körexempel 3: Trollet hämtade ut tomtar 752 gånger.

22 kl Uppgift 1 ( Betyg 3 uppgift ) I seriernas värld finns det många roliga saker. T.ex. har vi ju de glada gallerna Asterix och Obelix som klarar av romarna på löpande band. Det som gör mig lite fundersam är hur de räknade på den tiden. Enligt olika källor fanns det olika sätt att kombinera de olika romerska siffrorna för att få fram det resultat man ville få. När man kontrollerar lite närmare upptäcker man dock att det går att skapa ett program som klarar av att läsa in ett romerskt tal och omvandla detta till ett vanligt tal, som vi idag arbetar med, utan större problem. Detta är din uppgift och när man kör programmet skall man hålla på och mata in nya romerska tal tills det att man matar in en tom rad (d.v.s. bara ENTER). Se körexemplet nedan hur det skall se ut. Ett av de krav vi har i denna uppgift är att programmet inte får vara rekursivt på något sätt. Allt måste lösas utan rekursion alltså. Det finns en given fil med indata som ligger i mappen given_files. Det kan vara bra att veta hur man bygger upp ett romerskt tal. Här kommer de siffror vi har att tillgå och de regler som får användas: I=1 V=5 X=10 L=50 C=100 D=500 M=1000 Regel 1: Om större siffra står direkt till höger om en mindre skall den mindre dras bort från slutresultatet. Regel 2: Man adderar alla siffror till resultatet i övriga fall. Körexempel: Mata in ett romerskt tal (mellan I och MMM): I => 1 Mata in ett romerskt tal (mellan I och MMM): III => 3 Mata in ett romerskt tal (mellan I och MMM): IV => 4 Mata in ett romerskt tal (mellan I och MMM): MCM => 1900 Mata in ett romerskt tal (mellan I och MMM): MCMXCIX => 1999 Mata in ett romerskt tal (mellan I och MMM): Tack för idag! KRAV: Inmatningen är maximalt 30 tecken och din sträng får inte vara längre än så.

23 kl Uppgift 2 Det finns ett givet huvudprogram som läser in heltal från tangentbordet och sen anropar en sorteringsprocedur som ligger i ett paket. Detta paket är också givet. Sorteringen sker med hjälp av den såkallade Bubble Sort som vi redan sett i laborationsserien och på lektion under kursens gång. Din uppgift är att skapa ett nytt paket och ändra i huvudprogrammet så att ditt nya paket används istället för det givna. OBS! Skicka in alla filer som behövs för att kunna kompilera och köra ditt program när du begär rättning. Det nya paketet skall ha en sorteringsprocedur som använder sig av en algoritm som kallas för Selection Sort. Denna algoritm ser ut på följande sätt: 1. Sätt N till första index i fältet 2. Leta reda på det minsta värde som finns i fältet fr.o.m. N till sista indexet 3. Byt plats på det N:te värdet och det minsta värdet i fältet 4. Öka N med 1 5. Upprepa ovanstående till det att N > sista index i fältet Till din hjälp har vi lagt upp ett program som du kan provköra för att se hur algoritmen fungerar. Detta program heter given_files/demo_selection_sort.

24 kl Uppgift 3 Matematiker är ett underligt folk. De håller på med serier och underliga tal. I USA har matematikerna dock lite problem att skilja på Christmas day (dec25) och Halloween (oct31). Konstigt vad lite olika talbaser kan ställa till det. Nog om detta. Vi har i denna uppgift en fundering på om det finns något hexadecimalt tal som, om det tolkas som ett decimalt tal, är hälften så stort som det decimala tal det egentligen motsvarar (d.v.s. HEXTALET * 2 = DECIMALTALET). Antag att vi har det hexaecimala talet 123. Detta tal översatt till decimala talsystemet blir 1* * *16 0 = = 291. I detta fall är det inte så att 123 * 2 = 291 så vi kan utesluta hextalet 123 som aspirant på detta. Din uppgift är att skriva ett program som kontrollerar om det finns något sådant hexadecimalt tal vars korrekts värde i decimala talsystemet ligger i värdemängden som kan representeras med Integer. Programmet skall isåfall skriva ut detta hexadecimala tal i dess hexadecimala form på en textfil som skall heta HEX_DEC_LIKA.TXT. Körexempel (där vi antar att vi funnit något sådant tal): Programmet har hittat hextalet som uppfyller kravet. Detta är: Körexempel (där vi antar att vi inte funnit något sådant tal): Programmet har inte hittat något hextal som uppfyller kravet. OBS! Där det står skall alltså talet stå. OBS! Ovanstående två utskrifter är alltså inte på skärmen utan i textfilen.

25 kl Uppgift 4 Det var en gång ett troll som hade en stor borg med en stor sal, 16 celler där man kunde hålla fångar och ett rum med en spak som hade två lägen (uppåt respektive nedåt). Trollet hade dessutom lyckats fånga 16 tomtar som han hade fört till sin stora sal i borgen. Tomtarna var väldigt rädda då de visste att troll äter tomtar och de såg ingen utväg att komma hem levande. Nu var det så att detta troll hade väldigt gott om mat och därför kände det sig väldigt upprymt och ville ge tomtarna en chans att få bli fria. Han bestämde sig för att berätta detta för tomtarna och det som var deras chans var att komma fram till ett sätt (en algoritm om man vill säga så) som gjorde att någon av tomtarna kunde avgöra om alla tomtar (inklusive tomten själv) varit inne i rummet med spaken. Tomtarna fick en liten stund att diskutera problemet och sen blev de bortförda till cellerna. Man bör observera att de efter detta inte kunde kommunicera på annat sätt än med hjälp av ovan nämnda spak. Något som ställer till alltihop är att trollet helt slumpmässigt plockar en tomte ur en cell och för denne till rummet med spaken. Det är inte givet att trollet tar ut en tomte en gång och sen är denna kvar i sin cell utan det kan lika gärna vara så att samma tomte råkar ut för att bli vald fler gånger. I rummet med spaken får tomten gör något av följande: 1) Ändra spakens läge. 2) Låta spaken stå kvar i samma läge. 3) Säga "Jag vet att alla har varit här nu". Om tomten väljer alternativ 3 kan detta vara korrekt och isåfall slipper alla tomtar ut ur borgen. Om detdäremot är så att någon tomte inte varit där när den utvalde tomten väljer alternativ 3 blir alla tomtarna uppätna av trollet. Om tomten väljer något av alternativen 1 eller 2 kommer trollet att föra tillbaka tomten till sin cell efter utfört uppdrag. Tomtarna kom fram till följande algoritm: 1. Tomte 1 är en såkallad räknetomte. han håller reda på hur många som varit i rummet. 2. Tomte 1 ändrar alltid spakens läge. 3. De andra tomtarna får endast fälla upp spaken en gång och detta endast om de sett att spaken tidigare ändrat läge. 4. Då tomte 1 ser att spaken inte står i det läge han lämnade den senast har en tomte varit i rummet. Han räknar då denna. 5. Den 15:e gången tomte 1 ser att spaken står i fel läge har alla andra varit där. Din uppgift är att skriva ett program som simulerar detta förlopp och räknar hur många gånger trollet behöver plocka ut tomtar innan de blir fria. Själva slumpningen skall vara så att man slumpar vilken tomte som blir hämtad och om det är tomte nummer 1 skall denna räkna upp varje gång spaken står i ett felaktigt läge och de andra skall fälla upp spaken en gång var. Körexempel 1: Trollet hämtade ut tomtar 290 gånger. Körexempel 2: Trollet hämtade ut tomtar 278 gånger. Körexempel 3: Trollet hämtade ut tomtar 379 gånger.

26 kl Uppgift 5 Det finns ett givet huvudprogram som läser in heltal från tangentbordet och sen anropar en sorteringsprocedur som ligger i ett paket. Detta paket är också givet. Sorteringen sker med hjälp av den såkallade Bubble Sort som vi redan sett i laborationsserien och på lektion under kursens gång. Din uppgift är att skapa ett nytt paket och ändra i huvudprogrammet så att ditt nya paket används istället för det givna. OBS! Skicka in alla filer som behövs för att kunna kompilera och köra ditt program när du begär rättning. Det nya paketet skall ha en sorteringsprocedur som använder sig av en algoritm som kallas för Selection Sort. Denna algoritm ser ut på följande sätt: 1. Sätt N till första index i fältet 2. Leta reda på det minsta värde som finns i fältet fr.o.m. N till sista indexet 3. Byt plats på det N:te värdet och det minsta värdet i fältet 4. Öka N med 1 5. Upprepa ovanstående till det att N > sista index i fältet Till din hjälp har vi lagt upp ett program som du kan provköra för att se hur algoritmen fungerar. Detta program heter given_files/demo_selection_sort.

27 kl Uppgift 6 Matematiker är ett underligt folk. De håller på med serier och underliga tal. I USA har matematikerna dock lite problem att skilja på Christmas day (dec25) och Halloween (oct31). Konstigt vad lite olika talbaser kan ställa till det. Nog om detta. Vi har i denna uppgift en fundering på om det finns något hexadecimalt tal som, om det tolkas som ett decimalt tal, är hälften så stort som det decimala tal det egentligen motsvarar (d.v.s. HEXTALET * 2 = DECIMALTALET). Antag att vi har det hexaecimala talet 123. Detta tal översatt till decimala talsystemet blir 1* * *16 0 = = 291. I detta fall är det inte så att 123 * 2 = 291 så vi kan utesluta hextalet 123 som aspirant på detta. Din uppgift är att skriva ett program som kontrollerar om det finns något sådant hexadecimalt tal vars korrekts värde i decimala talsystemet ligger i värdemängden som kan representeras med Integer. Programmet skall isåfall skriva ut detta hexadecimala tal i dess hexadecimala form på en textfil som skall heta HEX_DEC_LIKA.TXT. Körexempel (där vi antar att vi funnit något sådant tal): Programmet har hittat hextalet som uppfyller kravet. Detta är: Körexempel (där vi antar att vi inte funnit något sådant tal): Programmet har inte hittat något hextal som uppfyller kravet. OBS! Där det står skall alltså talet stå. OBS! Ovanstående två utskrifter är alltså inte på skärmen utan i textfilen.

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) 2009-12-16.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Skriv funktionen create_diagonal som tar emot de två parametrarna R och N. R markerar hur många rader den resulterande matrisen skall få och N markerar

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) 2008-03-12.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som läser igenom en textfil som heter FIL.TXT och skriver ut alla rader där det står ett decimaltal först på raden. Decimaltal

Läs mer

Uppgift 1a (Aktiekurser utan poster)

Uppgift 1a (Aktiekurser utan poster) Uppgift 1a (Aktiekurser utan poster) Vi har lite olika upplägg i de kurser vi håller och i vissa kurser finns det med något som vi kallar "poster" (eng. "record"). I andra har vi inte med detta. Vi har

Läs mer

Uppgift 1 (vadå sortering?)

Uppgift 1 (vadå sortering?) 2011-06-08.kl.14-19 Uppgift 1 (vadå sortering?) Du skall skriva ett program som sorterar in en sekvens av tal i en vektor (en array ) enligt en speciell metod. Inledningsvis skall vektorn innehålla endast

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) 2006-12-08.kl.08-13 Uppgift 1 ( Betyg 3 uppgift ) Implementera följande funktion: fun(1) = 1 fun(n) = fun(n / 2), för jämna n fun(n) = n / (fun(n - 1) + fun(n + 1)), för udda n Exempel på korrekta resultat:

Läs mer

kl Tentaupplägg

kl Tentaupplägg 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

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) 2009-04-14.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Du skall hitta det största tal N i intervallet [1, 999] där N 3 = produkten av alla heltalsdelare till N. Här följer två beskrivande exempel (inte körexempel)

Läs mer

Uppgift 1 (grundläggande konstruktioner)

Uppgift 1 (grundläggande konstruktioner) Uppgift 1 (grundläggande konstruktioner) a) Skriv ett program som låter användaren mata in 7 heltal och som gör utskrifter enligt nedanstående körexempel. Mata in 7 heltal: 1 0 0 3 1 1 1 Tal nr 2 var en

Läs mer

Uppgift 1 (Sorterade heltal som är OK)

Uppgift 1 (Sorterade heltal som är OK) 2013-03-12.kl.14-19 Uppgift 1 (Sorterade heltal som är OK) Ibland råkar man ut för att man måste se till att man inte får dubletter i sina inmatningar. Denna uppgift baserar sig på detta, men dessutom

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) Uppgift 1 ( Betyg 3 uppgift ) Skriv ett program, Draw_Hexagones, som ritar ut en bikupa enligt körexemplen nedan. Exempel 1: Mata in storlek på bikupan: 1 Exempel 3: Mata in storlek på bikupan: 3 \ / \

Läs mer

TDIU Regler

TDIU Regler Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt

Läs mer

Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson Plot och rekursion

Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson Plot och rekursion Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson 2010-11-19 Plot och rekursion I denna laboration skall du lära dig lite om hur plot i MatLab fungerar samt använda

Läs mer

kl Tentaupplägg

kl Tentaupplägg 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

Läs mer

TDIU Regler

TDIU Regler Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt

Läs mer

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

TENTA: TDDD11 & TDDC68. Tillåtna hjälpmedel. Starta Emacs, terminal och tentakommunikationsfönster. Skicka in frågor och uppgifter TENTA: TDDD11 & TDDC68 Tillåtna hjälpmedel Det är tillåtet att ha böcker (t.ex. Ada-bok, formelsamlingar, lexikon,...) med sig samt utdelade lathundar (finns på kurshemsidan) för Ada, Unix och Emacs. Utdraget

Läs mer

Linköpings Tekniska Högskola Instutitionen för Datavetenskap (IDA) Torbjörn Jonsson, Erik Nilsson Lab 2: Underprogram

Linköpings Tekniska Högskola Instutitionen för Datavetenskap (IDA) Torbjörn Jonsson, Erik Nilsson Lab 2: Underprogram Mål Lab 2: Underprogram Följande laboration introducerar underprogram; procedurer, funktioner och operatorer. I denna laboration kommer du att lära dig: Hur man skriver underprogram och hur dessa anropas.

Läs mer

DUGGA Tentaupplägg

DUGGA Tentaupplägg 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

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) 2010-04-06.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Skriv den funktion, draw_figure, som ritar ut en liksidig figur enligt exemplen nedan med så många hörn som anges som parameter till funktionen (den ritar

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) Uppgift 1 ( Betyg 3 uppgift ) Skriv ett program, Draw_Hexagones, som ritar ut en bikupa enligt körexemplen nedan. Exempel 1: Mata in storlek på bikupan: 1 + / \ + + + + \ / + Exempel 3: Mata in storlek

Läs mer

kl Tentaupplägg

kl Tentaupplägg 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

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) 2004-03-10.kl.08-13 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program som ritar ut en åtthörning på skärmen. Åtthörningen skall dock se ut enligt exemplen nedan och det är så att användaren skall

Läs mer

Tentamen TEN1 HI

Tentamen TEN1 HI Tentamen TEN1 HI1029 2014-03-14 Skrivtid: 8.15-13.00 Hjälpmedel: Referensblad (utdelas), papper (tomma), penna Logga in med tentamenskontot ni får av skrivvakten. Det kommer att ta tid att logga in ha

Läs mer

kl Tentaupplägg

kl Tentaupplägg 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

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) 2008-03-25.kl.14-19 Uppgift 1 ( Betyg 3 uppgift ) Du skall skriva ett program (en funktion), my_plot_figure, som läser in ett antal sekvenser av koordinater från tangentbordet och ritar ut dessa till en

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) 2005-06-09.kl.08-13 Uppgift 1 ( Betyg 3 uppgift ) Ett plustecken kan se ut på många sätt. En variant är den som ses nedan. Skriv ett program som låter användaren mata in storleken på plusset enligt exemplen

Läs mer

Tentaupplägg denna gång

Tentaupplägg denna gång Tentaupplägg denna gång Denna tenta är uppdelad i två olika varianter. Det är helt ok att använda vilken variant ni vill. Det är ok att byta mitt under tentan om man så vill också. Variant 1: Uppgift 1,

Läs mer

Uppgifter till praktiska tentan, del A. (7 / 27)

Uppgifter till praktiska tentan, del A. (7 / 27) Uppgifter till praktiska tentan, del A. (7 / 27) I. Sortering/Sökning: III II. Representation/Omvandling/format/protokoll: II III. Strukturering: II I alla problem, där bokstäver förekommer, antar vi att

Läs mer

kl Tentaupplägg

kl Tentaupplägg 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

Läs mer

Tentaupplägg denna gång

Tentaupplägg denna gång Några tips på vägen kanske kan vara bra. 2014-10-30.kl.08-13 Tentaupplägg denna gång TIPS1: 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

Läs mer

kl Tentaupplägg

kl Tentaupplägg 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

Läs mer

DUGGA Tentaupplägg

DUGGA Tentaupplägg 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

Läs mer

kl Tentaupplägg

kl Tentaupplägg 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

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) Uppgift 1 ( Betyg 3 uppgift ) I filerna queue_handling.ads och queue_handling.adb finns en datastruktur som motsvarar en kö. Det finns fyra operationer som kan utföras på en kö. 1) Enqueue som stoppar

Läs mer

Tentaupplägg denna gång

Tentaupplägg denna gång Några tips på vägen kanske kan vara bra. Tentaupplägg denna gång TIPS 1: Läs igenom ALLA uppgifterna och välj den du känner att det är den lättaste först. Det kan gärna ta 10-20 minuter. Försök skriva

Läs mer

TDP Regler

TDP Regler Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt

Läs mer

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder

Block 2 Algebra och Diskret Matematik A. Följder, strängar och tal. Referenser. Inledning. 1. Följder Block 2 Algebra och Diskret Matematik A BLOCK INNEHÅLL Referenser Inledning 1. Följder 2. Rekursiva definitioner 3. Sigmanotation för summor 4. Strängar 5. Tal 6. Övningsuppgifter Referenser Följder, strängar

Läs mer

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok, t.ex. den rekommenderade kursboken. Boken får ha anteckningar,

Läs mer

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen Datastrukturer och algoritmer Föreläsning 15 Inför tentamen 1 Innehåll Kursvärdering Vi behöver granskare! Repetition Genomgång av gammal tenta 2 Första föreläsningen: målsättningar Alla ska höja sig ett

Läs mer

Teoretisk del. Facit Tentamen TDDC (6)

Teoretisk del. Facit Tentamen TDDC (6) Facit Tentamen TDDC30 2014-08-29 1 (6) Teoretisk del 1. (6p) "Snabba frågor" Alla svar motiveras väl. a) Vad är skillnaden mellan synligheterna public, private och protected? (1p) Svar:public: Nåbar för

Läs mer

kl Tentaupplägg

kl Tentaupplägg 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

Läs mer

Tentaupplägg denna gång

Tentaupplägg denna gång Några tips på vägen kanske kan vara bra. Tentaupplägg denna gång TIPS1: 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

Läs mer

TDIU Regler

TDIU Regler Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt

Läs mer

Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00

Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00 1 ( 7) Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00 Tillåtna hjälpmedel: Dator, penna, papper, linjal, suddgummi, godkänd(a) bok/böcker/kompendier (ej anteckningar,

Läs mer

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper Tentamen Programmeringsteknik II 2018-10-19 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer

Läs mer

Regler. Betygssättning

Regler. Betygssättning Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt

Läs mer

TDP Regler

TDP Regler Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt

Läs mer

TDP Regler

TDP Regler Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt

Läs mer

kl Tentaupplägg

kl Tentaupplägg 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

Läs mer

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift ) 2008-01-11.kl.08-13 Uppgift 1 ( Betyg 3 uppgift ) Skriv ett program som ritar ut svenska flaggan i färg (tips: den är blå med ett gult kors :-) ). Till din hjälp finns det ett par procedurer som ställer

Läs mer

kl Tentaupplägg

kl Tentaupplägg 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

Läs mer

Tentaupplägg denna gång

Tentaupplägg denna gång Några tips på vägen kanske kan vara bra. Tentaupplägg denna gång TIPS 1: Läs igenom ALLA uppgifterna och välj den du känner att det är den lättaste först. Det kan gärna ta 10-20 minuter. Försök skriva

Läs mer

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31

TANA17 Matematiska beräkningar med MATLAB för M, DPU. Fredrik Berntsson, Linköpings Universitet. 27 oktober 2015 Sida 1 / 31 TANA17 Matematiska beräkningar med MATLAB för M, DPU Fredrik Berntsson, Linköpings Universitet 27 oktober 2015 Sida 1 / 31 TANA17 Kursmål och Innehåll Målet med kursen är att Ge grundläggande färdighet

Läs mer

TDP Regler

TDP Regler Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt

Läs mer

Tentaupplägg. Betygsgränser: 1 uppg 19:00 Betyg 3 2 uppg 18:00 Betyg 4 2 uppg 16:30 Betyg 5 3 uppg 18:00 Betyg 5

Tentaupplägg. Betygsgränser: 1 uppg 19:00 Betyg 3 2 uppg 18:00 Betyg 4 2 uppg 16:30 Betyg 5 3 uppg 18:00 Betyg 5 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

Läs mer

Kursmaterial för laborationer i

Kursmaterial för laborationer i Kursmaterial för laborationer i IMPA TDDC 68 Sammanställt av Torbjörn Jonsson 2007-02-09 INNEHÅLL Allmänt om C++-laborationerna 1 De olika laborationerna: Lab0: Grundläggande C++ 3 Lab1: Sortering med

Läs mer

Föreläsning 3.1: Datastrukturer, en översikt

Föreläsning 3.1: Datastrukturer, en översikt Föreläsning.: Datastrukturer, en översikt Hittills har vi i kursen lagt mycket fokus på algoritmiskt tänkande. Vi har inte egentligen ägna så mycket uppmärksamhet åt det andra som datorprogram också består,

Läs mer

Teoretisk del. Facit Tentamen TDDC kl (6) 1. (6p) "Snabba frågor" Alla svar motiveras väl.

Teoretisk del. Facit Tentamen TDDC kl (6) 1. (6p) Snabba frågor Alla svar motiveras väl. Facit Tentamen TDDC30 2015-08-28 kl 08-12 1 (6) Teoretisk del 1. (6p) "Snabba frågor" Alla svar motiveras väl. a) Vad är syftet med ett interface? (1p) Svar:Att ange vilka metoder som ska finnas, utan

Läs mer

Föreläsning 4: Poster

Föreläsning 4: Poster Föreläsning 4: Poster Följande är genomgånget: type Person_Type is Namn : String(30); Skonr : Float; Kon : Boolean; Diskussion runt detta med olika typer m.m. Har tagit upp vilka operationer man kan göra

Läs mer

Facit Tentamen TDDC (7)

Facit Tentamen TDDC (7) Facit Tentamen TDDC30 2014-03-18 1 (7) Teoretisk del 1. (3p) "Snabba frågor" a) Varför kan man tänkas vilja dölja metoder och variabler med private? (0.5p) Svar:För att skydda interna variabler från ändringar

Läs mer

UPPGIFT 1 TVETYDIGA DATUM

UPPGIFT 1 TVETYDIGA DATUM UPPGIFT 1 TVETYDIGA DATUM Datum skrivs på olika sätt i olika länder. Till exempel skulle datumet 03/05/01 i Sverige betyda 1 maj 2003, medan det i USA skulle vara 5 mars 2001 och i en del andra länder

Läs mer

kl Tentaupplägg

kl Tentaupplägg 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

Läs mer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Prioritetskö Heap Representation som

Läs mer

Teoretisk del. Facit Tentamen TDDC (6)

Teoretisk del. Facit Tentamen TDDC (6) Facit Tentamen TDDC30 2013-06-05 1 (6) Teoretisk del 1. (3p) "Snabba frågor" Alla svar motiveras väl. a) Vad skiljer en statisk metod från en icke-statisk? (0.5p) Svar:En statisk metod är associerad till

Läs mer

kl Tentaupplägg

kl Tentaupplägg 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

Läs mer

kl Tentaupplägg. TIPS 4: Du kan kompilera din kod med följande kommandon g++11, w++11 (för mer varningar)

kl Tentaupplägg. TIPS 4: Du kan kompilera din kod med följande kommandon g++11, w++11 (för mer varningar) 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

Läs mer

TDP Regler

TDP Regler Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt

Läs mer

Uppgift 1 (Oläsliga krypterade meddelanden)

Uppgift 1 (Oläsliga krypterade meddelanden) Uppgift 1 (Oläsliga krypterade meddelanden) Ofta vill man kryptera text för att inte andra skall se vad man skrivit. I den givna filen KRYPTERAD_TEXT.TXT finns en krypterad text som kan vara av intresse

Läs mer

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26

TAIU07 Matematiska beräkningar med MATLAB för MI. Fredrik Berntsson, Linköpings Universitet. 15 januari 2016 Sida 1 / 26 TAIU07 Matematiska beräkningar med MATLAB för MI Fredrik Berntsson, Linköpings Universitet 15 januari 2016 Sida 1 / 26 TAIU07 Kursmål och Innehåll Målet med kursen är att Ge grundläggande färdighet i att

Läs mer

TDIU Regler

TDIU Regler Regler Student får lämna salen tidigast en timme efter tentans start. Vid toalettbesök eller rökpaus ska pauslista utanför salen fyllas i. All form av kontakt mellan studenter under tentans gång är strängt

Läs mer

kl Examination - Ada

kl Examination - Ada Examination - Ada 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

Läs mer

kl Tentaupplägg

kl Tentaupplägg 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

Läs mer

kl Tentaupplägg

kl Tentaupplägg 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

Läs mer

5 Grundläggande in- och utmatning

5 Grundläggande in- och utmatning 5 Grundläggande in- och utmatning För att användaren skall kunna kommunicera med programmet krävs att man inkluderar ett eller flera bibliotek med rutiner. I Ada finns det ett antal paket som gör detta

Läs mer

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer

TDDC30/725G63. Objektorienterad programmering i Java, datastrukturer och algoritmer Tentamen i.. TDDC30/725G63 Objektorienterad programmering i Java, datastrukturer och algoritmer Datum 2012-12-21 Tid 14-18 Provkod DAT1 Institution Institutionen för Datavetenskap (IDA) Jour Johan Janzén

Läs mer

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

UPPGIFT 1 TVÅPOTENSER. UPPGIFT 2 HISSEN I LUSTIGA HUSET. UPPGIFT 1 TVÅPOTENSER. 2 ½ ¾ = 5575186299632655785383929568162090376495104 n = 142 är det minsta värde på n för vilket 2 Ò inleds med siffrorna 55. Uppgiften består i att skriva ett program som tar emot

Läs mer

F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson!

F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Datorer i system! Roger Henriksson! F2 Datarepresentation talbaser, dataformat och teckenkodning EDAA05 Roger Henriksson Von Neumann-arkitekturen Gemensamt minne för programinstruktioner och data. Sekventiell exekvering av instruktionerna.

Läs mer

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

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011, KTH STH TENTAMEN HI1024:TEN2 - Praktisk tentamen Tid: Fredagen den 21 oktober 2011, 8.15-13.15 Gamla kurskoder: HI1900, 6E2950, etc. Examinator: Johnny Panrike Rättande lärare: Nicklas Brandefelt, Johnny

Läs mer

kl Tentaupplägg

kl Tentaupplägg 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

Läs mer

Övningsuppgifter till föreläsning 2 Variabler och uttryck

Övningsuppgifter till föreläsning 2 Variabler och uttryck Sid 1 (5) Övningsuppgifter till föreläsning 2 Variabler och uttryck Syfte Syftet med övningsuppgifterna är att träna på: Aritmetik, variabler, tilldelning, scanf och printf Generellt Diskutera gärna uppgifterna

Läs mer

Objektorienterad programmering D2

Objektorienterad programmering D2 Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste

Läs mer

BINÄRA TRÄD. (X = pekarvärdet NULL): struct int_bt_node *pivot, *ny; X X X 12 X X 12 X X -3 X X

BINÄRA TRÄD. (X = pekarvärdet NULL): struct int_bt_node *pivot, *ny; X X X 12 X X 12 X X -3 X X Algoritmer och Datastrukturer Kary FRÄMLING/Göran PULKKIS (v23) Kap. 7, Sid 1 BINÄRA TRÄD Träd används för att representera olika slags hierarkier som ordnats på något sätt. Den mest använda trädstrukturen

Läs mer

F2 Binära tal EDA070 Datorer och datoranvändning

F2 Binära tal EDA070 Datorer och datoranvändning Datarepresentation F2 Binära tal EDA070 Roger Henriksson I en dator lagras och behandlas all information i form av binära tal ettor och nollor. En binär siffra kallas för en bit BInary digit. Ett antal

Läs mer

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Försättsblad till skriftlig tentamen vid Linköpings Universitet Försättsblad till skriftlig tentamen vid Linköpings Universitet Datum för tentamen 2015-08-28 Sal Tid 08:00 12:00 Kurskod Provkod Kursnamn/benämning Institution Antal uppgifter som ingår i tentamen Antal

Läs mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 6 Anton Grensjö grensjo@csc.kth.se 4 oktober 2017 1 Idag Algoritmkonstruktion (lite blandat) Redovisning och inlämning av labbteori 3 2 Uppgifter Uppgift

Läs mer

Laboration 1. "kompilera"-ikonen "exekvera"-ikonen

Laboration 1. kompilera-ikonen exekvera-ikonen Programmerade system I1 Syfte Laboration 1. Syftet med denna laboration är dels att göra dej bekant med de verktyg som kan vara aktuella i programmeringsarbetet, dels ge en första inblick i att skriva

Läs mer

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

Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1. Måndagen den 10 januari 2011, Programmering, grundkurs, 8.0 hp HI1024, HI1900 etc., Tentamen TEN1 Måndagen den 10 januari 2011, 8.15 12.15 Tentamen består av två delar, del A och del B. Del A innehåller 10 kryssfrågor på olika teman

Läs mer

Tentamen, Algoritmer och datastrukturer

Tentamen, Algoritmer och datastrukturer UNDS TEKNISKA ÖGSKOA (6) Institutionen för datavetenskap Tentamen, Algoritmer och datastrukturer 23 8 29, 8. 3. Anvisningar: Denna tentamen består av fem uppgifter. Totalt är skrivningen på 36 poäng och

Läs mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 6 Anton Grensjö grensjo@csc.kth.se 9 oktober 2015 Anton Grensjö ADK Övning 6 9 oktober 2015 1 / 23 Översikt Kursplanering Ö5: Grafalgoritmer och undre

Läs mer

Föreläsning 6: Introduktion av listor

Föreläsning 6: Introduktion av listor Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.

Läs mer

Tentaupplägg denna gång

Tentaupplägg denna gång Några tips på vägen kanske kan vara bra. Tentaupplägg denna gång TIPS 1: Läs igenom ALLA uppgifterna och välj den du känner att det är den lättaste först. Det kan gärna ta 10-20 minuter. Försök skriva

Läs mer

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Försättsblad till skriftlig tentamen vid Linköpings Universitet Försättsblad till skriftlig tentamen vid Linköpings Universitet Datum för tentamen 2013-03-27 Sal Tid 08:00 12:00 Kurskod Provkod Kursnamn/benämning Institution Antal uppgifter som ingår i tentamen Antal

Läs mer

Tillämpad Programmering (ID1218) :00-13:00

Tillämpad Programmering (ID1218) :00-13:00 ID1218 Johan Montelius Tillämpad Programmering (ID1218) 2014-03-13 09:00-13:00 Förnamn: Efternamn: Regler Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten.

Läs mer

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2 Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python TDDE24 Funktionell och imperativ programmering del 2 Hjälpmedel Följande hjälpmedel är tillåtna: Exakt en valfri bok,

Läs mer

kl Tentaupplägg

kl Tentaupplägg 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

Läs mer

Talsystem Teori. Vad är talsystem? Av Johan Johansson

Talsystem Teori. Vad är talsystem? Av Johan Johansson Talsystem Teori Av Johan Johansson Vad är talsystem? Talsystem är det sätt som vi använder oss av när vi läser, räknar och skriver ner tal. Exempelvis hade romarna ett talsystem som var baserat på de romerska

Läs mer

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN HI1024 Programmering, grundkurs TEN2 2016-01-09 KTH STH Haninge 8.15-13.00 Tillåtna hjälpmedel: En A4 handskriven på ena sidan med egna anteckningar Kursboken C PROGRAMMING A Modern Approach K. N. King

Läs mer

Sökning och sortering

Sökning och sortering Sökning och sortering Programmering för språkteknologer 2 Sara Stymne 2013-09-16 Idag Sökning Analys av algoritmer komplexitet Sortering Vad är sökning? Sökning innebär att hitta ett värde i en samling

Läs mer

3. Toppkvinnor på hög Låt lådan och de två kvinnornas famnar utgöra stackarna L, K1 respektive K2. Från början finns alla kort i L.

3. Toppkvinnor på hög Låt lådan och de två kvinnornas famnar utgöra stackarna L, K1 respektive K2. Från början finns alla kort i L. KTH, Nada, Erik Forslin 2D1343, LÖSNING TILL TENTAMEN I DATALOGI FÖR ELEKTRO Lördagen den 8 mars 2003 kl 14 19 Maxpoäng tenta+bonus = 50+7. Betygsgränser: 25 poäng ger trea, 35 ger fyra, 45 ger femma.

Läs mer

Programmering II (ID1019) :00-11:00

Programmering II (ID1019) :00-11:00 ID1019 Johan Montelius Programmering II (ID1019) 2015-06-11 08:00-11:00 Instruktioner Du får inte ha något materiel med dig förutom skrivmateriel. Mobiler etc, skall lämnas till tentamensvakten. Svaren

Läs mer

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

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng TENTAMEN I PROGRAMMERING Ansvarig: Jan Skansholm, tel 7721012 Betygsgränser: Hjälpmedel: Sammanlagt maximalt 60 poäng. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng Skansholm,

Läs mer