HI1024 Programmering, grundkurs TEN2 2014-03-13



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

Tentamen TEN1 HI

Tentamen TEN1 HI

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

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

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:TEN1 - Teoretisk tentamen Tid: Torsdagen den 20 oktober 2011,

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

Planering Programmering grundkurs HI1024 HT data

Planering Programmering grundkurs HI1024 HT 2014

Planering Programmering grundkurs HI1024 HT TIDAA

Föreläsning 9. Repetition och exempelproblem

Tentamen ges för: Tentamensdatum: Tid:

Tentamen i Programmering

Tentamen i Programmering grundkurs och Programmering C

Programmeringsteknik med C och Matlab

Dynamiskt minne. Vad är dynamiskt minne Motivering Hur gör man i C Övningar

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

Att använda pekare i. C-kod

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

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

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

Programmering Grundkurs (HI1900) Teoridel

UPPGIFT 1 V75 FIGUR 1.

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

Testning av applikationer

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

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

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

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

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

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

Föreläsning 2: Avlusning och antilustekniker

KPP053, HT2016 MATLAB, Föreläsning 1. Introduktion till MATLAB Skript Inläsning och utskrift av variabler Ekvationssystem Anonyma funktioner

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

kl Tentaupplägg

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

C++ Funktioner 1. int summa( int a, int b) //funktionshuvud { return a+b; //funktionskropp } Värmdö Gymnasium Programmering B ++ Datainstitutionen

kl Tentaupplägg

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

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

Värmedistribution i plåt

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

Tentamen i. Programmering i språket C

729G04 Programmering och diskret matematik

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

C++ Slumptalsfunktioner + switch-satsen

Sortering. Om du följt dessa steg korrekt så ska böckerna nu vara sorterade.

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

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

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

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

729G74 - IT och programmering, grundkurs. Dugga.

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

Föreläsning 3. Programmering, C och programmeringsmiljö

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,

TUTORIAL: SAMLING & KONSOLL

HI1024 Programmering, grundkurs TEN

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

DUGGA Tentaupplägg

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

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll,

TDIU Regler

Tentamen i TDP004 Objektorienterad Programmering Praktisk del

tentamensdags och lab 3

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

OOP Omtenta

Introduktion C-programmering

TDDI22 (exempel) TDDI22 Tentaregler

kl Tentaupplägg

Statistik över heltal

Repetition C-programmering

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

TDP Regler

OOP Tentamen

Kompilera och exekvera Javakod

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

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

Tentamen i Grundläggande programmering STS, åk

729G04 Programmering och diskret matematik TEN kl 8-12

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Tentamen i DD2387 Programsystemkonstruktion med C++

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

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

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

Objektorienterad Programmering (TDDC77)

Sidor i boken f(x) = a x 2 +b x+c

Funktioner och programstruktur. Föreläsning 5

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

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

En kort text om programmering i C.

Funktioner och programstruktur. Föreläsning 5

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

Transkript:

HI1024 Programmering, grundkurs TEN2 2014-03-13 KTH STH Haninge 13.15-18.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 Examinator: Nicklas Brandefelt Rättande lärare: Nicklas Brandefelt, Fredrik Bergholm Instruktion för dig som vill använda debugger: Välj windowsknappen och Alla Program (All programs) menyn. Scrolla ned tills du hittar Program Haninge och välj: Program Haninge>Utveckling>Gcc Environment. Man får då upp kommandotolken med rätt sökvägar (i kommandotolken använder man dir för att lista en katalog och cd för att byta katalog). Man kan nu använda gcc och gdb. Kom ihåg att inte använda codeblocks för kompilering om ni vill använda gdb. Exempel: gcc g foo.c -o foo2 gdb foo2.exe foo2

Generella rättningsnormer: Mycket dåliga variabelnamn ger -1p totalt på provet vid andra tillfället Inga eller dåliga kommentarer ger -0p på provet Dålig struktur ger avdrag varje gång Generellt gäller: -1p per avvikelse, minst -1p om koden ej kompilerar U3 Om man löst frågan om antal exemplariskt (bla flera chanser att ge rätt input) men slumpat fram tal som kan återkomma och där inte alla är med kan man få 1p Har man inte löst a korrekt kan man fortfarande få poäng för b U4 Har man fått till inläsning och presentation av spelplan och använt funktioner och arrayer på ett bra sätt kan man få 1p Betygsgränser Max 18 A 16 B 14 C 12 D 11 E 9 Fx 8

1. Densitet (4p) Med hjälp av densiteten för ett ämne kan man om man vet massan beräkna volymen eller om man vet volymen beräkna massan. Med hjälp av densiteten för bly, = 11300 kg/m 3, ska du skriva ett program som ger användaren möjlighet att göra just detta. Först får användaren välja mellan att beräkna volymen, massan eller att avsluta. Väljer användaren massan får användaren ange volymen och sedan presenteras den beräknade massan. Väljer användaren att beräkna volymen får denne ange massan och den beräknade volymen presenteras. Programmet upprepar sedan första frågan till dess att användaren väljer att avsluta. Använd flyttal för att representera alla värden. Skriv ut svaren med två decimaler. Försök att få utskrifterna att likna exemplet så mycket som möjligt (fetstil är inmatningar). (1) Berakna massan (2) Berakna volymen (3) Avsluta 1 Ange volymen (m3): 0.2 Blyets massa blir 2260.00 kg. (1) Berakna massan (2) Berakna volymen (3) Avsluta 2 Ange massan (kg): 11000 Blyets volym blir 0.97 m3. (1) Berakna massan (2) Berakna volymen (3) Avsluta 3 Avslutar Formel för densitet: m V

2. struct (4p) I den här uppgiften ska vi representera ett andragradspolynom, ax 2 +bx+c, med en struct: struct polynom{ float a,b,c; }; typedef struct polynom Polynom; Vi ska nu skriva fyra funktioner som hjälper oss att göra saker med dessa polynom. De tre sista ska inte skriva ut något eller läsa in något utan är rena interna hjälpfunktioner. Längst ner hittar du en main som anropar alla funktioner. Denna ska fungera med dina funktioner. För full poäng ändra inget i denna. Om du bara löser en del uppgifter kan du behöva lägga till i main och kommentera bort funktionsanrop för att det ska kompilera. Ändra dock inte funktionsanropen. Lägg inte till några globala variabler i programmet. a) Skriv en funktion skrivut( ) som tar ett Polynom som in-parameter och skriver ut det till standard ut. Ex: 3x 2-2x-1 skrivs ut som 3.000000x2 + -2.000000x + -1.000000 b) Skriv en funktion skapapolynom( ) som utifrån in-parametrarna skapar ett Polynom och returnerar detta. c) Skriv en funktion addera( ) som tar två polynom som input och adderar dessa enligt matematikens regler och returnerar resultatet. Ex: 4x 2 +2x+1 + 8x 2-3x+12 = 12x 2-1x+13 d) Skriv en funktion multiplicera( ) som man kan använda för att multiplicera ett polynom med en konstant. Funktionen ska då förändra det polynom man anropar med. Funktionen ska inte returnera något utan returtypen ska vara void. Ex. skickar man in polynomet 4x 2 +2x-1 och heltalet 3 ska polynomet efter funktionsanropet vara 12x 2 +6x-3 int main(){ Polynom p1,p2,p3; p1 = skapapolynom(-8,0,1); //skapar polynomet -8x 2 +1 p2 = skapapolynom(1,2,-3); //skapar polynomet x 2 +2x-3 p3 = addera(p1,p2); //adderar p1 och p2 och returnerar resultatet multiplicera(&p3,2); //förändrar p3 så att alla p3 s koefficienter blir multiplicerade med 3 skrivut(p3); //skriver ut p3 enligt ovan return 0; }

3. a) Slumpa ordningsföljd av tal (4p) I denna uppgift får användaren välja det högsta heltal som ordningen skall slumpas fram för. Väljer användaren 10 ska programmet slumpa fram en ordning för talen 1 till och med 10. Om användaren anger ett heltal mindre än 1 eller större än 10000 ska denne få instruktionen att man valt fel och en ny chans att göra en inmatning. Programmet skall använda arrayer och funktioner på ett bra sätt men inga globala variabler. Försök att få programmets utskrift att efterlikna nedanstående (fetstil är inmatningar). Vilket ar det hogsta heltal du vill ha med? (1-10000) 12000 Du maste valja mellan 1 och 10000! Vilket ar det hogsta heltal du vill ha med? (1-10000) 7 3, 5, 2, 7, 1, 4, 6, b) Längsta ordningsföljden (2p) Lägg nu till att programmet beräknar den längsta följden av tal som ligger i rätt ordning. Det vill säga att talen kommer i stigande ordning. I ordningsföljden 11, 7, 3, 8, 9, 15, 5, 13, 10, 1, 12, 2, 6, 14, 4 är svaret 4 eftersom 3, 8, 9, 15 är i korrekt ordningsföljd. Vilket ar det hogsta heltal du vill ha med? (1-10000) 15 11, 7, 3, 8, 9, 15, 5, 13, 10, 1, 12, 2, 6, 14, 4, Langsta foljden ar 4

4. 3 i rad (4p) Skriv ett program som låter två spelare turas om att spela tre i rad. I detta spel turas spelarna om att sätta ut kryss eller ring på ett 3*3-bräde till dess att någon fått tre i rad eller till dess att brädet är fullt. Spelet ska skriva ut spelplanen efter varje drag. Om någon spelare vinner ska spelet utropa denne som vinnare och avsluta. Om ingen vunnit när brädet är fullt ska den utropa oavgjort och avsluta. Programmet ska använda arrayer och funktioner på ett bra sätt men inte använda globala variabler. Om du vill kan du välja att markera en tom ruta med 0, ett kryss med 1 och en ring med 2 när du skriver ut brädet. Förslag på hur en körning skulle kunna se ut: Spelare 1 Ange kolumn:3 0 0 1 Ange rad:2 Ange kolumn:2 0 0 1 0 2 0 Spelare 1 Ange kolumn:2 0 1 1 0 2 0 Ange kolumn:2 Ange kolumn:1 2 1 1 0 2 0 Spelare 1 Ange rad:2 Ange kolumn:3 2 1 1 0 2 1 Ange rad:3 Ange kolumn:3 2 1 1 0 2 1 0 0 2 har vunnit