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



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

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,

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 idag kl Omtentamen i Programmering C, 5p, A1, D1, E1, Fri, Pr1, Te/Ek1,

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

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

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

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

Lämna in ifylld kursvärdering tillsammans med tentamen! Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 13.

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

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

Tentamen i Programmeringsmetodik, 5p, Au2, D1 och E1,

4 Sammansatta datatyper

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

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

7 Programmeringsteknik

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

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

Namn:... Klass:... Pnr:... Omtentamen i Programmeringsmetodik, 5p, D1 och E1,

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

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

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

2 Pekare och dynamiska variabler.

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

Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet idag kl 13.

Tentamen i Programmering grundkurs och Programmering C

1 Modulär programutveckling.

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

Tentamen i Programmering grundkurs och Programmering C

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

Tentamen i Programmering grundkurs och Programmering C

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

Tentamen i Programmering grundkurs och Programmering C

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

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

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

Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 19.

Programmering i C, 7,5 hp

Tentamen *:58/ID100V Programmering i C Exempel 3

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

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

4 Sammansatta datatyper

Tentamen i Programmering grundkurs och Programmering C

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

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

Programmering, grundkurs, 8.0 hp HI1024, TEN1. Fredagen den 2 mars 2012

Tentamen i. Programmering i språket C

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

En kort text om programmering i C.

HI1024 Programmering, grundkurs TEN

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Detta är andra problemlösningsföreläsningen, vi diskuterar problemen ur Problem II.

Exempelsamling Assemblerprogrammering

3 Listor. 3.1 Envägslistor

Planering Programmering grundkurs HI1024 HT data

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

Föreläsning 12. struct

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

HI1024 Programmering, grundkurs TEN

Tentamen i Programmering grundkurs och Programmering C

översiktskurs (5DV031)

Föreläsning 9. struct

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

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 14:e januari klockan

struct egendefinierad typ struct LECTURE_TYPE { char teacher[99]; float lengthinminutes; char type; /* L = lecture, E = exercise */ };

6 Lågnivåprogrammering

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

Föreläsning 9. Repetition och exempelproblem

Variabler använder man sig av för att under programkörningen spara data eller information i primärminnet. En variabel har typ, namn och värde.

C++ Slumptalsfunktioner + switch-satsen

Tentamen ges för: Tentamensdatum: Tid:

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Hjälpmedel: MATLAB

Programmering i C. Vad är C? Målsättning. Litteratur. Jämförelse med Java. Exempel : Ett program som skriver ut texten Hello, world

Programmering Grundkurs (HI1900) Teoridel

Pekare och arrayer. Indexering och avreferering

Fråga 13. Skriv en loop som fyller arrayen int v[100] med talen

HI1024 Programmering, grundkurs TEN

Laboration 3 HI1024, Programmering, grundkurs, 8.0 hp

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

Funktionspekare, inledning: funktionsanropsmekanismen. Anrop via pekare

Indexerade variabler

3.3 for-satsen. Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Föreläsning 3

Datorövning 1. Följ dessa instruktioner, och skapa och provkör det enkla C-programmet.

Fråga 15. Följande deklarationer är givna

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

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

Datorövning 1. int sgd(int m, int n) { int rest; while ( n!= 0 ) { rest = m % n; m = n; n = rest; return m;

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.

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

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

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH

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

Planering Programmering grundkurs HI1024 HT TIDAA

Tecken & Strängar. Kapitel 7

Programmeringsteknik med C och Matlab

Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet under eftermiddagen.

Funktioner och programstruktur. Föreläsning 5

Föreläsning 13. In- och utmatning

HI1024 Programmering, grundkurs TEN

tentaplugg.nu av studenter för studenter

Transkript:

1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl 19.00. Denna tenta kommer att vara färdigrättad Ti 14/12 och kan då hämtas på mitt tjänsterum, T2221 mellan 16 och 17. Vid detta tillfälle har du också möjlighet att diskutera rättningen. Tentor som ej hämtats då, placeras på studentexpedition. Tentamen i Programmering C, Fri, Kväll, 041211. Hjälpmedel : Inga Tid : 14-19 Ansvarig lärare : Gunnar Joki arb 303317 hem 274825 mob 0705474825 Svar till samtliga uppgifter 1-15 ska skrivas på utdelat extra papper. Använd ett papper till uppgifterna 1-5, två papper till uppgifterna 6-10 och ett papper per uppgift till uppgifterna 11-15 Skriv din tentamenskod på varje inlämnat extra papper. Den maximala poängen för respektive uppgift står angiven efter uppgiftens nummer. Totalt kan 40 poäng erhållas. För betyget 3 krävs ca 20, för betyget 4 ca 28 och för betyget 5 ca 34 poäng. Om inget speciellt anges gäller frågorna Visual C++. Detta häfte ska du behålla. Lycka till!

2 (8) 1) (1p) Skriv den tilldelningssats i C som motsvarar formeln : 2 + y x = + 7z 2 y 2) (1p) Vilka värden har följande uttryck? a) 5 % 6 / 3 / 2 b) M > m 3 == 2 3) (1p) Datatypen struct bil char regnr[7]; // Registreringsnummer ex ESA123 int pris; // Pris i hela kr float mil; // Antal körda mil ; avbildar bilar till försäljning hos en bilhandlare. Definiera en variabel av denna typ och initiera den med regnr ERT456, pris 123000 kr och mil 4500.5. 4) (1p) Skriv följande kod med en while-loop istället för for-loop. for (a = 2, b = 10; a <= b; a++, b -= 2) if (a == b) a--; else b--; 5) (1p) Antag att du har en vektor, vek. Du vet inte vad det är för typ av vektor och inte heller hur många element som vektorn består av. Skriv den kod som beräknar antalet element i vektorn. 6) (2p) Skriv en funktion, alarm som tar en reell temperatur som parameter och som alarmerar eller returnerar sant (1) om temperaturen överstiger 40.0 grader eller understiger 20.0 grader, annars falskt (0). 7) (2p) Skriv en funktion alarmsystem, som tar en reell vektor av temperaturer och antalet element i vektorn, som parametrar och som skriver ut index för de element i vektorn som ger alarm, enligt uppgift 6 ovan. void alarmsystem(float tempvek[], int nr);

3 (8) 8) ( 2p)Skriv en funktion som tar en struct enligt uppgift 3 ovan som parameter och som returnerar bilens pris. Funktionshuvud enligt : int pris_bil(struct bil b); 9) (2p) Skriv en funktion som tar ett namn som parameter och som bestämmer namnets initialer. Du kan anta att namnet alltid består av ett förnamn och ett efternamn åtskiljda av ett blanktecken. Exempelvis har namnet Kalle Anka initialerna KA. Funktionshuvud enligt : void initialer(char *helanamnet, char *initialer); 10)(2p)Skriv en funktion som tar en pekare till en struct enligt uppgift 3 ovan som parameter och som läser in bilens data. Funktionshuvud enligt : void las_bil (struct bil *bp); 11)(5p)Skriv ett fullständigt program som upprepat läser in två reella tal och skriver ut summan, skillnaden, produkten och kvoten av talen med två decimaler. Programmet ska avslutas direkt, utan att det frågar efter det andra talet, då 0 inmatas som första tal. Ett körexempel där du matar in det understrukna : Ge första talet (avslut 0.0) : 20.0 Ge andra talet : 10.0 Summa = 30.00 Skillnad = 10.00 Produkt = 200.00 Kvot = 2.00 Ge första talet (avslut 0.0): 0.0 12)(5p)Skriv ett fullständigt program som upprepat läser in namn(max 30 bokstäver) och som skriver ut namnens initialer. Du ska anropa funktionen initialer enligt uppgift 9 ovan. Programmet avslutas då man enbart trycker på ENTER. Ett körexempel där du matar in det understrukna : Ge ett namn på formen förnamn efternamn (avslut ENTER) : Kalle Anka Initialer : KA Ge ett namn på formen förnamn efternamn (avslut ENTER) : Musse Pigg Initialer : MP Ge ett namn på formen förnamn efternamn (avslut ENTER) : ENTER

4 (8) 13)(5p)Skriv ett program som slumpar en vektor med 1000 tärningskast mellan 1 och 6. Programmet ska sedan upprepat (avslutas med 0) fråga efter vilket utfall man vill undersöka och skriva ut hur många procent detta utfall utgör av det totala antalet kast. Ett körexempel : Vilket utfall vill du kontrollera? 5 Utfall 5 utgör 18.6 % Vilket utfall vill du kontrollera? 3 Utfall 3 utgör 21.2 % Vilket utfall vill du kontrollera? 0 14)(5p) I textfilen Temp.txt finns ett antal mätpunkter givna radvis med nummer och temperatur. Skriv ett program som läser alla mätpunkter från filen och skriver ut numret för de mätpunkter som ska ge larm enligt uppgift 6 ovan. 1 23.8 2 26.7 3-34.6 4 45.9 5 34.0.... 15(5p) Skriv ett program som läser in data från en binärfil Bil.dat, som innehåller structar enligt uppgift 3 ovan, till en vektor med max 100 bilar. Vektorn ska sedan sorteras i första hand efter pris och i andra hand, om samma pris, efter körda mil. Programmet fortsätter sedan med att fråga efter vilken prisklass av bilar man är intresserad av och skriver ut alla bilar som ligger i intervallet (prisklass ± 5000) kr. För full poäng krävs att sorteringen görs i en funktion som tar bilvektorn och det aktuella antalet bilar i vektorn som parametrar.

5 (8) Lösningar till tentamen i Programmering, 041211. 1) a = (2+y)/(y*y) + 7*z; 2) a) 0 b) 0 3) struct bil b = ERT456, 123500, 4500.5; 4) a = 2; b = 10; while ( a <= b ) if (a == b) a--; else b--; a++; b -= 2; 5) sizeof(vek) / sizeof(vek[0]); 6) Se uppgift 14 7) void alarmsystem(float tempvek[], int nr) int i; for (i = 0; i < nr; i++) if (alarm(tempvek[i]) printf( Larm från termometer %d\n, i); 8) int pris_bil(struct bil b) return b.pris; 9) Se uppgift 12 10) void nybil(struct bil *bp) printf( Ge bilens regnr : ); gets(bp->regnr); printf( Ge bilens pris : ); scanf( %d, &bp->pris); printf( Ge körda mil : ); scanf( %f, &bp->mil); 11) #include <stdio.h> float forsta, andra;

6 (8) printf( Ge första talet (avslut 0.0) : ); scanf( %f, &forsta); while (forsta!= 0.0) printf( Ge andra talet : ); scanf( %f, &andra); printf( Summa = %.2f\n,forsta + andra); printf( Skillnad = %.2f\n,forsta andra); printf( Produkt = %.2f\n,forsta * andra); printf( Kvot = %.2f\n,forsta \ andra); printf( Ge första talet (avslut 0.0) : ); scanf( %f, &forsta); 12) void initialer(char *helanamnet, char *initialer) int i = 0; while(helanamnet[i]!= ) i++; initialer[0] = helanamnet[0]; initialer[1] = helanamnet[i+1]; initialer[2] = \0 ; #include <stdio.h> char namn[30], init[3]; ); printf( Ge ett namn på formen förnamn efternamn (avslut ENTER) : ); gets(namn); while (namn[0]!= \0 ) initialer(namn, init); printf( Initialer : %s\n, init); printf( Ge ett namn på formen förnamn efternamn (avslut ENTER): gets(namn); 13) #include <stdio.h> #include <stdlib.h> #include <time.h> int tvek[1000], i, utfall, sum; srand((unsigned)time(null)); for (i = 0; i < 1000; i++) tvek[i] = rand() % 6 + 1;

7 (8) printf( Vilket utfall vill du kontrollera? ); scanf( %d, &utfall); while (utfall >= 1 && utfall <= 6) sum = 0; for (i = 0; i < 1000; i++) if (tvek[i] == utfall) sum++; printf( Utfall %d utgör %.1f %%\n, utfall, (float)utfall/1000 * 100); printf( Vilket utfall vill du kontrollera? ); scanf( %d, &utfall); 14) #include <conio.h> #include <stdio.h> int alarm(float temp) return (temp > 40.0 temp < -20.0); FILE *tsin; int nr = 0; float temp = 0.0; tsin = fopen( Temp.txt, rt ); while (fscanf(tsin, %d %f, &nr, &temp)!= EOF) if (alarm(temp)) printf( Mätpunkt %d larmar!!\n, nr); fclose(tsin); getch(); 15) #include <stdio.h> #include <math.h> #include <conio.h> struct bil char regnr[10]; int pris; float mil; ; void skriv_bil(struct bil b) printf("regnr : %s\n", b.regnr); printf("pris : %d\n", b.pris); printf("körda mil : %.1f\n", b.mil);

8 (8) void sortbil(struct bil bilvek[], int nr) int i, k; struct bil tempbil; for(i = 0; i < nr-1; i++) for (k = i+1; k < nr; k++) if (bilvek[k].pris < bilvek[i].pris) tempbil = bilvek[i]; bilvek[i] = bilvek[k]; bilvek[k] = tempbil; else if (bilvek[k].pris == bilvek[i].pris && bilvek[k].mil < bilvek[k].mil) tempbil = bilvek[i]; bilvek[i] = bilvek[k]; bilvek[k] = tempbil; FILE *bsin; struct bil bvek[100]; int prisklass; int i = 0, antal_bilar; bsin = fopen("bil.dat", "rb"); fread(&bvek[i], sizeof(struct bil), 1, bsin); while(!feof(bsin)) i++; fread(&bvek[i], sizeof(struct bil), 1, bsin); antal_bilar = i; fclose(bsin); sortbil(bvek, antal_bilar); printf("ge önskad prisklass : "); scanf("%d", &prisklass); i = 0; while ( i < antal_bilar && abs(bvek[i].pris - prisklass) <= 5000) skriv_bil(bvek[i]); i++; getch();