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



Relevanta dokument
Tentamen i. för D1 m fl, även distanskursen. lördag 19 januari 2013

Tentamen i Programmering grundkurs och Programmering C

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

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

Tentamen i Programmering grundkurs och Programmering C

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

Tentamen i. Programmering i språket C

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C

Tentamen i. Programmering i språket C

Tentamen i Programmering grundkurs och Programmering C

Databasteknik för D1, SDU1 m fl

Databasteknik för D1, SDU1 m fl

Tentamen i Programmering grundkurs och Programmering C

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,

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

För alla uppgifter på tentan gäller: Man får använda både standard-c++ (som till exempel har pekare som anges med * och objekt som skapas med new) och

PDA-applikationer med.net

Programmeringsteknik med C och Matlab

Kompilatorer och interpretatorer

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

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa

Kompilatorer och interpretatorer

Björn Abelli Programmeringens grunder med exempel i C#

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Tentamen OOP

Övningar Dag 2 En första klass

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

Tentaupplägg denna gång

Objektorienterad programmering D2

Tentamen i Programmering

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

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

DELPROV 1 I DATAVETENSKAP

Tentamen på kursen DA7351, Programmering , kl Malmö högskola Teknik och samhälle. DA7351, Programmering

Planering Programmering grundkurs HI1024 HT data

Grunderna i stegkodsprogrammering

Introduktion till PHP

Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program

För att skriva data till skärmen ( konsolen) används objektet System.out tillsammans med metoden println eller print.

Planering Programmering grundkurs HI1024 HT TIDAA

Tentaupplägg denna gång

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

Föreläsning 1 & 2 INTRODUKTION

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

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

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

Programmering A. Johan Eliasson

Chapter 3: Using Classes and Objects

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

Planering Programmering grundkurs HI1024 HT 2014

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

TDP Regler

Uppgift 1 (grundläggande konstruktioner)

Uppgift 1 ( Betyg 3 uppgift )

HI1024 Programmering, grundkurs TEN

4 Sammansatta datatyper

UMEÅ UNIVERSITET 26 april 2002 Instutionen för datavetenskap. Grafproblem. Laboration 4, Datastrukturer och Algoritmer VT02

Grunderna i SQL del 1

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

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

PROGRAMMERING 2 GRUNDLÄGGANDE SEMANTIK 4

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,

Enklast att skriva variabelnamn utan ; innehåll och variabelnamn skrivs ut

HI1024 Programmering, grundkurs TEN

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl

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

Föreläsning 2: Avlusning och antilustekniker

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

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

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

Innehållsförteckning. Exempel. Åtkomst & användarhandledning

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

Tentamen i Objektorienterad programmering

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Skizz till en enkel databas

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

Tentamen, EDAA20/EDA501 Programmering

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

1 Texthantering. 1.1 Typen char. Exempel, skriv ut alfabetet

Tentamen ges för: Tentamensdatum: Tid:

Operatorer Tilldelning Kodblock { } if satsen Logiska uttryck Att programmera

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

Programmeringsuppgifter 1

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

Lämna in en ifylld kursvärdering tillsammans med tentan! Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl

Tentamen, EDA501 Programmering M L TM W K V

TDDC77 Objektorienterad Programmering

Försättsblad Tentamen

Att använda pekare i. C-kod

Transkript:

1 of 6 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen fredag 13 januari 2012 Gäller som tentamen för: DT1016 Datateknik A, Programmering grundkurs, provkod 0100 DT1007 Datateknik A, Tillämpad datavetenskap, provkod 0410 DT1006 Datateknik A, Programmering C, distans, provkod 0100 Hjälpmedel: Inga hjälpmedel. Poängkrav: Maximal poäng är 40. För godkänt betyg (3 respektive G) krävs 22 poäng. För den som följt campuskursen hösten 2011 ger varje i tid inlämnad inlämningsuppgift med deadline en extra poäng. Den som inte gått campuskursen hösten 2011 får dessa (tre) extrapoäng ändå. Resultat och lösningar: Återlämning av tentor: Examinator och jourhavande: Meddelas via e-post eller på kursens hemsida, http://basen.oru.se /kurser/c/2011-2012-p2/, senast fredag 3 februari 2012. Efter att resultatet meddelats kan tentorna hämtas på universitetets centrala tentamensutlämning. Thomas Padron-McCarthy, telefon 070-73 47 013. Skriv tydligt och klart. Lösningar som inte går att läsa kan naturligtvis inte ge några poäng. Oklara och tvetydiga formuleringar kommer att misstolkas. Skriv den personliga tentamenskoden på varje inlämnat blad. Skriv inte namn eller personnummer på bladen. Skriv bara på en sida av papperet. Använd inte röd skrift. Antaganden utöver de som står i uppgifterna måste anges. Skriv gärna förklaringar om hur du tänkt. Även ett svar som är fel kan ge poäng, om det finns med en förklaring som visar att huvudtankarna var rätt. LYCKA TILL!

2 of 6 Prioritet och associativitet hos operatorerna i C De viktigaste operatorerna: Prioritet Kategori Operator Associativitet Högsta Unära postfixoperatorer (), [], ->,., ++, -- vänster Unära prefixoperatorer!, ++, --, +, -, *, &, sizeof, (typ) höger Multiplikation mm *, /, % vänster Addition mm +, - vänster Jämförelser <, <=, >=, > vänster Likhetsjämförelser ==,!= vänster Logiskt OCH && vänster Logiskt ELLER vänster Lägsta Tilldelning =, +=, -=, *=, /=, %= höger

3 of 6 Uppgift 1 (1 p) Vilka värden har följande C-uttryck? a) 1 + 2 * 3 + 4 b) 1+2 * 3+4 c) 1 < 2 && 3 > 4 d) 1 < 2 3 / 0 > 4 Uppgift 2 (1 p) Variablerna a och b är av typen int, och variablerna x och y är av typen double. Vilka värden har variablerna efter att följande kod har körts? a = 1; b = 2; x = 3.0; y = 4.0; while (a < b) { if (x > y) a = a + 1; else x = x + 0.6; y = y + 0.1; } Uppgift 3 (3 p) Skriv ett komplett C-program (med #include och allt) som läser in två flyttal. Om de är lika stora ska programmet bara skriva Lika, annars ska det skriva ut talen i storleksordning, med det minsta först. I den här och alla andra uppgifter på tentan gäller: Normalt är felhantering en stor del av ett program. Vad ska till exempel hända om användaren skriver Kalle när hon egentligen borde mata in ett tal? Här behövs dock ingen felhantering, om så inte särskilt efterfrågas i uppgiften. Uppgift 4 (1 p) Skriv en funktion, korrekt_summa, som tar tre heltal (vi kan kalla dem a, b och c) som argument, och som returnerar talet 1 om summan av a och b är lika med c. Annars ska funktionen returnera talet 0.

4 of 6 Uppgift 5 (3 p) Ett program ska hjälpa oss att öva på huvudräkning. Skriv en main-funktion som slumpar fram två heltal, skriver ut dem, och frågar efter deras summa. Om användaren matar in rätt summa ska programmet skriva Rätt, annars Fel. Programmet ska använda funktionen korrekt_summa för att avgöra om summan var rätt. Tips: Funktionen rand ger ett slumpmässigt heltal. I den här och alla andra uppgifter på tentan gäller: Om du behöver använda något från en tidigare uppgift eller deluppgift, till exempel anropa en funktion som skrevs i den tidigare uppgiften, så behöver du inte skriva samma kod igen. Du får också göra uppgiften även om du inte gjort den tidigare uppgiften. Uppgift 6 (1 p) En "app", som är förkortning för "applikation", är ett litet (eller ibland inte så litet) program för mobiltelefoner. Vi tänker sälja appar i vår on-line-affär, och behöver därför skapa datatypen struct App, som används för att representera en app. En app har ett namn som kan innehålla högst 80 tecken, ett pris som anges med ett flyttal, och ett antal, som är hur många gånger appen har laddats ner. Vi ska också använda #define för att skapa ett makro för maxnamnlängden. Skapa posttypen och makrot, i rätt ordning så att det går att kompilera. Uppgift 7 (1 p) Definiera en variabel av typen struct App och initiera den med data om en app som heter Satellite Rush, som är gratis, och som laddats ner 500 gånger. Uppgift 8 (2 p) Vi vill kunna visa app-posternas innehåll på skärmen. Skriv en funktion som heter visa_app, och som skriver ut data om en app. Funktionen ska ta en app-post (eller, om du vill, en pekare till den) som parameter. Här är ett exempel på hur utskriften kan se ut: Namn: Satellite Rush Pris: 0.00 Antal nerladdningar: 500

5 of 6 Uppgift 9 (3 p) Skriv en funktion som heter las_app, och som läser in data om en app. Funktionen ska skriva ut lämpliga ledtexter på standardutmatningen, och läsa in data från standardinmatningen (som normalt är kopplad till tangentbordet). Du får själv bestämma hur den inlästa posten ska returneras. Uppgift 10 (2 p) Skriv en funktion appswap som byter plats på innehållet i två app-variabler. Uppgift 11 (2 p) Skriv en main-funktion som har två lokala variabler av typen struct App, och som läser in data om två appar till dessa variabler med hjälp av funktionen las_app. Därefter ska programmet först byta plats på innehållet i de två app-variablerna med hjälp av funktionen appswap, och sedan skriva ut den dyraste av de två apparna med hjälp av funktionen visa_app. Uppgift 12 (5 p) Vi vill spara apparna på textfilen appar.txt, där varje app lagras på tre rader (namn, pris och antalet nerladdningar), så här: Satellite Rush 0.00 500 Skriv ett program som upprepat läser in appar med las_app, ända tills man matar in en app med namnet END OF APPS, och sparar alla apparna (utom den där sista) på textfilen. Om filen inte går att öppna för skrivning, ska ett informativt och rättvisande meddelande skrivas ut, och programmet ska avslutas. Uppgift 13 (6 p) Skriv ett program som läser textfilen från uppgiften ovan, och skriver ut totalsumman som vi sålt appar för. Om filen inte går att öppna för läsning, ska ett informativt och rättvisande meddelande skrivas ut, och programmet ska avslutas.

6 of 6 Uppgift 14 (4 p) När man styrketränar kan man lyfta så tunga vikter som man klarar, så många gånger som man orkar. Men det kan ge bättre resultat att följa ett mer avancerat schema, där man lyfter olika vikter olika antal gånger. Ett exempel (som inte nödvändigtvis är bra) skulle kunna vara ett "pyramidschema" där man först bestämmer hur mycket man maximalt orkar lyfta, ens så kallade "one rep max". Sen lyfter man 10 procent av den vikten 10 gånger, 20 procent 9 gånger, 30 procent 8 gånger, och så vidare, ända tills 100 procent av vikten en gång. Här gjorde vi tio så kallade "set" med olika vikter. Man kan också tänka sig till exempel tjugo sådana set, och då börjar man med 5 procent av vikten som man lyfter 20 gånger, därefter 10 procent 19 gånger, och så vidare, ända tills 100 procent av vikten en gång. Skriv ett program där man matar in maxvikten och antalet set, och som sedan skriver ut träningsschemat. Avrunda vikterna till närmaste heltal. Exempel: Om användaren matar in maxvikten 100 kilo och antalet 4, ska träningsschemat bli 25 kg x 4, 50 kg x 3, 75 kg x 2, 100 kg x 1. Om Hulken matar in maxvikten 1000 kilo och antalet 3, ska träningsschemat bli 333 kg x 3, 667 kg x 2, 1000 kg x 1. Uppgift 15 (5 p) Skriv ett program som läser in naturliga tal (alltså heltal som är större än eller lika med noll) från standardinmatningen. Inmatningen avslutas med ett negativt tal. Högst hundra tal kan matas in. Efter avslutad inmatning ska programmet tala om vilket tal som förekom flest gånger. Om inget enskilt tal var vanligast, utan flera olika tal förekom lika många gånger, spelar det inget roll vilket tal som anges.