HØYSKOLEN I OSLO, AVDELING FOR INGENIØRUTDANNING

Like dokumenter
Programmering i C++ Løsningsforslag Eksamen høsten 2005

K O N T I N U A S J O N S E K S A M E N

Høgskolen i Gjøvik Institutt for informatikk og medieteknikk E K S A M E N. Grunnleggende programmering

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

Eksamensoppgave i IMT1082 Objekt-orientert programmering

Kontinuasjonseksamensoppgave i IMT1082 Objekt-orientert programmering

GJØVIK INGENIØRHØGSKOLE

Grunnleggende datakunnskap og programmering. EKSAMENSDATO: 16. desember 1997

HØGSKOLEN I SØR-TRØNDELAG

E K S A M E N 96HINDA / 96HINDE (1 AA / AE)

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

Oppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene.

KONTINUASJONSEKSAMEN

Kontinuasjonseksamen

Eksamen. Grunnleggende programmering. EKSAMENSDATO: 6.desember 2016 TID: 16:00 20:00. (kalkulator er ikke tillatt)

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

Løsningsforslag for eksamensoppgave, våren 2004

UNIVERSITETET I OSLO

Del 1 En oversikt over C-programmering

E K S A M E N. Grunnleggende programmering 03HBIND*, 03HBINFA, 03HBINE*, 03HBMETEA, 03HBMEMAA, 03HBGEOA

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

1 ØVING I WINDOWS FRA CHRISTIAN ANDOLO

Kontinuasjonseksamensoppgave i IMT1082 Objekt-orientert programmering

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

UNIVERSITETET I OSLO

Kontinuasjonseksamen

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

UNIVERSITETET I OSLO

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

Høgskolen i Gjøvik. Avdeling for elektro- og allmennfag K O N T I N U A S J O N S E K S A M E N. EKSAMENSDATO: 8. august 1995 TID:

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Kontinuasjonseksamen

E K S A M E N. Grunnleggende datakunnskap og programmering 02HIND*, 02HINE*, 02HDMU*, 02HING*, 02HGEOMAA, 02HSIV5

Høgskolen i Gjøvik E K S A M E N. FAGLÆRER: Frode Haug KLASSE: 1 AA / AE

Grunnleggende datakunnskap, programmering og datastrukturer 97HINDA / 97HINDB / 97HDMUA

HØGSKOLEN I SØR-TRØNDELAG

2. Pekere og referanser.

Eksamen. Objekt-orientert programmering KLASSE(R): 02HIND* 02HDMU* 02HINE* 02HING* 01HINGA 02HSIV5 02HGEOMAA

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF Høst 2011)

UNIVERSITETET I OSLO

IN 147 Program og maskinvare

1. Grunnleggende C Introduksjon til kurset og til C++ Innhold

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Ingen. Elektronisk (WiseFlow) Robert Pettersen

E K S A M E N. Grunnleggende datakunnskap og programmering 98HINDA / 98HINDB / 98HINEA 98HDMUA / 98HDMUB / 98HINGA

TDT4102 Prosedyreog objektorientert programmering Vår 2016

UNIVERSITETET I OSLO

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier. 11. okt Siri Moe Jensen Inst. for informatikk, UiO

Kontinuasjonseksamensoppgave i IMT1031(F) Grunnleggende programmering

Nybegynnerkurs i C. Øyvind Grønnesby. 14. oktober Introduksjon Typer Operatorer Kontrollstrukturer Pekere Makroer Lenker

Kontinuasjonseksamen

INF1000: noen avsluttende ord

Kapittel 1 En oversikt over C-språket

TDT Prosedyre- og objektorientert programmering

Høgskolen i Gjøvik. Avdeling for elektro- og allmennfag K O N T I N U A S J O N S E K S A M E N. EKSAMENSDATO: 11. august 1995 TID:

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

E K S A M E N. - Kontroller at alle oppgavearkene er tilstede. - Les hele oppgaveteksten nøye, før du begynner å besvare noe som helst.

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

EKSAMENSOPPGAVE I INF-1100

Antall sider (inkl. forsiden): 7. Alle trykte og håndskrevne

Kontinuasjonseksamen

Programmeringsspråket C Del 3

UNIVERSITETET I OSLO

Kontinuasjonseksamen

KONTINUASJONSEKSAMEN

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Del 4 Noen spesielle C-elementer

Programmeringsspråket C Del 3

TDT Prosedyre- og objektorientert programmering

UNIVERSITETET I OSLO

Programmeringsspråket C Del 3

Del 3. Pekere RR 2016

UNIVERSITETET I OSLO

KONTINUASJONSEKSAMEN

TDT Prosedyre- og objektorientert programmering

Kontinuasjonseksamen

Høgskolen i Gjøvik. Avdeling for elektro- og allmennfag E K S A M E N. EKSAMENSDATO: 12. desember 1995 TID:

Programmeringsspråket C Del 3

INF225 høsten 2003 Prosjekt del 4: kodegenerering

Repetisjon: Statiske språk uten rekursive metoder (C1 og C2) Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)

Kontinuasjonseksamen

Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Eksamensoppgave i IMT1082 Objekt-orientert programmering

Høgskolen i Gjøvik Institutt for informatikk og medieteknikk E K S A M E N. Grunnleggende programmering

TDT Prosedyre- og objektorientert programmering

UNIVERSITETET I OSLO

Kontinuasjonseksamen

Høgskolen i Gjøvik. Eksamen. Objekt-orientert programmering 98HINDA / 98HINDB / 98HINEA 98HDMUA / 98HDMUB

Program delegate. Lage et nytt prosjekt i Visual Studio

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE. Antall sider (Inkl forsiden): 8. Alle trykte og håndskrevne

Transkript:

HØYSKOLEN I OSLO, AVDELING FOR INGENIØRUTDANNING Eksamensoppgave i kurset: Programmering i C++. Fagnr: LV 121 A Eksamensdato: 10 februar, 2003. Faglærer: Cecilie Rolstad Antall oppgaver: 5 Antall sider, inkludert denne: 4 Tillatte hjelpemidler: Alle trykte og skrevne. 1

Oppg. 1. Dynamisk allokerte data. Templateklasser (30%) Vi ønsker å registrere en liste med navn. Vi kjenner ikke alltid på forhånd hvor mange registreringer som er nødvendig. Programer en klasse Array som inneholder følgende private variable: en peker s til en endimensjonal stringarray, en int kapasitet, og en int brukt. Klassen skal videre inneholde en default konstruktør, en parameterisert konstruktør hvor parameteren angir størrelsen på arrayet, og en kopieringskonstruktør som utfører deep copy. Klassen skal også inneholde følgende fire medlemsfunksjoner: en som legger et element inn i arrayet, en som returnerer true/false hvis arrayet er fullt, en som returnerer kapasiteten på arrayet, og en som returnerer antall elementer i arrayet som er i bruk. Klassen skal overstyre assignmentoperatoren =, og ha en destruktør. a) Deklarere klassen som angitt over i en fullstendig header -fil. b) Implementere klassen i en fullstendig implementeringsfil. c) Deklarere klassen som en template i en ny fullstendig header -fil. d) Skriv et fullstendig program inneholdene en main funksjon hvor templateklassen i punkt c) brukes for typen string. Be brukeren taste inn et navn, og legg dette inn i arrayet. Oppg. 2. Pekere (10 %) a) Deklarere en pekervariabel p og initialiser den til å peke på en char variabel med navn ch. b) Deklarere en pekervariabel q og initialiser den til å peke på det første elementet av en long array med navn arr. c) Skriv en if test som sammenligner to dynamiske integervariable som er pekt på av variablene a og b, og som legger den minste av de to inn i en integervariabel med navn minst, og deretter sletter de to originale dynamiske variablene. d) Hva skrives ut her? #include <iostream> using namespace std; int main() { int m; int n; int* p = &m; int* q; *p = 27; cout << *p << endl; q=&n; n=54; cout<< *p << << *q << endl; p=&n; *p=6; cout << *p << << n << endl; return 0; } e) Deklarere en peker t som peker på en firedimensjonal integerarray. 2

Oppg. 3. Funksjonstemplates (5 %) a) Deklarere og definer en templatefunksjon med navnet minimum som returnerer den minste av to argumenter. b) Er minimum gyldig for alle klasser? Begrunn svaret. Oppg. 4. Teorispørsmål. (25 %) NB! Svar kort og presist på spørsmålene, ikke lange utredninger! a) Ved polymorfi og funksjonsoverstyring bestemmes hvilken funksjon som skal brukes når programmet kjører. Hvordan bestemmes i prinsippet dette for begge de to variantene? b) Hva er forskjellen på deep copy og shallow copy? c) Når bør man implementere en destructor, og hvorfor? d) Hva er forskjellen på call-by-value og call-by-reference parametere i en funksjon? e) Hvorfor er det noen ganger nødvendig å overstyre f.eks + for en klasse? f) Hva er forskjellen på en medlemsfunksjon og en friend funksjon i en klasse? g) Hvorfor benyttes namespaces i C++? h) Ved separat kompilering, hva legges typisk i en header -fil og hva i en implementeringsfil? i) Hva er en dangling pointer? j) Hvordan er en C-string lagret? Oppg. 5. Programmering: Todimensjonal array, I/O, tekstformattering. (30 %) Det skal velges en ny rektor på Høyskolen i Annerledeslandet. Høyskolen har 4 avdelinger, bygg, kjemi, data og maskin, og det er 4 kandidater til rektorstillingen, Hansen, Olsen, Pettersen og Anandakrisnan. Inndata: De avgitte stemmene ligger i en fil stemmer.txt, som to heltall, ett representerer avdelingen fra 1 til 4 ( bygg representeres ved 1, kjemi 2, data 3, maskin 4), og det andre heltallet representerer på tilsvarende måte kandidaten det er stemt for. Eksempel på innfil stemmer.txt : 1 3 2 4 3 4 2 3 1 3 Kandidatenes navn tastes inn av brukeren. Funksjonalitet: Vi ønsker å analysere stemmegivningen fra hver avdeling ved å besvare følgende spørsmål: Hvor mange stemmer fikk hver kandidat fra hver avdeling? 3

Hvor mange stemmer fikk hver kandidat totalt? Hvor mange stemmer ble avlagt totalt ved hver avdeling? Data struktur: Opprett en todimensjonal integerarray for kandidater og avdelinger, hvor antall stemmer fra hver avdeling for hver kandidat telles opp etterhvert som stemmeavgivningen leses fra fil. Opprett en endimensjonal stringarray hvor kandidatnavnene legges inn for senere å skrives til fil. Utdata: Det skal skrives en fil rapport.txt som inneholder: en tabell med avdelingene og antall stemmer per kandidat, deretter fire linjer som angir totalt antall stemmer for hver kandidat, deretter fire linjer med totalt antall stemmer avgitt ved avdelingen. Eksempel på utfil rapport.txt : Hansen Olsen Pettersen Anandakrisnan Avdeling 1 2 2 1 1 Avdeling 2 2 2 2 1 Avdeling 3 1 2 2 1 Avdeling 4 1 1 3 6 Totalt antall stemmer for Hansen: 6 Totalt antall stemmer for Olsen: 7 Totalt antall stemmer for Pettersen: 8 Total antall stemmer for Anandakrisnan: 9 Total antall stemmer fra Avdeling 1: 6 Total antall stemmer fra Avdeling 2: 7 Total antall stemmer fra Avdeling 3: 6 Total antall stemmer fra Avdeling 4: 11 Del programmet opp følgende funksjoner som kalles i main (funksjonsnavnene angir hva funksjonene utfører): opne_innfil opne_utdatafil tastinn_kandidatnavn init_2d (initierer 2D arrayen til 0) lesfil_til2d (les stemmeavgivning fra innfil til 2D arrayen) skriv_utfil Definer funksjonene med nødvendige parametere. Programmer de nevnte funksjonene og main funksjonen slik at det utgjør et kjørbart program. Oppgavesett slutt. 4

5