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



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ö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 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 tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, 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 tentauppgifterna sätts ut på kurssidan på nätet idag kl

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 26 februari 2011

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

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

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

Tentamen i Programmering grundkurs och Programmering C

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

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

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

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

Tentamen i Programmering grundkurs och Programmering C

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

HI1024 Programmering, grundkurs TEN

Tentamen ges för: Tentamensdatum: Tid:

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

Tentamen i. Programmering i språket C

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

4 Sammansatta datatyper

2 Pekare och dynamiska variabler.

Tentamen i. Programmering i språket C

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

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

7 Programmeringsteknik

tentaplugg.nu av studenter för studenter

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C

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

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

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

Tentamen i Programmering grundkurs och Programmering C

HI1024 Programmering, grundkurs TEN

Tentamen, EDA501 Programmering M L TM W K V

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

HI1024 Programmering, grundkurs TEN

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

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

Tentamen i Programmering grundkurs och Programmering C

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

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

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

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

Tentamen *:58/ID100V Programmering i C Exempel 3

1 Modulär programutveckling.

Data, typ, selektion, iteration

En kort text om programmering i C.

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

Programmering Grundkurs (HI1900) Teoridel

Exempelsamling Assemblerprogrammering

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

Inledande programmering med C# (1DV402) Summera med while"-satsen

Planering Programmering grundkurs HI1024 HT data

Tentamen i Programmering

Enkla datatyper minne

Programmering i C, 7,5 hp

Tentamen i Introduktion till programmering

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

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

Inlämningsuppgift 1, Digsim

Tentamen TEN1 HI

kl Tentaupplägg

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

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

DIAGNOSTISKT PROV. Tid. Hjälpmedel. Antaganden. Rättning. Övrigt. Diagnostiskt Prov. Klockan Inga

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

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

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för:

Programmeringsteknik med C och Matlab

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

Instuderingsfrågor, del D

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

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

SMD 134 Objektorienterad programmering

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

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

Lösningsförslag till tentamen i EDA011, lördagen den 16 december 2006

Planering Programmering grundkurs HI1024 HT 2014

Diagnostiskt Prov. Antaganden Om förutsättningar saknas I en uppgift skall rimliga antaganden göras och nedtecknas.

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

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.

HI1024 Programmering, grundkurs TEN

Objektorienterad Programmering (TDDC77)

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Planering Programmering grundkurs HI1024 HT TIDAA

TDIU01 - Programmering i C++, grundkurs

INFORMATIK - MED SYSTEMVETENSKAPLIG INRIKTNING, GRK/A (1-30 HP)

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

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

729G04 Programmering och diskret matematik

Grundläggande programmering med C# 7,5 högskolepoäng. Provmoment: Ladokkod: Tentamen ges för: TEN1 NGC011 ADAEK17, ASYST17 samt öppen för alla

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

Transkript:

1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till uppgifterna sätts ut på kurssidan och på WebCT (Gamla Tentor) i dag kl 19. Denna tenta kommer att vara färdigrättad On 23/11 och kan då hämtas på mitt tjänsterum, T2221 mellan 13 och 15. Vid detta tillfälle har du också möjlighet att diskutera rättningen. Har du lång resväg och ingen möjlighet att hämta tentan kan du ringa mig på tel 019 303317 så kan vi komma överens om hur vi gör med din tenta. Tentor som ej hämtats då och ingen kontaktat mig via telefon placeras på studentexpedition och rättningen av dessa kan ej överklagas. Tentamen i Programmering C, 5p, Distans, övriga, 051119 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 2 x = + 2 2 + y z 2) (1p) Vilka värden har följande uttryck? a) 12 / 5 % 8; b) 9 % 5 / 2; 3) (1p) Datatypen struct bil char regnr[10]; float effekt; int nr_cyl; ; // Registreringsnummer // Motorns effekt // Antal cylindrar avbildar bilar. Definiera en variabel av denna typ och initiera den med registreringsnummer ESA112, effekt 145 och antal cylindrar 4. 4) (1p) Ange värdet på x då följande kod körts. x = 12; while(x >= 0) if (x == 12 x == 6 x == 3) x -= 2; else x--; 5) (1p) Strängar skickas ofta vid kommunikation mellan dator och mätinstrument. Hur gör man om mätsträngen 5.1 till det reella talet 5.1? Visa omvandlingen med en allmän algoritm som gäller för alla reella tal med en decimal mellan 0.0 och 9.9. Inga färdiga funktioner får användas. 6) (2p) Skriv en funktion, trippel, som tar ett sex-siffrigt positivt heltal som parameter och kontrollerar om talet består av tre likadana tvåsiffriga talkombinationer som ex 252525. Har den det ska funktionen returnera sant (1) annars falskt (0). Funktionshuvud enligt: int trippel(int ptal);

3(8) 7) (2p) Skriv en funktion, visa_bil, som tar en bil enligt uppgift 3 ovan som parameter och med ledtexter visar dess data på skärmen. Funktionshuvud enligt: void visa_bil(struct bil b); 8) (2p) Skriv en funktion som kontrollerar att de tre första tecknen i ett registreringsnummer är stora bokstäver A Z och de tre resterande siffror 0 9. Du behöver ej bry dig om Å, Ä eller Ö. Funktionshuvud enligt: int is_ok_regnr(char *regnr); 9) (2p)Skriv en funktion, besiktning som tar ett registreringsnummer enligt uppgift 8 ovan som parameter och returnerar besiktningsmånaden som vi antar är lika med den sista siffran i registreringsnumret + 1 om den sista siffran ligger mellan 0 och 5. Ligger den sista siffran mellan 6 och 9 är besiktningsmånaden sista siffran + 2. Funktionshuvud enligt: int besiktning(char *regnr); 10(2p) Hur omvandlar man en sträng till ett reellt tal generellt, alltså som i uppgift 5 ovan men man har en sträng som består av ett antal siffror, en decimalpunkt och ett antal siffror. Skriv en funktion, str_to_float som tar en sträng som parameter och som returnerar det reella tal som bildas av strängen. Inga färdiga funktioner får användas och funktionshuvud enligt: float str_to_float(char *str); 11)(5p)Skriv ett program som läser in två positiva hela tal och som skriver ut alla tal från och med det minsta inlästa talet till och med det största inlästa talet och skriver ut summan av alla utskrivna tal. Två körexempel där du matar in det understrukna: Ge första talet : 21 Ge sista : 25 21 + 22 + 23 + 24 + 25 = 115 Ge första talet : 11 Ge sista talet : 5 5 + 6 + 7 + 8 + 9 + 10 + 11 = 56 12)(5p)Skriv ett program som börjar med att fråga efter antalet (max 10) reella mätvärden som ska läsas in, läser in mätvärdena till en reell vektor och skriver ut de mätvärden som avviker mer än 5 % från mätvärdenas medelvärde. Programmet ska upprepa och avslutas direkt då antalet mätvärden anges till 0. 13)(5p)Skriv ett program som läser in ett registreringsnummer i form av en sträng och genom att anropa funktionen i uppgift 8 ovan kontrollerar att de tre första tecknen är stora

4(8) bokstäver och resten siffror. Programmet ska vara ett filter som inte ger sig utan frågar efter ett nytt registreringsnummer så länge det inlästa är felaktigt. När programmet läst in ett korrekt registreringsnummer ska den skriva ut i vilken månad den ska besiktas genom att anropa funktionen besiktning i uppgift 9 ovan. Månaden ska skrivas ut i klartext som januari eller februari etc. 14(5p)Textfilen Bilar.txt innehåller ett antal bilar av typen struct bil enligt uppgift 3 ovan med registreringsnummer, effekt och antal cylindrar radvis enligt : acd123 132 6 wer456 123 4 rty678 250 8 tyu654 234 4.......... Skriv ett program som läser in alla bilar från filen till en vektor av bilar (max 100), sorterar vektorn först efter antal cylindrar och om samma antal efter effekt. Skriv sedan tillbaka de sorterade bilarna till samma fil, Bilar.txt. 15(5p) Binärfilen Messvalues.dat innehåller ett antal reella mätvärdesgrupper av typen : struct gruppmat int gruppnr; float x; gm; // Grupptillhörighet // Mätvärde Structarna som innehåller mätvärdena finns blandade lite hur som helst i filen. Skriv ett program som läser alla mätvärden från filen, summerar dessa till rätt grupp och beräknar och skriver ut gruppernas medelvärden.

5(8) Lösningar till tentamen i Programmering, 051119 1) x = y / z + 2 * sqrt(2 + pow(y, 2)); 2) a) 2 b) 2 3) struct bil b = ESA124, 145, 36.5; 4) x har slutvärdet -1 5) float x = 0.0; char str[4] = 5.8 x = str[0] 0 + 0.1 * (str[2] 0 ); 6) int trippel(int ptal) int tripptal_1, tripptal_2, tripptal_3; tripptal_1 = ptal / 10000; tripptal_2 = ptal % 10000 / 100; tripptal_3 = ptal % 100; return tripptal_1 == tripptal_2 && tripptal_1 == tripptal_3; 7) void visa_bil(struct bil b) printf( Registreringsnummer : %s\n, b.regnr); printf( Antal cylindrar : %d\n, b.nr_cyl); printf( Effekt : %.1f\n, b.effekt); 8) int is_ok(char *regnr) for (i = 0; i < 3 ; i++ if ( regnr[i] < A regnr[i] > Z : return false; for (i = 3; i < 6 ; i++ if ( regnr[i] < 0 regnr[i] > 9 : return false return true; 9) int besiktning(char *regnr) if(regnr[5] >= 0 && regnr[5] <= 5 ) return regnr[5] 0 + 1; else return regnr[5] - 0 + 2;

6(8) 10) float str_to_float(char *str) int heldel = 0, i, k; float decdel = 0.0; for (i = 0; str[i]! = \0 && str[i]!=. ; i++) heldel = heldel * 10 + str[i]- 0 ; if (str[i] ==. ) for (k = i + 1; str[k]! = \0 ; k++) decdel = decdel * 0.1 + str[k] 0 ; return heldel + decdel; 11) void main() int forsta, sista, tal, sum = 0; printf("ge första talet : "); scanf("%d", &forsta); printf("ge sista talet : ); scanf("%d", &sista); if (forsta < sista) for (tal = forsta ; tal <= sista; tal++) printf( %d +, tal); sum += tal; else for (tal = sista ; tal <= forsta; tal++) printf( %d +, tal); sum += tal; printf( \b = %d, sum); 12) void main() int i, nr; float x, sum = 0.0, medel, rv[10]; printf("ge antal mätvärden (max 10, avsluta med 0) : "); scanf("%d", &nr); while (nr >= 0) for(i = 0; i < nr; i++) printf( Ge mätvärde %d :, i+1); scanf( %f, &x); sum += x; medel = sum / nr; for (i = 0; i < nr; i++)

7(8) if (rv[i] < 0.95 * medel rv[i] > 1.05 * medel); printf( %f, rv[i]; printf("ge antal mätvärden (max 10, avsluta med 0) : "); scanf("%d", &nr); 13) void main() char regnr[20], *month[] =, januari, februari, mars, april, maj, juni, juli, augusti, september, oktober, november, december ; printf("ge registreringsnummer : "); gets(regnr); while (!is_ok(regnr)) printf( Felaktigt registreringsnummer!\n ); printf("ge registreringsnummer : "); gets(regnr); printf( Bilen ska besiktigas i %s!\n, month[besiktning(regnr)]); 14) void main() FILE *tsin; char filnamn[20]; struct bil char regnr[7]; float effekt; int nr_cyl; b[100], temp; int i, k, nr = 0; tsin = fopen( Bilar.txt, "r+t"); i = 0; while(fscanf(tsin, "%s%d%f", b[i].regnr, &b[i].effekt, &b[i].nr_cyl)!= EOF) i++; nr = i; for (i = 0; i < nr - 1; i++) for (k = i+1; k < nr; k++) if (b[k].nr_cyl < b[i].nr_cyl) temp = b[i]; b[i]= b[k]; b[k] = temp;

8(8) else if (b[k].nr_cyl == b[i].nr_cyl && b[k].effekt < b[i].effekt) temp = b[i]; b[i]= b[k]; b[k] = temp; rewind(tsin); for (i = 0; i < nr; i++) fprintf(tsin, %s %f %d\n, b[i].regnr, b[i].effekt, b[i].nr_cyl); fclose(tsin); 15) void main() struct gruppmat int gruppnr; float x; gm; float gruppsumma[10] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ; FILE *bsin; int gruppantal[10] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; bsin = fopen( Messvalue.dat, rb ); fread(&gm, sizeof(struct gruppmat), 1, bsin); while (!feof(bsin)) gruppsumma[gm.gruppnr] += gm.x; gruppantal[gm.gruppnr] ++; fread(&gm, sizeof(struct gruppmat), 1, bsin); for (i = 0; i < 10; i++) if (gruppantal[i] > 0) printf( Medelvärden\nGruppnr%d,guppsumma[i]/gruppantal[i]);