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,

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

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

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 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

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ämna in ifylld kursvärdering tillsammans med tentamen! Lösningarna till tentamensuppgifterna sätts ut på kurssidan på nätet i dag kl 13.

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.

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

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

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

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

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

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

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

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

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. för D1 m fl, även distanskursen. lördag 26 februari 2011

2 Pekare och dynamiska variabler.

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

En kort text om programmering i C.

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

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C

4 Sammansatta datatyper

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C

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

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

1 Modulär programutveckling.

Programmering i C, 7,5 hp

Tentamen *:58/ID100V Programmering i C Exempel 3

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

Tentamen i Programmering grundkurs och Programmering C

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. för D1 m fl, även distanskursen. lördag 19 januari 2013

Tentamen i. Programmering i språket C

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

Tentamen ges för: Tentamensdatum: Tid:

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

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

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

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

4 Sammansatta datatyper

Föreläsning 12. struct

FÖRSLAG TILL LÖSNING AV Tentamen i Objektorienterad programmering C++ I

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.

7 Programmeringsteknik

Föreläsning 9. struct

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

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

HI1024 Programmering, grundkurs TEN

Tentamen i Programmering grundkurs och Programmering C

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

Programmering i C. Christer Sandberg, Gunilla Eken, Stefan Bygde Olof Andersson Linus Källberg Caroline Uppsäll Johan Hägg

Programmering Grundkurs (HI1900) Teoridel

729G04 Programmering och diskret matematik

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

Föreläsning 2. Variabler, tilldelning och kodblock{} if-satsen Logiska operatorer Andra operatorer Att programmera

Planering Programmering grundkurs HI1024 HT 2014

Programmeringsteknik med C och Matlab

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

3 Listor. 3.1 Envägslistor

Tecken & Strängar. Kapitel 7

Raspberry Pi och Tellstick, ett program i C.

Fortsä'ning Pekare. Ulf Assarsson. Originalslides av Viktor Kämpe

TDIU01 - Programmering i C++, grundkurs

Strängar. Strängar (forts.)

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

Programmeringsteknik med C och Matlab

Pekare och arrayer. Indexering och avreferering

Loopar och datatyper. Föreläsning 3

Kompilatorer och interpretatorer

Programmeringsteknik för Ingenjörer VT06. Föreläsning 10

Föreläsning 11. Strängar

Planering Programmering grundkurs HI1024 HT TIDAA

Planering Programmering grundkurs HI1024 HT data

Hantering av textsträngar och talsträngar. William Sandqvist

Pekare. Pekare. Varför använder vi pekare? Vad är en pekare? Pekare. Deklaration/initiering av pekare

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

Funktioner och programstruktur. Föreläsning 5

tentaplugg.nu av studenter för studenter

Datorövning 1. Får du ej fram någon startsida startar du den från huvudmenyn Help Show Start Page.

*Pekarvärden *Pekarvariabler & *

Grundläggande C-programmering del 2 Pekare och Arrayer. Ulf Assarsson

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

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

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

Föreläsning 13. In- och utmatning

Klassdeklaration. Metoddeklaration. Parameteröverföring

Tentamen i Introduktion till programmering

Enkla datatyper minne

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Loopar och datatyper. Föreläsning 3

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH

Tentamen ID1004 Objektorienterad programmering April 7, 2015

Transkript:

1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl 13. Denna tenta kommer att vara färdigrättad Må 13/6 och kan då hämtas på mitt tjänsterum, T2221 mellan 10 och 12. Vid detta tillfälle har du också möjlighet att diskutera rättningen. Tentor som ej hämtats då placeras på studentexpedition och rättningen av dessa kan ej överklagas. Omtentamen i Programmering C, 5p, A1, D1, PA1, Fri, 050607. Hjälpmedel : Inga Tid : 8-13 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 formeln nedan som en tilldelningssats i C. 2 yz x = + 2y 2 5 3 2) (1p) Vilka värden har följande uttryck? a) 6 % 15 / 5; b) 5 % 6 / 2; 3) (1p) Datatypen struct frukost char kl[12]; // Klockan ex. 07:30 int placering; // Placering vid bord ex 34 float pris; // Pris i kr ex 45.50 ; avbildar en frukost på ett kryssningsfartyg. Definiera en variabel av denna typ och initiera den med kl 07:30, bord 34 och pris 45.50 kr. 4) (1p) Skriv om som while-loop samt ange slutvärdet på variabeln x. for (x = 12; x >= 0; x--) if (x == 6) x -= 2; else x--; 5) (1p) Antag att du har en sträng definierad enligt: char namn[30]; som innehåller ett förnamn följt av ett efternamn åtskiljda av ett blanktecken. Skriv ut namnet med förnamnet först och efternamnet på raden under. 6) (2p) Skriv en funktion som tar radien av en cirkel som parameter och returnerar cirkelns omkrets som är 2*PI*radie. Konstanten PI definierar du som ett macro eller som en konstant med värdet 3.14152.

3(8) 7 )(2p) Skriv en funktion, visa_frukost, som tar en frukost enligt uppgift 3 ovan som parameter och med ledtexter visar dess data på skärmen. Funktionshuvud enligt: void visa_frukost(struct frukost f); 8) (2p) Skriv en funktion, bord_kostnad, som tar en vektor av frukostar enligt uppgift 3 ovan och antalet frukostar vid bordet som parametrar och som returnerar totala kostnaden för frukostbordet i kr. Funktionshuvud enligt : float bord_kostnad(struct frukost f[], int nr); 9 (2p) Skriv en funktion, temp_control, som kontrollerar om två temperaturer ligger tillräckligt nära varandra. Funktionen ska ta de två temperaturerna och tillåten maximal differens som parametrar och returnera sant (1), om temperaturerna ok, annars falskt (0). Funktionshuvud enligt: int temp_control(float t1, float t2, float maxdiff); 10)(2p)Skriv en funktion som tar två lika stora vektorer av temperaturer, antalet element och tillåten differens mellan temperaturerna i motsvarande element i vektorerna som parametrar och som returnerar antalet otillåtna differenser i vektorn. Du ska anropa funktioen i uppgift 9 ovan. Funktionshuvud enligt : int vek_temp_control(float tv1[], float tv2[], int nr, float diff); 11)(5p)Skriv ett program som upprepat läser in två reella temperaturer och kontrollerar att dessa ej skiljer sig åt med mer än 1.0 grader. Är differensen mellan temperaturerna större ska ett felmeddelande skrivas ut innehållande den aktuella differensen annars skriver programmet att temperaturerna ok. Programmet ska avslutas då 0.0 matas in till båda temperaturerna. För full poäng krävs att kontrollen av temperaturerna görs genom ett anrop av funktionen temp_control i uppgift 9 ovan. Ett körexempel där du matar in det understrukna: Ge två temperaturer : 3.4 2.9 Temperaturerna OK! Ge två temperaturer : 16.4 18.2 Differensen är 1.8 grader! För hög! Ge ett reellt mätvärde : 0.0 0.0

4(8) 12)(5p)Skriv ett program som läser in två bokstäver och skriver ut alla bokstäver mellan dessa. Två körexempel där du matar in det understrukna: Ge två bokstäver : EK EFGHIJKLMNOK Ge två bokstäver : HB BCDEFGH 13)(5p)Skriv ett program som upprepat (avslut ENTER) läser in ett namn och bildar en UserID genom att använda första bokstaven i förnamnet följt av sista bokstaven i förnamnet, följt av första bokstaven i efternamnet och slutligen sista bokstaven i efternamnet. Mellan förnamn och efternamn finns alltid ett blanktecken. Ett körexempel där du matar in det understrukna: Ge ett namn (avslut ENTER) : Kalle Anka UserID : KeAa Ge ett namn (avslut ENTER) : Musse Pigg UserID : MePg Ge ett namn (avslut ENTER) : ENTER 14(5p) Textfilen Temperatur.txt innehåller ett antal numrerade, uppmätta temperaturer som ska kalibreras mot ett korrekt värde, som finns på samma rad efter den uppmätta temperaturen.. Differensen mellan temperaturerna får ej överstiga 0.1 grader. Skriv ett program som läser alla temperaturer från filen, jämför med det korrekta värdet och skriver ut numret på alla temperaturer som har större differens än 0.1 på skärmen tillsammans med temperaturen och den korrekta temperaturen. För full poäng krävs att du anropar funktionen i uppgift 9 ovan för arr jämföra temperaturerna. Filen börjar så här: 1 23.5 23.6 2 24.6 24.5 3 21.3 21.7...... 15(5p) Skriv ett program som skriver ut en räkning för alla frukostar på en kryssning. Frukostarna finns i binärfilen Frukost.dat i form av structar enligt uppgift 3 ovan. Programmet ska börja med att fråga efter vilket placeringsnummer som vill ha sin räkning och sedan leta upp alla poster i filen med denna placering. Räkningen ska bestå av placering, pris och tidpunkt för varje frukost och ett totalpris för frukostarna. Programmet ska upprepa och avslutas direkt då placering 0 ges.

5(8) Lösningar till tentamen i Programmering, 050607 1) x = 2*y*z / 3 + sqrt(2*pow(y, 2)) - 5; 2) a) 1 b) 2 3) struct frukost f = 07:30, 34, 45.50; 4) x = 12; while (x >= 0) if ( x == 6) x -= 2; else x--; x--; x har slutvärdet -1 5) for(i = 0; str[i]!= ; i++) printf( %c, str[i]); printf( \n ); for(i = i+1; str[i]!= \0 ; i++) printf( %c, str[i]); 6) float omkrets(float radie) const float PI = 3.14152; return 2*PI*radie; 7) void visa_frukost(struct frukost f) printf( Klockan : %s\n, f.kl); printf( Placering : %d\n, f.placering); printf( Pris : %.2f\n, f.pris); 8) float bord_kostnad(struct frukost f[], int nr) int i; float sum = 0.0; for(i = 0; i < nr; i++) sum += f[i].pris; return sum; 9) Se uppgift 11

6(8) 10) int vek_temp_control(float tv1[], float tv2[], int nr, float diff) int antal = 0, i; for(i = 0; i < nr; i++) if (!temp_control(tv1[i], tv2[i], diff)) antal++ return antal; 11) #include <stdio.h> int temp_control(float t1, float t2, float maxdiff) return fabs(t1 - t2) < maxdiff; float x, y; printf("ge två reella tal (avslut 0.0 0.0 ) : "); scanf("%f%f", &x, &y)); while ( x!= 0.0 && y!= 0.0)) if (temp_control(x, y, 1.0) printf("temperaturerna är OK!\n ); else printf("differensen är %.1f grader!\n, fabs(x y)); printf("ge två reella tal (avslut 0.0 0.0 ) : "); scanf("%f%f", &x, &y)); 12) #include <stdio.h> #include <conio.h> char forsta, sista, bokstav; printf( Ge ftvå stora bokstaväver : ); scanf( %c%c, &forsta, &sista); if (forsta <= sista) for(bokstav = forsta; bokstav <= sista; bokstav++) printf( %c, bokstav); else

7(8) for(bokstav = sista; bokstav <= forsta; bokstav--) printf( %c, bokstav); getch(); 13) #include <stdio.h> #include <string.h> char namn[30], userid[5]; int i; printf("ge ett namn (avslut ENTER) : "); gets(namn); while(namn[0]!= '\0') userid[0] = namn[0]; for (i = 0; namn[i]!= ' '; i++) ; userid[1] = namn[i-1]; userid[2] = namn[i+1]; for (i = i + 2; namn[i]!= '\0'; i++) ; userid[3] = namn[i-1]; userid[4] = \0 ; printf("\nge ett namn (avslut ENTER) : "); gets(namn); 14) #include <stdio.h> #include <conio.h> float t1, t2; FILE *tsin; int nr; ts = fopen("temperatur.txt", "rt"); while(fscanf(ts, "%d%f%f", &nr, &t1, &t2)!= EOF) if(!temp_control(t1, t2, 0.1)) printf( Fel temperatur %d %.1f %.1f\n, nr, t1, t2); fclose(tsin); getch();

8(8) 15) #include <stdio.h> #include <conio.h> struct frukost char kl[12]; // Klockan ex. 07:30 int placering; // Placering vid bord ex 34 float pris; // Pris i kr ex 45.50 ; struct frukost f; FILE *bsin; int sokplac; float sum = 0.0; bsin = fopen( Frukost.dat, rb ); printf("ange placeringsnummer : "); scanf("%d", &sokplac); while(sokplac!= 0) rewind(bsin); fread(&f, sizeof(struct frukost), 1, bsin); printf( Frukostnota för placering %d\n, sokplac); while (!feof(bsin)) if (sokplac == f.placering) printf( %s %.2f\n, f.kl, f.pris); sum += f.pris; fread(&f, sizeof(struct frukost), 1, bsin); printf( \n\nsumma att betala : %.2f\n, sum); printf("ange placeringsnummer : "); scanf("%d", &sokplac); fclose(bsin);