Eksamen i IBE150 Programmering Høst svarforslag!

Like dokumenter
Eksamen i IBE202 Integrasjonslaboratorium Vår 2011 (SVARFORSLAG)

Hvilke tall vises i listboksen etter at programmet er ferdig?

Høgskolen i Molde IBE150 Programmering Kontinuasjonseksamen (løsningsforslag) juni 2013

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

varekategori (et felt uten blanke, IKKE case sensitiv)

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

Visual Basic. Repetisjon fra mandag

UNIVERSITETET I OSLO

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

HØGSKOLEN I SØR-TRØNDELAG

Eksamen i. Høst 2013

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

Fasit til eksamen høst 2002, applikasjonsutvikling

Informasjon Prøveeksamen i IN1000 høsten 2018

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

** Lag Sub lesutdelinger(f as String, u as Collection) som legger alle utdelinger i f til samlingen u. Dette er litt vanskelig, men her er noen hint:

Høgskoleni østfold EKSAMEN. Emne: Innføring i programmering

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

GJØVIK INGENIØRHØGSKOLE

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Løsningsforslag Øving 7

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Endret litt som ukeoppgave i INF1010 våren 2004

EKSAMEN Eksamenstid: Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater (håndskrevne/maskinskrevne)

UNIVERSITETET I OSLO

Forside slutteksamen

Visual Basic. Repetisjon fra onsdag

UTDANNING REGLEMENT OG VEILEDNING TIL DEG SOM SKAL AVLEGGE SKRIFTLIG EKSAMEN

Informasjon Eksamen i IN1000 og IN1001 høsten a) 1 poeng. 1b) 1 poeng. Tid. Oppgavene. Tillatte hjelpemidler. 30. november kl. 14.

Kandidatmonitor. Brukerveiledning. Sist oppdatert

HØGSKOLEN I SØR-TRØNDELAG

TDT4110 Informasjonsteknologi grunnkurs: Eksempler. Mangekanter

UNIVERSITETET I OSLO

Lynkurs i shellprogrammering under Linux

Løsningsforslag Eksamen i Programmering i Visual Basic høsten 2003 Laget av Runar Munkhaug

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

Eksamen i IBE102 Webutvikling Våren 2017.

Informasjon til eksamensvaktene forts.

Informasjon Eksamen i IN1000 høsten 2017

HØGSKOLEN I SØR-TRØNDELAG

EKSAMEN 6109 OBJEKTORIENTERT PROGRAMMERING 5609 OBJEKTORIENTERT PROGRAMMERING

INFORMASJON TIL EKSAMENSKANDIDATER

UNIVERSITETET I OSLO

EKSAMEN. Dato: 7. desember 2016 Eksamenstid: 09:00 13:00

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Dagens tema: 12 gode råd for en kompilatorskriver

Skriftlig eksamen Hva er det viktig å vite om og forholde seg til ved eksamen?

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

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

EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.

UNIVERSITETET I OSLO

Eksamen våren Vårens vakreste eventyr?

Programmering Høst 2017

TDT4100 Objektorientert programmering

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

TDT4105 Informasjonsteknologi, grunnkurs MatLab: Filbehandling - load, save, type - fopen, fgetl, feof, fprintf, fclose

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I)

Eksamensreglement. Målgruppe Utdanningssektoren. 360 referanse Eksamenskontoret. Godkjent av. Utdanningsdirektøren

EKSAMEN. Objektorientert programmering

Kandidatmonitor. Brukerveiledning. Sist oppdatert

Del 1 En oversikt over C-programmering

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

EKSAMEN ITF Webprogrammering 1 Dato: Eksamenstid: Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater (håndskrevne/maskinskrevne)

Høgskoleni østfold EKSAMEN

Prøveeksamen IN1000. IN Prøveeksamen. Dato november 2017 Tid 12:30-12:00 Alle trykte og skrevne hjelpemidler er tillatt.

UNIVERSITETET I OSLO

EKSAMEN VED ASKIM UNGDOMSSKOLE - RETNINGSLINJER FOR ELEVER

Informasjon til eksamenskandidater

Eksamensreglement - revidert pr

Høgskolen i Molde IBE202 Integrasjonslab Skriftlig slutteksamen våren 2013

Leksjon 3. Kontrollstrukturer

UNIVERSITETET I OSLO

Norsk informatikkolympiade runde

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Dagens tema: 12 gode råd for en kompilatorskriver. Sjekking av navn. Lagring av navn. Hvordan finne et navn?

INF Løsning på seminaropppgaver til uke 8

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

Asker videregående skole. Skriftlig eksamen 2015

Transkript:

Eksamen i IBE150 Programmering Høst 2010 -- svarforslag! Eksamensdag : 10.12.2010 Tid : 0900-1300 Faglærer/telefonnummer : Ketil Danielsen, 712 14212 Hjelpemidler Antall sider inkl. forsiden : 4 Målform : PC med internett, alle trykte og skrevne, kalkulator med minne. Se neste ark : Bokmål Noen generelle råd: Kladdeark skal ikke leveres. Disse blir ikke sensurert.

Les dette før du begynner (hvis du ikke har lest det; det er samme tekst som i prøveeksamen) HJELPEMIDLER: Alle trykte og skrevne, PC med ubegrenset tilgang til Internett og hjemmeområder, kalkulator med minne. SAMARBEID: Høgskolens eksamensregler tillater ikke eksamensfusk. Samarbeid med andre anses som fusk. Du får ikke lov å studere naboens dataskjerm, sende papirlapper, bruke mobiltelefon, epost, MSN, Facebook eller annet som lar deg stå i kontakt med andre personer. Datanettet overvåkes for de aktuelle chattemønstre, samt TCP-porter og serveradresser for å avdekke fusk. REFERANSE: Det anses også som fusk hvis man bruker materiale i en besvarelse, uten å gi referanse til kilden. Programkode, tekster og bilder som er laget av andre, kan du «klippe og lime inn» i ditt svar, men du MÅ gi en klar referanse til kilden. Hvis du har latt deg inspirere av skrifter eller program, SKAL du også vise til dette med referanse til kilden. En kilde er en URL (http://... o.s.v.), navnet på forfatter(e) og gjerne en tittel på materialet. Referansene skriver du for enkelhets skyld inn der de er aktuelle, gjerne i paranteser (slik at sensor lett kan sjekke de). Høgskolen har også et automatisk verktøy som kan kobles inn for å sjekke en besvarelse opp mot store tekstdatabaser. (Les mer her: http://kvalitet.himolde.no/ks_unl126) BESVARELSE Svar på papir leveres eksamensvaktene (kladdark skal ikke leveres). Digitalt svar leverer du som zippet fil i ClassFronter: Lag ei mappe på disken din (kall den MittNavn-IBE150-eksamen2010 ). I denne mappa lagrer du denne Wordfila. Du kan skrive svarene rett inn under hver oppgave! Hvis du også vil levere Visual Studio-prosjekt skal de ligge i denne mappa Lag zipfil av mappen. Denne skal leveres i ClassFronter.

Oppgave 1. Matoppskrifter (50 %) Du skal lage diverse program om matlaging. Matoppskrifter lagres på tekstfil, som i eksemplet under, en brennende pastarett. DETTE ER KUN ET EKSEMPEL. PROGRAMMENE SKAL FUNGERE FOR ANDRE RETTER OGSÅ!!!!!!! linjenr hva slags data: eksempelfil: allarrabiata.txt 1 navn på retten Penne all Arrabiata 2 antall porsjoner 4 3 1. ingrediens 400, g, penne 4 2. ingrediens 500, g, tomat 5 3. ingrediens,, peperoncino 6 4. ingrediens 1, fedd, hvitløk 7 5. ingrediens,, olivenolje......... m m+1... tegn på at ingrediensene er ferdig listet veiledning (vil gå over 0, 1 eller flere linjer),, SLUTT Fres hvitløk i olje, tilsett peperoncino og salt, og tomat (hakket). La syde et kvarter. Press gjennom et dørslag, eller bruk stavmikser (skal bli som en pure). Tilsett nesten ferdigkokt pasta, som skal få koke ferdig i sausen. Krav 1 (20 %): Lag lesoppskrift() som leser filen og legger detaljene inn i variabler og tabeller. Hver ingrediens er en struktur som legges i tabellen Ingredienser. Filens formatet er gitt over, ingrediensene starter på linje 3 og kan variere, frem til det står SLUTT (linje m). De resterende linjer (fra m+1) er veiledning i fritekst. Liten detalj: Du ser at filen fra linje nummer tre har en (1) ingrediens per linje (CSV, kommaseparert). Hvis du heller vil anta tre linjer per ingrediens er det greit (LSV, linjeseparert). Dette har vi snakket om på forelesning. Avtalen var at dere fikk velge. ---start svar: Dim rettensnavn As String Dim antallporsjoner As Integer Structure ingrediens Dim mengde As Double Dim enhet As String Dim vare As String End Structure Dim ingr(10) As ingrediens Dim antingr As Integer = 0 Dim filnavn As String = "arrabiata.txt" ' eller noe annet Sub lesoppskrift() Dim sr As IO.StreamReader = IO.File.OpenText(filnavn) rettensnavn = sr.readline() antallporsjoner = CInt(sr.readline())

Do While sr.peek <> -1 Dim felt() As String = sr.readline.split(","c) If felt.getupperbound(0) <> 2 Then Continue Do If felt(2) = "SLUTT" Then Exit Sub ' XXX burde kanskje lese veiledningen? If antingr > ingr.getupperbound(0) Then ReDim Preserve ingr(ingr.getupperbound(0) + 10) Dim nyi As Ingrediens nyi.mengde = CDbl(felt(0).trim) nyi.enhet = felt(1).trim nyi.vare = felt(2).trim ingr(antingr) = nyi antingr += 1 Loop End Sub ---slutt svar Krav 2 (10 %): Lag funksjonen viskort () som svarer med rettens navn og en sortert liste over ingredienser, for eksempel Pasta all Arrabiata: hvitløk, olivenolje, peperoncino, tomat. ---svar Function viskort() As String ' sorter tabellen ingr på varefeltet med shell eller boble Dim msg As String = rettensnavn & ": " For i = 0 To ingr.getupperbound(0) Msg &= ingr(i).vare & ", " Next Return msg End Function ---slutt svar Krav 3 (20 %). Lag prosedyren visoppskrift(n) som viser oppskrift skalert for N porsjoner. Ingredienser som bare er nevnt, uten mål og mengde, skal listes på siste linje. Her er resultatet av visoppskrift (4) Navn: Penne all Arrabiata Ingredienser (4 porsjoner): 400 g penne 500 g tomat 1 fedd hvitløk peperoncino, olivenolje Eller om en har bare to til bords: visoppskrift(2): Navn: Penne all Arrabiata Ingredienser (2 porsjoner) 200 g penne 250 g tomat 0,5 fedd hvitløk peperoncino, olivenolje Prosedyren visoppskrift() skal lese ingrediensene fra tabellen Ingredienser og ikke fra filen. ---Svar: Sub visoppskrift(byval n As Integer) Dim msg As String = "Navn: " & rettensnavn & vbcrlf & _ "Ingredienser (" & antallporsjoner & ") porsjoner" Dim andreingr As String = "" For i = 0 To ingr.getupperbound(0) If ingr(i).mengde > 0 And ingr(i).enhet <> "" Then

msg &= ingr(i).mengde * CStr((n / antallporsjoner)) & _ " " & ingr(i).enhet & " " & ingr(i).vare & vbcrlf Else andreingr &= ingr(i).vare & ", " Next MsgBox(msg & vbcrlf & andreingr) End Sub ---Slutt svar

Oppgave 2 (50 %). OPPTAKSKONTOR Opptakskontoret på en skole må si ja eller nei basert på søkerens bokstavkarakterer. Opptaksgrensen er derimot et desimaltall. Skolen har karakteromregning og opptaksgrense lagret på fila karakterregler.txt. Hver tillatte bokstavkarakter vil i denne filen ha et desimaltall som skal brukes ved omregning. Krav 1 (20 %): Lag prosedyren lesomregninger() som leser fila og legger omregningen og opptaksgrensen i tabeller og variabler for bruk senere i programmet. Fila kan se ut som i de følgende tre eksempel (opptaksgrensen i første linje). eks. 1 eks. 2 eks. 3 3,9 3,75 1,4 A 1 A 1 X 1 B 2 B 2,5 Y 1,5 C 3 C 3,0 Z 3,0 D 4 F 6,0 E 5 D 3,5 F 6 E 5,0 Her anbefales en tabell Omregninger med strukturen omregning. Liten detalj: I stedet for en (1) linje per omregning, kan du bruke to linjer (en for bokstav, en for tall), du bestemmer. --Svar: Dim opptaksgrense As Double Structure omregning Dim kar As String Dim verdi As String End Structure Dim omregninger(10) As omregning Dim antomregninger As Integer = 0 Sub lesomregninger() Dim sr As IO.StreamReader = IO.File.OpenText(filnavn) opptaksgrense = CDbl(sr.readline) Do While sr.peek <> -1 Dim f() As String = sr.readline.split Dim o As omregning o.kar = f(0) o.verdi = CDbl(f(1)) If antomregninger > omregninger.getupperbound(0) Then ReDim Preserve omregninger(omregninger.getupperbound(0) * 2) omregninger(antomregninger) = o antomregninger += 1 Loop End Sub ---slutt svar. Krav 2 (10 %). Lag funksjonen karverdi (s) som returnerer -1 hvis parameter s er en ukjent karakter, eller den tallverdi karakteren som s skal regnes om til. ---svar Function karverdi(byval s As String) As Integer For i = 0 To antomregninger - 1 If omregninger(i).kar = s Then Return omregninger(i).verdi Next Return -1

End Function ---slutt svar. Krav 2 (30 %) Lag ei løkke der bruker oppgir en streng med bokstaver (eller Ferdig ) og får regnet ut snitt og annet (se eksemplene under). Bokstavene fra bruker er atskilt med 0, 1 eller flere blanke. Ukjente bokstaver skal ignoreres og varsles om. Bruk karverdi(s) for hver bokstav i utregningen av snitt. Opptak krever at snitt er lavere eller lik opptaksgrensen. Eksempel der A=1, B=2, C=3, D=4, E=5 og F=6: Brukeren oppgir AB C. Svaret blir Innleste karakterer: A, B og C. Snitt: 2.0. Opptaksgrense: 3.9. Resultat: GODKJENT. Bruker oppgir FG EX. Svaret blir Innleste karakterer: F, E (ukjent: G, X). Snitt: 5.5. Opptaksgrense: 3.9. Resultat: AVSLÅTT. Bruker oppgir HMM : Svaret blir Innleste karakterer: (ukjent: H, M). Snitt: 0,0. Opptaksgrense: 3,9. Resultat: AVSLÅTT. Bruker oppgir Ferdig : Svaret blir Ha det. Jeg gjorde 17 omregninger. ---Svar: Sub leskarakterer() Dim antrunder As Integer = 0 Do While True antrunder += 1 Dim inn As String = InputBox("gi karakterer eller skriv Ferdig: ") If inn = "Ferdig" Then Exit Do Dim ukjent As String = "" Dim karakterer As String = "" Dim antverdier As Integer = 0 Dim sumverdi As Double = 0 For i = 0 To inn.length - 1 Dim kar As String = inn.substring(i, 1) Dim verdi As Double = karverdi(kar) If verdi = -1 then If ukjent.indexof(kar) = -1 Then ukjent &= kar & ", " Else sumverdi += verdi karakterer &= kar & ", " antverdier += 1 Next antomregninger += 1 Dim Msg As String = "Innleste karakterer: " & karakterer If ukjent <> "" Then Msg &= "(ukjent: " & ukjent & ")" Dim snitt As Double = sumverdi / antverdier Msg &= ". Snitt: " & CStr(snitt) & ". Resultat: " If snitt <= opptaksgrense Then Msg &= "GODKJENT" Else Msg &= "AVSLÅTT" MsgBox(Msg) Loop MsgBox("Ha det. Jeg gjorde " & antrunder & " omregninger") End Sub