Tentaupplägg denna gång



Relevanta dokument
Tentaupplägg denna gång

Tentaupplägg denna gång

Tentaupplägg denna gång

Uppgift 1 (Oläsliga krypterade meddelanden)

kl Tentaupplägg

kl Tentaupplägg

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

kl Tentaupplägg

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

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

Bygga hus med LECA-stenar

kl Examination - Ada

kl Tentaupplägg

kl Tentaupplägg

kl Tentaupplägg

kl Tentaupplägg

kl Tentaupplägg

kl Tentaupplägg

kl Tentaupplägg

kl Tentaupplägg

kl Tentaupplägg

DUGGA Tentaupplägg

kl Tentaupplägg

kl Tentaupplägg

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

TDP Regler

kl Tentaupplägg

kl Tentaupplägg

DUGGA Tentaupplägg

Programmeringsuppgifter 1

kl Tentaupplägg

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

kl Tentaupplägg

Uppgift 1 ( Betyg 3 uppgift )

kl Tentaupplägg

Uppgift 1 (Sorterade heltal som är OK)

Problem: BOW Bowling. Regler för Bowling. swedish. BOI 2015, dag 1. Tillgängligt minne: 256 MB

Administration av landstingsstatistik. Statistiktjänsten

kl Tentaupplägg

kl Tentaupplägg

Vad roligt att ni har valt att bjuda varandra på den här timmen.

Tentaupplägg denna gång

Textsträngar från/till skärm eller fil

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

Föreläsning 6: Introduktion av listor

Tentaupplägg denna gång

kl Tentaupplägg

Övning: Dilemmafrågor

Uppgift 1 ( Betyg 3 uppgift )

Redovisning av inlämningsuppgifter

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Datorsystem Laboration 2: Minnesmappade bussar

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

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

Att göra investeringskalkyler med hjälp av

Sockets: server. with Ada.Command_Line; use Ada.Command_Line; with Ada.Exceptions; use Ada.Exceptions; with Ada.Text_IO; use Ada.

19. Skriva ut statistik

TAIU07 Matematiska beräkningar med Matlab

KREATIVA BÖNESÄTT. en praktisk hjälp till dig som är ledare! Initiativtagare till materialet: Maria Melin

Tentamen OOP

Björn Abelli Programmeringens grunder med exempel i C#

Bättre Självförtroende NU!

Några övningar att göra

Pernilla Falck Margareta Picetti Siw Elofsdotter Meijer. Matte. Safari. Direkt. Lärarhandledning. Andra upplagan, reviderade sidor

Att använda pekare i. C-kod

8-4 Ekvationer. Namn:..

Övning 2: I cellerna B19 och F26 ska du beräkna den totala ytan för respektive hus. I cell C28 den totala ytan, för båda husen.

Objektorienterad programmering D2

MÄSSHANDBOK ENTREPRENÖRSKAP PÅ RIKTIGT 2016 KRONOBERG

Omtentamen (del 1, 6 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201)

Programmeringsolympiaden 2012 Kvalificering

Övningar till UNIX/Linux Grundkurs och förslag till LÖSNING

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

VASS HBI Användarmanual

1 Ändra kolumnbredd och radhöjd

Att komma igång med FirstClass (FC)!

Skapa ett register över din grupp/klass

CSN-rapportering, gymnasiet

Hjälps åt att skriva några rader om senaste scoutmötet i avdelningens loggbok.

Till närstående som ska vara med vid samordnad vård- och omsorgsplanering via video eller telefon

ELEVHJÄLP. Diskussion s. 2 Åsikter s. 3. Källkritik s. 11. Fördelar och nackdelar s. 4. Samarbete s. 10. Slutsatser s. 9. Konsekvenser s.

Uppgift 1 (vadå sortering?)

Programmeringsolympiaden 2008 Kvalificering

Låt ipad bli fjärrkontroll för din Mac

Laborationer i kursmomentet Datoranvändning E1. Laboration nr 5: Mer om FrameMaker

Nallelek Lärarvägledning

Tema: 24-timmarsdygnet

VAD ÄR KÄRLEK? I mitt arbete med par har jag märkt att många får konflikter. för att de uppfattar kärlek på olika sätt. Det är vanligt att tro att

Google Apps For Education

Microsoft Publisher. Laborationskompendium för digital behandling av publikationer. Detta exemplar tillhör:

ETIK & MORAL. Vad är etik? Vad är moral?

2. Komma igång Skapa grupper och elever Skriv också ut sidan 13 så att eleverna har en snabbguide till programmet.

Lokal pedagogisk planering. Frivilligt kvällsdisco i skolmatsalen för de som går i årskurs 1 4 på skolan.

Datorövning Matlab/Simulink. Styr- och Reglerteknik för U3/EI2

DOPmatematik. Ett dataprogram för lärare. som undervisar i matematik. (Lågstadiet) Mellanstadiet. Högstadiet. Gymnasiet. Vuxenutbildning.

Felsökning av mjukvara

Det handlar om att ta fram och utveckla elevers inneboende nyfikenhet, initiativförmåga och självförtroende redan från tidiga åldrar.

Grundläggande programmering med C# 7,5 högskolepoäng

ÖREBRO LÄN KURSER FÖR FÖRENINGAR VÅREN 2016 GÖR EN ANNAN VÄRLD MÖJLIG

Konsten att leda workshops

Transkript:

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 ner lite saker som kan vara problem i uppgifterna. Om det är något du absolut kommer att fastna på kanske det är fel uppgift. Du tjänar lätt in denna tid på att välja rätt uppgift. TIPS 2: Kolla ibland till kommunikationsfönstret. Det kan ha kommit information till alla utan att ni skickat in en fråga. Kanske gäller det dig också (din uppgift kanske). TIPS 3: Sista timmen är vi normalt sett lite snällare och ger eventuellt lite bättre återkoppling på era fel. Innan dess kan man få högre betyg och därför kräver vi att ni har lite mer koll på vad som skall rättas till. Vi ger dock information om vilket symptom felet uppvisar om vi kompletterar er uppgift under hela tentans gång. Om ni är nära G tidigt på tentan kan detta kanske ge G i slutet. Don t give up before the fat lady sings. som de säger. TIPS 4: Om ni har problem med kompilator, Emacs eller annat som INTE har med uppgifterna att göra. Räck upp handen så kommer en assistent. Detsamma gäller om hur man kopierar givna filer cp given_files/*. eller liknande. Frågor om själva uppgifterna tar vi i första hand via tentasystemet. Vi hinner inte svara på frågor de sista 10 minuterna på tentan. Då ängnar vi all tid åt att rätta uppgifter för att alla skall hinna få svar innan ni går hem. Om det är så att ni skickar in en uppgift precis i slutet av tentan hinner vi förstås inte, men då får ni gärna skicka ett mail för att få reda på hur det gick. Vi rapporterar in resultaten efter det att alla tre passen är avslutade (antagligen dagen efter sista passet). Det tar ett par dagar med pappershantering efter detta så räkna med att det är i LADOK ca en vecka efter sista passet. Kolla med era kompisar om de fått poäng innan innan ni skickar mail till oss. Lycka till med tenterandet och hoppas att alla får G på minst en uppgift idag. M.v.h. /Torbjörn (examinator)

Uppgift 1 (Summera tal) Din uppgift är att skriva ett program som räknar ut summan av alla tal från och med N till och med K (där det är givet att K >= N). Det behövs ingen felhantering av indata, men ditt program får INTE använda sig av några upprepningssatser (for, while och loop) utan MÅSTE använda rekursion för att lösa alla former av upprepningar. Körexempel 1: Mata in N och K (där N <= K): 1 5 Summan av alla tal från 1 till 5 är 15. Körexempel 2: Mata in N och K (där N <= K): 5 10 Summan av alla tal från 5 till 10 är 45. Körexempel 3: Mata in N och K (där N <= K): 1 100 Summan av alla tal från 1 till 100 är 5050. Körexempel 4: Mata in N och K (där N <= K): 100 999 Summan av alla tal från 100 till 999 är 494550. Körexempel 5: Mata in N och K (där N <= K): 23 54 Summan av alla tal från 23 till 54 är 1232. Körexempel 6: Mata in N och K (där N <= K): 723 992 Summan av alla tal från 723 till 992 är 231525.

Uppgift 2 ( Bästa argumentet) Din uppgift är att ta reda på vilket av de argument som skickas in till programmet (som kommandoradsargument) som är längst (d.v.s. bäst i någon mening). Programmet skall dessutom skriva ut detta så som exemplen visar nedan. Om två argument är lika långa är det som ligger först bättre (eftersom det alltid är lättare att komma på argument efter det att någon annan redan gjort det, eller hur?). Det bör poängteras att programmet alltså INTE skall ha egen inmatning utan allt skall komma från argumentlistan som skickas direkt vid programstart. Körexempel 1: >> best_argument Detta är 4 argument. Resultat: Det bästa argumentet var argument.. Körexempel 2 (citationstecken håller ihop argument): >> best_argument Detta är 1 argument. Resultat: Det bästa argumentet var Detta är 1 argument.. Körexempel 3 (även apostrofer håller ihop argument: >> best_argument Detta är 3 argument. Resultat: Det bästa argumentet var Detta är. Körexempel 4: >> best_argument This is two arguments. Resultat: Det bästa argumentet var This is two. Körexempel 5 (saknar argument): >> best_argument Starta programmet med ett positivt antal argument. Körexempel 6 (argumentet består endast av en rad även om den råkar brytas lite här och där): >> best_argument Det är frågan vad som kommer ut av denna långa argumentlista? Det gör att du måste testa för det är >& /dev/null inte så helt uppenbart som du ser i svaret. Gör ett test och om ni kommer på det är ni riktigt kluriga och kan antagligen Unix också, men det är inte nödvändigt. Resultat: Det bästa argumentet var inte så helt uppenbart. TIPS 1: Skriv ut de olika argumenten i ditt program så ser du vad de innehåller. Då kan du själv avgöra bättre om ditt program fungerar. Tag bort utskrifterna innan du skickar in! TIPS 2: De olika inmatningarna finns i den givna filen given_files/input_rows.txt som du kan öppna i Emacs så att du bara kan klippa och klistra in i terminalen. Du kan själv lägga till fler testfall om du kopierar filen från given_files till din mapp.

Uppgift 3 (OB-tärningsstatistik) Det du skall göra i denna uppgift är att ta fram simulerad statistik över vad man får om man slår en s.k. OB-tärning. En OB-tärning kan teoretiskt sett ge alla värden från 1 och uppåt. Man använder en vanlig sexsidig tärning för att utföra denna simulering. För ett slag med en vanlig tärning kan man ju endast få värdena 1-6. För att få fram ett slag med OB-tärningen gör man på följande sätt. Man slår den tärningen. Om det inte blir en sexa tar man värdet av det som står. Om man får en sexa ersätter vi denna med två tärningar och slår dessa och summan av dem blir resultatet. Om det återigen kommer upp en sexa ersätter vi den med två nya och slår om igen. Man kan alltså säga att man ökar antalet tärningar som slås med ett för varje 6:a man slår. När man inte har några 6:or kvar räknar man ihop alla värden på alla tärningar. Några exempel på hur man kan få olika OB-värden: Slag 1: Om det är något av 1-5 => samma värde som står (KLAR) Om det är 6: Ersätt med två nya tärningar. Slag 2: Om båda tärningarna visar 1-5 => summan av dem (KLAR) Om en är 6: Ersätt denna med två nya och behåll värdet av den andra för att räkna ihop med den som inte var 6 senare. Om båda är 6: Ersätt båda med två nya. Räkna ihop värdet av alla fyra senare. Observera att detta kan hålla på i oändlig tid om man hela tiden slår minst en sexa. Vi hoppas att vi inte råkar ut för detta i vår simulering. Då får vi starta om programmet. På filen given_files/dice.adb finns en början på ett program som skall utföra denna simulering. Tanken är att programmet skall slå 10.000 OB-tärningsslag och lagra dem i en vektor. Därefter sorteras alla slag och sen skrivs statistik ut över hur många gånger olika värden förekom. Programmet är inte färdigt. Det som saknas är dels funktionen som slumpar ut ett OBtärningsslag och dels utskriften av tabellen med statistik. De anrop och den kod som redan är given FÅR INTE ändras. Du får dock lägga till annat som du kanske behöver. Körexempel (förkortad tabell av utrymmesskäl, dock är det möjligt att t.ex. 29:an aldrig kom, det största slag vi fått är 52 efter att vi kört programmet ca 30 gånger): Simulering av 10000 OB-tärningsslag. Slag Antal ------------ 1 1690 2 1693 3 1762...... (denna rad blir givetvis tabellrader) 17 15 18 4 19 8 20 11...... (samma här) 27 1 28 1 30 1

Uppgift 4 (Den allseende Maya-pyramiden) Den allseende pyramiden är en symbol som visar ett allseende öga som finns ovanför en pyramid (används bl.a. av Frimurarordern). Helhelten blir ofta lite likt en triangel. Det allseende ögat brukar ofta tolkas som en symbol för Guds öga som vakar över mänskligheten. I denna uppgift skall du få rita en helt ny version av denna allseende pyramid som vi i kursledningen har skapat (inte så snygg som andra varianter, men vi tar inte åt oss någon ära heller). Vi tänker oss att någon fotograferat detta monument och valt att se olika mycket av själva pyramiden. Detta anges av användaren. Vi vill att man skall kunna ta sig upp på pyramiden. Vi fyller därför pyramiden med 1:or och blanktecken på lämpliga platser för att få det att se ut som trappor som går upp till toppen. De tecken vi använder förutom 1:orna är i figurerna nedan: _ - = horisontalix (understrykningsstreck) och bindestreck = vertikalix (lodrätt streck, lodstreck) / \ = snedstreck och bakåtsnedstreck = blanktecken. = punkt och citationstecken Fyra körexempel: Ange pyramidens storlek: 3 Ange pyramidens storlek: 2 -_ _- -_ _- //.\\ //.\\ _\\ // \\ //_ - - - - /11 111 11\ /11 111 11\ Ange pyramidens storlek: 4 Ange pyramidens storlek: 1 -_ _- -_ _- //.\\ //.\\ _\\ // \\ //_ - - - - /11 111 11\ /11 111 11\ /111 11111 111\ TIPS 1: Ledtexten står alltid direkt till vänster i terminalen vid körning. Det lättaste sättet att finna var tecknen står är att jämföra med ledtextens positioner. TIPS 2: Var tredje rad ökar det med antingen en 1:a i mitten, ett blanktecken per delning eller en 1:a per ytterkant. I filen given_files/pyramid.txt finns ett större exempel.