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

Like dokumenter
KONTINUASJONSEKSAMEN

Grunnleggende datakunnskap og programmering. EKSAMENSDATO: 16. desember 1997

Kontinuasjonseksamen

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

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

KONTINUASJONSEKSAMEN

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

Kontinuasjonseksamen

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

E K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 11. desember HINDA / 00HINDB / 00HINEA ( 2DA / 2DB / 2EA ) TID:

Kontinuasjonseksamen

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.

KONTINUASJONSEKSAMEN

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

GJØVIK INGENIØRHØGSKOLE

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

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

E K S A M E N. Grunnleggende datakunnskap og programmering. EKSAMENSDATO: 7. desember HINDA / 00HINDB / 00HINEA 00HDMUA / 00HDMUB / 00HINGA

GJØVIK INGENIØRHØGSKOLE

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

KONTINUASJONSEKSAMEN

E K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 11. desember HINDA / 99HINDB / 99HINEA / 00HDESY ( 2DA / 2DB / 2EA / DESY )

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

Kontinuasjonseksamen

E K S A M E N. Grunnleggende datakunnskap og programmering. EKSAMENSDATO: 5. desember HIND*, 01HINE*, 01HDMU*, 01HING* TID:

KONTINUASJONSEKSAMEN

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

Kontinuasjonseksamen

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:

KONTINUASJONSEKSAMEN

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

KONTINUASJONSEKSAMEN

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

Kontinuasjonseksamen

EKSAMEN. Algoritmiske metoder I KLASSE: 97HINDA / 97HINDB ( 2DA / 2DB )

Kontinuasjonseksamen

Kontinuasjonseksamensoppgave i IMT1082 Objekt-orientert programmering

KONTINUASJONSEKSAMEN

Kontinuasjonseksamensoppgave i IMT1082 Objekt-orientert programmering

KONTINUASJONSEKSAMEN

KONTINUASJONSEKSAMEN

Kontinuasjonseksamen

Høgskolen i Gjøvik Avdeling for informatikk og medieteknikk. Eksamen. Objekt-orientert programmering

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

Kontinuasjonseksamen

Eksamen. Objekt-orientert programmering. EKSAMENSDATO: 25. mai HINDA / 99HINDB / 99HINEA 99HDMUA / 99HDMUB TID: Høgskolen i Gjøvik

Kontinuasjonseksamen

Eksamen 00HINDA / 00HINDB / 00HINEA 00HDMUA / 00HDMUB

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:

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

Eksamen. Objekt-orientert programmering

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

Kontinuasjonseksamen

Kontinuasjonseksamen

Høgskolen i Gjøvik Avdeling for informatikk og medieteknikk. Eksamen. Objekt-orientert programmering

Kontinuasjonseksamen

Eksamen. Objekt-orientert programmering 04HBIND*, 04HBINFA, 04HBMETEA

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

Eksamensoppgave i IMT1082 Objekt-orientert programmering

Kontinuasjonseksamen

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

Eksamen. Objekt-orientert programmering 03HBIND*, 03HBINFA, 03HBMETEA

Kontinuasjonseksamen

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

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

E K S A M E N. EKSAMENSDATO: 15. desember 1994 TID: Kladd og oppgavearkene leveres sammen med besvarelsen. Kladd merkes med "KLADD".

Kontinuasjonseksamen

Høgskolen i Gjøvik Institutt for informatikk og medieteknikk E K S A M E N. 04HBIND* / 04HBINFA / div. andre

Kontinuasjonseksamen

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

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

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

Kontinuasjonseksamen

Kontinuasjonseksamensoppgave i IMT1031(F) Grunnleggende programmering

KONTINUASJONSEKSAMEN

Kontinuasjonseksamen

HØYSKOLEN I OSLO, AVDELING FOR INGENIØRUTDANNING

HØGSKOLEN I SØR-TRØNDELAG

Høgskolen i Gjøvik Avdeling for informatikk og medieteknikk. Eksamen. Objekt-orientert programmering

Kontinuasjonseksamen

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Eksamensoppgave i IMT1082 Objekt-orientert programmering

UNIVERSITETET I OSLO

Høgskolen i Gjøvik Avdeling for informatikk og medieteknikk. Eksamen. Objekt-orientert programmering

Eksamen. Objekt-orientert programmering

Kontinuasjonseksamen

Høgskolen i Gjøvik Avdeling for informatikk og medieteknikk. Eksamen. Objekt-orientert programmering

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMEN. Flexibel ingeniørutdanning, 2kl. Bygg.

E K S A M E N. Grunnleggende programmering 04HBIND*, 04HBINE*, 04HBINFA, 04HBMETEA, 04HBGEOA. ANTALL SIDER UTLEVERT: 8 (inkludert denne forside)

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

KONTINUASJONSEKSAMEN

HØGSKOLEN I SØR-TRØNDELAG

EKSAMEN. EMNEANSVARLIG: Terje Bokalrud og Hans Petter Hornæs. TILLATTE HJELPEMIDLER: Kalkulator og alle trykte og skrevne hjelpemidler.

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

Høgskolen i Gjøvik Avdeling for informatikk og medieteknikk. Eksamen. Objekt-orientert programmering

EKSAMEN. Flexibel ingeniørutdanning, 2kl. Bygg m.fl.

Transkript:

Høgskolen i Gjøvik K O N T I N U A S J O N S E K S A M E N FAGNAVN: FAGNUMMER: Grunnleggende programmering og datastrukturer L 169 A EKSAMENSDATO: 8. januar 1998 KLASSE: 96HINDA / 96HINDE TID: 09.00-14.00 FAGLÆRER: Frode Haug ANTALL SIDER UTLEVERT: TILLATTE HJELPEMIDLER: 5 (inkludert denne forside) Alle trykte og skrevne. - Kontroller at alle oppgavearkene er tilstede. - Les hele oppgaveteksten nøye, før du begynner å besvare noe som helst. - INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag. Ved innlevering skilles hvit og gul besvarelse og legges i hvert sitt omslag. Oppgavetekst og kladd (og evt. blå kopi) beholder kandidaten. - Ikke skriv noe av din besvarelse på oppgavearkene. - Husk kandidatnummer på alle ark.

NB: Oppgave 1 og 2 er totalt uavhengige. Oppgave 1 (15 %) a) Hva blir utskriften fra følgende program: #include <iostream> using namespace std; const int MAX = 10; int main(){ int i, j, tab[max], *p; p = &tab[max-1]; for (i=1; i<=max; i++) { *p = i; p--; for (i=0; i<max; i++) { p++; cout << *p << " "; i=0; do { tab[i] = 1; i++; while (i<max); for(i=0; i<max; i++) cout << tab[i] << " "; for (i=0; i<max; i++) for (j=i+1; j<max; j++) tab[i] = tab[i] + tab[j]; for(i=0; i<max; i++) cout << tab[i] << " "; return 0; b) Hva blir utskriften fra følgende program: #include <iostream> #include <cstring> using namespace std; const int MAX = 20; struct post{ char tekst[max]; int tall; ; void funk1(const post &post1, post &post2) { post2 = post1; void funk2(const post &enpost){ cout << enpost.tall << " " << enpost.tekst << endl; 2

post funk3(char *str){ post p; strcpy(p.tekst, str); p.tall = 20; return p; int main(){ post p1, p2 = {"ABC", 10; funk1(p2, p1); strcpy(p1.tekst, "DEF"); funk2(p1); funk2(p2); funk2(funk3(p2.tekst)); return 0; Oppgave 2 (85%) Innledning Evalueringen av et kurs/fag har til nå blitt utført vha. utdelte papirskjemaer. På disse er det tre ulike typer spørsmål: P(oeng): Du setter kryss for den tallverdien du mener er mest aktuell. Eks: Kryss av i rutene 0-6, der 6 er dårligst, 1 er best og 0 betyr 'Vet ikke'. 6 5 4 3 2 1 0 Hvor god er læreboka: V(alg): Du setter kryss i det tekstlige standard-alternativet du opplever som T(ekst): mest relevant. Eks: Hvor mange timer i uka arbeider du med faget: 1-2 3-5 6-9 >=10 Hva slags karakter tror du selv at du ligger an til: 1.0-1.9 2.0-2.9 3.0-3.9... 5.0-6.0 Du svarer i fri-tekst det du vil ha sagt. Eksempler på spørsmål: «Hva ønsker du mindre av i kurset?» eller «Forslag til forbedringer». Vi tenker oss nå at denne evalueringen har blitt utført på en elektronisk måte, f.eks. vha. Internet. Alle skjemaene/svarene som studentene har fylt ut har blitt lagt etter hverandre på filen «EVALUER.DTA». (Hvordan alt dette rent teknisk har skjedd, trenger du ikke å bekymre deg med. Det som er viktig er at vi har en ASCII-fil («EVALUER.DTA») med alle svarene liggende etter hverandre.) Denne eksamensoppgaven går ut på å lage et komplett program som leser og analyserer denne filen, slik at vi får en oppsummering av alle svarene. Innholdet på filen «EVALUER.DTA» Hvert avgitte svar ligger på hver sin linje. Disse kan som kjent være av tre typer, og de har følgende format: P <navn> <tall-verdi: 0-10> V <navn> <en av flere (max.10) standard tekstlige svar, hvert max.30 tegn langt> T <navn> <fritt tekstlig svar, max.500 tegn langt> 3

Noen eksempler: P Poeng1 4 P Poeng2 3 P Poeng3 1 P Poeng4 0 V Valg1 3-5 V Valg2 2.0-2.9 T Tekst1 Vi bør har mer om virtuelle funksjoner. T Tekst2 Bedre utlufting i friminuttene av auditoriet. Legg merke til at filen ikke inneholder selve spørsmålsteksten, og at svarene bare er gitt navn etter hvilken type de er av, umiddelbart etterfulgt av et fortløpende unikt nummer for denne typen. Datastrukturen I programmet ditt skal du bruke følgende datastruktur og klasser: A) Tre ulike typer klasser: Poeng, Valg og Tekst Hver klasse inneholder en char-array (objektets navn). I tillegg vil hvert av dem bestå av følgende: Poeng: Int-array, med indeksene 0-10. Valg: Array av pekere til tekster og en int-array, begge med indeksene 0-10. Hjelpevariabel som forteller hvor mange indekser vi har tatt i bruk av disse to arrayene. Tekst: Array av pekere til tekster, med indeksene 0-200. Hjelpevariabel som forteller hvor mange indekser vi har tatt i bruk av denne peker-arrayen. For både V- og T-objektene bruker vi ikke indeks nr.0. B) Programmet inneholder en eneste liste, sortert på objektets navn. I denne listen kan det ligge objekter av alle de tre ulike klassene. Du skal bruke LISTTOOL til denne listehåndteringen. C) Hver klasse trenger strengt tatt bare tre funksjoner: 1) Constructor som initialiserer dets datamedlemmer. 2) Virtuell funksjon som mottar relevant fil å lese fra som input-parameter. Den leser inn resten av fil-linjen (dvs. de siste dataene fra et svar, etter navnet), og legger det inn i vedkommende objekts datastruktur. For de ulike objektene betyr dette at det de selv leser inn brukes til: P: Å telle opp aktuell «skuffs» innhold med 1. V: Dersom standard-teksten allerede finnes i peker-arrayen, så telles relevant «skuffs» innhold opp med 1, ellers tas en ny peker-«skuff» i bruk, relevant tekst legges inn i denne, og ny int-«skuff» settes til 1. T: å ta i bruk en ny peker-«skuff». Lar denne pekeren begynne å peke på (en kopi av) den aktuelle teksten. 3) Virtuell funksjon som skriver ut alle objektets data til filen den får som parameter-input. For hvert objekt: skriv dets navn alene på begynnelsen av en linje. For de ulike objektene: P: Gå gjennom arrayen, fra 10 og ned til 0. Skriv indeksen etterfulgt av «:», og deretter «skuffens» innhold. Lag en tabulator-hopp mellom hver utskrift. Skriv alt på en linje, og hopp over «skuffer» inneholdende '0'. Eksempel: 6: 1 5: 4 4: 14 3: 17 2: 10 1: 2 0: 3 4

V: Gå gjennom arrayen fra 1 og opp til siste brukte. Skriv aktuell standard-tekst, etterfulgt av «:» og deretter antallet som har angitt dette alternativet. Skriv et slikt svar-alternativ på hver sin linje, og innled hver med et tabulator-hopp. Eksempel: 1.0-1.9: 2 2.0-2.9: 8 3.0-3.9: 20 4.0-4.9: 16 5.0-6.0: 5 T: Gå gjennom arrayen fra 1 og opp til siste brukte. Skriv hvert svar på hver sin nye linje, innledet med et tabulator-hopp og «-». Eksempler: - Overloading av funksjoner - Filbehandling - Arv Oppgaven Du skal altså skrive et fullverdig program som leser filen EVALUER.DTA, og lager en oppsummerende utskrift til filen «EVALUER.RES». Det du må lage er følgende: 1) Include relevante filer 2) Definere evnt. relevante konstanter og enumer. 3) Peker til datastrukturen, relevante klasser med deres datamedlemmer og (virtuelle) funksjoner (som beskrevet rett ovenfor). 4) Hovedprogram som evnt. vha.funksjoner: - Leser en og en linje fra filen «EVALUER.DTA». - For hver linje leses aktuell innledende bokstav og navn. Dersom dette objektet ikke finnes fra før, så opprettes aktuelt objekt (ut fra bokstaven). Deretter bes det nyopprettede eller uthentede objektet om selv å lese resten av dataene og legge dette inn i arrayen(e) sin(e). Jfr.pkt.C2) under «Datastrukturen». - Når filen er ferdig innlest, så traverseres hele listen igjennom, og for hvert av objektene, så skrives dets innhold til filen «EVALUER.RES». Jfr.pkt.C3) under «Datastrukturen». Klargjørende (?) Husk at det leses en og en linje (ett og ett svar) fra filen «EVALUER.DTA» for hver runde i fil-lesingsloopen. Det leses altså ikke ett og ett skjema (med alle sine svar) for hver runde. Du vet jo heller ikke hvordan et slikt skjema totalt ser ut, da dette ikke er noen viktig del av oppgaven. Det holder jo at hvert svar er identifisert ved sitt navn, og dermed vet vi hvilket objekt vi skal operere på. Husk at for V- og T-objektene skal det ikke avsettes plass til henholdsvis 10 og 200 chararrayer med faste lengder (30 og 500 lange), men sette av relevant (og eksakt) plass under run-time og kopiere inn i dette. Det kan hende det kan være lurt å definere andre klasser og/eller (private) funksjoner inni klassene enn det ovenfor angitte?! Lykke til og god (eksamens)evaluering! FrodeH 5