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

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

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

Tentamen i. Programmering i språket C

Tentamen i Programmering grundkurs och Programmering C

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

Tentamen i Programmering grundkurs och Programmering C

Tentamen i. Programmering i språket C

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C

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

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

Kompilatorer och interpretatorer

Kompilatorer och interpretatorer

Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl Tentamen i Programmering C, Fri, 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

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,

Tentamen i Programmering grundkurs och Programmering C

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,

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

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

Databasteknik för D1, SDU1 m fl

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,

Databasteknik för D1, SDU1 m fl

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

HI1024 Programmering, grundkurs TEN

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

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.

PDA-applikationer med.net

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

TDDC77 Objektorienterad Programmering

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

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

HI1024 Programmering, grundkurs TEN

Tentamen i Programmering

Planering Programmering grundkurs HI1024 HT 2014

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

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

Tentamen ges för: Tentamensdatum: Tid:

Enkla datatyper minne

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

HI1024 Programmering, grundkurs TEN

Programmering Grundkurs (HI1900) Teoridel

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

Uppgift 1 ( Betyg 3 uppgift )

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

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

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

TDIU01 - Programmering i C++, grundkurs

HI1024 Programmering, grundkurs TEN

Klassdeklaration. Metoddeklaration. Parameteröverföring

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

tentaplugg.nu av studenter för studenter

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

Programmering för språkteknologer I, VT2012. Rum

Programmeringsteknik med C och Matlab

Planering Programmering grundkurs HI1024 HT TIDAA

kl Tentaupplägg. TIPS 4: Du kan kompilera din kod med följande kommandon g++11, w++11 (för mer varningar)

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

Planering Programmering grundkurs HI1024 HT data

Tentamen *:58/ID100V Programmering i C Exempel 3

kl Tentaupplägg

En kort text om programmering i C.

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

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

Parameteröverföring. Exempel. Exempel. Metodkropp

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

Tentamen i Objektorienterad Programmering 5p, Au, D, Fri, Pr,

ÖREBRO UNIVERSITET. Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 13.

Användarhandledning Version 1.2

OBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar.

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

HI1024 Programmering, grundkurs TEN

kl Tentaupplägg

LyckaTill önskar Anna

Beräkningsvetenskap föreläsning 2

729G04 Programmering och diskret matematik

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

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

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Tentamen i Grundläggande programmering STS, åk

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

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

Övningsuppgifter till föreläsning 2 Variabler och uttryck

Uppgift 1 (grundläggande konstruktioner)

Objektorienterad programmering i Java

Tentamen i Matematisk analys, HF1905 exempel 1 Datum: xxxxxx Skrivtid: 4 timmar Examinator: Armin Halilovic

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Programmering, grundkurs, 8.0 hp HI1024, extra tentamen, TEN1, för TIDAA1. Fredagen den 11 mars 2011,

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Repetition C-programmering

i LabVIEW. Några programmeringstekniska grundbegrepp

Transkript:

1 of 7 Ö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 lördag 28 maj 2011 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 20 poäng. 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/2010-2011-p2/, senast lördag 18 juni 2011. 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 7 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 7 Uppgift 1 (1 p) Vilka värden har följande uttryck? a) 2 * 2 + 2 * 2 b) 2 + 2 * 2 + 2 c) 2-2 * 2-2 Uppgift 2 (3 p) Skriv ett fullständigt C-program (med #include och allt) som läser in två flyttal, x och y, och sedan skriver ut de båda kvoterna x/y och y/x. Division med noll måste hanteras! Ett körexempel, med användarens inmatning kursiverad: Ange x: 2 Ange y: 0.5 x/y = 4.000000 y/x = 0.250000 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 3 (2 p) Variablerna a och b är av typen int, och variablerna x och y är av typen float. Vilka värden har variablerna efter att följande kod har körts? a = 1; b = 2; x = 99.5; y = a; while (x > a) { if (a == b b == x) { a = a + 1; } else { x = x - 0.5; } } Uppgift 4 (2 p) Skriv en funktion, cirkelarea, som tar en cirkels radie (r) som parameter, och som returnerar cirkelns area, som ges av formeln πr 2. (Konstanten π finns i include-filen math.h och heter M_PI.)

4 of 7 Uppgift 5 (2 p) Skriv en main-funktion som läser in en radie, sen anropar funktionen cirkelarea för att räkna ut arean på en cirkel med den radien, och till sist skriver ut arean. 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 (3 p) Skriv en funktion, initialer, som tar ett namn som parameter och som bestämmer namnets initialer. Namnet består alltid av minst ett ord, och om det innehåller flera ord är de åtskiljda av (enkla) blanktecken. Exempelvis har namnet Kalle initialen K, namnet Kalle Anka har initialerna KA, och namnet Sven Karl-Oskar Svensson Bagge har initialerna SKSB. Funktionshuvud: void initialer(char *helanamnet, char *initialer); Uppgift 7 (2 p) Skriv en main-funktion som läser in ett namn, sen anropar funktionen initialer för att få fram namnets initialer, och till sist skriver ut initialerna. Uppgift 8 (1 p) Ett äpple har en vikt i gram, till exempel 143.1, och tillhör en viss äppelsort, till exempel Granny Smith. Skapa datatypen struct Apple, som ska användas för att lagra data om ett äpple. Vi kan anta att ingen äppelsort har ett namn med mer än 20 tecken, inklusive mellanslag (som Gyllenkroks astrakan). Uppgift 9 (1 p) Definiera en variabel av typen struct Apple och initiera den med data om ett 200 gram tungt Astrakan-äpple.

5 of 7 Uppgift 10 (2 p) Vi vill kunna visa äppelposternas innehåll på skärmen. Skriv en funktion som heter visa_apple, och som skriver ut data om ett äpple. Funktionen ska ta en äppelpost (eller, om du vill, en pekare till den) som parameter. Uppgift 11 (2 p) Skriv en funktion som heter las_apple, och som läser in data om ett äpple. 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 välja vilket av dessa två funktionshuvuden du ska använda: struct Apple las_apple() void las_apple(struct Apple *p) Uppgift 12 (2 p) Skriv en main-funktion som har två lokala variabler av typen struct Apple, och som läser in data om två äpplen till dessa variabler med hjälp av funktionen las_apple. Därefter ska programmet skriva ut de två äpplenas data, i samma ordning som de matades in, med hjälp av funktionen visa_apple.

6 of 7 Uppgift 13 (5 p) Det här är en triangel: Om man vet längden på sidorna b och c, samt vinkeln A, kan man använda cosinussatsen för att beräkna längden på den motstående sidan a: Skriv ett fullständigt C-program (med #include och allt) som upprepat läser in b, c och A, och sen skriver ut längden a. Programmet ska avslutas så fort man matar in en sida b som är mindre än eller lika med noll. Ett körexempel, med användarens inmatning kursiverad: Ange sidan b: 33 Ange sidan c: 42 Ange vinkeln A (i radianer): 1.74 a = 57.617686 Ange sidan b: 1000 Ange sidan c: 0.01 Ange vinkeln A (i radianer): 0.1 a = 999.990050 Ange sidan b: -13.7

7 of 7 Uppgift 14 (6 p) En textfil innehåller flera miljarder decimaltal (vilket är mycket mer data än vad som får plats i datorns primärminne), med ett tal på varje rad: 3.14 2.71828 6.023 och så vidare Skriv ett C-program som först frågar efter namnet på filen, och sedan läser filen och talar om dels hur många tal som totalt finns på filen, och dels hur många av talen som avviker med mer än 10 procent från talens medelvärde. Om filen inte går att öppna, ska ett felmeddelande skrivas ut, och programmet ska avslutas. Ledtråd: Man måste läsa igenom filen två gånger, först en gång för att räkna ut medelvärdet, och sen en gång för att räkna antalet avvikande tal. Uppgift 15 (6 p) Filen i uppgiften ovan innehåller alltså flera miljarder decimaltal, vilket är mycket mer data än vad som får plats i datorns primärminne. Men det visar sig att många av talen är upprepade, och det är inte mer än högst en miljon olika tal. En miljon tal får lätt plats i minnet. Skriv ett C-program som först frågar efter namnet på filen, till exempel alla-tal.txt, sen frågar efter namnet på en andra fil, till exempel unika-tal.txt. Därefter ska programmet läsa talen från den första filen (alla-tal.txt), och skriva ut de unika talen (dvs med alla dubbletter borttagna) på den andra filen (unika-tal.txt). (Vi har inga prestandakrav. Programmet får gärna ta lång tid att köra, bara det ger rätt utdata.) Om filen inte går att öppna, ska ett felmeddelande skrivas ut, och programmet ska avslutas. Ledtråd: Lagra de unika talen i minnet, till exempel i en array.