HI1024 Programmering, grundkurs TEN2 2015-10-30



Relevanta dokument
HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

HI1024 Programmering, grundkurs TEN

Tentamen TEN1 HI

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Tentamen TEN1 HI

Tentamen TEN1 HI

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

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

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

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Planering Programmering grundkurs HI1024 HT 2014

Planering Programmering grundkurs HI1024 HT data

HI1024, Programmering, grundkurs, 8hp KTH STH TENTAMEN. HI1024:TEN1 - Teoretisk tentamen Tid: Torsdagen den 20 oktober 2011,

BMI = (vikt i kg) / (längd i m) 2. Lösningsförslag

Planering Programmering grundkurs HI1024 HT TIDAA

#include <stdio.h> #include <string.h>

729G04 Programmering och diskret matematik TEN kl 8-12

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

Föreläsning 4. Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö

Chapter 4: Writing Classes/ Att skriva egna klasser.

729G04 Programmering och diskret matematik TEN kl 8-12

kl Tentaupplägg

TDDC74 Programmering: Abstraktion och modellering Dugga 3, kl 14 16, 25 mars 2015

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,

tentaplugg.nu av studenter för studenter

Tentamen ges för: Tentamensdatum: Tid:

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

729G04 Programmering och diskret matematik

PROGRAMMERING-JAVA TENTAMINA

PROGRAMMERINGSTEKNIK TIN212

Tentamen i. Programmering i språket C

Tentamen i Grundläggande Programvaruutveckling, TDA548

729G74 - IT och programmering, grundkurs. Dugga.

TENTAMEN. Programmering Grundkurs (HI1900) Skrivtid 13:15-18:15. Tisdagen 26 april Tentamen består av 8 sidor

Rutinbeskrivning Avstämningsmall Övriga Bilagor BR Bilagor

Chapter 3: Using Classes and Objects

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

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

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

7,5 högskolepoäng. Objektorienterad systemutveckling I Provmoment: Ladokkod: 21OS1B Tentamen ges för: Lycka till! /Peter & Petter

Tentamen *:58/ID100V Programmering i C Exempel 3

Tentamen i Programmering

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

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

Tentamen i Grundläggande Programvaruutveckling, TDA548

729G04 Programmering och diskret matematik Tenta kl 14:00-18:00

Gör så här för att rapportera:

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

DN1212/numpm Numeriska metoder och grundläggande programmering Laboration 1 Introduktion

tentamensdags och lab 3

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

Tentamen i Grundläggande programmering STS, åk

Användarhandledning Version 1.2

HI1024 Programmering, grundkurs TEN

Inlämningsuppgift 1, Digsim

TUTORIAL: SAMLING & KONSOLL

729G04 Programmering och diskret matematik

Programmering, grundkurs, 8.0 hp HI1024, omtentamen, TEN1. Tisdagen den 7 juni 2011,

Arrays (indicerade variabler) Föreläsning 4

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

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

TDIU Regler

kl Tentaupplägg

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

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

kl Tentaupplägg

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

Att öva på och förstå ett program med flera samverkande klasser.

Erfarenheter från labben

Projektuppgift - Banken

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

Testning av applikationer

Föreläsning 6 pekare och pekare tillsammans med arrayer

Tentamen i Introduktion till programmering

Tentamen i Programmering grundkurs och Programmering C

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 17 december 2015, kl 14:00-18:00

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

Användarmanual för Pagero Kryptering

International Olympiad in Informatics July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

Programmering Grundkurs (HI1900) Teoridel

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 08-12

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

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

Arrays (indicerade variabler) Föreläsning 6

kl Tentaupplägg

Föreläsning 13. In- och utmatning

TDP Regler

Design av en klass BankAccount som representerar ett bankkonto

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

kl Tentaupplägg

Alla datorprogram har en sak gemensam; alla processerar indata för att producera något slags resultat, utdata.

OOP Omtenta

Programmeringsolympiaden 2015

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

729G04 Programmering och diskret matematik

Tentamen OOP

Transkript:

HI1024 Programmering, grundkurs TEN2 2015-10-30 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 helt utan anteckningar Tomma papper och penna. Logga in med tentamenskontot ni får av skrivvakten. Det kommer att ta tid att logga in ha tålamod! Logga inte ut förrän ni är klara med hela tentan. Svaren på uppgifterna ska vara program bestående av en fil som kallas uppg1.c, uppg2.c, uppg3.c och uppg4.c. Dessa ska sparas direkt under H:. Även om ni inte löser hela uppgiften så kan ni få delpoäng men ni måste se till att koden kompilerar och kan köras. Både output och koden bedöms och det är viktigt att denna är välskriven och uppfyller uppgiftens instruktioner. Välj bra variabelnamn och struktur men lägg inte så stor vikt vid kommentarer. Kom ihåg ert tentamenskonto. Resultaten kommer att presenteras kopplade till dessa. Lycka till Betygsgränser (Max 18p): 8p (varav minst 3 på uppgift 2) Fx 9p E 11p D 12p C 14p B 16p A Examinator: Nicklas Brandefelt C99 Vill du kunna använda C99 i Code::Blocks måste du göra följande: Settings Compiler Other options Lägg till: -std=c99 i fönstret och tryck OK

1. Växlingskurs (4p) Du ska här skriva ett program som omvandlar mellan kronor och euro. Användaren ska få välja hur mycket som ska växlas och ifrån vilken valuta och sedan ska användaren få reda på hur mycket det blir i den andra valutan. Resultatet ska avrundas till två decimaler. Därefter får användaren möjlighet att göra en ny växling eller avsluta. Försök att få körningen att se ut enligt nedan. Input från användaren är i fetstil. Hur mycket vill du vaxla?100 Vilken valuta vill du vaxla fran? (1-kr, 2-euro)1 Det blir 11.10 euro Vill du vaxla mer? (1-ja, 2-nej)1 Hur mycket vill du vaxla?10 Vilken valuta vill du vaxla fran? (1-kr, 2-euro)2 Det blir 90.10 kr Vill du vaxla mer? (1-ja, 2-nej)2 Avslutar Använd växlingskursen 1 euro = 9.01 kr

2. Bankkonton (6p) I den här uppgiften ska vi påbörja ett program som hanterar en databas med bankkonton. Vi ska representera ett bankkonto med en struct. Ett bankkonto ska innehålla en ägare, ett kontonummer och ett saldo (pengar på kontot). Programmet ska lagra dessa i en array. Vi ska nu skriva tre funktioner som hjälper oss att göra saker med vår databas. Funktionerna ska anropas från huvudprogrammet som ges längst ner i denna uppgift. Löser du alla uppgifter ska ditt program fungera utan att du ändrar huvudprogrammet alls. Klarar du inte delar av uppgiften kan du behöva kommentera bort vissa rader och kanske hårdkoda vissa saker. I main har jag utgått ifrån att du använt typedef för att kalla din struct för Account. Om du inte gör det behöver du ändra något i main. a) Definiera en struct för ett konto med ägare, kontonummer och saldo överst i ditt program. Använd #define för ordlängden på ägare. Använd gärna typedef för att ge structen namnet Account. Använd #define för att definiera MAXACCOUNTS till 1000. Skriv in main nedan. (1p) b) Skriv en funktion add( ) som tar en array, en pekare till en int, ett namn, ett kontonummer och lägger till ett nytt konto till arrayen med saldo 0 kr. Heltalsvariabeln som pekaren pekar på ska ökas med ett. Se main nedan för anrop. (2p) c) Skriv en funktion print( ) som tar en array av Account och en int som är antalet account s i arrayen och skriver ut alla konton till kommandotolken. Försök efterlikna utskriften nedan. (1p) d) Skriv en funktion increase1000( ) som tar ett Account (obs ej array) och ökar saldot på detta konto med 1000. Se anrop i main nedan. (1p) e) Skriv en funktion totalamount( ) som returnerar summan av alla kontons saldon. (1p) int main() { Account reg[maxaccounts]; int nrofaccounts=0; add(reg,&nrofaccounts,"nicklas",123456); add(reg,&nrofaccounts,"armin",234567); increase1000(&reg[0]); increase1000(&reg[0]); increase1000(&reg[1]); print(reg,nrofaccounts); printf("banken har totalt: %d kr.",totalamount(reg,nrofaccounts)); return 0; } En körning: Konto Namn Saldo 123456 Nicklas 2000 234567 Armin 1000 Banken har totalt: 3000 kr.

3. Kryptering (4p) För full poäng använd funktioner och arrayer på ett bra sätt. Använd inga globala variabler. a) I denna uppgift ska du skriva en funktion som krypterar en sträng bestående av A-Z genom att flytta varje bokstav tre steg framåt så att A blir D, B blir E, och så vidare ända till X blir A, Y blir B, och Z blir C. Tecken som inte är A-Z skall lämnas orörda. b) Skriv nu en funktion som dekrypterar en krypterad sträng. Dvs som återskapar den ursprungliga strängen från den krypterade strängen. Båda funktionerna bör fungera tillsammans med main nedan: int main(){ char s[] = "HAR DU EN BRA MENING 1-JA 2-NEJ ABC XYZ"; crypt(s); decrypt(s); return 0; } En körning: HAR DU EN BRA MENING 1-JA 2-NEJ ABC XYZ KDU GX HQ EUD PHQLQJ 1-MD 2-QHM DEF ABC HAR DU EN BRA MENING 1-JA 2-NEJ ABC XYZ

4. Instickssortering (4p) När man ska sortera en array med heltal finns det flera möjliga algoritmer. I den här uppgiften skall du skriva en funktion som sorterar en array bestående av heltal med hjälp av instickssortering. Observera att sortera en array med någon annan algoritm ger noll poäng. Du skall också anropa funktionen med följande array {2, 7, 3, 9, 1, 5, 8} och skriva ut den sorterade arrayen i main. Funktionen skall dock klara att sortera arrayer av heltal av godtycklig längd. Förutom arrayen tar funktionen en in-parameter till som är arrayens längd. För full poäng skall funktionen inte behöva använda någon extra array utan klara sig med den array som skall sorteras och några variabler. Använd funktioner och arrayer på ett bra sätt och använd inga globala variabler. Instickssortering bygger på idén att om man har en sorterad lista och lägger till ett nytt tal genom att stoppa in det på rätt ställe så har man fortfarande en sorterad lista. Algoritm: Börja med att se det första talet i arrayen som en sorterad lista med bara ett tal. Lägg till tal nummer två till listan genom att stoppa in det på rätt ställe i den sorterade listan. Du har nu en sorterad lista som består av de två första talen i arrayen. Lägg nu till tal nummer tre i arrayen till din lista genom att stoppa in det på rätt ställe. Osv.