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



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 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ä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ö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,

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

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

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

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

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

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

7 Programmeringsteknik

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

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 idag kl 13.

2 Pekare och dynamiska variabler.

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

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

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

4 Sammansatta datatyper

Tentamen i Programmering grundkurs och Programmering C

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

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

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

Tentamen *:58/ID100V Programmering i C Exempel 3

Tentamen i Programmering grundkurs och Programmering C

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

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

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

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

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

4 Sammansatta datatyper

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

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

1 Modulär programutveckling.

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

Föreläsning 9. Repetition och exempelproblem

Tentamen i Programmering grundkurs och Programmering C

Tentamen i. Programmering i språket C

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

Tentamen i Programmering grundkurs och Programmering 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

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C

Tecken & Strängar. Kapitel 7

HI1024 Programmering, grundkurs TEN

Programmering i C, 7,5 hp

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

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

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

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

HI1024 Programmering, grundkurs TEN

Pekare och arrayer. Indexering och avreferering

Loopar och datatyper. Föreläsning 3

Loopar och datatyper. Föreläsning 3

Planering Programmering grundkurs HI1024 HT data

En kort text om programmering i C.

Föreläsning 13. In- och utmatning

Funktioner och programstruktur. Föreläsning 5

Planering Programmering grundkurs HI1024 HT TIDAA

Programmeringsteknik med C och Matlab

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

Föreläsning 11. Strängar

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

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

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

C++ Slumptalsfunktioner + switch-satsen

3 Listor. 3.1 Envägslistor

Programmering Grundkurs (HI1900) Teoridel

tentaplugg.nu av studenter för studenter

Exempelsamling Assemblerprogrammering

Planering Programmering grundkurs HI1024 HT 2014

Föreläsning 12. struct

Raspberry Pi och Tellstick, ett program i C.

6 Lågnivåprogrammering

BINÄRA TRÄD. (X = pekarvärdet NULL): struct int_bt_node *pivot, *ny; X X X 12 X X 12 X X -3 X X

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

Funktioner och programstruktur. Föreläsning 5

Poster ( structar ) Postdeklarationer

HI1024 Programmering, grundkurs TEN

*Pekarvärden *Pekarvariabler & *

Problemlösning. Veckodagsproblemet Gissa talet Siffersumman

Föreläsning 9. struct

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

Tentamen ges för: Tentamensdatum: Tid:

HI1024 Programmering, grundkurs TEN

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

C-programmering. Målsättning Introducera programmering i C för de som inte har någon erfarenhet av C eller C++. Litteratur

Problemlösning. Veckodagsproblemet Gissa talet Siffersumman

Strängar. Strängar (forts.)

Arrays (indicerade variabler) Föreläsning 6

HI1024 Programmering, grundkurs TEN

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

Tentamen i Introduktion till programmering

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

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.00. Denna tenta kommer att vara färdigrättad Fr 14/1 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. Tentor som ej hämtats då, placeras på studentexpedition. Omtentamen i Programmering C, Fri, Kväll, 050108. Hjälpmedel : Inga Tid : 08-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 den tilldelningssats i C som motsvarar formeln : 2y x = + 7 / z y + 3 2) (1p) Vilka värden har följande uttryck? a) 5 / 2 % 6 b) M < m && ( 3 0 ) == 3 3) (1p) Datatypen struct fastighet char bet[20]; // Fastighetsbeteckning ex Lugnet 5 int tax; // Taxeringsvärde i hela kr int pris; // Utgångspris vid försäljning ; avbildar fastigheter till försäljning hos en mäklare. Definiera en variabel av denna typ och initiera den med beteckning Lugnet 5, taxeringsvärde 1200000 kr och utgångspriset 1500000. 4) (1p) Vad blir slutvärdet på variablerna a resp. b då nedanstående kod körs? for (a = 2, b = 10; a <= b; a++, b -= 2) if (a == b) a--; else b--; 5) (1p) Antag att du har en vektor, fastvek, bestående av 25 fastigheter enligt uppgift 3 ovan. Skriv den kod som nollställer vektorn. Fastighetsbeteckningen ska nollställas med en tom sträng. 6 )(2p) Skriv en funktion, skriv_fastighet, som tar en fastighet enligt uppgift 3 ovan som parameter och skriver ut fastigheten. Funktionshuvud enligt: void skriv_fastighet(struct fastighet f); 7) (2p) Skriv en funktion, bensinmatare, som tar mängden bensin i tanken som parameter och som returnerar mängden bensin avrundat till närmaste hela liter, om mängden är 10.0 eller mer, annars ska 0 returneras. 8) ( 2p)Skriv en funktion, skriv_vek, som tar en heltalsvektor och antalet element i vektorn som parametrar och som skriver ut vektorns element på skärmen med 10 tal per rad.

3 (8) 9) (2p) Skriv en funktion som tar ett filnamn som parameter och som bestämmer filens typ. Du kan anta att filnamnet alltid består av ett namn följt av en punkt och filtyp. Exempelvis har filnamnet Hello.obj filtypen obj. Funktionshuvud enligt : void filtyp(char *filnamn, char *filtyp); 10)(2p)Skriv en funktion, las_fastighet, som tar en pekare till en struct enligt uppgift 3 ovan som parameter och som läser in fastighetens data. Funktionshuvud enligt : void las_fastighet(struct fastighet *fp); 11)(5p)Skriv ett program som upprepat (avslut 0) läser in en fastighets taxeringsvärde och skriver ut försäljningspriset om taxeringsvärdet är 75 % av försäljningspriset. Som variabel ska du använda en struct enligt uppgift 3 ovan. 12)(5p)Skriv ett program som simulerar en bensinmätare på en bil. Programmet ska upprepat (avslut 0.0) fråga hur mycket bensin som finns kvar i tanken. Finns det 10.0 liter eller mer ska programmet skriva ut mängden bensin avrundat till närmaste hela liter. Är mängden bensin mindre än 10.0 liter ska istället en varningstext som uppmanar föraren att tanka bilen, skrivas ut. Du ska anropa funktionen bensinmatare i uppgift 7 ovan. 13)(5p)Skriv ett program som centrerar en vektor bestående av ett inläst antal (max 100) slumpade tvåsiffriga heltal. Att centrera en vektor innebär att man tar reda på spridningen (max min) och subtraherar sedan alla tal i vektorn med spridningen. Du ska skriva ut vektorn genom att anropa funktionen skriv_vek i uppgift 8 ovan både före centreringen och efter. För full poäng krävs också att centreringen görs av en funktion som tar vektorn och antalet element i vektorn som parametrar. 14(5p) Textfilen Filer.txt innehåller ett antal filnamn, en per rad enligt : Hello.c Namn.txt Lotto.c.... Skriv ett program som upprepat (avslut ENTER) läser in en filtyp och som skriver ut alla filnamn i Filer.txt, som har denna filtyp. Du ska anropa funktionen i uppgift 9 ovan för bestämning av filtyp. 15)(5p)En mäklarfirma har alla sina sålda fastigheter i binärfilen fastigheter.dat i form av structar med fastighetsbeteckning, taxeringsvärde och försäljningspris. Skriv ett program som läser alla fastigheter från filen och räknar ut medelvärdet av de antal

procent som taxeringsvärdet utgör av försäljningspriset. Använd structen i uppgift 3 ovan. 4 (8)

5 (8) Lösningar till tentamen i Programmering, 050108. 1) a = 2*y /(y+3) + 7/z; 2) a) 2 b) 1 3) struct fastighet f = Lugnet 5, 1200000, 1500000; 4) a = 4; b = 2; 5) for (i = 0; i < 25; i++) fastvek[i].bet[0] = \0 ; fastvek[i].tax = 0; fastvek[i].pris = 0; 6) void skriv_fastighet(struct fastighet f) printf( Beteckning : %s\n, f.bet); printf( Taxeringsvärde : %d\n, f.tax); printf( Beteckning : %d\n, f.pris); 7) Se uppgift 12. 8) Se uppgift 13. 9) Se uppgift 14 10) void las_fastighet(struct fastighet *fp) printf( Ge fastighetsbeteckning : ); gets(fp->bet); printf( Ge taxeringsvärde : ); scanf( %d, &fp->tax); printf( Ge pris : ); scanf( %d, &fp->pris); 11) /* Uppg11.c */ #include <stdio.h> struct fastighet char bet[20]; int tax; int pris; f; printf("ge taxeringsvärde (avslut 0): "); scanf("%d", &f.tax); while (f.tax!= 0) f.pris = (int) (f.tax / 0.75); printf("normalt försäljningspris = %d\n", f.pris); printf("ge taxeringsvärde (avslut 0): "); scanf("%d", &f.tax);

6 (8) 12) /* Uppg12.c */ #include <stdio.h> int bensinmatare(float liter) if (liter >= 10.0) return liter + 0.5; return 0; float literbensin; int svar; printf("hur mycket bensin finns i tanken (avslut 0): "); scanf("%f", &literbensin); while (literbensin!= 0.0) svar = bensinmatare(literbensin); if(svar == 0) printf("du måste tanka bilen!\n"); else printf("bensinmätaren visar = %d\n", svar); printf("hur mycket bensin finns i tanken (avslut 0): "); scanf("%f", &literbensin); 13) /* Uppg13.c */ #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> void skriv(int v[], int nr) int i; for (i = 0; i < nr; i++) printf("%d ", v[i]); if ((i+1) % 10 == 0) printf("\n"); void centrera(int v[], int nr) int min = v[0], max = v[0], i; for (i = 1; i < nr; i++) if (v[i] > max) max = v[i];

7 (8) else if (v[i] < min) min = v[i]; for (i = 0; i < nr; i++) v[i] -= (max-min)/2; int vek[100], i, antal; srand((unsigned)time(null)); printf("ge antalet tal i vektorn (max 100) : "); scanf("%d", &antal); for (i = 0; i < antal; i++) vek[i]= rand() % 90 + 10; printf("\nslumpad vektor : \n"); skriv(vek, antal); centrera(vek, antal); printf("\n\ncentrerad vektor : \n"); skriv(vek, antal); getch(); 14) /* Uppg14.c */ #include <stdio.h> #include <conio.h> #include <string.h> void filtyp(char *filnamn, char *filtyp) int i = 0, k = 0; while(filnamn[i]!= '.') i++; i++; while(filnamn[i]!= '\0') filtyp[k] = filnamn[i]; i++; k++; filtyp[k]= '\0'; FILE *tsin; char filnamn[20], ftyp[10], sftyp[10]; tsin = fopen("filnamn.txt", "rt"); printf("vilken filtyp söks? ");

8 (8) gets(sftyp); while(fscanf(tsin, "%s", filnamn)!= EOF) filtyp(filnamn, ftyp); if (strcmp(sftyp, ftyp) == 0) printf("%s\n", filnamn); fclose(tsin); getch(); 15) #include <stdio.h> #include <conio.h> FILE *bsin; struct fastighet char bet[20]; int tax; int pris; f; float procsum = 0.0; int count = 0; bsin = fopen("fastigheter.dat", "rb"); fread(&f, sizeof(struct fastighet), 1, bsin); while(!feof(bsin)) procsum += (float)f.tax / f.pris * 100; count++; fread(&f, sizeof(struct fastighet), 1, bsin); printf("medelprocenten = %.1f", procsum / count); fclose(bsin); getch();