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

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

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

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

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

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

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

Programmering Grundkurs (HI1900) Teoridel

Programmering i C, 7,5 hp

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

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 i dag kl Tentamen i Programmering C, Fri, Kväll,

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

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,

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

Föreläsning 9. Repetition och exempelproblem

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll,

Switch, Array (fält) switch break, continue, goto (scary) Sammansatta tilldelningar Kommentarer Array Sortering

Arrays (indicerade variabler) Föreläsning 6

Lösningsförslag till övningsuppgifter till föreläsning 6 Funktioner

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,

En kort text om programmering i C.

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

Övningsuppgifter till föreläsning 2 Variabler och uttryck

Föreläsning 11. Strängar

Fråga 5. Vad krävs av funktionen undersok(a) för att b ska ökas med 1 respektive minskas med 1?

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten 2010

*Pekarvärden *Pekarvariabler & *

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

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

Exempelsamling Assemblerprogrammering

Exempel ( )

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

Funktioner och programstruktur. Föreläsning 5

Tentamen Grundläggande programmering

Funktioner och programstruktur. Föreläsning 5

2 Pekare och dynamiska variabler.

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

Tecken & Strängar. Kapitel 7

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

Föreläsning 6 pekare och pekare tillsammans med arrayer

TENTAMEN. Programmering Grundkurs (HI1900) Skrivtid 13:15-18:15. Tisdagen 26 april Tentamen består av 8 sidor

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

Loopar och datatyper. Föreläsning 3

Föreläsning 10. Pekare (Pointers)

TDIU01 - Programmering i C++, grundkurs

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

OBS!! Detta är DEL 2 av tentan. För att få ut denna måste du ha lämnat in del 1. Om du inte fått ut del 1 bör du meddela skrivningsvakten. OBS!!

Programmeringsteknik med C och Matlab

HI1024 Programmering, grundkurs TEN

Funktioner. Jan Erik Moström,

Planering Programmering grundkurs HI1024 HT 2014

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

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

Belopp Belopp > procent

Föreläsning 4. Val, boolska värden, läsbarhet, osv

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

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

Arrays (indicerade variabler) Föreläsning 4

Loopar och datatyper. Föreläsning 3

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

Tentamen i Programmering grundkurs och Programmering C

Tentamen ges för: Tentamensdatum: Tid:

2.1 Variabler. 2.2 Regler för namngivning i C. Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Föreläsning 2

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

Tentamen i Programmering grundkurs och Programmering C

Pekare och arrayer. Indexering och avreferering

Tentamen i Programmering grundkurs och Programmering C

Översikt MERA JAVA OCH ECLIPSE. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning

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

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Föreläsning 7 Strängar

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

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

HI1024 Programmering, grundkurs TEN

Några småsaker. switch break, continue, goto Kommentarer

Indicerade variabler

Heltal(int) Programmeringsteknik 54

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Repetition C-programmering

JAVAUTVECKLING LEKTION 3

Instuderingsfrågor, del D

Planering Programmering grundkurs HI1024 HT TIDAA

Tentamen *:58/ID100V Programmering i C Exempel 3

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

HI1024 Programmering, grundkurs TEN

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

2D1339 Programkonstruktion för F1, ht 2004

Uttryck och villkor. Föreläsning 2

STYRANDE SATSER. 1) Skriv ett program som räknar ut hur många år du har till pensionen. Vi räknar här med att man pensioneras det år man fyller 65 år.

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

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

Problemlösning. Veckodagsproblemet Gissa talet Siffersumman

Tentamen i Introduktion till programmering

HI1024 Programmering, grundkurs TEN

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

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING

HI1024 Programmering, grundkurs TEN

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Programmering: att instruera en maskin att utföra en uppgift, kräver olika språk:

Transkript:

Programmering, grundkurs, 8.0 hp HI1024, TEN1 Fredagen den 2 mars 2012 Tentamen består av två delar, del A och del B. Del A innehåller 4 kryssfrågor på olika teman inom C programmering. Varje fråga är uppbyggd på ett påstående. Påståendet är antingen helt korrekt och är då alltså SANT, eller så finns minst ett allvarligt fel i påståendet och då är alltså påståendet FALSKT. Man kryssar det man tror på och om man kryssar rätt får man 2 poäng. Kryssar man fel får man 2 poäng. Det är alltså riskabelt att chansa. Man har alltid alternativet att kryssa AVSTÅR som då ger 0 poäng. Del A kan inte ge mindre än 0 poäng totalt. (Om man har mer fel är rätt får man alltså inga negativa poäng.) Del B innehåller 13 traditionella frågor som ni ska svara skriftligt på. Totalt antal poäng är 32. Gränsen för E är 14 och gränsen för Fx är 12. KTHs allämnna regler för examination gäller. (Gränserna för E och Fx är sänkta med 2 poäng.) Del A. Påstående 1. Då vi vill skicka heltalsarrayer till funktioner som parametrar genom funktionsprototypen funk (int arr[], int length). så anger vi alltså arrayens namn i parametern arr och antal element i parametern length. Detta har fördelen att man kan öka arrayens storlek genom att i funktionen funk öka på parametern length. Påstående 2. Om en array har 10 platser numreras dessa från 0 till 9. Om man försöker skriva till plats nr 10 (som ju inte finns) så försöker man skriva utanför det minnesområde som hör till arrayen. C upptäcker detta och utökar arrayens storlek med 1 så att plats 10 finns. Påstående 3. Man kan läsa in ett innehåll i en sträng med scanf men då kan man inte läsa mellanslag eller tabulatorsteg, vi kan alltså skriva char namn[20]; scanf( %s,namn); och korrekt läsa in namn som inte innehåller mellanslag (eller tabulatorsteg). Om vi vill läsa in strängar som innehåller mellanslag, tabulatorsteg måste vi använda funktionen gets(). Denna funktion kan till och med läsa in strängar som innehåller nyradstecken.

Påstående 4. Förprocessordirektiv kan hjälpa oss att definera värden i ett C program som ska gälla överallt i programmet. Vi kan då få en mer elegant programkod om detta kombineras med switchsatser.vi kan skriva #define MONDAY 0 #define TUESDAY 1 #define WEDNESDAY 2 #define THURSDAY 3 #define FRIDAY 4 #define WEEKEND 5 och i programmet ha koden switch(day) case MONDAY: case TUESDAY: case WEDNESDAY: case THURSDAY: case FRIDAY: printf( Work on, no weekend yet...\n ); break; case WEEKEND: printf( Weekend! No worries!\n ); break; (Här förutsätts day vara deklarerad på lämpligt sätt och programkoden förutsätts förekomma i ett lämpligt sammanhang i någon funktion, kanske. #define direktiven finns längst upp i programmet.) Det finns en flexibilitet inbyggd här, om man till exempel i programmet vill tilldela andra värden till till exempel MONDAY så kan man skriva MONDAY = 10; (om 10 är det nya värde som vi vill att MONDAY ska stå för.) Del B. (Nödvändiga #include direktiv är ofta utelämnade, men ska anses finnas där ändå.) Uppgift 11. (2p) Studera nedanstående program: int i,j,p=0; for(i=1;i<=5;i++) for(j=1;j<=5;j++) if (i%j!=0 && j%i!=0)p++; printf("p: %d.\n", p);

Uppgift 12. (2p) Studera nedanstående program: int a, b, c; double x, y, z; a = 10; b = 20; c = 30; x = c/b; y = a/c; z = c/b; printf("%.2lf\n%.2lf\n%.2lf\n", x, y, z); (Ledning: %.2lf är ett format för utskrift av långt flyttal, alltså double, med två decimaler.) Uppgift 13. (2p) Studera nedanstående program: int i, a[] = 0, 6, 5, 4, 7, 1, 2, 3; char s[] = "VALLGRAV"; for(i=0;i<=7;i++) printf("%c ", s[a[i]] ); printf("\n"); Uppgift 14. (2p) En aritmetisk talföljd är en följd av heltal med samma avstånd mellan sig. Vi kan åstadkomma en sådan genom att bilda int i, a; for(i=0;i<4;i++) a = 3*i + 2; printf("%d ", a); printf("\n"); Detta ger utskriften 2 5 8 11 Alltså en aritmetisk följd av tal med avståndet 3.

Modifiera programmet ovan så att vi skriver ut 10 tal och om talet som skrivs ut är jämnt ska det omringas av två stjärnor, en på var sida om talet, exempel: *8*. Uppgift 15. (2p) Studera nedanstående program: int f1(int a, int b) int w; a=b; b=a; w=a+b; printf("f1 %d %d\n", a, b); return w; f2(int *j, int *i) int z; *j ; *i=*j *i/2; z = f1(*i,*j); printf("f2 %d %d %d\n", *i, *j, z); int i=10,j=20; f2(&i,&j); printf("main %d %d\n", i, j); * Uppgift 16. (3p) Studera nedanstående program, det är tänkt att användas för beräkning av omvandlingar mellan två olika sätt att ange temperaturer, Celsius och Fahrenheit. Programmet har tre felaktiga rader. Finn dessa felaktiga rader och rätta dem #include <stdio.h> #define C_TO_F 0 #define F_TO_C 1 void convert (double *temperature, int mode) if(mode==c_to_f) *temperature = 9.0/5.0*(*temperature) - 17.0; else *temperature = 9.0/5.0*(*temperature) - 17.0; void input(double *temperature) printf("temperature: "); scanf("%lf", temperature); double temperature, temperature_copy; input(&temperature); temperature_copy = temperature;

convert(&temperature, F_TO_C); printf("temperature converted from Fahrenheit to Celsius: %.2lf.\n", temperature); convert(&temperature_copy, C_TO_F); printf("temperature converted from Celsius to Fahrenheit: %.2lf.\n", temperature_copy); Uppgift 17. (2p.) I Del A förekom flera falska påståenden. Välj två av dessa falska påståenden och förklara vad som egentligen gäller i sammanhanget, det vill säga uttryck vad som skulle vara sant i sammanhanget och varför det är på det viset. Uppgift 20. (3p) Nedanstående program är tänkt att beräkna ett närmevärde på talet pi, om man tar tillräckligt många termer (styrs av antal_termer) i summan som beskrivs matematiskt i nedanstående program och beräknar rotuttrycket så får man ett värde som kommer närmare och närmare pi ju mer termer man tar. Dock finns två allvarliga fel i programmet. Beskriv dessa fel och ange hur man kan rätta dem. int j, antal_termer; double sum, precision, pi; printf("antal termer: "); scanf("%d", &antal_termer); for(j=1;j<=antal_decimaler;j++) sum+=1/(j*j); pi = sqrt(6*sum); printf("pi: %lf.\n", pi);