Tentamen: Datordel Programmeringsteknik

Relevanta dokument
Tentamen: Datordel Programmeringsteknik

Tentamen: Datordel Programmeringsteknik

Tentamen: Datordel Programmeringsteknik

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

LÖSNINGSFÖRSLAG TILL Tentamen i objektorienterad programmering i C++ I

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

Chapter 3: Using Classes and Objects

HI1024 Programmering, grundkurs TEN

PROGRAMMERING-Java TENTAMINA

HI1024 Programmering, grundkurs TEN

Uppgift 1 ( Betyg 3 uppgift )

Planering Programmering grundkurs HI1024 HT data

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

kl Tentaupplägg

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Planering Programmering grundkurs HI1024 HT 2014

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

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Planering Programmering grundkurs HI1024 HT TIDAA

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

PROGRAMMERING-JAVA TENTAMINA

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Lösningar till uppgifterna sätts ut på kurssidan på nätet idag kl Omtentamen i Programmering C, 5p, A1, D1, E1, Fri, Pr1, Te/Ek1,

Datorlära 6. Arbeta med strängar Inmatning med tangentbordet Bygga ett program med inmatning, funktioner, osv

Programmering C: Tentamen of 5 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator

TENTAMEN. Luleå tekniska universitet

Besiktningsprotokollet

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Tentamen i Grundläggande Programvaruutveckling, TDA548

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Tentamen, Algoritmer och datastrukturer

Python. Python är, som Scheme, ett interpreterat språk men det finns kompilatorer för Python.

Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas.

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl Tentamen i Programmering C, Fri, Kväll,

[] Arrayer = Indexerad variabel

Agenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då

TDP Regler

DUGGA Tentaupplägg

Tentamen Programmeringsteknik för BME, C, D, E, F, I, N & Pi

Inlämningsuppgift 1, Digsim

Lösningar till uppgifterna sätts ut på kurssidan och på WebCT (Gamla Tentor) i dag kl 19. Tentamen i Programmering C, 5p, Distans, övriga,

TDDD78 Objektorientering: Lagring och livstid

Tentamen EDAF30 Programmering i C++

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

kl Tentaupplägg

Tentamen i DD2387 Programsystemkonstruktion med C++

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

Johan Karlsson Datavetenskap för teknisk kemi, 10p, moment 1 Datavetenskap Umeå Universitet. Tentamen

729G74 - IT och programmering, grundkurs. Dugga.

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

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

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

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 i Grundläggande Programvaruutveckling, TDA548

Skriv i mån av plats dina lösningar direkt i tentamen. Skriv ditt kodnummer längst upp på varje blad.

Variabler och konstanter

Föreläsning 10. Besiktningsprotokollet

HI1024 Programmering, grundkurs TEN

FÖRSLAG TILL LÖSNING AV Tentamen i Objektorienterad programmering C++ I

Matematisk Modellering

729G04 Programmering och diskret matematik

KTH STH TENTAMEN. HI1024:TEN2 - Praktisk tentamen Tid: 8-13, den 18 februari 2012

Uppgift 1 ( Betyg 3 uppgift )

Objektorientering: Lagring och livstid

HI1024 Programmering, grundkurs TEN

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Tentamen ges för: Tentamensdatum: Tid:

TDIU Regler

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

Tentamen, EDAA20/EDA501 Programmering

kl Tentaupplägg

Övning från förra gången: readword

Tentamen EDAF30 Programmering i C++

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl 13. Omtentamen i Programmering C, 5p, A1, D1, PA1, Fri,

Tentamen i EDA011 Programmeringsteknik för F, E, I, π och N

2 Pekare och dynamiska variabler.

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

Uppgift 1 (grundläggande konstruktioner)

Programmering II (ID1019) :00-17:00

ID1004 Laboration 4, November 2012

Tentamen TEN1 HI

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH

Frekvenstabell över tärningskast med C#

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Tentamen, EDAA10 Programmering i Java

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

Uppgift 1 ( Betyg 3 uppgift )

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

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

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

kl Tentaupplägg

Föreläsning 4: Poster

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

TDIU Regler

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Tentamen i Grundläggande programmering STS, åk 1 lördag

Föreläsning 2 Programmeringsteknik och Matlab DD1312. Programspråk. Utskrift på skärmen

Exempelsamling Assemblerprogrammering

Transkript:

Tentamen: Datordel Programmeringsteknik Datum: 2013-02-22 Tid: 9:00-14:00 Sal: Ansvarig: Resultat: Hjälpmedel: Betygsgränser: Ulf Johansson Anslås inom 3 veckor. Inga Sammanlagt 30 p för G, 45 p för VG. Iakttag följande: Arbeta i ett enda projekt. Observera att den c-kod som lämnas in skall vara körbar, dvs. ni måste kompilera om efter er sista ändring i koden och kontrollera att den slutgiltiga koden inte ger kompileringsfel. Kod som inte fungerar måste därför vara bortkommenterad. Endast det som ligger i respektive projektmapp kommer att bedömas. Lösningarna rättas i befintligt skick. Såväl funktionalitet som struktur bedöms, vilket innebär att: även en lösning som inte är fullständig kan ge poäng poängavdrag kan ges för onödigt komplicerade eller ostrukturerade lösningar. Koden behöver endast kommenteras när det står så i uppgiften. Kommandon från bibliotek (även Roberts) får användas fritt.

1) I denna uppgift skall vi arbeta med strängar och tecken, samt uppdelning i funktioner. Er uppgift är att skriva ett program som låter användaren mata in förnamn, efternamn och arbetsplatsnamn. Programmet behöver endast hantera bokstäver från det engelska alfabetet och ingen felkontroll behöver utföras, dvs. det får bli hur konstigt som helst om andra tecken används. Utifrån inmatningen skall programmet skapa en e- postadress på formatet first.last@acronymwork.se. Det som skall ske med strängen är alltså: i) allting skall omvandlas till små bokstäven ii) acronymwork skall skapas och bestå av initialbokstäverna i arbetsplatsens namn (se körningsexempel nedan)..se skall läggas till sist iii) Programmet skall även skapa och skriva ut ett s.k. Star Warsnamn utifrån följande enkla algoritm: tag de 3 första bokstäverna i förnamnet tillsammans med de 2 första bokstäverna i efternamnet. Observera att stor vikt läggs vid uppdelning i funktioner, där principen är att all input från användaren och all utskrift till skärmen skall ligga i huvudprogrammet, dvs. inte i de funktioner som skapar de olika delarna. Welcome to the e-mail and Star Wars name generator Please input a first name: Cecilia Please input a surname: Sonstrod Please input an organization name: Hogskolan i Boras E-mail address is: cecilia.sonstrod@hib.se Star Wars name is cecso Press any key to continue... Welcome to the e-mail and Star Wars name generator Please input a first name: Ulf Please input a surname: Johansson Please input an organization name: National Security Agency E-mail address is: ulf.johansson@nsa.se Star Wars name is ulfjo Press any key to continue...

2) Denna uppgift behandlar främst vektorer och slumptal. a) Börja med att deklarera en statisk heltalsvektor kallad dicescore som innehåller 10000 element. Deklarera även i main en annan heltalsvektor med 16 element som heter frequencies. (1p) b) Skriv en funktion hitdie som slår en sexsidig tärning dvs. returnerar ett heltal slumpat mellan 1 och 6. (2p) c) Skapa en funktion simulatedice som fyller vektorn dicescores med resultat där varje enskilt resultat fås genom att slå och lägga ihop tre sexsidiga tärningar. (3p) d) Skapa en funktion generatestatistics som går igenom dicescores och lagrar frekvenserna (det antal gånger som varje resultat erhållits) i vektorn frequencies. I vektorn frequencies skall alltså ligga antalet gånger summan av de tre tärningarna blev 3, antalet gånger summan av de tre tärningarna blev 4 etc. ända upp till antalet gånger summan av de tre tärningarna blev 18. (6p) e) Skapa därefter en funktion printstatistics som skriver ut de erhållna frekvenserna enligt nedan: The dice sum 3 was obtained 48 times The dice sum 4 was obtained 118 times The dice sum 18 was obtained 44 times (2p) f) Knyt ihop det hela med ett kort huvudprogram. Ingen menyhantering eller dylikt skall förekomma så fort programmet startar skall statistiken skrivs ut och programmet avslutas. (1p) Körningsexempel: The dice sum 3 was obtained 49 times The dice sum 4 was obtained 126 times The dice sum 5 was obtained 268 times The dice sum 6 was obtained 446 times The dice sum 7 was obtained 667 times The dice sum 8 was obtained 963 times The dice sum 9 was obtained 1112 times The dice sum 10 was obtained 1267 time The dice sum 11 was obtained 1251 time The dice sum 12 was obtained 1243 time The dice sum 13 was obtained 992 times The dice sum 14 was obtained 697 times The dice sum 15 was obtained 448 times The dice sum 16 was obtained 282 times The dice sum 17 was obtained 136 times The dice sum 18 was obtained 53 times Press any key to continue...

3) I denna uppgift skall ni tillverka ett programskelett för ett enkelt hundregister. a) Skriv en typdefinition för en post (struct) som representerar en hund. Posten skall innehålla tilltalsnamn, födelseår, chipnummer (en sträng på 15 tecken) och ras. b) Ge typdefinitionen för en struct innehållande en dynamisk vektor av hundar och två heltal för att hålla reda på vektorns storlek och antal utnyttjade celler. Structen skall vara av pekartyp. c) Skriv nu ett huvudprogram där ni deklarerar en variabel av den nya databastypen, allokerar minne och initialiserar den. Initial storlek skall vara 50 och ges av en konstant INITIAL_SIZE. d) Skriv en funktion getdogfromuser som från användaren tar in alla uppgifter för en hund och returnerar en struct innehållande den nya hunden. e) Skriv en funktion adddogtoregister för att lägga in en ny hund på första lediga index i vektorn och uppdatera relevanta variabler i databasstructen. Om vektorn inte rymmer fler element skall ett felmeddelande ges och programmet avslutas. f) Skriv sedan en funktion printalldogs som löper igenom vektorn och för varje hund skriver ut namn, ras och ålder. Det är ett krav att ert program innehåller en konstant för nuvarande år, som används i uträkningen av ålder. Då ni inte har exakt födelsedatum, så räcker det naturligtvis att göra en enkel subtraktion. g) Knyt slutligen ihop allt ovanstående genom att utöka ert huvudprogram från c)-uppgiften så att användaren matar in uppgifter för tre hundar, vilka läggs in i registret. Programmet skall sedan skriva ut innehållet i registret med ett anrop till printalldogs. (15 p)

Följande körningsexempel visar hur uppgifter för två fastigheter matas in och sedan skrivs hela registret ut: Please input house details. House id: AB1 Street: High Street City: Newcastle Type: Flat Number of rooms: 2 Total living area: 52 How many viewings (1-6): 2 Which month? 02 Input day: 28 Which month? 02 Input day: 30 Please input a day between 1 and 29. Input day: 29 Please input house details. House id: DE Street: Chestnut Street City: Chester Type: House Number of rooms: 4 Total living area: 130 How many viewings (1-6): 1 Which month? 03 Input day: 15 Printing all houses... ID: AB1 Street: High Street City: Newcastle Type: Flat Number of rooms: 2 Living area: 52 Viewings: 2012-02-28 2012-02-29 ID: DE Street: Chestnut Street City: Chester Type: House Number of rooms: 4 Living area: 130 Viewings: 2012-03-15