JavaScriptbibliotek. Introduksjon MVVC. Informasjonsteknologi 2. Gløer Olav Langslet Sandvika VGS
|
|
- Ørjan Henriksen
- 9 år siden
- Visninger:
Transkript
1 MVVC JavaScriptbibliotek Gløer Olav Langslet Sandvika VGS Knockout.js Informasjonsteknologi 2 Introduksjon I dag skal vi se nærmere på et JavaScriptbibliotek som heter Knockout. Knockout og andre biblioteker, som Backbone og Ember kan hjelpe oss med å løsrive koden fra dokument-objektmodellen. Vanligvis skriver vi mye document.getelementbyid for å få tak i elementer, og jobber mye med å oppdatere verdier i lister og lignende. Med knockout.js holder vi styr på verdiene i en datamodell, og kan bruke dem der de trengs. Vi kan enkelt sørge for at verdiene oppdaterer seg med såkalt data-binding, som er en 2-veis metode for å knytte gui-elementer til datamodellen.
2 sdsd Bilregister med knockout.js Informasjonsteknologi 2 Vi forsøker å lage et bilregister Vi skal i denne leksjonen lage et lite bilregister. Det første vi må gjøre, er å laste ned knockout-biblioteket. Det finner dere på knockoutjs.com Legg inn skriptet Sett inn en referanse til knockout-filen i head-elementet på siden din: Vanligvis legger vi vårt eget skript i en egen fil, men for enkle eksempler, går det også utmerket å skrive koden i html-dokumentet. 2
3 Bilregister med knockout.js Informasjonsteknologi 2 Et bil-objekt Kodingen med knockout skiller seg ikke i noen særlig grad fra vanlig JavaScript-programmering. Hvis vi skal lage et register for biler, kan det være lurt å ha et objekt for en bil, en liten klump med kode som kan lagre den informasjonen vi trenger om en bil. Vi starter med å lage et helt enkelt JavaScript-objekt: Vi kan legge koden i body-elementet for dette eksempelet. Det knockout kan hjelpe oss med, er å vise frem verdiene fra bil-objektet i HTML-koden vår. Men vi må da først si at attributtene i objektet skal være såkalte observables. Det vil si at de kan vises frem ved å referere til dem, og det vil også si at de kan oppdateres fra det grafiske brukergrensesnittet (GUI). Vi setter alle attributtene til å være observables: Vi må også huske på å si at bil-objektet vårt skal kunne bruke bindings, det er det som skaper en sammenheng mellom verdiene, og de grensesnittet, og som gjør at vi kan få tak i verdiene for bilens attributter. Vi har nå laget en datamodell for programmet vårt. La oss forsøke å sette opp en tabell som viser frem informasjon om bilen. 3
4 sdsd Bilregister med knockout.js Informasjonsteknologi 2 data-bind Mye av vitsen med knockout er at vi slipper å skrive så mye kode for å holde grensesnittet og datamodellen oppdatert. Med data-bindings kan vi knytte verdiene i datamodellen (bilen) og grensesnittet sammen. I HTML-koden rett over script-taggen skriver vi: Det er nå magien viser seg. Vi kan hente ut verdier fra bil-objektet vårt ved å skrive data-bind = text:merke inni en html-tagg. Dette kan vi for så vidt gjøre alle de stedene vi vil vise frem denne verdien. Siden vi skal lage et bilregister, legger vi allerede nå inn resultatet i en tabell. Så blir det lett å utvide når vi skal lage flere biler. Når vi jobber med objekter, kan vi også knytte beregnede verdier til objektet. For eksempel kunne vi være interessert i å få vite prisen på bilen med og uten moms. La oss knytte en liten funksjon til bilen, som viser den beregnede prisen med moms. 4
5 Bilregister med knockout.js Informasjonsteknologi 2 Beregning av moms Vi lager en liten funksjon som regner ut pris med moms (linje 36-38): Vi knytter en funksjon til bilen. Legg merke til at funksjonen er pakket inn i en ko.computed. Når vi gjør beregninger på andre verdier i modellen, sørger ko.computed for at også denne verdien oppdaterer seg hver gang noen av de underliggende data i modellen oppdaterer seg. I dette tilfellet vil det si at når prisen oppdateres i modellen, så vil også prismedmoms oppdatere seg. Vi legger inn en ekstra celle i tabellen (linje 14 og 22): 5
6 sdsd Bilregister med knockout.js Informasjonsteknologi 2 Endring av verdier Til nå har vi kun hentet verdier ut av modellen. Styrken til knockout viser seg først når vi ser hvor enkelt det er å endre verdier i modellen vår. Vi legger inn 3 input-felter over tabellen. Også her skal vi hente ut verdier fra modellen, men vi skal også sørge for at modellen oppdaterer seg når vi endrer verdiene i input-feltene. Forskjellen nå, er at vi henter ut verdiene med data-bind= value:merke i stedet for data-bind= text:merke. Når vi bruker value, vil endringer føre til at modellen oppdaterer seg når input-feltet oppdaterer seg. Med text kan vi kun hente ut verdien. Nå kan vi skrive inn Chevrolet, og vips ser vi at innholdet i tabellen endrer seg i det vi trykker på Enter-tasten. Men det skal være et bilregister. Vi er da nødt til å ta høyde for at det skal kunne være mer enn bare én bil i registeret vårt. Grovt sett kan vi si at variabelen bil, som vi har laget er et objekt, men vi trenger det vi i for eksempel Java kaller en klass, eller class. Det er en modell for hvordan alle biler (objekter av klassen) skal se ut, dvs. hvilke attributter og egenskaper de skal ha. I JavaScript bruker vi i kke klasse-begrepet på samme måte, men prinsippene er de samme. 6
7 Bilregister med knockout.js Informasjonsteknologi 2 Vi skriver om objektet til en klasse Klasser i JavaScript kan beskrives med en spesiell type funksjoner.i funksjonen beskriver vi hvordan objektene (de konkrete bilene) skal se ut: I Java skriver vi navnet til klassene med stor forbokstav. Det er god skikk å overføre denne praksisen til JavaScript, slik at funksjonen Bil har stor forbokstav. Den konkrete bilen, altså varabelen, eller objektet, bør ha liten forbokstav. Vi må også sørge for at attributtene er såkalte ko.observables: Nå kan vi for så vidt lage flere biler, men for at systemet vårt skal virke, må vi sette inn prismedmoms. Dette kan vi legge inn som en funksjon inne i Bil-klassen: 7
8 sdsd Bilregister med knockout.js Informasjonsteknologi 2 Setter inn en funksjon for å beregne moms Momsen skal oppdateres i HTML-koden når prisen endres. Vi bør derfor bruke en ko.computed: ko.computed kan ta 2 parametre, det ene er funksjonen som returnerer en verdi, og det andre er på en måte hvem eller hva som skal få denne verdien. I dette tilfellet skal det være selve bilen, altså den vi har referert til som this i hele klassen. Problemet er at this også kunne ha vært selve prismedmoms, men vi kan sørge for at det blir bilen som får det ved å sette inn this som en parameter etter funksjonen. Dette virker noen ganger litt tungvindt, og vi kan omgå dette ved å døpe om bilens this til self. Da behøver vi ikke ha med den andre parameteren. La oss gjøre dette, og fortsette den praksisen i vårt videre arbeid med bilregisteret. 8
9 Bilregister med knockout.js Informasjonsteknologi 2 En modell for hele registeret La oss forsøke å lage en modell som skal hjelpe oss å holde styr på alle bilene i registeret vårt. Vi kan kalle den Bilregister, og den skal i første omgang inneholde en liste (array) med biler. Etter funksjonen/klassen Bil, lager vi nå en klasse for Bilregister. Deretter opretter vi et bilregister-objekt, og knytter det til konockout i stedet for bilen: Umiddelbart vil det se ut som om vi går ett skritt tilbake. Nettsiden vår slutter å virke. Det er fordi vi forsøker å vise frem verdiene til merke, modell, pris og prismedmoms. Men disse finnes jo ikke i Bilregister. Derimot er det én av dem for hver bil i registeret. Hvis vi legger et par biler inn i bilregisteret, vil vi nærme oss: Legg merke til at biler er et såkalt observablearray. Dette virker på samme måte som en observable, men det er altså et array, eller en liste. Vi kan bruke vanlige JavaScriptpush for å legge til elementer i listen. 9
10 sdsd Bilregister med knockout.js Informasjonsteknologi 2 Vi må oppdatere grensesnittet Da vi lagde html-koden, hadde vi kun én bil å forholde oss til. Nå må vi sørge for at vi viser alle bilene. Bilene våre ligger lagret i arrayet i bilregisteret; biler. Vi må altså gå gjennom hvert element i arrayet for å kunne vise frem alle bilene. Dette skjer med en liten endring i html-koden. Først fjerner vi data-bindingene i input-feltene. Disse skal vi endre på senere. Deretter må vi i tabellen si at vi nå for hver bil skal vise frem dataene våre: For hver bil, lager vi nå en rad i tabellen, og fyller den opp med merke, modell osv. Da er vi tilbake på sporet: 10
11 Bilregister med knockout.js Informasjonsteknologi 2 Registrere flere biler Hensikten med registeret er vel at vi ønsker å registrere flere biler Vi kan ikke knytte verdiene i input-feltene til bilene, siden vi da ikke vil vite hvilken bil de hører til. Vi må dermed lage 3 attributter som tar vare på de nye verdiene som skal legges inn når vi registrerer en ny bil. Dette gjør vi i bilregisteret: Nå kan vi knytte disse verdiene til input-feltene i grensesnittet vårt. Vi lager også en knapp som setter i gang en funksjon som registrerer en ny bil. (Vi har ikke laget denne funksjonen ennå. Følg med, så kommer det) Funksjonen legger vi også inn i bilregisteret. Den skal ikke returnere noen verdi, så det er en helt vanlig funksjon. Legger denne på slutten inne i function Bilregister(). Se hele koden frem til nå på neste side. 11
12 sdsd Bilregister med knockout.js Informasjonsteknologi 2 Fortsetter på neste side 12
13 Bilregister med knockout.js Informasjonsteknologi 2 13
14 sdsd Bilregister med knockout.js Informasjonsteknologi 2 Endre på biler som er registrert Hva om vi registrerer feil. Da kan det være praktisk å kunne endre på informasjonen vi har lagt inn. La oss først legge inn verdiene for bilene både i et input-felt og i et span-element: Hva gjør vi egentlig her. Jo, i stedet for å kun vise frem verdien med databind= text:merke, legger vi inn et input-felt ved siden av, som gir oss mulighet til å endre verdiene for de bilene vi ønsker. Oppdateringen skjer i det vi skriver inn en ny verdi og trykker enter: Men det ser kanskje ikke så elegant ut. Hva om vi lager oss en liten knapp som gjør input-feltene synlige når vi skal redigere innhold, og ellers kun viser frem informasjonen. 14
15 Bilregister med knockout.js Informasjonsteknologi 2 Vi kan lage en liten veriabel som heter redigerbar. Den settes til true hvis det skal være lov å redigere tabellen. Eller settes den til false. Knappen kan styre dette. Først oppretter vi variabelen: Hva skal være synlig? Så setter vi hva som skal være synlig i HTML-koden vår: Så når bilregisterets attributt redigerbar er true, vil input-feltene være synlige. Vi refererer til bilregisteret som $root, altså moderskipet som alle bilene ligger innunder. Vi kan på lignende måte sette alle span-elementene til synlige hvis redigerbar er false: Gjør dette for alle de 3 span-elementene. Til slutt må vi lage en liten funksjon som veksler på å sette redigerbar til true og false: 15
16 sdsd Bilregister med knockout.js Informasjonsteknologi 2 Og så en liten knapp En liten knapp kan styre det hele Denne legger vi inn rett etter tabellen i html-koden. Vi kan gjøre det litt mer snedig, ved å endre teksten til Lager endringer, når vi er ferdige med redigeringen: Da må vi opprette en liten variabel som heter for eksempel knappetekst: Til slutt binder vi verdien av knappetekst til knappen vår: Eksempelet finner du her: Vi går nå videre og ser på hvordan vi kan forbedre løsningen ytterligere. 16
17 Bilregister med knockout.js Informasjonsteknologi 2 Fjerne en bil Hva om vi vil fjerne en bil vi har registrert? Det kan vi løse ved å legge inn en liten knapp i tabellen, og knytte denne til en funksjon i datamodellen vår. Først legger vi inn en tom celle i tabellen: Helt på slutten skjøter vi på en <th></th> Ser ingen grunn til å ha noen overskrift for fjerne-knappen. Deretter legger vi inn en celle ekstra hvor vi legger inn knappen: Denne legger vi inn rett etter den siste celle med momsen. Vi må skrive $root, siden funksjonen må ligge i Bilregister-klassen, og ikke inne i selve Bil-klassen. Det er jo i Bilregister vi har arrayet med alle bilene ( biler ). Husk på at vi itererer over alle bilene når vi lager tabellen, med en foreach: biler. Når vi klikker på knappen, sender vi av gårde en parameter i klikk-hendelsen, og denne parameteren er bilen selv. Så for å fjerne den, kan vi gjøre dette meget enkelt inne i Bilregister: Vi legger dette inn helt på bunnen av Bilregister-klassen, rett etter nybil-funksjonen. 17
18 sdsd Bilregister med knockout.js Informasjonsteknologi 2 Lokal lagring Det er et litt unyttig bilregister, hvis vi mister alle dataene hver gang vi oppdaterer eller lukker siden. La oss prøve å lafre dataene lokalt. Til dette kan vi bruke localstorage, som vi har sett på i en tidligere leksjon. I starten av koden, legger vi inn en sjekk på om det faktisk er noen biler i registeret fra før av. Hvis det er det, henter vi inn bilene fra localstorage, og sier at minebiler nå skal ha verdien av localstorage.minebiler. (Jeg gir dem samme nav for enkelthets skyld). Hvis det ikke er lagret noe, sier vi at minebiler skal være et tomt array. Vi gjør noen endringer der hvor vi tidligere opprettet biler-arrayet i Bilregister-klassen: Her lagde vi tidligere et tomt array, og pushet inn 2 biler. De fjerner vi nå. I stedet legger vi inn bilene fra arrayet som er lagret i localstorage. minebiler er et vanlig array, så her henter vi ut attributtene som vi gjør med vanlige objekter, altså: minebiler[i].merke, uten parentesen under. 18
19 Bilregister med knockout.js Informasjonsteknologi 2 ko.tojson Til slutt må vi sørge for at vi lagrer bilene i localstorage hver gang vi legger til eller fjerner en bil. Hver gang dette skjer bruker vi ko.tojson(self.biler()): I linje 115 og 121 lagrer vi arrayet til localstorage. Det som er verdt å merke seg, er at vi kun lagrer verdiene som objektene har i øyeblikket. ko-objektet blir detronisert, og vi sitter igjen med et vanlig array. Det er grunnen til at vi må lage nye biler med new Bil(), som vi så på forrige side, når vi oppdaterer siden. 19
20 sdsd Bilregister med knockout.js Informasjonsteknologi 2 Hva koster alle bilene til sammen? Kanskje vi ønsker å vite hva alle bilene koster til sammen? Det burde være en smal sak å regne ut. Vi kan lage et felt under tabellen som viser nettopp dette: Dette legger vi inn etter knappen for å redigere bilregisteret. Da er vi ute av loopen som viser bildene, og totalsum vil da være en verdi som ligger inni Bilregister. Det er jo også her vi har oversikt over alle bilene i arrayet biler, så det passer bra. Her kan vi gå gjennom arrayet, og summere prisene. Husk at alle verdier som er basert på andre verdier bør defineres som ko.computed. Det burde gjøre susen. Koden for den utvidede løsningen ligger her: Jeg har brukt HTML Kickstart for å pynte litt. 20
notater Gule lapper Mine Et praktisk eksempel med objekter IT2 Læreplansmål Gløer Olav Langslet Sandvika VGS
Mine notater Gløer Olav Langslet Sandvika VGS Et praktisk eksempel med objekter Vi kjenner alle til korktavlen med gule lapper. Vi henger opp en lapp for at vi selv eller andre skal huske eller bli minnet
Detaljerlagring med HTML5 Offline lagring Offline Informasjonsteknologi 2 Gløer Olav Langslet Sandvika VGS
Offline lagring med HTML5 Gløer Olav Langslet Sandvika VGS Leksjon 8 Informasjonsteknologi 2 Offline lagring I IT1 brukte vi databaser til å lagre data. Der kunne vi bygge tabeller og fylle dem med innhold
Detaljerpraktiske eksempler DOM Document Object Model DOM og Høst 2013 Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS
DOM og praktiske eksempler Gløer Olav Langslet Sandvika VGS Høst 2013 Informasjonsteknologi 2 DOM Document Object Model Læreplansmål Eleven skal kunne programmere med enkle og indekserte variabler eller
DetaljerHTML5. Skjemaer på nettsider. Skjemaer med. Informasjonsteknologi 1 og 2. Gløer Olav Langslet Sandvika VGS
Skjemaer med HTML5 Gløer Olav Langslet Sandvika VGS Leksjon 10 Informasjonsteknologi 1 og 2 Skjemaer på nettsider I denne leksjonen skal vi se litt nærmere på bruk av skjemaer på nettsider. Du har sett
DetaljerAlt er objekter. Læreplansmål. Gløer Olav Langslet Sandvika VGS
Alt er objekter Gløer Olav Langslet Sandvika VGS Høst - 2012 Informasjonsteknologi 2 Alt er objekter Se for deg en bil. Den har noe som er felles for alle biler. Den har hjul, ratt, og en motor. Læreplansmål
Detaljerif-tester Funksjoner, løkker og iftester Løkker og Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS
Løkker og if-tester Gløer Olav Langslet Sandvika VGS 29.08.2011 Informasjonsteknologi 2 Funksjoner, løkker og iftester Læreplansmål Eleven skal kunne programmere med enkle og indekserte variabler eller
Detaljermed canvas Canvas Grafikk Læreplansmål Gløer Olav Langslet Sandvika VGS
Grafikk med canvas Gløer Olav Langslet Sandvika VGS Høsten 2011 Informasjonsteknologi 2 Canvas Læreplansmål Eleven skal kunne bruke programmeringsspråk i multimedieapplikasjoner Med CSS3, HTML og JavaScript
Detaljerog bevegelse funksjoner som blir aktivert av hendelser Keyboard Informasjonsteknologi 2 Læreplansmål Gløer Olav Langslet Sandvika VGS
Keyboard og bevegelse Gløer Olav Langslet Sandvika VGS 12.09.2012 Informasjonsteknologi 2 funksjoner som blir aktivert av hendelser Læreplansmål Eleven skal kunne programmere med enkle og indekserte variabler
Detaljerdatatyper Hva er programmering? Variabler og Informasjonsteknologi 2 Kompetansesemål
Variabler og datatyper Gløer Olav Langslet Sandvika VGS Høst 2012 Informasjonsteknologi 2 Hva er programmering? Når du skal bake en kake følger du gjerne en oppskrift. Først er det beskrevet hva kaken
DetaljerEnkle generiske klasser i Java
Enkle generiske klasser i Java Oslo, 7/1-13 Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Del 1: Enkle pekere Før vi tar fatt på det som er nytt i dette notatet, skal vi repetere litt
DetaljerCSS. Animasjon med css. Animasjon med. Informasjonsteknologi 1 og 2. Gløer Olav Langslet Sandvika VGS
Animasjon med CSS Gløer Olav Langslet Sandvika VGS Leksjon 11 Informasjonsteknologi 1 og 2 Animasjon med css Vi har tidligere sett at vi kan programmere bevegelse ved å bruke JavaScript, enten ved å bruke
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.
DetaljerINF1000 Metoder. Marit Nybakken marnybak@ifi.uio.no 16. februar 2004
INF1000 Metoder Marit Nybakken marnybak@ifi.uio.no 16. februar 2004 Motivasjon Når man begynner å skrive store programmer, vil man fort oppleve at programmene blir uoversiktlige. Det blir vanskeligere
DetaljerLenkelister, iteratorer, indre klasser. Repetisjonskurs våren 2018 kristijb
Lenkelister, iteratorer, indre klasser Repetisjonskurs våren 2018 kristijb Lenket liste av objekter Vi lager en lenke ved at objekter refererer til hverandre. Vanlige er ofte å ha Node-objekter som har
DetaljerKanter, kanter, mange mangekanter
Kanter, kanter, mange mangekanter Nybegynner Processing PDF Introduksjon: Her skal vi se på litt mer avansert opptegning og bevegelse. Vi skal ta utgangspunkt i oppgaven om den sprettende ballen, men bytte
DetaljerBygg et Hus. Steg 1: Prøv selv først. Sjekkliste. Introduksjon. Prøv selv
Bygg et Hus Introduksjon I denne leksjonen vil vi se litt på hvordan vi kan få en robot til å bygge et hus for oss. Underveis vil vi lære hvordan vi kan bruke løkker og funksjoner for å gjenta ting som
DetaljerHvor i All Verden? Del 2 Erfaren Scratch PDF
Hvor i All Verden? Del 2 Erfaren Scratch PDF Introduksjon Hvor i All Verden? er et reise- og geografispill hvor man raskest mulig skal fly innom reisemål spredt rundt i Europa. Dette er den andre leksjonen
DetaljerDette er en demonstrasjonsside som vi skal bruke for å se litt nærmere på HTTP protokollen. Eksemplet vil også illustrere et par ting i PHP.
1 Dette er en demonstrasjonsside som vi skal bruke for å se litt nærmere på HTTP protokollen. Eksemplet vil også illustrere et par ting i PHP. (Læreboka kapittel 2-5) Legg merke til den første blokken,
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler
DetaljerINF1010 MVC i tekstbaserte programmer
INF1010 MVC i tekstbaserte programmer Marit Nybakken marnybak@ifi.uio.no 9. februar 2004 Marit har ingen utdanning innen systemutvikling og vet antageligvis ikke hva hun prater om. Hun har dog skumlest
DetaljerINF1000 Behandling av tekster
INF1000 Behandling av tekster Marit Nybakken marnybak@ifi.uio.no 23. februar 2004 Tekster Vi kommer nesten aldri utenom å bruke tekststrenger i programmene våre, ikke minst fordi det nesten alltid skal
DetaljerArgumenter fra kommandolinjen
Argumenter fra kommandolinjen Denne veiledningen er laget for å vise hvordan man kan overføre argumenter fra kommandolinjen til et program. Hvordan transportere data fra en kommandolinje slik at dataene
DetaljerOblig 4Hybelhus litt mer tips enn i oppgaven
Oblig 4Hybelhus litt mer tips enn i oppgaven lørdag 19. okt 2013 Arne Maus Obligatorisk oppgave 4 Gulbrand Grås husleiesystem I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer,
DetaljerAdministrering av SafariSøk
Administrering av SafariSøk Administrering av SafariSøk Revisjonshistorie Revisjon $Revision: 1.6 $ $Date: 2003/08/05 12:44:02 $ Innholdsfortegnelse 1. Om programmet... 1 Generelt... 1 2. Fremgangsmåter...
DetaljerTegneprogram Journeyman Scratch PDF
Tegneprogram Journeyman Scratch PDF Introduksjon I dette prosjektet lager vi et tegneprogram slik at du etterpå kan lage din egen kunst. Du kan tegne med forskjellige farger, bruke viskelær, lage stempler
DetaljerStart et nytt Scratch-prosjekt. Slett kattefiguren, for eksempel ved å høyreklikke på den og velge slett.
Norgestur Introduksjon Bli med på en rundreise i Norge! Vi skal lage et spill hvor du styrer et helikopter rundt omkring et kart over Norge, mens du prøver å raskest mulig finne steder og byer du blir
DetaljerSymWriter: R6 Innstillinger, preferanser og verktøylinjer
SymWriter: R6 Innstillinger, preferanser og verktøylinjer Innhold R6.1 Startinnstillinger og utseende...3 R6.2 Tekst og bilder...................................................4 R6.3 Tale og staving...5
DetaljerIN Seminaroppgaver til uke 11
IN1000 - Seminaroppgaver til uke 11 Fortsettelse på Studentsystemet: Du har allerede laget Fag-objekter som holder oversikt over sine Studenter, og Student-objekter som holder oversikt over sine Fag. Nå
DetaljerPGZ - Hangman Ekspert Python Lærerveiledning
PGZ - Hangman Ekspert Python Lærerveiledning Introduksjon I denne oppgaven skal vi lage vårt eget hangman-spill. Vi har laget litt ferdigskrevet kode for å hjelpe deg på vei. Den kan du laste ned her.
DetaljerJSP - 2. Fra sist. Hvordan fungerer web? Tjenerside script HTML. Installasjon av Web-tjener Et enkelt JSP-script. Ønsker dynamiske nettsider:
Fra sist JSP - 2 Installasjon av Web-tjener Et enkelt JSP-script HTML statisk Forms Tags Ønsker dynamiske nettsider: Klientside-script/programmering Javascript, vbscript, applets Tjenerside-script/programmering
DetaljerKOMME I GANG 2. Logge på 2. I redigeringsvinduet 3 OVERSIKT OVER KNAPPENE SOM LIGGER ØVERST I REDIGERINGSVINDUET 5
Innhold KOMME I GANG 2 Logge på 2 I redigeringsvinduet 3 OVERSIKT OVER KNAPPENE SOM LIGGER ØVERST I REDIGERINGSVINDUET 5 Lukk 6 Ny 6 Flytt opp/ Flytt ned 6 Klipp 7 Kopier 7 Lim inn (krysspubliser, ny,
DetaljerHva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }
Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; Hva skrives ut på skjermen når følgende kode utføres? int [] tallene =
DetaljerIN1000 Obligatorisk innlevering 7
IN1000 Obligatorisk innlevering 7 Frist for innlevering: 23.10. kl 12:00 Introduksjon I denne innleveringen skal du lage et program som simulerer cellers liv og død. Dette skal du gjøre ved hjelp av en
DetaljerKOMME I GANG 3. Logge på 3. I redigeringsvinduet 4 OVERSIKT OVER KNAPPENE SOM LIGGER ØVERST I REDIGERINGSVINDUET 6
Innhold KOMME I GANG 3 Logge på 3 I redigeringsvinduet 4 OVERSIKT OVER KNAPPENE SOM LIGGER ØVERST I REDIGERINGSVINDUET 6 Lukk 7 Ny 7 Flytt opp/ Flytt ned 7 Klipp 8 Kopier 8 Lim inn (krysspubliser, ny,
DetaljerHvor i All Verden? Del 3 Erfaren Scratch PDF
Hvor i All Verden? Del 3 Erfaren Scratch PDF Introduksjon Hvor i All Verden? er et reise- og geografispill hvor man raskest mulig skal fly innom reisemål spredt rundt i Europa. Dette er den siste av tre
DetaljerONSCREENKEYS 5. Windows XP / Windows Vista / Windows 7 / Windows 8
ONSCREENKEYS 5 Windows XP / Windows Vista / Windows 7 / Windows 8 [ PRODUKTBESKRIVELSE ] [ Dette smarte skjermtastaturet med virtuelle museklikkfunksjoner og maskinstemme tillater rask tasting og å jobbe
DetaljerOppgavesett videregående kurs i NVivo 9
Oppgavesett videregående kurs i NVivo 9 Oppgave 1 Alt i en mappe Når man skal kode på lyd og video er det lurt å ha disse filene i samme mappa som NVivo-prosjektfila. Opprett en mappe på skrivebordet.
DetaljerINF1000 HashMap. Marit Nybakken marnybak@ifi.uio.no 2. november 2003
INF1000 HashMap Marit Nybakken marnybak@ifi.uio.no 2. november 2003 Dette dokumentet skal tas med en klype salt og forfatteren sier fra seg alt ansvar. Dere bør ikke bruke definisjonene i dette dokumentet
DetaljerNæringsregner på PC n versjon 1.1.0
Laget av Innhold: Introduksjon 2 Næringsregner på PC n 2 Næringstabell 2 Statistikk 2 Hvem passer programmet for? 2 Bruk av programmet 3 Innlogging av forskjellige brukere 3 Hovedprogramet har 3 felt 4
DetaljerHØGSKOLEN I SØR-TRØNDELAG
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:
DetaljerOblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59
Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl. 23.59 Formål Formålet med denne oppgaven er å gi trening i hele pensum og i å lage et større program. Løsningen du lager skal være
Detaljer2 Grafisk grensesnitt 1
Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Grafisk grensesnitt 1 Mildrid Ljosland 01.02.2011 Lærestoffet er utviklet for faget LN350D Applikasjonsutvikling for mobile enheter 2 Grafisk
DetaljerDet du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen.
Tetris Introduksjon Processing Introduksjon Lag starten på ditt eget tetris spill! Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å
DetaljerPong. Oversikt over prosjektet. Steg 1: En sprettende ball. Plan. Sjekkliste. Introduksjon
Pong Introduksjon Pong er et av de aller første dataspillene som ble laget, og det første dataspillet som ble en kommersiell suksess. Selve spillet er en forenklet variant av tennis hvor to spillere slår
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Tirsdag 12. juni 2012 Tid for eksamen: 9:00 15:00 Oppgavesettet er
Detaljerthe web Introduksjon Lesson
Lesson 1 the web All Code Clubs must be registered. Registered clubs appear on the map at codeclub.org.uk - if your club is not on the map then visit jumpto.cc/18cplpy to find out what to do. Introduksjon
DetaljerHvordan hente ut listen over et hagelags medlemmer fra Hageselskapets nye portal
Hvordan hente ut listen over et hagelags medlemmer fra Hageselskapets nye portal Av Ole Petter Vik, Asker Versjon 2.3 20.03.2012 Beskrivelsene for hvert enkelt skritt er over hvert skjermbilde. Via Hageselskapets
DetaljerINF1000: Forelesning 7
INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Repetisjon forts. Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en
DetaljerKing Kong Erfaren Scratch PDF
King Kong Erfaren Scratch PDF Introduksjon I dette spillet inspirert av historien om King Kong, skal vi se hvor lett det er å bruke grafikk som ikke allerede ligger i Scratchbiblioteket. I spillet styrer
DetaljerWP-WATCHER WORDPRESS SIKKERHET
WP-WATCHER WORDPRESS SIKKERHET WP-WATCHER BACKUP - SIKKERHETSKOPIERING «Hei! Jeg oppdaterte en plugin på siden min og nå kommer jeg ikke inn på siden min i det hele tatt. Kan du hjelpe meg?» «Hjelp! Jeg
Detaljer1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?
Obligatorisk oppgave 3 Gulbrand Grås husleiesystem Oblig 3hus litt mer tips enn i oppgaven I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer, nummerert fra -3. I hver etasje
DetaljerTetris. Introduksjon. Skrevet av: Kine Gjerstad Eide. Lag starten på ditt eget tetris spill!
Tetris Skrevet av: Kine Gjerstad Eide Kurs: Processing Introduksjon Lag starten på ditt eget tetris spill! Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett
DetaljerHØGSKOLEN I SØR-TRØNDELAG
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - Kandidatnr: AITeL Eksamensdato: 2.desember 2009 Varighet: 0900-1300 Emnekode: Emnenavn: Klasse(r): LO191D / LC191D LO191D Videregående programmering
DetaljerHer er et eksempel på hvordan en konteringsmal brukes, under registrering av en telefonregning fra Telenor (Innkjøp > Leverandørfaktura):
Konteringsmaler Konteringsmaler kan benyttes under bilagsregistrering og under registrering av leverandørfakturaer. De brukes for å forenkle konteringen av bilagene. Når du bruker en konteringsmal trenger
DetaljerINF1000 Prøveeksamen Oppgave 7 og 9
INF1000 Prøveeksamen Oppgave 7 og 9 Høst 2015 Siri Moe Jensen 7a) Skriv en klasse Gave med to variabler som forteller hva som er i gaven, og hvor mye den har kostet. Klassen skal ha en konstruktør med
DetaljerHR analysen. Ny versjon 2009. Brukermal. Administratorer
HR analysen Ny versjon 2009 Brukermal Administratorer 1) Som administrator Det første bildet en kommer inn på når en har logget seg inn er: A) Legg merke til den hvite boksen på høyre side der det står
DetaljerSprettball Erfaren ComputerCraft PDF
Sprettball Erfaren ComputerCraft PDF Introduksjon Nå skal vi lære hvordan vi kan koble en skjerm til datamaskinen. Med en ekstra skjerm kan vi bruke datamaskinen til å kommunisere med verden rundt oss.
DetaljerCommunicate SymWriter: R5. Brett og knapper
Communicate SymWriter: R5. Brett og knapper Innhold R5.1 Hva er et brett - en oversikt...2 R5.2 Lage et brett....................................................2 R5.3 Endre utseendet på et brett....6
DetaljerSteg 1: Opprette app-pakke, app-klasse og FXML-fil
Logo med FXML Introduksjon En viktig del av det å lage app-er er å utforme skjerminnholdet, dvs. alt app-en inneholder av grafikk, knapper, lister, osv. Formålet til denne leksjonen er å lære hvordan du
DetaljerBORRENYTT. Dette er en innføringsguide om hvordan man kan legge til nye poster, og hvordan disse bør settes opp.
Dette er en innføringsguide om hvordan man kan legge til nye poster, og hvordan disse bør settes opp. I denne guiden skal jeg ta for meg hvordan man kan legge til eller endre tekst, opprette nyheter og
DetaljerIntroduksjon til beslutningsstrukturer
[Kurssidene] [ ABI - fagsider bibin ] Utvikling av dynamiske nettsteder med PHP og databaser, våren 2014 Introduksjon til beslutningsstrukturer Michael Preminger (michaelp@hio.no) 24/01-14 Repitisjon fra
DetaljerUNIVERSITETET I OSLO
Kandidatnummer: Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i : INF1000 Grunnkurs i objektorientert programmering Eksamensdag : Torsdag 5. desember 2013 Tid for eksamen
DetaljerBOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs
BOKMÅL Side 1 av 7 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap KONTINUASJONSEKSAMEN
DetaljerEt større programeksempel. Hvordan løse et reelt problem med en objektorientert fremgangsmåte
Et større programeksempel Hvordan løse et reelt problem med en objektorientert fremgangsmåte Plan for forelesingen Beskrive en større problemstilling Planlegge programmet Skrive koden, én klasse om gangen
DetaljerINF1000: Forelesning 7. Konstruktører Static
INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en bestemt type. Objekter
DetaljerINF Innleveringsoppgave 6
INF1010 - Innleveringsoppgave 6 Frist: Onsdag 16. mars, 10:00 Maks 6 poeng Om obligatorisk oppgave 4, 6 og 7 i INF1010, våren 2016: "Leger og resepter" Du skal jobbe med en problemstilling omkring leger
DetaljerUtførelse av programmer, funksjoner og synlighet av variabler (Matl.)
Utførelse av programmer, funksjoner og synlighet av variabler (Matl.) Av Jo Skjermo (basert på Alf Inge Wang sin versjon om JSP). 1. Utførelse av kode i kommando/kalkulatormodus Et dataprogram består oftest
DetaljerIrc-klient. Eigil Obrestad. Morten H Singstad. Kristofers Celms
Irc-klient Eigil Obrestad Morten H Singstad Kristofers Celms Komme i gang Når programmet starter, blir du møtt av ett ganske tomt brukergrensesnitt. Det første du må gjøre for å komme i gang, er å koble
DetaljerIntroduksjon til versjonskontroll av Ola Lie
Introduksjon til versjonskontroll av Ola Lie Installere Subversion Subversion (også kalt SVN) er et versjonskontrollsystem som hjelper oss å holde orden på de forskjellige versjonene når vi utvikler programmer.
DetaljerDagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.
Dagens forelesning Java 13 Design av større programmer : fordeling av roller INF 101-13. mars 2003 Flere eksempler på bruk av objekter MVC-prinsippet MVC-prinsippet Flere eksempler på programmer med objekter
DetaljerVerden. Steg 1: Vinduet. Introduksjon
Verden Introduksjon Processing Introduksjon Velkommen til verdensspillet! Her skal vi lage begynnelsen av et spill hvor man skal gjette hvilke verdensdeler som er hvor. Så kan du utvide oppgava til å heller
Detaljer!!!!!!!!!!!! !!!!!!!!!!! WP-WATCHER WORDPRESS SIKKERHET
WP-WATCHER WORDPRESS SIKKERHET WP-WATCHER BACKUP - SIKKERHETSKOPIERING «Hei Jeg oppdaterte en plugin på siden min og nå kommer jeg ikke inn på siden min i det hele tatt. Kan du hjelpe meg?» «Hjelp Jeg
DetaljerLandåstorget Seniornett klubb
Landåstorget Seniornett klubb Dokumentasjon for klubbens "sommermøte" onsdag 12 juni. Tema: Foto- / billedbehandling Når man i dag kjøper et fotoapparat får man som regel også med: - minst en CD/DVD plate
DetaljerForberedelser; De sidene vi nå skal lage har etternavnet.htm eller.html. HypertextMarkupLanguage
Vi lager hjemmeside Forberedelser; 1) Start med Utforskeren. Still deg i C: 2) Lag ei ny mappe som du døper det navnet du vil legge alle filene og mappene du vil legge ut på internett i. 3) Hvis du ikke
DetaljerFølg denne brukerveiledningen steg-for-steg:
Brukerveiledning: Legge til et enkeltprodukt Et enkeltprodukt er produkter du har i én størrelse. Kan eksempelvis være en duk, en lue, pynt, skulptur, ullsokker du kun har i én størrelse, osv. Følg denne
DetaljerI denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.
Hei JavaScript! Introduksjon Web Introduksjon I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt. Steg 1: Bruke JS Bin
DetaljerBRUKE ONEDRIVE OG SHAREPOINT
Viste du dette om OneDrive og SharePoint: BRUKE ONEDRIVE OG SHAREPOINT Office 365 for bedrifter gir deg 2 muligheter for å lagre og dele dokumenter, OneDrive for Business og SharePoint Nettsteder. Her
DetaljerSoloball. Steg 1: En roterende katt. Sjekkliste. Test prosjektet. Introduksjon. Vi begynner med å se på hvordan vi kan få kattefiguren til å rotere.
Soloball Introduksjon Scratch Introduksjon Vi skal nå lære hvordan vi kan lage et enkelt ballspill med Scratch. I soloball skal du styre katten som kontrollerer ballen, slik at ballen ikke går i nettet.
DetaljerFørst nå starter du programmet Final Cut Express på egen Mac.
Redigering arbeidsflyt Final Cut fra tape til Final Cut Det første du gjør er å koble kamera til mac`en via en Firewire kabel. På baksiden av kameraet ved siden av batteriet finner du en 4pins inngang
DetaljerAdministrasjon Nettbutikk: www.dittdomene.com/administrasjon Bruk brukernavn og passord som er sendt på e-post.
Administrasjon Nettbutikk: www.dittdomene.com/administrasjon Bruk brukernavn og passord som er sendt på e-post. - Konfigurasjon Klikk på Konfigurasjon i menyen helt til venstre, og deretter Min butikk.
DetaljerBygge et hus. Steg 1: Vegger. Sjekkliste. Introduksjon
Bygge et hus Erfaren Learn To Mod Introduksjon Du må ha et hus så du kan bo i stil! La oss kode en modd som bygger et hus med vegger og tak, flere etasjer, vinduer, dører og trapp mellom hver etasje. Steg
DetaljerForsvunnet katt webside
Lesson 3 Forsvunnet katt webside All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/18cplpy to find out what
DetaljerPERSONVERNERKLÆRING BARNEVAKTNETT
PERSONVERNERKLÆRING BARNEVAKTNETT Barnevaktnett tar ditt personvern veldig på alvor, og vil behandle og bruke informasjonen om deg på en sikker måte. For å sikre personvernet ditt vil Barnevaktnett alltid
DetaljerVeiledning hjemmeside Stjørdal Friidrettsklubb
Veiledning hjemmeside Stjørdal Friidrettsklubb Hjemmesida med adressen www.sfik.no er åpen for alle. Hvis du skal publisere et innlegg på hjemmesida må du logge deg inn med brukernavn og passord. Dette
DetaljerDel 1: Overgang fra gammel hjemmeside til ny hjemmeside
Del 1: Overgang fra gammel hjemmeside til ny hjemmeside Instituttsider og personlige hjemmesider som ligger på HFs egen webserver skal nå fases ut.dette innebærer at alle som fortsatt har hjemmesider der,
DetaljerEksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I
Universitetet i Bergen Det matematisk naturvitenskapelige fakultet Institutt for informatikk Side 1 av 6 Bokmål Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert
DetaljerSnake Expert Scratch PDF
Snake Expert Scratch PDF Introduksjon En eller annen variant av Snake har eksistert på nesten alle personlige datamaskiner helt siden slutten av 1970-tallet. Ekstra populært ble spillet da det dukket opp
DetaljerBruk av NetBeans i JSP-delen av Web-applikasjoner med JSP og JSF
Bruk av NetBeans i JSP-delen av Web-applikasjoner med JSP og JSF Else Lervik, august 2010 (Av hensyn til JSF-delen av kurset anbefaler vi at du sørger for å ha NetBeans-versjon 6.9.) I den grad denne veiledningen
DetaljerHei verden Introduksjon Swift PDF
Hei verden Introduksjon Swift PDF Introduksjon Swift er et programmeringsspråk laget av Apple og er etterfølgeren til Objective-C. Med Swift kan du lage apper for ios og OSX. For å gjennomføre dette kurset
Detaljerfile:///c:/users/michaelp/sites/dkdm/dw6/dreamweaver6.html
1 of 9 15.04.2015 14:15 Spry og behaviours Både Spry and Behaviours er basert på programmeringsspråket Javascript. Javascript kjører i nettleseren og ikke på webserver som PHP og Perl. På en lignende måte
DetaljerTOD063 Datastrukturer og algoritmer
TOD063 Datastrukturer og algoritmer Øving : 3 Utlevert : Uke 7 Innleveringsfrist : 26. februar 2010 Klasse : 1 Data og 1 Informasjonsteknologi Gruppearbeid: 2-3 personer pr. gruppe. Oppgave 1 Vi skal lage
DetaljerPersonverninnstillinger Der stiller du inn hvem som skal få tilgang til hva på din facebookside
Personverninnstillinger Der stiller du inn hvem som skal få tilgang til hva på din facebookside Slik kommer du til «Personverninnstillinger»: Logg inn på Facebook. Velg «Brukerkonto» og «Personverninnstillinger»
Detaljeren hjemmeside Lesson Introduksjon Du kjenner en del HTML tagger, så nå er det på tide å lage din første hjemmeside! La oss begynne med en gang.
Lesson 2 en hjemmeside All Code Clubs must be registered. Registered clubs appear on the map at codeclub.org.uk - if your club is not on the map then visit jumpto.cc/18cplpy to find out what to do. Introduksjon
Detaljer. Ved sensur vl1 ahe bokstaverte deloppgaver (a, b, c,...) telle like mye.
~KSAMENSOPPGA VE Les gjennom hele oppgavesettet før du begynner A besvare deloppgavene.. Hold deg til de identifikator-navnene som er brukt i oppgaveteksten, dog med unntak av metodenes parametemavn som
DetaljerHvordan setteopp en wordpress site med wampserver. Lokal site på din pc.
Hvordan setteopp en wordpress site med wampserver. Lokal site på din pc. Av Thomas Gitlevaag Steg 1. Installasjon Steg 2. simpel utforsking av wordpress steg 3. Sette opp en veldig enkel side. Steg 1.
DetaljerÅrsoppgjør. Avslutte regnskapsår:
Årsoppgjør Dette er en beskrivelse av hvordan du foretar årsavslutning i Visma Avendo Økonomi. Avdelinger følger firmaets regnskapsår og avsluttes samtidig som du foretar årsavslutning i regnskapet. Du
DetaljerStart et nytt Scratch-prosjekt. Slett kattefiguren, for eksempel ved å høyreklikke på den og velge slett.
Hvor i All Verden? Del 1 Introduksjon Hvor i All Verden? er et reise- og geografispill hvor man raskest mulig skal fly innom reisemål spredt rundt i Europa. I denne første leksjonen vil vi se på hvordan
DetaljerBRUKE ONEDRIVE OG SHAREPOINT
Viste du dette om OneDrive og SharePoint: OneDrive er ditt private hjørnet av SharePoint. Hver bruker får 10TB med egen lagringsplass. Bruk den når dokumentene er mest for deg. Bruker du OneDrive for Business
Detaljer[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 07/09-15. Vi holder orden på verdier med hjelp av variabler
[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 07/09-15 Vi holder orden på verdier med hjelp av variabler Vi lagrer verdier i variabler. Variabelnavn uttrykker verdienes rolle
DetaljerKan micro:biten vår brukes som en terning? Ja, det er faktisk ganske enkelt!
Microbit PXT: Terning Skrevet av: Geir Arne Hjelle Kurs: Microbit Språk: Norsk bokmål Introduksjon Kan micro:biten vår brukes som en terning? Ja, det er faktisk ganske enkelt! Steg 1: Vi rister løs Vi
Detaljer