Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag 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 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 och på WebCT (Gamla Tentor) i dag kl 19. Tentamen i Programmering C, 5p, Distans, övriga,

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 uppgifterna sätts ut på kurssidan på nätet i dag kl 13. Omtentamen i Programmering C, 5p, A1, D1, PA1, Fri,

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 Programmeringsmetodik, 5p, Au2, D1 och E1,

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

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

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

2 Pekare och dynamiska variabler.

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

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

4 Sammansatta datatyper

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

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

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

7 Programmeringsteknik

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

Programmering i C, 7,5 hp

Tentamen i. Programmering i språket C

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

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

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

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

Tentamen i Programmering grundkurs och Programmering C

Tentamen i Programmering grundkurs och Programmering C

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

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

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

4 Sammansatta datatyper

Tentamen i Programmering grundkurs och Programmering C

Tentamen i. Programmering i språket C

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

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

Tentamen i Programmering grundkurs och Programmering C

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

Föreläsning 9. Repetition och exempelproblem

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

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

1 Modulär programutveckling.

HI1024 Programmering, grundkurs TEN

Tentamen i Introduktion till programmering

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

En kort text om programmering i C.

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

Tentamen *:58/ID100V Programmering i C Exempel 3

Tentamen i Programmering grundkurs och Programmering C

tentaplugg.nu av studenter för studenter

C++ Slumptalsfunktioner + switch-satsen

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

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

Programmering Grundkurs (HI1900) Teoridel

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

3 Listor. 3.1 Envägslistor

Tecken & Strängar. Kapitel 7

*Pekarvärden *Pekarvariabler & *

3 Styrning av programflöde. Här exekveras satserna enligt först sats1 sedan sats2 och sist sats3.

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

Inlämningsuppgift 1, Digsim

Tentamen ges för: Tentamensdatum: Tid:

HI1024 Programmering, grundkurs TEN

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

Loopar och datatyper. Föreläsning 3

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

Pekare och arrayer. Indexering och avreferering

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.

6 Lågnivåprogrammering

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

TDIU Regler

Planering Programmering grundkurs HI1024 HT data

Uppgift 1 ( Betyg 3 uppgift )

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

TENTAMEN OOP

Loopar och datatyper. Föreläsning 3

Planering Programmering grundkurs HI1024 HT TIDAA

kl Tentaupplägg

TAIU07 Matematiska beräkningar med Matlab

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

Exempelsamling Assemblerprogrammering

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

Arrays (indicerade variabler) Föreläsning 6

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.

Enkla datatyper minne

Funktioner och programstruktur. Föreläsning 5

TENTAMEN. Luleå tekniska universitet

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

Tentamen i Grundläggande Programvaruutveckling, TDA548

Planering Programmering grundkurs HI1024 HT 2014

OOP Tenta

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

Programmeringsuppgifter 1

Transkript:

1(10) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 13.00. Denna tenta kommer att vara färdigrättad Må 22/3 och kan då hämtas på mitt tjänsterum, T2221 mellan 15 och 17 då du också har möjlighet att diskutera rättningen med mig. Tentor som ej hämtats då, placeras på studentexpedition. Tentamen i Programmering C, 5p, A1, D1, E1, Fri, Pr1, Te/Ek1, 040315. Hjälpmedel : Inga Tid : 08-13 Ansvarig lärare : Gunnar Joki 303317, 274825(hem) 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 Borland C. Detta häfte ska du behålla. Lycka till!

2 (10) 1) (1p) Skriv den tilldelningssats i C som motsvarar formeln : 2 a = + 3 d bc 2) (1p) Vilka värden har följande uttryck? a) 5-3 % 6 / 2 b) M > e 3 == 2 3) (1p) Datatypen struct kurstyp char kod[7]; // Kursens kod, 6 tecken float poang; // Kursens studiepoäng char betyg; // Betyg U, 3, 4 eller 5 ; avbildar kurser som studenter läser på universitetet. Definiera en variabel av denna datatyp med namnet a_kurs och initiera denna variabel så att den får kurskoden PRG045, studiepoängen 5.0 och betyget U. 4) (1p) Vad skrivs ut då nedanstående kod körs om a och b är heltal? a = 2; b = 8; while (a <= b) if (a == b) a += 2; a++; b--; printf( a = %d och b = %d, a, b); 5) (1p) Du har läst in en sträng med funktionen fgets från en textfil. Funktionen fgets lägger in ett ENTER-tecken just före sluttecknet \0 i strängen. Ofta vill man inte ha ENTERtecknet i strängen. Skriv den kod som tar bort ENTER-tecknet från strängen. Inga färdiga funktioner får användas. 6) (2p) Skriv en funktion, is_betyg, som tar ett tecken som parameter och som returnerar sant (1) om tecknet är ett betyg alltså ett av tecknen U, 3, 4 eller 5, annars falskt (0).

3 (10) 7) (2p) Antag att du har en funktion medel, som tar en reell vektor och antalet element i vektorn, som parametrar och som returnerar medelvärdet av elementen. Skriv ett huvudprogram som initierar en reell vektor med 5 valfria reella tal, anropar funktionen medel och skriver ut medelvärdet. Den givna funktionens huvud är float medel(float v[], int nr); 8) (2p) Ersätt while-loopen i uppgift 4 ovan med en motsvarande for-loop. 9) (2p) Skriv en funktion, seriesumma, som tar det udda talet nr som parameter och returnerar den reella summan: 1 1/3 + 1/5 1/7.... 1/nr Funktionshuvud enligt: float seriesumma(int nr); 10)(2p)För att hantera en student som läser ett antal (max 20) kurser kan man använda sig av en vektor av datatypen i uppgift 3 ovan. Definiera en sådan vektor och skriv den kod som skriver ut de kurser som denna student ej klarat av, alltså alla kurser som har betyget U. Utskrift enligt: Kursen PRG045 5.0 p ej klar! Kursen GRT234 4.5 p ej klar! 11)(5p)Skriv ett fullständigt program som upprepat läser in två hela positiva tal och summerar alla tal från och med det första inlästa talet till och med det andra. Du kan anta att det andra talet alltid är större än det första. Summan skrivs ut på skärmen. Programmet ska avslutas direkt då 0 inmatas som första tal, utan att fråga efter det andra talet. Ett körexempel där du matar in det understrukna : Ge första talet (avslut 0) : 2 Ge andra talet : 4 Summan = 9 Ge första talet (avslut 0) : 5 Ge andra talet : 12 Summan = 68 Ge första talet (avslut 0) : 0

4 (10) 12)(5p)Skriv ett fullständigt program som börjar med att läsa in en reell vektor med 5 element. Efter det att hela vektorn har lästs in ska alla vektorelement ökas med ett inläst procentvärde varefter de nya vektorelementen skrivs ut. Körexempel : Ge fem reella tal : 2.3 4.5 3.2 1.2 5.6 Ge ökning i procent : 10.0 Ny vektor : 2.53 4.95 3.52 1.32 6.16 13(5p)I textfilen Studkurs.txt finns data för en students kurser enligt uppgift 3 ovan med kurskod, studiepoäng och betyg radvis enligt: PRG123 5.0 3 DER345 3.5 U OLK987 4.5 4... Skriv ett fullständigt program som läser alla kurser från filen och skriver ut alla kurser som studenten är godkänd på dvs. har betyget 3, 4 eller 5 och som summerar och skriver ut de godkända kursernas totala studiepoäng. 14)(5p)Skriv ett fullständigt program som slumpar två tipsrader i form av strängar med 13 tipstecken 1, x eller 2 enligt exempelvis 112x112x1211x 211x11221111x och skriver ut antalet likadana tecken i samma position i de två raderna. I ovanstående exempel ska utskriften bli Antal lika = 9 För full poäng ska slumpning av en tipsrad göras av en funktion med huvudet void slumpa_tipsrad(char *tipsrad); och antal lika tecken av en annan funktion med huvudet int antal_lika(char *a_tipsrad, char *b_tipsrad);

5 (10) 15)(5p)Skriv ett fullständigt program, Biobok, som bokar numrerade biljetter till dagens 2 föreställningar i en biosalong, bestående av 120 platser, på filmstaden. Programmet ska börja med att upprepat (avslutas med 0) fråga efter vilken föreställning (1 eller 2) du vill ha biljett till. Efter denna fråga ritas biosalongen upp på skärmen så att det framgår vilka av salongens platser som är lediga. Programmet läser sedan in önskat platsnummer. Nedan visas skärmens utseende då plats 76 bokas på föreställning 1 där platserna 84 och 96 redan bokats tidigare. Vilken föreställning (avsluta med 0) : 1 Föreställning nr 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 85 86 87 88 89 90 91 92 93 94 95 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 Ge platsnummer : 76 Vilken föreställning (avsluta med 0) : _

6 (10) Lösningar till tentamen i Programmering, 040315 1) a = 2/(b*c) + 3*sqrt(d); 2) a) 4 b) 0 3) struct kurstyp a_kurs = PRG045, 5.0, U ; 4) a = 8 och b = 4; 5) i=0;, while (str[i]!= \0 ) i++; str[i-1] = \0 ; 6) int is_betyg(char betyg) return (betyg == U betyg >= 3 && betyg <= 5 ); 7) #include <stdio.h> #include <conio.h> float vek[5] = 2.3, 4.5, 3.4, 5.5, 1.5; printf( %.1f,medel(vek, 5)); getch(); 8) for (a = 2, b = 8; a <= b; a++, b--) if (a == b) a += 2; printf( a = %d och b = %d, a, b); 9) float seriesum(int nr) float sum = 0.0; int sign = 1, n; for (n = 1; n <= nr; n += 2) sum += sign / (float)n; sign = - sign; return sum; 10) struct kurstyp kv[20]; antal = 7; for(i = 0; i < antal; i++) if (kv[i].betyg == U ) printf( Kursen %s %.1f ej klar!\n, kv[i].kod, kv[i].poang);

7 (10) 11) #include <stdio.h> #include <conio.h> int forsta, andra, sum; printf( Ge första talet (avslut 0) : ); scanf( %d, &forsta); while (forsta!= 0) printf( Ge andra talet : ); scanf( %d, &andra); sum = 0; for (tal = forsta; tal <= andra; tal++) sum += tal; printf( Summan = %d\n, sum); printf( Ge första talet (avslut 0) : ); scanf( %d, &forsta); getch(); 12) #include <conio.h> #include <stdio.h> float vek[5], procent; int i; printf( Ge vektorns element : ); for (i = 0; i < 5; i++) scanf( %f, &vek[i]); printf( Ge ökning i procent : ); scanf( %f, &procent); for (i = 0; i < 5; i++) vek[i] = vek[i] * (1 + procent/100); for (i = 0; i < 5; i++) printf( %.2f, vek[i]); getch(); 13) #include <stdio.h> #include <conio.h> FILE *tsin; struct kurstyp k; float poangsum = 0.0;

8 (10) tsin = fopen( Studkurs.txt,"rt"); while(fscanf(tsin, "%s %f %c ", k.kod, &k.poang, &k.betyg)!= EOF) if (k.betyg!= U ) printf( %s %.1f\n, k.kod, k.poang); poangsum += k.poang; fclose(tsin); printf( Totalt avklarade studiepoäng = %.1f\n, poangsum); getch(); 14) #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> void slumpa_tipsrad(char *tipsrad) int i, slump; for (i = 0; i < 13; i++) slump = rand() % 3; switch(slump) case 0: tipsrad[i] = x ; break; case 1: tipsrad[i] = 1 ; break; case 2: tipsrad[i] = 2 ; break; tipsrad[13] = \0 ; int antal_lika(char *a_tipsrad, char *b_tipsrad) int i, antal = 0; for (i = 0; i < 13; i++) if (a_tipsrad[i] == b_tipsrad[i]) antal++; return antal; char tipsrad_1[14], tipsrad_2[14]; srand((unsigned)time(null)); slumpa_tipsrad(tipsrad_1); slumpa_tipsrad(tipsrad_2);

9 (10) printf( Antal lika = %d, antal_lika(tipsrad_1, tipsrad_2); getch(); 15) #include <stdio.h> #include <conio.h> void rita_salong( int biosalong[], int forestallning) int stol; clrscr(); printf("föreställning nr %d\n", forestallning); for (stol = 1; stol <= 120; stol++) if (biosalong[stol] == 0) printf("%5d", stol); else printf(" "); if ( stol % 10 == 0) printf("\n"); int boka_plats( int biosalong[]) int stol; printf("ge stolnummer : "); scanf("%d", &stol); if (stol >= 1 && stol <= 120 && biosalong[stol] == 0) biosalong[stol] = 1; return 1; return 0; int stol, forestallning, bio1[121], bio2[121]; for (stol = 1; stol <= 120; stol++) bio1[stol] = bio2[stol] = 0; printf("vilken föreställning (avsluta med 0) : "); scanf("%d", &forestallning); while (forestallning!= 0) if (forestallning == 1) rita_salong(bio1, 1); if (!boka_plats(bio1)) printf("felbokning! Platsen upptagen! Boka om!\n"); else if (forestallning == 2) rita_salong(bio2, 2); if (!boka_plats(bio2)) printf("felbokning! Platsen upptagen! Boka om!\n");

10 (10) printf("vilken föreställning (avsluta med 0) : "); scanf("%d", &forestallning);