HØGSKOLEN I SØR-TRØNDELAG



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

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

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

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

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

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

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

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

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

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

Løsningsforslag Øving 7

HØGSKOLEN I SØR-TRØNDELAG

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

Utførelse av programmer, metoder og synlighet av variabler i JSP

EKSAMEN. Objektorientert programmering

TDT4102 Prosedyreog objektorientert programmering Vår 2016

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

Spøkelsesjakten. Introduksjon

UNIVERSITETET I OSLO

Kanter, kanter, mange mangekanter

HØGSKOLEN I SØR-TRØNDELAG

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

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

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.)

Løsningsforslag ukeoppg. 9: okt (INF Høst 2011)

UNIVERSITETET I OSLO

Algoritmer og Datastrukturer

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

Fasit til eksamen høst 2002, applikasjonsutvikling

while-økker while-løkker gjentar instruksjonene så lenge en betingelse er oppfylt Eksempel 1: en enkel while-løkke

KANDIDATEN MÅ SELV KONTROLLERE AT OPPGAVESETTET ER FULLSTENDIG

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

HØGSKOLEN I SØR-TRØNDELAG

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

HØGSKOLEN I SØR-TRØNDELAG

Straffespark Introduksjon Scratch Lærerveiledning

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

HØGSKOLEN I SØR-TRØNDELAG

INF1000 Metoder. Marit Nybakken 16. februar 2004

Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

Introduksjon til beslutningsstrukturer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

UNIVERSITETET I OSLO

Bruk av oppgaver og grupper i

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

HØGSKOLEN I SØR-TRØNDELAG

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Visual Basic. Repetisjon fra mandag

Innføring i bruk av CGI4VB

[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 07/ Vi holder orden på verdier med hjelp av variabler

Brukerveiledning. For student hjemmeeksamen

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

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

HØGSKOLEN I SØR-TRØNDELAG

Soloball. Steg 1: En roterende katt. Sjekkliste. Test prosjektet. Introduksjon. Vi begynner med å se på hvordan vi kan få kattefiguren til å rotere.

HØGSKOLEN I SØR-TRØNDELAG

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Redd verden. Steg 1: Legg til Ronny og søppelet. Sjekkliste. Introduksjon

Brukerveiledning for student skoleeksamen HIST Oppdatert 27. oktober 2014

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

INF109 - Uke 1b

EKSAMEN (Konvertert fra en gammel PHP-eksamen)

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

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

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

Merk deg tilbudsfristen og andre frister, og gjør deg godt kjent med kunngjøringen og alle de vedlagte dokumentene.

if-tester Funksjoner, løkker og iftester Løkker og Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS

UNIVERSITETET I OSLO

Eksamen i. Høst 2013

Kontinuasjonseksamen

Ordliste. Obligatorisk oppgave 1 - Inf 1020

Dublettsammenslåing. GolfBox A/S Sensommervej 34 F 8600 Silkeborg, Danmark Tlf.: :info@golfbox.no Web:golfbox.

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Høgskoleni østfold EKSAMEN

HØGSKOLEN I SØR-TRØNDELAG

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

Skilpaddefraktaler Erfaren Python PDF

Brukermanual for statistikk på Asset on web: Statistikk salg pr dag, uke eller måned fordelt på alle avdelinger:

Emnekode: LV121A Dato: Alle skrevne og trykte hjelpemidler

Enalyzer Norge. Nice to know - ESS

Hjelpemidler: 4 A4-sider (2 to-sidige ark eller 4 en-sidige ark) med egenproduserte notater (håndskrevne/maskinskrevne)

8 - Rapporter i M-STAS

Transkript:

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Eksamensdato: 15.des 2011 Studiepoeng: 6 Varighet: 4 timer. Start kl 09:00 og skal leveres inn senest kl 13:00 Emnekode: Emnenavn: Faglærere LO151D Informatikk 1, Programmering i Visual Basic.NET Svend Andreas Horgen: 73 55 92 69, svend.horgen@hist.no Kontaktperson (adm.) Siri Wæhre Lien, tlf: 73 55 91 54 Antall sider: Totalt 4 sider (inkludert forsiden). NB! Skum gjennom hele oppgavesettet før du setter i gang, og planlegg tiden godt (se på prosentfordelingen). Dersom noe virker uklart i noen oppgaver, må du selv gjøre antagelser og få med disse antagelsene i besvarelsen din, eller spør faglærer. Merk at det kan være ulik vektlegging for de ulike deloppgavene. Lykke til! Side 1 av 6

Oppgave 1: Variabler og if-setninger (30 %) Du skal lage et lite kasse-program for en dagligvarebutikk. Brukeren skal oppgi navn på varen, antall av varen og enhetspris i tre ulike tekstbokser som heter txtvarenavn, txtantall og txtpris. I tillegg kan brukeren huke av i avkrysningsboksen chkmeieri dersom varen er et meieriprodukt. Lag kode bak knappen Legg til i handlekurv i henhold til følgende krav: Varens navn, antall, enhetspris og pris skal legges til på en ny linje i en listeboks. Linjene i listeboksen skal ha formen: 3 Melk á kr 14.90 = 44.70 De tre tekstfeltene og avkrysningsboksen skal nullstilles slik at brukeren kan skrive inn en ny vare umiddelbart. Totalprisen for alt som er kjøpt til nå skal summeres opp i en global variabel som heter totalpris, og vises i en label nedenfor listeboksen. Ta også med kode for å deklarere variabelen og forklar kort hvor den må være plassert i et Visual Studio-prosjekt. I tillegg får brukeren bonuspoeng for handelen. Hver vare gir 3 bonuspoeng hvis varen koster mindre enn 10 kroner per enhet. Koster varen 10 kroner eller mer per enhet, gis 5 bonuspoeng. Dersom varen i tillegg er et meieriprodukt, gis 2 bonuspoeng ekstra. For melke-eksempelet over vil kunden få 5 bonuspoeng + 2 meieribonuspoeng = 7 bonuspoeng for hver melk, altså 21 bonuspoeng totalt. En label skal vise totalt antall bonuspoeng for hele handelen Sjekk at inngangsdata er korrekte (validering). Private totalpris as Double global som legges øverst i form-en Private totalbonus as Integer global som legges øverst i form-en Dim navn as String, Dim antall as Integer, Dim enhetspris as Double Dim pris as Double, Dim ut as String, Dim bonuspoeng as Integer Feilsjekk av inngangsdata If Not (IsNumeric(txtAntall.Text) And IsNumeric(txtPris.Text)) Then MsgBox( Du må skrive inn tall ) Leser input antall = txtantall.text enhetspris = txtpris.text navn = txtvarenavn.text Beregner pris og behandler data pris = antall * enhetspris ut = antall & & navn & á kr & enhetspris & = & pris totalpris = totalpris + ut bonuspoeng = 0 Nullstiller bonuspoeng for denne varelinjen If enhetspris < 10 Then bonuspoeng = 3 * antall bonuspoeng = 5 * antall If chkmeieri.checked = True Then Side 2 av 6

bonuspoeng = bonuspoeng + (2 * antall) totalbonus = totalbonus + bonuspoeng Skriver ut ListBox1.Items.Add(ut) LabelSum.Text = Å betale: & totalpris LabelBonus.Text = Bonus denne handelen: & totalbonus Nullstiller og klargjør for ny input neste gang knapp trykkes txtantall.text = txtpris.text = txtvarenavn.text = chkmeieri.checked = false Oppgave 2: Løkker, matriser og funksjoner (50 %) I denne oppgaven gir en godt løst deloppgave d en del mer uttelling enn de andre deloppgavene. En lærer som retter eksamen ønsker å føre statistikk over karakterene. Du skal nå skrive kode som realiserer ulike deler av et slikt system. Før vi starter får du vite at det er laget to globale matriser som er deklarert slik: Const maks as Integer = 100 Private studentmatrise(maks) as String Private karaktermatrise(maks) as String Private nesteledige as Integer a) Nedenfor ser du studentnumre som er lagret i studentmatrise. I vårt tilfelle er det registrert 5 studentnumre. Variabelen nesteledige angir hvilket matriseelement (nøkkel) et eventuelt nytt studentnummer kan lagres i, og er 5 i vårt tilfelle. Du skal nå skrive kode som viser alle de lagrede studentnumrene i en listeboks. 198356 836724 123456 224488 246807... (og så videre helt til slutten av matrisen) b) Lag en funksjon som finner ut om et bestemt studentnummer er registrert eller ikke. Hvis studentnummeret er registrert skal nøkkelen til elementet returneres. Hvis ikke skal -1 returneres. Skriv også koden bak en knapp som lar læreren skrive inn et studentnummer i Side 3 av 6

en InputBox og få beskjed i en MsgBox om studentnummeret er registrert eller ikke. c) Læreren må kunne registrere karakterer. Karakterene kan være A, B, C, D, E og F. Læreren retter en besvarelse, skriver inn et studentnummer og en karakter i to tekstbokser som heter txtkarakter og txtstudentnummer, trykker en knapp og går så til neste besvarelse. Informasjonen skal lagres i to parallelle matriser. Du har til nå blitt kjent med den ene matrisen (studentmatrise) men må skrive setningen som lager den andre selv (karaktermatrise) og fortelle hvor du vil plassere den. Skriv deretter kode som lar læreren registrere karakteren for et studentnummer. Dersom studentnummeret ikke fins lagret i studentmatrise fra før av, skal det legges til på neste ledige plass. d) Det er interessant for læreren å få statistikk over hvor mange som har fått A, B, C, D, E og F. Lag kode som produserer et liggende søylediagram (bestående av små x-tegn) i en listeboks som vist nedenfor. Her har for eksempel 5 studenter fått karakteren A og 3 har fått F Svar: A: xxxxx B: xxxxxxxxxxxx C: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx D: xxxxxxxxx E: xxxxxxxxxxxxxx F: xxx Totalt: 81 karakterer Hint 1: Det kan være lurt å lage en funksjon som produserer antall x-er. Hint 2: Trenger du egentlig if-setninger? Klarer du å løse oppgave d på en elegant måte, så kan du få en ekstra stjerne i sensur-margen. ASCII er ikke bare nyttig for spesielt interesserte, men også for programmerere. For eksempel kan du få vite at VB-funksjonen Asc( J ) returnerer tallet 74 mens Asc( K ) returnerer 75 og Asc( L ) returnerer 76. a) Veldig enkelt med en løkke, men husk å trekk fra 1. For i = 0 to nesteledige - 1 ListBox1.Items.Add(studentMatrise(i)) b) Lag funksjon og bruk denne. Merk returverdi. Function finnstudentnummer(nr as String) as Integer For i = 0 To nesteledige 1 If studentmatrise(i) = nr Then Return i Return - 1 End Function Dim finn as String = InputBox( Hvilket studentnummer? ) If finnstudentnummer(finn) >= 0 Then MsgBox( Studentnummeret er registrert i matrisen ) MsgBox( Studentnummeret er ikke registrert ) Side 4 av 6

c) Bruk funksjonen fra b. Husk å oppdatere antall ledige. Dim nr as Integer nr = finnstudentnummer(txtstudentnummer.text) If nr >= 0 Then karaktermat(nr) = txtkarakter.text karaktermat(nesteledige) = txtkarakter.text If nesteledige < maks Then nesteledige = nesteledige + 1 MsgBox( Matrisestrukturen er full ) d) Gå gjennom hele karaktermatrisen og tell opp. Plasser i kategorier. Enten bruk mange If-setninger eller en Select Case-struktur. Felles: Lurt å lage seg en funksjon for å lage stjerner-strengen, men kan også bruke matriser + doble løkker Function lagstjerner(antall as Integer) As String Dim ut as String = For i = 1 To antall ut = ut & x Return ut End Function Alternativ 1: Vanlig løsning bruker variabler Dim A, B, C, D, E, F as Integer Lager variabelnavn (med verdi 0) Gjennomløper karaktermatrisen For i = 0 to nesteledige 1 Select case karaktermatrise(i) Case A A = A + 1 Case B B = B + 1 Case C C = C + 1 Case D D = D + 1 Case E E = E + 1 Case F F = F + 1 End Select ListBox1.Items.Add( A: & lagstjerner(a)) ListBox1.Items.Add( B: & lagstjerner(b)) ListBox1.Items.Add( C: & lagstjerner(c)) ListBox1.Items.Add( D: & lagstjerner(d)) ListBox1.Items.Add( E: & lagstjerner(e)) ListBox1.Items.Add( F: & lagstjerner(f)) ListBox1.Items.Add( Totalt: & A+B+C+D+E+F & karakterer ) Side 5 av 6

Alternativ 2: Elegant løsning bruker en matrise og ASCII. De som får til denne er A- kandidater. Dim stjernematrise(5) As Integer Har A, B, C, D, E og F sine verdier Dim karakter as String Dim asciikode as Integer Dim sum as Integer Gjennomløper karaktermatrisen og teller opp antall av hver karakter For i = 0 to nesteledige 1 karakter = karaktermatrise(i) asciikode = Asc(karakter) Karakteren A vil gi 65, B 66 osv. ASCII-trikset er: Oppdaterer element 0 hvis A, 1 hvis B osv... stjernematrise(asciikode - 65) += 1 Skriver ut i listeboks: For i = 0 to 5 karakter = Asc(65 + i) antall = stjernematrise(i) ListBox1.Items.Add(karakter & : & lagstjerner(antall) sum = sum + antall ListBox1.Items.Add( Totalt: & sum & karakterer ) Oppgave 3: Langtidslagring (20 %) Denne oppgaven bygger videre på oppgave 2 hvor du skulle bruke matriser for å registrere karakterer. Matriser er effektive i bruk rent programmeringsteknisk, men ikke særlig egnet som langtidslagringsmekanisme siden matrisene mister verdi når programmet lukkes. Du får selv velge om du vil bruke filer eller databaser i denne oppgaven (begge gir samme uttelling så du kan velge helt fritt) a) Lag kode som leser karakterene og studentnumrene i matrisene (fra oppgave 2) og langtidslagrer denne informasjonen. Koden kan legges bak en knapp som heter Lagre. b) Lag kode som henter inn langtidslagrede studentnumre når programmet starter opp, og fyller studentmatrise (fra oppgave 2) med innhold. Svar: Tar ikke med fasit her, men ved bruk av fil så er det bare å åpne fil, bruke en løkke til å gjennomgå matrisene og skrive en og en linje til fil. Motsatt vei er det bare å bruke en while-løkke til å gå gjennom filen og lese en og en linje. Ved bruk av sekvensielle filer må studentnummer skilles ut fra linjen ved hjelp av for eksempel funksjonen Split. Side 6 av 6