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

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 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ö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 19. Omtentamen i Programmering C, 5p, fristående, kväll,

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

ÖREBRO UNIVERSITET. 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,

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

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

4 Sammansatta datatyper

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

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

7 Programmeringsteknik

2 Pekare och dynamiska variabler.

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

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

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

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

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C

4 Sammansatta datatyper

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

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

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

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

HI1024 Programmering, grundkurs TEN

Tentamen i Programmering grundkurs och Programmering C

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

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

Tentamen *:58/ID100V Programmering i C Exempel 3

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 19 januari 2013

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

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

1 Modulär programutveckling.

Tentamen i Programmering grundkurs och Programmering C

Tentamen i. Programmering i språket C

Tentamen i Programmering grundkurs och Programmering C

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.

Tentamen i. Programmering i språket C

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

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

Tentamen i Programmering grundkurs och Programmering C

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

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

Tecken & Strängar. Kapitel 7

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

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

729G04 Programmering och diskret matematik

En kort text om programmering i C.

Tentamen ges för: Tentamensdatum: Tid:

HI1024 Programmering, grundkurs TEN

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

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

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

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

C++ Slumptalsfunktioner + switch-satsen

PROGRAMMERING-Java TENTAMINA

3 Listor. 3.1 Envägslistor

Pekare och arrayer. Indexering och avreferering

Föreläsning 12. struct

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

tentaplugg.nu av studenter för studenter

Exempelsamling Assemblerprogrammering

Kompilatorer och interpretatorer

Raspberry Pi och Tellstick, ett program i C.

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

6 Lågnivåprogrammering

Tentamen Grundläggande programmering

Programmering i C, 7,5 hp

HI1024 Programmering, grundkurs TEN

Föreläsning 3. Iteration while-satsen

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

Föreläsning 11. Strängar

Iteration while-satsen

Föreläsning 9. struct

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH

Tentamen i Introduktion till programmering

Programmering, grundkurs, 8.0 hp HI1024, extra tentamen, TEN1, för TIDAA1. Fredagen den 11 mars 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

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

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

Planering Programmering grundkurs HI1024 HT 2014

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

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

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

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.

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

Strängar. Strängar (forts.)

Loopar och datatyper. Föreläsning 3

Programmeringsteknik med C och Matlab

Loopar och datatyper. Föreläsning 3

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

Systemutvecklare SU13, Malmö

Programmeringsuppgifter 1

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

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

Transkript:

1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK 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 19.00. Denna tenta kommer att vara färdigrättad On 30/3 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. Programmering C, 5p, A1, D1, PA1, Fri, 050316. 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 formeln nedan som en tilldelningssats i C. y 2z 2 x = + 2y 3 2) (1p) Vilka värden har följande uttryck? a) 15 / 6 % 8 / 2; b) 15 / 6 % 8 / 2.0; 3) (1p) Datatypen struct mobil char telnr[12]; int tid; float pris; ; // Mobilnummer // Samtalstid i sekunder // Samtalspris per minut i kr avbildar en mobiltelefon. Definiera en variabel av denna typ och initiera den med nummer 0701234567, tid 234 sekunder och pris 1.25 kr per minut. 4) (1p) Hur många gånger upprepas nedanstående loop? for (x = 12; x >= 0; x--) if (x == 6) x -= 2; else x--; 5) (1p) Antag att du har 3 strängar definierade enligt: char namn[30], fornamn[10], efternamn[20]; Placera strängarna fornamn och efternamn i namn så att fornamn börjar i första byte och efternamn i tionde. Mellan strängarna ska du stoppa in blanktecken. I namn får endast finnas ett strängslutstecken och detta tecken ska finnas direkt efter efternamnet. Du kan anta att strängarna förnamn och efternamn från början innehåller strängar som har strängslutstecken som sista tecken. 6) (2p) Skriv en funktion som tar basen och höjden i en triangel som parametrar och returnerar triangelns area, bas*höjd/2.

3 (8) 7 )(2p) Skriv en funktion, visa_mobil, som tar en mobil enligt uppgift 3 ovan som parameter och med ledtexter visar dess data på skärmen. Funktionshuvud enligt: void visa_mobil(struct mobil m); 8) (2p) Skriv en funktion, samtal_kostnad, som tar en mobil enligt uppgift 3 ovan, som parameter och som returnerar totala kostnaden för mobilsamtalet i kr. Funktionshuvud enligt : float samtal_kostnad(struct mobil m); 9 (2p)Skriv en funktion, mes_control, som kontrollerar om ett reellt mätvärde ligger mellan 0.0 och 5.0 eller mellan 10.0 och 15.0 eller mellan 20.0 och 25.0. Funktionen ska ta mätvärdet som parameter och returnera sant (1), om mätvärdet är inom de angivna gränserna, annars falskt (0). Funktionshuvud enligt: int mes_control(float mes); 10) (2p) Skriv en funktion som tar en positiv vinkel i hela grader som parameter och returnerar i vilken kvadrant av enhetscirkeln som vinkeln finns i. Enhetscirkeln består av 4 kvadranter. I kvadrant 1 ligger vinklarna från och med 0 till 90 grader, i kvadrant 2 vinklar från och med 90 till 180, i kvadrant 3 vinklar från och med 180 till 270 och i kvadrant 4 vinklar från och med 270 till 360. Alla positva vinklar ska returnera rätt kvadrant. Exempelvis ska vinkeln 456 grader returnera kvadrant 2 eftersom 456 grader utgör ett varv (360) plus 96 grader, vinkeln 580 ska returnera 3 osv. 11)(5p)Skriv ett program som upprepat (avslut 0.0) läser in ett reellt mätvärde och kontrollerar om mätvärdet är ok enligt uppgift 9 ovan. Är mätvärdet ok ska det skrivas ut annars ska ett felmeddelande skrivas ut. För full poäng krävs att kontrollen av mätvärdet görs genom ett anrop av funktionen mes_control i uppgift 9 ovan. Ett körexempel där du matar in det understrukna: Ge ett reellt mätvärde : 3.4 Mätvärdet = 3.4 Ge ett reellt mätvärde : 16.4 Mätvärdet är felaktigt! Ge ett reellt mätvärde : 0.0 12)(5p)Skriv ett program som läser in två positiva hela tal och skriver ut summan av alla hela tal från och med det första till och med det sista om det sista talet är större än eller lika med det första. Är det sista talet mindre än det första ska summan av talen från och med det sista till och med det första skrivas ut. Är det första talet 5 och det sista 8 blir summan 5 + 6 + 7 + 8 = 26 och är det sista 3 och det första 9 blir summan 3 + 4 + 5 + 6 + 7 + 8 + 9 = 42.

4 (8) 13)(5p)Skriv ett program som upprepat (avslut ENTER) läser in ett namn bestående av ett förnamn och ett efternamn och skriver ut namnen i omvänd ordning alltså med efternamnet först och sedan förnamnet. 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 Anka Kalle Ge ett namn (avslut ENTER) : Musse Pigg Pigg Musse Ge ett namn : ENTER 14(5p) Skriv ett program som simulerar ett mobilsamtal genom att läsa in (ringa) ett mobiltelefonnummer, läsa in samtalskostnaden per minut och slumpa samtalstiden. Slumpningen av samtalstiden ska göras av en funktion, slumptid som du också ska skriva, där du använder slumpgeneratorn och loopar för att få en slumpad samtalstid. Funktionen markerar samtalstiden genom att skriva * på skärmen. För att mäta den verkliga tiden för samtalet anropas funktionen clock, som avläser klockan vid samtalets start och samtalets slut. Programmet ska avslutningsvis skriva ut det aktuella samtalets kostnad genom att anropa funktionen i uppgift 8 ovan. start = clock(); slump_tid(); //*********************** skrivs. slut = clock(); tid = (slut-start) / CLOCKS_PER_SEC; // Samtalstid i sekunder 15(5p) Textfilen Values.txt innehåller ett antal (max 100) reella mätvärden. Dessa har tyvärr hamnat i fel ordning i filen. Skriv ett program som läser alla värden från filen till en vektor, vänder på vektorn så att mätvärdena kommer i rätt ordning med den första sist, den andra näst sist osv. För full poäng krävs att vektorn vänds med en funktion, vand_vektor som tar vektorn och antalet element i vektorn som parametrar. Slutligen ska programmet skriva tillbaka mätvärdena, som nu är i rätt ordning, till samma fil, Values.txt.

5 (8) Lösningar till tentamen i Programmering, 050316 1) x = (y-2*z)/3+sqrt(2*pow(y, 2)); 2) a) 1 b) 1.0 3) struct mobil m = 0701234567, 234, 1.25; 4) 6 gånger 5) strcpy(namn, fornamn); for(i = strlen(fornamn); i < 9; i++) namn[i] = ; strcpy(&namn[9], efternamn); 6) float area(float bas, float hojd) return bas * hojd / 2; 7) void visa_mobil(struct mobil m) printf( Nummer : %s\n, m.telnr); printf( Samtalstid : %d\n, m.tid); printf( Samtalskostnad per minut : %.2f\n, m.pris); 8) Se uppgift 14 9) Se uppgift 11 10) int kvadrant(int vinkel) int v = vinkel % 360; if (v >= 0 && v < 90) return 1; else if (v >= 90 && v < 180) return 2; else if (v >= 180 && v < 270) return 3; return 4; 11) #include <stdio.h> int mes_control(float mes) return mes >= 0.0 && mes <= 5.0 mes >= 10.0 && mes <= 15.0 mes >= 20.0 && mes <= 25.0; float x; printf("ge ett reellt mätvärde (avslut 0 ) : "); scanf("%f", &x); while ( x!= 0.0)

6 (8) if (mes_control(x)) printf("mätvärdet = %.1f\n", x); else printf("mätvärdet är felaktigt!\n"); printf("ge ett reellt mätvärde (avslut 0): "); scanf("%f", &x); 12) #include <stdio.h> #include <conio.h> int forsta, sista, summma, tal; printf( Ge första : ); scanf( %d, &forsta); printf( Ge sista : ); scanf( %d, &sista); summa = 0; if (forsta <= sista) for (tal = forsta; tal <= sista; tal++) summa += tal; else for (tal = sista; tal <= forsta; tal++) summa += tal; printf( Summan = %d\n, summa); getch(); 13) #include <stdio.h> #include <string.h> char namn[30]; int i, k; printf("ge ett namn (avslut ENTER) : "); gets(namn); while(namn[0]!= '\0') for (i = 0; namn[i]!= ' '; i++) ; for (k = i+1; namn[k]!= '\0'; k++)

7 (8) printf("%c", namn[k]); printf(" "); for (k = 0; k < i; k++) printf("%c", namn[k]); printf("\nge ett namn (avslut ENTER) : "); gets(namn); 14) #include <stdio.h> #include <stdlib.h> #include <time.h> #include <conio.h> struct mobil char telnr[12]; int tid; float pris; ; float samtal_kostnad(struct mobil m) return m.pris * m.tid / 60.0; void slump_tid(void) int iter, i, k; srand((unsigned)time(null)); iter = rand(); for(i = 1; i <= iter; i++) for(k = 1; k <= 10000000; k++) ; // Gör ingenting printf("*"); struct mobil mob; int start, stopp; printf("ring nr : "); gets(mob.telnr); printf("samtalskostnad i kr per minut : "); scanf("%f", &mob.pris); start = clock(); slump_tid(); stopp = clock(); mob.tid = (stopp - start) / CLOCKS_PER_SEC; printf("samtalet kostar : %.2f\n", samtal_kostnad(mob)); getch();

8 (8) 15) #include <stdio.h> void vand_vektor(float vek[], int nr) int i; float temp; for (i = 0; i < nr/2; i++) temp = vek[i]; vek[i] = vek[nr - i - 1]; vek[nr - i - 1] = temp; float vek[100]; FILE *ts; int nr = 0, i; ts = fopen("values.txt", "r+t"); while(fscanf(ts, "%f", &vek[nr])!= EOF) nr++; vand_vektor(vek, nr); rewind(ts); for (i = 0; i < nr; i++) fprintf(ts, "%.1f ", vek[i]); fclose(ts);