kl Tentaupplägg

Relevanta dokument
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

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)

kl Tentaupplägg

kl Tentaupplägg

DUGGA Tentaupplägg

kl Tentaupplägg

kl Tentaupplägg

DUGGA Tentaupplägg

kl Tentaupplägg

kl Tentaupplägg

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

kl Tentaupplägg

kl Tentaupplägg

kl Examination - Ada

Tentaupplägg denna gång

kl Tentaupplägg

Tentaupplägg denna gång

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

kl Tentaupplägg

kl Tentaupplägg

kl Tentaupplägg

Tentaupplägg denna gång

Tentaupplägg denna gång

kl Tentaupplägg

kl Tentaupplägg

Tentaupplägg denna gång

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

kl Tentainformation

Uppgift 1a (Aktiekurser utan poster)

Tentamen Grundläggande programmering

Tentaupplägg denna gång

TDIU Regler

HI1024 Programmering, grundkurs TEN

Uppgift 1 ( Betyg 3 uppgift )

Tentaupplägg denna gång

HI1024 Programmering, grundkurs TEN

TDP Regler

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 ( Betyg 3 uppgift )

Uppgift 1 (grundläggande konstruktioner)

kl Tentaupplägg

TDIU Regler

HI1024 Programmering, grundkurs TEN

Uppgift 1 ( Betyg 3 uppgift )

2017-XX-XX.kl Tentaupplägg

Uppgift 1 (Sorterade heltal som är OK)

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

Uppgift 1 ( Betyg 3 uppgift )

Uttryck, satser och strömhantering

Tentamen TEN1 HI

TDIU01 / 725G

Uppgift 1 (vadå sortering?)

Föreläsning 7: Filer

HI1024 Programmering, grundkurs TEN

TDP Regler

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Tentamen, EDAA10 Programmering i Java

TDP Regler

HI1024 Programmering, grundkurs TEN

TDIU Regler

JavaScript del 3 If, Operatorer och Confirm

kl Tentaupplägg

Översikt MERA JAVA OCH ECLIPSE. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning

Bakgrund. Bakgrund. Bakgrund. Håkan Jonsson Institutionen för systemteknik Luleå tekniska universitet Luleå, Sverige

Planering av ett större program, del 2 - for och listor. Linda Mannila

TDDC77 Objektorienterad Programmering

Introduktion till MATLAB, med utgångspunkt från Ada

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

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Tentamen i Programmering grundkurs och Programmering C

TDP Regler

Logik och kontrollstrukturer

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Regler. Betygssättning

Föreläsning 4: Filer och strömmar

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

kl Tentainformation

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

TDP Regler

Tentamen i Grundläggande Programvaruutveckling, TDA548

Programmeringsuppgifter 1

Visual Basic, en snabbgenomgång

Tentamen i Grundläggande programmering STS, åk 1 fredag

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

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

Systemutvecklare SU13, Malmö

Föreläsning 1: Momstabellen i C++

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

TDIU20 (exempel) TDIU20 Tentaregler

Transkript:

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 att fastna på så kanske det är fel uppgift att ge sig på. Tiden du lägger på att noga läsa uppgifterna tjänar du in 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å (d.v.s. den uppgift du jobbar med). TIPS 3: 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. I körexemplen har vi markerat det som användaren matar in på tangentbordet med fet och kursiverad stil. Tänk på att körexemplen bara är ett exempel på när programmet körs. Testa ditt program noga och tänka över hur programmet skall fungera vid andra indata. Vi hinner normalt sett inte svara på frågor de sista 10 utminutera på tentan. Då ägnar vi all tid åt att rätta uppgifter för att alla skall hinna få svar innan ni går hem. Betygsgränser: Tid TekFak FilFak 1 poäng 19:00 Betyg 3 Betyg G 3 poäng 18:00 Betyg 4 3 poäng 16:45 Betyg VG 3 poäng 16:30 Betyg 5 >=4 poäng 18:00 Betyg 5 >=4 poäng 18:15 Betyg VG Bonustid från avklarade duggauppgifter/laborationer tillkommer till dessa tidsgränser. Tiden för betyg 3/G överstiger dock aldrig 5 timmar. OBS: Delpoäng delas inte ut på uppgifterna. För att få poäng på en uppgift måste man alltså lösa uppgiften helt (och enligt specifikation). Lycka till med tenterandet och hoppas att alla får G på minst en uppgift idag. M.v.h. /Torbjörn (examinator)

Uppgift 1 - Dvorak [1p] Den "normala" uppsättningen på tangentbord (s.k. "Qwerty") växte fram på skrivmaskinernas tid. Tangenternas placering var då optimerad för att bokstavsarmarna inte skulle fastna i varandra allt för ofta. Professor August Dvorak utvecklade en ny layout (som numera kallas för "Dvorak") som var optimerad för bekvämlighet och effektivitet. Både layouterna kan ses här till vänster (engelska varianterna). Det finns vetenskapligt underlag som stödjer att Dvorak är en mer effektiv tangentbordslayout, jämfört med Qwerty. Vad som menas med effektiv i detta avseende går vi inte in på i denna tentauppgift. Man kan dock fråga sig, varför inte denna mer "effektiva" tangentbordslayout har vunnit världen? Svaret är troligtvis vana. Eftersom de flesta som lär sig skriva på dator lär sig på ett Qwertytangentbord så är det besvärligt att byta. I denna uppgift skall du låta användaren mata in en hel mening (godtyckligt många tecken, till radslut). Vi tänker oss att personen har skrivit in meningen på Dvorak-layouten. Vi utgår ifrån att användaren inte matar in versaler (stora bokstäver). Programmet skall sedan mata ut meningen som den blir om personen hade gjort samma tangenttryckingar på ett Qwerty-tangentbord. Vi tar bara hänsyn till de tangenter som ringats in med rött ovan. Tecken som inte finns med, (t.ex. mellanslag, utropstecken) skall bara bli som de är. Körexempel: Mata in en mening: hail king albert, ruler of all albion. På Qwerty tg bord: jagp vglu apndokw ofpdo sy app apngsle TIPS: Det finns en given fil dvorak.adb som har tre deklarerade strängar med dvorak-layoutens innehåll. Använd den om du vill.

Uppgift 2 - Triangelkäpp [1p] Magikern Magnus den Magnifike har en särskild magisk käpp. Det magiska med käppen är att den kan förvandlas till en triangel! I själva verket är käppen uppdelad på tre segment, är ihålig, och har ett elastiskt band inuti sig. Drar man i käppens två yttre segment blir delarna lösa och kan snabbt sättas ihop till en triangel (se bild). (Om du är bekant med tältpinnar så fungerar de ibland på detta sätt). Protegén Pontus Plagiér vill göra en lika dan käpp till sin magiska föreställning och står nu hemma vid snickarbänken. Han har kapat käppen på ett ställe, men står nu och funderar, vilken bit skall han kapa härnäst och hur långt in, så att det säkert blir en triangel? Skriv ett program som läser in käppens totala längd och avståndet (från vänster) för första kapningen. Talen som matas in är heltal (behöver ej kontrolleras), och käppens totala längd är alltid ett udda heltal (behöver ej heller kontrolleras). Båda talen är i enheten cm. Ditt program skall sedan mata ut vilken av bitarna, och hur långt in (från vänster) som Pontus skall kapa för att bitarna tillsammans skall kunna bilda en triangel. TIPS: Det finns en matematisk sats som heter triangelolikheten, som innebär att för en triangel så måste man kunna namnge sidorna A, B och C så att A <= B + C. TIPS 2: Det är inte tänkt att du skall lösa detta genom att ställa upp ett ekvationssystem. Låt ditt program testa sig fram (en cm i taget) för att komma fram till en lösning. Körexempel 1: Mata in käppens totala längd: 11 Mata in första kapningens position (fr. vänster): 3 Gör nästa kapning på den högra biten, 3 cm in. Körexempel 2: Mata in käppens totala längd: 87 Mata in första kapningens position (fr. vänster): 54 Gör nästa kapning på den vänstra biten, 11 cm in.

Uppgift 3 - Operatorn Super_Or [2*p] Operatorn "or" i Ada fungerar på följande vis: för två villkor (logiska uttryck) A och B gäller att A or B är SANT om minst en av A och B är sann. FALSKT i övrigt. Man kan även "kedja" sådana uttryck, t.ex: är uttrycket "A or B or C" sant om minst en av A, B eller C är sann, men falskt i övrigt. Vi skulle kunna tänka oss en operator "Super_Or" som opererar på ett godtyckligt antal villkor och dessutom ett heltal N, men som fungerar på ett liknande sätt som "or". T.ex. skulle Super_Or med operanderna A, B, C, D, E (fem villkor) och N (ett icke-negativt heltal) om minst N st av A, B, C, D och E är sanna och falskt annars. Tråkigt nog kan vi inte formulera detta som en operator, utan det får istället bli en funktion. Du har fått ett påbörjat huvudprogram test_super_or.adb där du kan se hur det är tänkt att funktionen skall anropas. Du har även fått ett fält av Boolean definierat som du kan ha hjälp av när du skriver din funktion. Lägg till koden för funktionen Super_Or så att den fungerar så som beskrivs ovan. Det är beskrivet i testprogrammet hur utmatningen skall se ut vid korrekt körning. Du får inte ändra på huvudprogrammet. Ett antal observationer: Om N är lika med antalet villkor så blir funktionen effektivt operatorn "and". Om N är 0 blir resultatet alltid sant oavsett vilka villkor som skickas in. Om N är större än antalet villkor så blir resultatet alltid falskt. TIPS: Attributen 'Last, 'First, 'Length och 'Range är bra att ha i denna uppgift... *OBS: Om du löser uppgiften rekursivt, d.v.s helt utan loopar, så är uppgiften värd 1 extra poäng.

Uppgift 4 - Reverse_File [2p] I Ada finns filmoden In_File som tillåter ett program som öppnar en fil att läsa filens innehåll, från början till slut. F : File_Type; Str : String(1..10); begin Open(F, In_File, "DAGBOK.TXT"); Get(F, Str); läser de första 10 tecknen från filens första rad. Close(F); Det vore trevligt om vi kunde skapa en filmod som hette Reverse_File som istället öppnade upp filen bakifrån så att filens sista rad läses ifrån först, och sedan den näst sista o.s.v. Alltså på detta sätt: Open(F, Reverse_File, "DAGBOK.TXT"); Get(F, Str); läser 10 tecken från filens sista rad. Skip_Line(F); Get(F, Str); läser 10 tecken från filens näst sista rad. Close(F); Detta är självklart möjligt i programmeringens underbara värld, men täcks inte helt av kursen. Däremot skulle man kunna göra en ny variant av Open, som löser detta åt oss. Open_With_Reverse(F, "DAGBOK.TXT"); Get(F, Str); läser 10 tecknen från filens sista rad.... Det finns ett givet huvudprogram på filen test_reverse_file.adb. Lägg till koden som behövs för att programmet skall gå att kompilera och ge korrekt utmatning. Du skall inte ändra på huvudprogrammet. Vi har egna varianter på filen DAGBOK.TXT, men du får anta att filen inte har mer än 1000 rader och att ingen rad är längre än 100 tecken. OBS: Open_With_Reverse behöver inte klara av att programmet hanterar flera externa filer samtidigt.