Høgskolen i Molde IBE202 Integrasjonslab Skriftlig slutteksamen (løsningsforslag) våren 2013

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

Eksamen i IBE202 Integrasjonslaboratorium Vår 2011 (SVARFORSLAG)

** 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øgskolen i Molde IBE150 Programmering Kontinuasjonseksamen (løsningsforslag) juni 2013

HØGSKOLEN I SØR-TRØNDELAG

varekategori (et felt uten blanke, IKKE case sensitiv)

HØGSKOLEN I SØR-TRØNDELAG

Visual Basic. Repetisjon fra mandag

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

Forside slutteksamen

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

Eksamen i Internetteknologi Fagkode: ITE1526

Introduksjon til EndNote

Manual Import/eksport

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

UNIVERSITETET I OSLO

UiS-IKT Kompetanse Word Adresselister og fletting

HØGSKOLEN I SØR-TRØNDELAG

EndNote referansehåndteringsprogram. HiVe biblioteket

Bruk av OpenOffice.org 3 Writer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Hvilke tall vises i listboksen etter at programmet er ferdig?

HØGSKOLEN I SØR-TRØNDELAG

Brukerveiledning Agresso - planlegger Innlegging av opprinnelig budsjett, budsjettjusteringer og lokalbudsjett

Leksjon 7. Filer og unntak

Eksamen i IBE102 Webutvikling Våren 2017.

HØGSKOLEN I SØR-TRØNDELAG

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

Educatia AS. Programmeringsgrensesnitt (API) for brukersynkronisering. Versjon: 1.1 ( ) Educatia AS

Innføring i bruk av CGI4VB

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

Spesifikasjon av filformater Transaksjonsspesifikasjon

HØGSKOLEN I SØR-TRØNDELAG

Tema: Fronterdokument

UNIVERSITETET I OSLO

INF 1010, vår 2005 Løsningsforslag uke 11

INF Notat om I/O i Java

Anne Berit Fuglestad Elektroniske arbeidsark i Excel

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 h2006

HØGSKOLEN I SØR-TRØNDELAG

Fasit til eksamen høst 2002, applikasjonsutvikling

Bruksanvisning for administrasjon av

En enkel lærerveiledning

Nyheter i Orion versjon 5.5 regnskap (4. desember 2015)

Import/Eksport av SOSI

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Neste steg er å finne ut hvor varelisten er. I tillegg ble navnet (som brukes ofte) lagt i en variabel for å lettere kunne vedlikeholdes:

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

TASTAVEDEN SKOLE Bruk av PC i skolen

3 emner i dag! INF1000 Uke 5. Objekter og pekere. null. Litt om objekter, pekere og null Filer og easyio Litt mer om tekster

Oppgradering/installasjon av nye versjoner av ISY Park

Verden. Steg 1: Vinduet. Introduksjon

1. Rullende navn, s 3 2. Smilefjes, s 5 3. Skritteller, s 7 4. Orakel, s 9 5. Stein, saks og papir, s Kompass, s 14

Hvordan skrive Flok og Flass kode? I mange tilfelle er det svært enkelt:

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

Brukerdokumentasjon for Administrator og andre brukere fra PT

INF1000-SIKT - Notat om I/O i Java

Dette heftet er produsert av Fronter as Heftet kan kun kopieres eller distribueres elektronisk ifølge kontrakt eller avtale med

Hvordan lage en hjemmeside

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2009

EKSAMEN 6109 OBJEKTORIENTERT PROGRAMMERING 5609 OBJEKTORIENTERT PROGRAMMERING

81,9(56,7(7(7,26/2 'HWPDWHPDWLVNQDWXUYLWHQVNDSHOLJHIDNXOWHW

Import av varer fra Excel

Objektorientert Programmering Ekstraordinær eksamen 2014

UNIVERSITETET I OSLO

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Eksamen i IBE150 Programmering Høst svarforslag!

MAT-INF 1100: Obligatorisk oppgave 1

GJØVIK INGENIØRHØGSKOLE

Dere klarer kanskje ikke å komme gjennom hele heftet, men gjør så godt dere kan.

HØGSKOLEN I SØR-TRØNDELAG

Dagens tema: 12 gode råd for en kompilatorskriver

KOMME I GANG 3. Logge på 3. I redigeringsvinduet 4 OVERSIKT OVER KNAPPENE SOM LIGGER ØVERST I REDIGERINGSVINDUET 6

Brukerveiledning for SMS fra Outlook

EKSAMENSFORSIDE SKRIFTLIG EKSAMEN

HØGSKOLEN I SØR-TRØNDELAG

HowToUse TTIME. Thierry Matthey 9.

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

Brukerveiledning for rapportering av særavgifter

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

TDT4105 Informasjonsteknologi, grunnkurs (ITGK)

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

Eksamen. Innføring i informasjons- og kommunikasjonsteknologi

Brukerdokumentasjon for registrering og rapportering beredskapsutstyr hos Post og Teletilsynet

KF Lokal personalhåndbok - brukerveiledning for redaktør

Europakommisjonen. AktivUngdom elekt roniske sø knadsskjemaer 2011 Veiledning

Oppgavesett for NVivo 9

MAT-INF 1100: Obligatorisk oppgave 1

UNIVERSITETET I OSLO

AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE

Kom i gang med Stata for Windows på UiO - hurtigstart for begynnere

WP-WATCHER WORDPRESS SIKKERHET

IN Notat om I/O i Java

programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet "TGA"

Innføring i bruk av CGI4VB

Oblig2 - obligatorisk oppgave nr. 2 (av 4) i INF1000 v2008

Unit4 Web - Planlegger Overføring av foreløpig budsjett, budsjettjusteringer og lokalbudsjett

Transkript:

Høgskolen i Molde IBE202 Integrasjonslab Skriftlig slutteksamen (løsningsforslag) våren 2013 Tid: 30. mai 2013, kl. 09 13. Hjelpemidler: Alle trykte og skrevne. PC. Minnepenn. Faglærer: Ketil Danielsen (981 50 255) Oppgaven leveres i Fronter. Ikke oppgi ditt navn (kun studentnummer). SAMARBEID MED ANDRE UNDER EKSAMEN ER IKKE TILLATT! NETTET OG MASKINENE BLIR OVERVÅKET FOR KJENTE MØNSTRE (HTTP) OG KJENTE CHATTEPROTOKOLLER & SERVERE.

Vår baker sender oss vareliste på epost. Her er et eksempel på hvordan den kan se ut: # fra http://www.paulsen bakeri.no/picturegallery.php/22/meny+og+priserg Bringebærfromasj med bringebær 220, Bringebærfromasj pr bitt 25, Bringebærfromasj med frukt 250, Bløtekaker små 110, Bløtekaker medium 325, Bløtekaker store 485, Diskekake hel 456, Diskekake pr. bitt 19, # Froskene har vi desvære ikke mer ijenn av: Frosker 26 Karamellskål stor 12 pers 525, Karamellskål liten 1 pers 45, Marsipankake små med lokk 98, Marsipankake loddekake til foreninger 83, Marsipankake små med heltrekk 110, Marsipankake medium 325, Marsipankake stor 485, Marsipankake store firkantede pr. bitt 22, Moccakaker små 140, Napolianskake pr bitt 19, Ostekake 84, # Sjokoladekakkene er med 70 % Valrhona Sjokoladekake små 132, Sjokoladekake medium 325, Sjokoladekake stor 485, Sjokoladekake formkake (alle formkaker) 42, Sjokoladeskål m. frukt 45, Suksess therte pr bitt 25, Syksess therte rund 18 pers 370, Welsring liten 56, Welsring liten dia 99, Welsring stor 245, Welsring stor med frukt 410, Welskringle 370, Welskringle med frukt 545, Welsstang med vanilje 56, Welsstang med frukt 105, Julesaker prisjustert 1/1 11 Kakemann 12, Kakemanndeig 1kg 50, Kokostopper 4,50, Pepperkakedeig 1/2 kg 50, Pepperkakehjerter 34, Vi lagrer teksten som paulsen.txt (du finner den på Fronter), og det blir en slags original som brukes for videre integrasjon. Det er ønskelig at varelisten fremstår som korrekt på alle måter (også språklig) når den integreres inn i våre Officedokumenter (Word og Excel).

Oppgave 1 (vekt: 25 %). Manuell integrasjon 1. Forklar hvordan tekstfilen ser ut (dataformatet). Svarforslag: Den består av tekstlinjer med varer og priser. Her er ingen metainformasjon som beskriver formatet, slik man for eksempel ville hatt i en XML fil. Enkelte studenter vektlegger at denne filen iallefall ikke er XML, HTML eller CSV. Enig. Linjer som starter med grind (#) er ikke varer og priser, men kommentarer, virker det som. En av linjene som ser ut som en kommentar (den om Julekakene som er prisjustert 1/11 11 virker å være en kommentar, men har ikke grinda som første tegn). Ellers preges listen av dårlig språk (mange stavefeil). Filen har en vare per linje (ikke en LSV, altså), der varens navn står først og prisen står sist (på linjen). For noen varer angis også beskrivelse og/eller mengde. Feltene er atskilt med en eller flere blanke (ikke komma som i en CSV fil, eller semikolon). Ser ikke ut til å være TAB separerte felter heller. Mellom navn og pris er det blank(e), altså ikke noe særskilt tegn som ville gjort det lett å avgjøre hvor navnet slutter og prisen starter. Prisene ser ut til å være skrevet med kommaseparator (som 4,50) der det er øre (desimaler). Der det ikke er desimaler skrives prisen med bindestrek i øresplassen (altså, som i 130, ). Filen virker skrevet for hånd, altså ikke av et dataprogram, så feil i språk og format vil da være tilfeldig og nesten umulig å forutse. 2. Forklar hva du mener med integrasjon av tekstfilen. Hva må gjøres med teksten før den kan integreres? Svarforslag: For meg er integrasjon det å gjøre datamengden (her: varelisten) tilgjengelig i et annet program på en gitt måte (format). Målet var (her: i innledningen til oppgave 1) uttalt som at det er ønskelig at varelisten fremstår som korrekt på alle måter (også språklig) når den integreres inn i våre Officedokumenter (Word og Excel). Altså skal varelisten gjøres tilgjengelig (integreres) i Word og Excel, der den skal fremstå språklig korrekt og på alle måter korrekt (ellers). Uklart hva som menes med på alle måter. Det kan bety at prisene må være korrekt for den vare de gjelder. Det kan også hende man ønsker navn og pris vist i to ulike kolonner. En får tolke kravet og bestemme seg for hva man eksakt vil ta hensyn til. Ellers, disse kommentarene som ligger i prislisten kan muligens tas med, kanskje integrert som en kommentar tip (som blåses opp når en kommer borti et symbol), men det blir jo bare spekulering. En kan kanskje også utelate kommentarene i integreringen. Kandidatene (studentene) ble jo bedt om å si hvordan de (selv) mener/definerer integrasjon. En student oppfattet det som at datamengden ble vist slik de ville bli vist i det opprinnelige programmet, og at endringer i datamengden (originalen) medførte endringer der mengden hadde blitt integrert. Kandidatens definisjon er grei (fordi, det er en måte å definere integrasjon på). 3. Hva taler for/imot å manuelt rette/korrigere (med en teksteditor som Notepad/Textpad) i den mottatte tekstfil ( paulsen.txt )? Svarforslag: Dette skal altså være en teknikk for manuell integrasjon (jamfør overskriften til oppgave 1), og betyr vel at man åpner filen i en teksteditor (som Notepad/Textpad) og endrer innholdet slik at det kan integreres (videre i Excel/Word). Fordelen er at de fleste behersker en teksteditor, da de er forenklede versjoner av vanlige programmer som Word eller tilsvarende (GoogleDocs). Å gjøre korrigeringen manuelt er også en fordel da filen synes håndskrevet (mye

tilfeldige feil). Med teksteditor (manuelt) kan man fikse på all slags rariteter som man (med et automatisert opplegg, et program) ellers ville hatt vanskelig for å forutse/kode. En kan også korrigere språkfeil, som er spesielt vanskelig å oppdage (forutse). Til sist, noe en student observerte: Med manuell renskning slipper en å lage et program som gjør dette (jeg er enig). Ulempen (med manuell korrigering) er at det kan være mange varer, ikke nødvendigvis de få varene som er i eksemplet. Ofte forekommende korrigeringer kan da bli slitsomt (må gjentas og gjentas). Sjansen for feil (i rettingen) er større når man gjør det manuelt. Enig. Men, da kan en teksteditor, som flere studenter påpeker i sine svar, være til hjelp, da den har Find/Replace (Finn/Erstatt) som i en operasjon kan renske hele dokumentet, for eksempel fra krølletegn til norske æ/ø/å (3) og videre til Æ/Ø/Å (3), fra, til,00 (1) for å ta noen eksempel. Eller, for å ikke glemme det: fra, til. der det er desimalpunktet man vil korrigere (selv om Word/Excel neppe er så opptatt av akkurat det). Noen studenter har i sine svar, nevnt at en teksteditor med automatisk retting vil være til hjelp for å få bort de språklige feil (å si ja til retteforslagene er da også en manuell operasjon). 4. For hver av følgende skal du utføre integrasjonen manuelt og diskutere fordeler og ulemper a. klipp/lim av teksten. Svarforslag: Klipp og lim fra tekstfilen er en form for integrasjon, der man via Clipboard får overført varelisten til neste ledd (her: Word/Excel). Det er enkelt å utføre (en fordel). Dette rensker ikke bort skrivefeil og annet (kan vel kalles en ulempe). Men, det kan hende at det er intelligens i mottakerprogrammet (f.eks. Word) som gjør at en kanskje får plassert materialet på en fin måte. Studenter som hadde forsøkt dette ville opplevd at Word og Excel ikke klarer å finne ut at her skal være to kolonner (selv om vi jo vet at det er to felt per linje, altså to kolonner). Noen kandidater nevnte problemet med at norske tegn blir krøllifisert (ødelagt) når de limes inn i Excel. Det kan (godt) hende Excel har noen godt gjemte hjelpemidler til å også forstå norske tegn (UTF 8 er ganske vanlig). Excel virker bedre utstyrt med automatisk formatoppdaging enn Word er, selv om de er i samme produktfamilie (og deler endel av formatoppdagingen). b. sett inn som innebygd eller lenket objekt. Svarforslag: Innsetting av objekt er også en måte. Som innebygd objekt betyr det (slik definert i Bergensboken, som omhandler Word/Excel) at det lages en kopi av originalen som settes inn som eget objekt i mottakerprogrammet. Hvis originalen endres, påvirker det ikke kopien. Som lenket objekt (alternativet) vil derimot det som er innsatt i mottaker dokumentet oppdateres (mer og mindre automatisk) når originalen endres. Fordelen er (som hintet til) dette med automatisk oppdatering. Ulempen er, som for klipp/lim, at det ikke innebærer noe korrigering av de mange feil. Endel studenter mente det var en fordel at objektet fremstod som et navn/ikon, og følgelig ikke tok noe plass i mottakerdokumentet (er ikke nevnt i oppgaven som viktig). 5. Vi tenker at vi kanskje heller skulle bedt leverandøren om å sende prislisten på et annet format som XML, Access og/eller Excel. Blir det mer/mindre jobb for oss og/eller leverandøren når vi skal integrere? Svarforslag: Hvis en får listen på annet format (XML,

database, Excel) kan en be om at navn og pris står i hver sin kolonne, og hvis kolonnene har feltnavn (overskrifter, en slags metainformasjon om innholdet) forenkler det integrasjon i mottaker programmet (en fordel). Det avhenger av hvor intelligent mottakeren er. En får altså med litt meta informasjon om varelisten som kan utnyttes ved en slags automasjon. En kan anta at det forenkler selve oppdelingen av datamengden (varenavn og varepris). Men, det fjerner jo ikke alle skrivefeilene og heller ikke de linjer som ikke er varelinjer (kommentarene). For skribenten (den som forfatter varelisten vi mottar) vil det neppe ta lengre tid å skrive inn i Excel/Access enn i ren tekst. Å skrive XML derimot er mere arbeid, med mindre vi kan bli enige om et verktøy som forenkler dette (XML editorer finnes). Akkurat denne prislisten (paulsen.txt) er kopiert fra ei webside, og en måtte da få overbevist leverandøren (av varelisten) om at det var gode grunner (for ham/henne) å forfatte i Excel/Access, for så å i to parallelle steg, a) sende oss en kopi av listen og b) få varelisten over til websiden der den jo skal være tilgjengelig for Paulsen sine kunder. Diskuter fordeler/ulemper. Blir det mer/mindre jobb for oss når vi skal integrere? Gi gjerne eksempel og/eller vis hvordan brukeren/firmaet skal gå frem. Oppgave 2 (vekt 25 %). Integrasjon med VB.NET Opprett et prosjekt (Word 2010 document). Studentnummeret ditt bør stå i prosjektnavnet for eksempel: 010213 IBE202 eksamen2013. Oppgaven består i å integrere mellom fem objekter: Dokument, panel (action pane), band (ribbon), fil, bruker.

Krav til programmet: Når bandknappen Les inn (btnlesinn) trykkes skal prislisten leses inn. Varelinjer som starter med # (hashtegnet) ignoreres. Godkjente varelinjer skal vises i panelets listeboks (lstut). Kjøretidsfeil skal fanges med passende feilmelding. knappen Tøm (btntøm) vil tømme listen i panelet. knappen Ny vare (btnnyvare) lar brukeren oppgi ny vare (med inputbox) som så legges til panelets listeboks. knappen sett Inn (btnsettinn) vil vise listeboksens varer i en wordtabell i selve dokumentet (se figuren). Tabellen plasseres i dokumentets Selection. Svarforslag: Public Class ThisDocument selve dokumentet Public panelut As New mittpanel() public lar andre bruke panelet Private Sub ThisDocument_Startup() Handles Me.Startup Me.ActionsPane.Controls.Add(panelUt) End Class Public Class mittpanel panelkoden Private Sub btntøm_click(sender As System.Object, e As System.EventArgs) Handles btntøm.click lstut.items.clear() Private Sub btnsettinn_click(sender As System.Object, e As System.EventArgs) Handles btnsettinn.click Try Dim d As Word.Document = Globals.ThisDocument.ThisApplication.ActiveDocument Dim r As Word.Range = d.application.selection.range ' der cursor er Dim t As Word.Table = d.tables.add(r, lstut.items.count, 1) For i As Integer = 0 To lstut.items.count 1 t.cell(i + 1, 1).Range.Text = lstut.items(i) Next Catch feil As Exception MsgBox("Feil ved innsetting av tabell i dokumentet: " & feil.message()) End Try Private Sub btnnyvare_click(sender As System.Object, e As System.EventArgs) Handles btnnyvare.click lstut.items.add(inputbox("ny vare (navn og pris): ")) End Class Imports Microsoft.Office.Tools.Ribbon bandkoden Public Class bandetmitt Private Sub btnlesinn_click(sender As System.Object, e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) Handles btnlesinn.click Try Dim filnavn As String = "k:\in kurs\ibe202\v13\paulsen.txt" Dim innlest() As String = IO.File.ReadAllLines(filnavn) For i = 0 To innlest.count 1 Dim linje As String = innlest(i).trim()

If linje.substring(0, 1) <> "#" Then ' hvorvidt kommentarlinje Globals.ThisDocument.panelUt.lstUt.Items.Add(linje) End If Next Catch feil as Exception Msgbox ( Feil under innlesing: & feil.message()) End Try End Class slutt svarforslag Oppgave 3 (vekt: 25 %). Integrasjon med VBA På ark1 i et regneark skal det vises en programmatisk integrasjon (bruk VBA). Når Excel starter skal prosedyren lesfil vise varelisten fra celle B7 i ark 2. En overskrift plasseres i B6 (se bilde under). Varelinjer fra filen som starter med hashtegn (#) skal ignoreres. Kjøretidsfeil skal fanges. OBS: Filen er lagret som UTF 8. Norske tegn (æ/ø/å) blir (dessverre) feiloppfattet av Excel, og derfor vist med krølletegn (ikke bruk tid på det). start svarforslag (kode) Private Sub Workbook_Open() On Error GoTo feil lesfil feil: MsgBox ("noe gikk galt") Sub lesfil() ' fra logg13.xlsm fil = "k:\in kurs\ibe202\v13\paulsen.txt" Dim filnr As Integer filnr = FreeFile() ' gir en ledig "referanse" Open fil For Input As #filnr rad = 7 ' starte i B7 kol = 2

Set utark = Sheet2 utark.cells(rad 1, kol).value = "Vareliste" While Not EOF(filnr) Dim linje As String Line Input #filnr, linje Trim (linje) If InStr(linje, "#") <> 1 Then utark.cells(rad, kol).value = linje rad = rad + 1 End If Wend slutt svarforslag (kode) Oppgave 4 (vekt: 25 %). Mere VBA-integrasjon Lag en kopi av Lesfil og kall den Lesfil2. Den skal skille mellom navn og pris og vise varelisten i ark 2, og i to kolonner (vare, pris), som under: start svarforslag (kode) Sub lesfil2() ' utvidelse av lesfil() fil = "k:\in kurs\ibe202\v13\paulsen.txt" Dim filnr As Integer filnr = FreeFile() ' gir en ledig "referanse" Open fil For Input As #filnr rad = 7 ' starte i B7 kol = 2 Set utark = Sheet2 utark.cells(rad 1, kol).value = "Vareliste" While Not EOF(filnr) Dim linje As String Line Input #filnr, linje Trim (linje) If InStr(linje, "#") <> 1 Then Dim felt As Variant ' forventer en stringtabell... felt = Split(linje) ' splitter på blank navn = ""

sistefelt = UBound(felt) For i = 0 To sistefelt 1 ' sette sammen navnet navn = navn & felt(i) & " " Next utark.cells(rad, kol).value = navn utark.cells(rad, kol + 1).Value = felt(sistefelt) rad = rad + 1 End If Wend slutt svarforslag (kode)