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

Like dokumenter
EKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Teorifagb, hus 3, og og Adm.bygget, Aud.max og B.

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. kl. 10:30

EKSAMENSOPPGAVE. Ingen. Robert Pettersen. Eksamen i: INF Innf. i progr. og datam. virkem. Dato: Tirsdag 5. desember 2017

EKSAMENSOPPGAVE. INF-1101 Datastrukturer og algoritmer. Adm.bygget, rom K1.04 og B154 Ingen

EKSAMENSOPPGAVE I INF-1100

EKSAMENSOPPGAVE. NB! Det er ikke tillatt å levere inn kladd sammen med besvarelsen

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: NEI

EKSAMENSOPPGAVE. Adm.bygget, rom K1.04 og B154 Ingen. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. kl.

EKSAMENSOPPGAVE. Kontaktperson under eksamen: Steffen Viken Valvåg Telefon:

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. kl. 10

EKSAMENSOPPGÅVE. Kalkulator, Rottmanns tabellar og 2 A4 ark med eigne notater (4 sider).

EKSAMENSOPPGAVE. Alle skrevne og trykte. Godkjent kalkulator.

EKSAMENSOPPGAVE. INF-1400 Objektorientert Programmering. Dato: Tirsdag 23. mai Klokkeslett: Kl 17:00-21:00. Adm. bygget, Aud.

EKSAMENSOPPGÅVE. Kalkulator, 2 ark (4 sider) med eigne notater og Rottmanns tabeller. Ragnar Soleng

EKSAMENSOPPGAVE. 4 (1+3) Det er 12 deloppgaver (1abc, 2abcd, 3abc, 4ab) Andrei Prasolov

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA Hvis JA: ca. kl.10:00 og 12:00

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE. Godkjent kalkulator; Rottmanns tabeller; To A4 ark egne notater (håndskrevne, trykte, eller blandede).

EKSAMENSOPPGÅVE. Mat-1005, Diskret matematikk. Godkjent kalkulator, Rottmanns tabellar og 2 A4 ark med eigne notater (4 sider).

EKSAMENSOPPGAVE. INF-1400 Objektorientert Programmering. Dato: Torsdag 29. september Klokkeslett: Kl 09:00-13:00.

EKSAMENSOPPGAVE. To dobbeltsidige ark med notater. Stian Normann Anfinsen

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE. GEO-2010 Marine geofag

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE. Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA / NEI Hvis JA: ca. Kl 10.00

EKSAMENSOPPGAVE. linjal, kalkulator (hva som helst typ)

Faglærerne prøver å besøker eksamenslokalet mellom klokka 15 og 16 for å oppklare eventuelle uklarheter og feil i oppgaveteksten.

EKSAMENSOPPGAVE. Professor Anders Schomacker

EKSAMENSOPPGAVE. KRAFT I og II Hall del 2 Kraft sportssenter Ingen

EKSAMENSOPPGAVE. «Tabeller og formler i statistikk» av Kvaløy og Tjelmeland. To A4-ark/ 4 sider med egne notater. Godkjent kalkulator.

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE. Linjal, kalkulator (hva som helst typ)

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE

EKSAMENSOPPGAVE Njål Gulbrandsen / Ole Meyer /

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE. linjal. Jiri Konopasek

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

EKSAMENSOPPGAVE STA «Tabeller og formler i statistikk» av Kvaløy og Tjelmeland. To A4-ark/ 4 sider med egne notater. Godkjent kalkulator. Rute.

Kapittel 1 En oversikt over C-språket

Del 1 En oversikt over C-programmering

UNIVERSITETET I OSLO

Algoritmer og Datastrukturer

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00

EKSAMEN med løsningsforslag

GJØVIK INGENIØRHØGSKOLE

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE. Kalkulator «Huskelapp» -A4 ark med skrift på begge sider Enkel norsk-engelsk/engelsk-norsk ordbok

EKSAMENSOPPGAVE. Kalkulator, transportør (vinkelmåler), linjaler, fargeblyanter. Millimeterpapir deles ut.

Grunnleggende datakunnskap og programmering. EKSAMENSDATO: 16. desember 1997

EKSAMENSOPPGAVE. MNF-6002 Videreutdanning i naturfag for lærere, Naturfag trinn 2. Kalkulator Rom Stoff Tid: Fysikktabeller (utskrift)

TDT Prosedyre- og objektorientert programmering

EKSAMENSOPPGAVE. Kalkulator Rom Stoff Tid: Fysikktabeller (Bok/utskrift fra bok)

EKSAMENSOPPGAVE. Adm.bygget, rom B154 2 ark med egne notater (4 sider) Godkjent kalkulator Rottman. Matematisk formelsamling

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE Georg Elvebakk NB! Det er ikke tillatt å levere inn kladd sammen med besvarelsen

Oppgave 1 JK-flip-flop (Total vekt 20%)

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

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

Algoritmer og Datastrukturer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

TDT4100 Objektorientert programmering

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Algoritmer og Datastrukturer

EKSAMENSOPPGAVE. Kalkulator «Huskelapp» -A4 ark med skrift på begge sider. Enkel norsk-engelsk/engelsk-norsk ordbok

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE. linjal, kalkulator (hva som helst typ)

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

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

UNIVERSITETET I OSLO

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

EKSAMENSOPPGAVE. linjal, kalkulator (hva som helst typ) Vil det bli gått oppklaringsrunde i eksamenslokalet? Svar: JA Hvis JA: ca. kl.

EKSAMENSOPPGAVE. ü Kalkulator med tomt dataminne ü Rottmann: Matematisk Formelsamling. rute

Algoritmer og Datastrukturer

UNIVERSITETET I OSLO

En oppsummering (og litt som står igjen)

EKSAMENSOPPGAVE. : INF-1400 Objektorientert programmering. Oppgavesettet er på 5 sider inklusiv forside

UNIVERSITETET I OSLO

Pensum Hovedtanker Selvmodifiserende Overflyt Veien videre Eksamen. Oppsummering

EKSAMENSOPPGAVE Bokmål og Nynorsk

EKSAMENSOPPGAVE. KJE-1001 Introduksjon til kjemi og kjemisk biologi

2 Om statiske variable/konstanter og statiske metoder.

TDT4100 Objektorientert programmering

Del 4 Noen spesielle C-elementer

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

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

KONTINUASJONSEKSAMEN

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

EKSAMEN. Algoritmer og datastrukturer

Transkript:

Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: Dato: 20.02.2017 Klokkeslett: 09:00 13:00 INF-1100 Innføring i programmering og datamaskiners virkemåte Sted: Teorifagbygget, Hus 3, Rom 3.416 Tillatte hjelpemidler: Ingen Type innføringsark (rute/linje): Antall sider inkl. forside: Kontaktperson under eksamen: Elektronisk (WiseFlow) 6 Robert Pettersen Telefon/mobil: 47 24 75 52 NB! Det er ikke tillatt å levere inn kladdepapir som del av eksamensbesvarelsen. Hvis det likevel leveres inn, vil kladdepapiret bli holdt tilbake og ikke bli sendt til sensur. Postboks 6050 Langnes, N-9037 Tromsø / 77 64 40 00 / postmottak@uit.no / uit.no

Side 2 av 6 sider Eksamen INF-1100 Innføring i programmering og datamaskiners virkemåte Vår 2017 Eksamenssettet består av 4 oppgaver. Les oppgaveteksten grundig og disponer tiden slik at du får tid til å svare på alle oppgavene. I noen oppgaver kan det være nødvendig å tolke oppgaveteksten ved å gjøre noen antagelser - gjør i så fall rede for hvilke antagelser du har gjort, men pass på å ikke gjøre antagelser som trivialiserer oppgaven. Der du skal utvikle eller beskrive en algoritme anbefales det at du først beskriver algoritmen på et høyt abstraksjonsnivå, f.eks. med figurer, før du går videre med detaljer og eventuell pseudokode. Dersom det spørres etter en implementasjon i C kreves det ikke 100% syntaktisk korrekt kode. Dersom det spørres etter pseudokode kan du kan også skrive ren C-kode om du ønsker. Husk også at du kan referere tilbake til funksjoner du tidligere har definert. Oppgave 1-25% Gi en kort beskrivelse av von Neumann modellen og instruksjonssyklusen. Beskrivelsen bør omfatte de ulike komponentene i modellen og hvordan disse interagerer med hverandre.

Side 3 av 6 sider Oppgave 2-25% Gitt følgende program: #include <s t d i o. h> i n t main () { i n t x = 512; char y = " 512 " ; i n t z [] = { 5, 1, 2 } ; } i f ( y [0]!= z [0]) { p r i n t f ( "%d\n ", x + z [ 2 ] ) ; } else { p r i n t f ( "%d\n ", x / z [ 2 ] ) ; } return 0; a) Forklar hva som er forskjellen på variablene x, y, og z, med spesielt fokus på hvilken type variablene har og hvordan verdiene deres er representert i datamaskinens minne. b) Hvilket tall vil skrives ut på skjermen når programmet kjøres? Forklar hvordan du kommer frem til svaret ditt.

Side 4 av 6 sider Oppgave 3-25% Gitt et array A som inneholder n flyttall (float eller double i C). a) Skriv en funksjon som beregner gjennomsnittet av tallene i A med følgende double gjennomsnitt(double *A, int n); Gjennomsnitt er summen av alle tallene delt på antall tall, og kan beregnes med følgende formel: 1 n n 1 x i i=0 - x i er tallet i posisjon i i array A. For eksempel, gitt tallene 3, 4 og 5 beregnes gjennomsnittet slik: (3+4+5)/3 = 4. b) Skriv en funksjon som beregner standardavviket for tallene i A, med følgende double standardavvik(double *A, int n) Standardavvik er summen av kvadratene til hvert av tallene minus gjennomsnittet delt på antall tall, og kan beregnes med følgende formel: 1 n 1 (x i x) n 2 i=0 - x i er tallet i posisjon i i array A. - x er gjennomsnittet av alle tallene i A. - For å beregne kvadratrot kan du anta at det eksisterer en funksjon double sqrt(double n). For eksempel, gitt tallene 3, 4 og 5 som har gjennomsnitt 4, beregnes standardavviket slik: (3 4) 2 +(4 4) 2 +(5 4) 2 3 c) Skriv en funksjon som flytter rundt på tallene i A slik at de blir liggende i stigende rekkefølge. Funksjonen skal ha følgende void sorter(float *A, int n);

Side 5 av 6 sider Oppgave 4-25% Denne oppgaven involverer bruk av lister og et angitt sett med listefunksjoner. Bruk listefunksjonene angitt på neste side i besvarelsen. Ikke gjør antagelser om hvordan listene er implementert. Gitt en datastruktur som spesifiserer et koordinat: typedef struct koordinat koordinat_t; struct koordinat { int x; int y; }; Koordinater er organisert i lister som hver representerer en geometrisk figur (trekant, firkant, osv). a) Skriv en funksjon som tar en liste med koordinater og en enkelt koordinat som argument. Funksjonen skal addere den enkle koordinaten til alle koordinatene i listen. Funksjonen skal ha følgende void FlyttKoordinater(list_t *koordinater, koordinat_t koordinat); b) Skriv en funksjon som tar en liste med koordinater som argument, og tegner linjer mellom koordinatene i listen (fra første, gjennom alle i rekkefølgen de ligger i listen, og tilbake til start). For eksempel, hvis listen inneholder 3 koordinater skal funksjonen tegne en trekant, og hvis listen inneholder 4 koordinater skal funksjonen tegne en firkant. Funksjonen skal ha følgende void TegnKoordinater(list_t *koordinater); c) Skriv en funksjon som tar en liste med koordinater som argument og returnerer en ny liste med koordinater til det minste rektangelet (boundingbox) som kan omslutte figuren beskrevet i argument listen. Funksjonen skal ha følgende list_t *BeregnBoundingBox(list_t *koordinater);

Side 6 av 6 sider Du kan anta at følgende funksjoner er tilgjengelige: // Tegn en linje mellom punktet (x1, y1) og (x2, y2) void drawline(int x1, int y1, int x2, int y2); // Lag en ny liste list_t *list_create(void); // Sett inn ett element først i en liste int list_addfirst(list_t *list, void *element); // Lag en ny liste-iterator som peker på første element i listen list_iterator_t *list_createiterator(list_t *list); // Returnerer elementet som pekes på av iteratoren og // lar iteratoren peke på neste element. // NULL returneres når en kommer til slutten av listen void *list_next(list_iterator_t *iterator); // Frigir iteratoren void list_destroyiterator(list_iterator_t *iterator);