GUI («Graphical User Interface») del 2
|
|
|
- Toril Stene
- 7 år siden
- Visninger:
Transkript
1 GUI («Graphical User Interface») del 2 Interaksjon med brukeren Hendelsesdrevet programmering Tråder i GUI Se også på Infoskrivet ifi/in1010/v18/gui/fx-intro-in1010.pdf Programkoden i matnat/ifi/in1010/v18/gui/
2 Det enkleste eksempelet på brukerinteraksjon import javafx.application.application; import javafx.application.platform; import javafx.stage.stage; import javafx.scene.scene; import javafx.scene.layout.pane; import javafx.scene.control.button; import javafx.event.*; public class Stopp extends Application { class StoppBehandler implements EventHandler<ActionEvent> public void handle(actionevent e) { public void start(stage teater) { StoppBehandler stopp = new StoppBehandler(); Button stoppknapp = new Button("Stopp"); stoppknapp.setonaction(stopp); Pane kulisser = new Pane(); kulisser.getchildren().add(stoppknapp); Scene scene = new Scene(kulisser); teater.settitle("klikk for å stoppe"); teater.setscene(scene); teater.show();
3 Det enkleste eksempelet på brukerinteraksjon Dette er nytt: Vi definerer StoppBehandler som i metoden handle angir håndteringen av trykk. En Button er en trykknapp som brukeren kan trykke på. Metoden setonaction angir hvem som skal ta seg av trykket. Metoden Platform.exit er den beste måte å avslutte et GUI-program på.
4 Sekvensiell kontra hendelsesdrevet programmering Programmeringsparadigmer Det finnes mange programmeringsparadigmer, for eksempel Imperativ programmering der utførelsen følger programflyten angitt av programmereren. Objektorientert programmering er en undergruppe der operasjonene er knyttet til objekter. Hendelsesdrevet programmering der brukerens handlinger styrer programflyten.
5 Hva skjer i hendelsesdrevet programmering? Hendelsesdrevet programmering Her ligger programmet passivt og venter på at noe skal skje. Dette noe kan være brukeren trykker på en knapp på skjermen brukeren flytter musen brukeren trykker på en mustast brukeren trykker på en tast på tastaturet brukeren slipper opp en tast brukeren endrer størrelsen på vinduet... og mye annet.
6 Hva skjer i hendelsesdrevet programmering? Oppstart Programmet startes i main-tråden. launch(); Det kaller launch(). main-tråden
7 Hva skjer i hendelsesdrevet programmering? start Oppstart av JavaFX JavaFX kjører metoden start i FX-tråden for å sette opp scenebildet. launch(); main-tråden FX-tråden
8 Hva skjer i hendelsesdrevet programmering? start? Vente på hendelser Nå ligger FX-tråden og venter på at noe skal skje. launch(); Kø av Event-er EventHandler-objekter main-tråden FX-tråden
9 Hva skjer i hendelsesdrevet programmering? Håndtere hendelser start? Hver hendelse som inntreffer, resulterer i et ActionEvent-objekt i køen. launch(); Hendelsesløkken i FX-tråden vil ta ActionEvent-ene etter tur, og den korrekte EventHandler-en vil bli kalt. main-tråden FX-tråden Kø av Event-er EventHandler-objekter
10 Hva skjer i hendelsesdrevet programmering? Hvorfor trenger vi en kø av ActionEvent-er? FX-tråden kan bare ta seg av én hendelse av gangen, men noen ganger kan flere hendelser inntreffe omtrent samtidig. Da trenger vi køen for å ta vare på de hendelsene som venter på å bli tatt hånd om.
11 Et nytt eksempel: et telleverk Eksempel: Et telleverk Dette vinduet inneholder: telleren (en Text) trykknappen Øk teller (en Button) trykknappen Nullstill (en Button) trykknappen Stopp (en Button)
12 Et nytt eksempel: et telleverk Hvordan bygge opp et GUI-program 1 Finn ut nøyaktig hva programmet skal gjøre. 2 Lag en håndtegning av alle elementene. 3 Skriv kode som genererer elementene og plasserer dem på rett plass. 4 Lag EventHandler-klassene.
13 Et nytt eksempel: et telleverk Del 1: Import og hovedstruktur import javafx.application.application; import javafx.application.platform; import javafx.stage.stage; import javafx.scene.scene; import javafx.scene.control.button; import javafx.scene.layout.pane; import javafx.scene.text.*; import javafx.event.*; public class Telleverk extends Application { int teller = 0; Text tellersomtext = new Text("0"); public static void main(string[] arg) { Application.launch();
14 Et nytt eksempel: et telleverk Del 2: Deklarasjon av EventHandler-ne class NulleBehandler implements EventHandler<ActionEvent> public void handle(actionevent e) { teller = 0; tellersomtext.settext("0"); class TelleBehandler implements EventHandler<ActionEvent> public void handle(actionevent e) { teller++; tellersomtext.settext(""+teller); class StoppBehandler implements EventHandler<ActionEvent> public void handle(actionevent e) { Platform.exit();
15 Et nytt eksempel: et telleverk Del 3: Oppsettet av public void start(stage teater) { tellersomtext.setfont(new Font(25)); tellersomtext.setx(30); tellersomtext.sety(25); Button telleknapp = new Button("Øk teller"); telleknapp.setlayoutx(10); telleknapp.setlayouty(50); TelleBehandler tell = new TelleBehandler(); telleknapp.setonaction(tell); Button nulleknapp = new Button("Nullstill"); nulleknapp.setlayoutx(14); nulleknapp.setlayouty(80); NulleBehandler nulle = new NulleBehandler(); nulleknapp.setonaction(nulle); Button stoppknapp = new Button("Stopp"); stoppknapp.setlayoutx(20); stoppknapp.setlayouty(110); StoppBehandler stopp = new StoppBehandler(); stoppknapp.setonaction(stopp);
16 Et nytt eksempel: et telleverk Del 4: Avsluttende initiering Pane kulisser = new Pane(); kulisser.setprefsize(90,150); kulisser.getchildren().add(tellersomtext); kulisser.getchildren().add(telleknapp); kulisser.getchildren().add(nulleknapp); kulisser.getchildren().add(stoppknapp); Scene scene = new Scene(kulisser); teater.settitle("teller"); teater.setscene(scene); teater.show();
17 Noe kan ta for lang tid Advarsel: Ting tar tid I JavaFX finnes det i utgangspunktet kun én tråd som både skal oppdatere vinduet og håndtere alle EventHandler-ne. Det innebærer at mens en EventHandler jobber, er resten av GUI-systemet dødt hvis en EventHandler får en for stor oppgave (for eksempel beregne et sjakktrekk), må det opprettes en egen tråd til det.
18 Til sist: en GUI-versjon av Tripp-trapp-tresko Tripp-trapp-tresko med GUI I vår løsning skal vi ha dette: Et vindu med et spillebrett på 3 3 ruter et tekst med info til brukeren en stoppknapp Hver rute på 3 3-brettet skal være klikkbar. Ved hvert klikk skal programmet 1 sjekke om trekket er lovlig 2 vise brukerens trekk 3 sjekke om brukeren har vunnet 4 beregne og vise maskinens trekk 5 sjekke om maskinen har vunnet
19 Til sist: en GUI-versjon av Tripp-trapp-tresko Definisjon av de klikkbare rutene Vi lager en egen subklasse Rute fordi vi ønsker å lagre et merke i hver rute. De lovlige verdiene skal være: når ruten er ledig X når maskinen har valgt ruten O når spilleren har valgt ruten. class Rute extends Button { char merke = ; Rute() { super(" "); setfont(new Font(50)); setprefsize(120, 120); void settmerke(char c) { settext(""+c); merke = c;
20 Til sist: en GUI-versjon av Tripp-trapp-tresko Sett opp rutenettet brett = new Rute[9+1]; Klikkbehandler klikk = new Klikkbehandler(); for (int i = 1; i <= 9; i++) { brett[i] = new Rute(); brett[i].setonaction(klikk); GridPane rutenett = new GridPane(); rutenett.setgridlinesvisible(true); rutenett.add(brett[1], 0, 0); rutenett.add(brett[2], 1, 0); rutenett.add(brett[3], 2, 0); rutenett.add(brett[4], 0, 1); rutenett.add(brett[5], 1, 1); rutenett.add(brett[6], 2, 1); rutenett.add(brett[7], 0, 2); rutenett.add(brett[8], 1, 2); rutenett.add(brett[9], 2, 2); rutenett.setlayoutx(10); rutenett.setlayouty(10);
21 Til sist: en GUI-versjon av Tripp-trapp-tresko Håndtering av klikk i en rute Metoden getsource gir oss hvilken rute det ble klikket i. class Klikkbehandler implements EventHandler<ActionEvent> public void handle(actionevent e) { if (! ferdig) spillo((rute)e.getsource());
22 Til sist: en GUI-versjon av Tripp-trapp-tresko Håndter brukerens valg void spillo(rute r) { if (r.merke!= ) { statusinfo.settext("ruten er opptatt; velg en annen"); return; else { statusinfo.settext("velg en rute"); r.settmerke( O ); if (harvunnet( O )) utropvinner( O ); if (! ferdig) spillx();
23 Til sist: en GUI-versjon av Tripp-trapp-tresko La datamaskinen velge sitt neste trekk Datamaskinen gjør sitt neste trekk helt tilfeldig. Random tilfeldig = new Random(); void spillx() { int p; do { p = tilfeldig.nextint(9)+1; while (brett[p].merke!= ); brett[p].settmerke( X ); if (harvunnet( X )) utropvinner( X ); else if (eruavgjort()) utropuavgjort();
24 Litt mer om trpdene De to trådene De to trådene kan jobbe i fred for hverandre. start? De kan kommunisere gjennom felles variable. Men: main-tråden bør ikke kalle GUI-metoder; det går ikke alltid bra! launch(); Kø av Event-er I stedet kan main-tråden legge inn nye Event-er i køen ved å kalle Platform.runLater(r) der r implementerer Runnable (se eksemplet Klokke.java). main-tråden FX-tråden EventHandler-objekter
25 Noen gode råd til sist Noen gode råd Før du prøver å lage ditt første GUI-program: Hent et program fra IN1010-sidene. «Lek» litt med programmet. Brøv å endre noe eller legge noe til, og se hva som skjer.
GUI («Graphical User Interface») del 2
GUI («Graphical User Interface») del 2 Interaksjon med brukeren Hendelsesdrevet programmering Tråder i GUI Et spill basert på klikkbare ruter Se også på Infoskrivet https://www.uio.no/studier/emner/matnat/
En kort introduksjon til JavaFX
En kort introduksjon til JavaFX Til bruk i IN1010 Dag Langmyhr Våren 2018 (versjon 17. april 2018) En kort introduksjon til JavaFX Dag Langmyhr Våren 2018 (versjon 17. april 2018) 1 Introduksjon For å
GUI («Graphical User Interface»)
GUI («Graphical User Interface») Om GUI JavaFX Se også på Infoskrivet https://www.uio.no/studier/emner/matnat/ ifi/in1010/v18/gui/fx-intro-in1010.pdf Programkoden i https://www.uio.no/studier/emner/ matnat/ifi/in1010/v18/gui/
GUI («Graphical User Interface»)
GUI («Graphical User Interface») Om GUI JavaFX Se også på Infoskrivet https://www.uio.no/studier/emner/matnat/ ifi/in1010/v19/notater/fx-intro-in1010.pdf Programkoden til eksemplene i https://www.uio.no/studier/emner/matnat/ifi/in1010/
GUI. Grafisk brukergrensesni0 i Java med JavaFX. INF1010 Stein Michael Storleer
GUI Grafisk brukergrensesni0 i Java med JavaFX INF1010 Stein Michael Storleer GUI-rammeverk i java Awt Swing JavaFX awt JavaFX er et svært rammeverk med mange, mange klasser Vi kan bare dekke en liten
GUI 3 JavaFX. Mer interaksjon Hvordan gi input :l programmet. INF1010 Stein Michael Storleer
GUI 3 JavaFX Mer interaksjon Hvordan gi input :l programmet INF1010 Stein Michael Storleer Innhold 1. Ta opp tråden fra sist 2. Input med TextField 3. Anonyme klasser 4. Lytte på alle noder i et grid 5.
Kalkulator-leksjonen (nesten ferdig)
Kalkulator-leksjonen (nesten ferdig) Introduksjon I denne leksjonen vil du lære hvordan du kan koble FXML-koden til Java-koden og gjøre app-en levende (interaktiv)! Steg 1: Opprette app-pakke, app-klasse,
Steg 1: Sette opp Java-prosjekt, og lage app-mappe og app-klasse
Hello world Skrevet av: Hallvard Trætteberg Kurs: Javafx Introduksjon Formålet til denne leksjonen er å lære hvordan man får satt opp et Java-prosjekt i Eclipse og kjørt et JavaFX-program. I tillegg skal
GUI 1. Grafisk brukergrensesni1 i Java med JavaFX. INF1010 Stein Michael Storleer
GUI 1 Grafisk brukergrensesni1 i Java med JavaFX INF1010 Stein Michael Storleer GUI-rammeverk i java Awt Swing JavaFX JavaFX er et svært rammeverk med mange, mange klasser JavaFX er et svært rammeverk
Oppsummering del 2. Læringsmål Viktigste Java-elementer Eksamen Til sist. Læringsmål Hovedpunkter Tilbakemelding Eksamen. IN1010 uke 17 våren 2019
Oppsummering del 2 Læringsmål Viktigste Java-elementer Eksamen Til sist Hva skal dere ha lært? Læringsmål fra emnebeskrivelsen: Etter å ha tatt IN1010: har du god oversikt over programmeringsspråket Java
INF våren 2017
INF1010 - våren 2017 Om Java Objekter og klasser Både for deg som kan og for deg som ikke kan Java Stein Gjessing Universitetet i Oslo Ny versjon etter forlesningen der tre meningsløse private modifikatorer
Gjennomgang av eksamen H99
Gjennomgang av eksamen H99 Administrasjon av kurser, studenter og påmeldinger Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for Informatikk Universitetet i Oslo Oppgave 1 (15 %) (Besvares
Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister
Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java
Steg 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
23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.
Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen
INF1010 Grafisk brukergrensesni3 med Swing og awt del 1 INF1010
Grafisk brukergrensesni3 med Swing og awt del 1 GUI (Graphical User Interface)- programmering Hvordan lage et vindu på skjermen Hvordan legge ulike komponenter i vinduet (trykknapper, tekseelter, tekst,
Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre
Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java
Steg 1: Sette opp Java-prosjekt, og lage appmappe
Hello world Introduksjon Formålet til denne leksjonen er å lære hvordan man får satt opp et Java-prosjekt i Eclipse og kjørt et JavaFX-program. I tillegg skal du lære litt om sammenhengen mellom JavaFX-koden
INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen
INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og
UNIVERSITETET 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
Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet doble.rusc (kalt kildekoden): Hva er kompilering?
Dagens tema Dagens tema Kildekode Hva er kompilering? Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Hvordan oppdage feil? Anta at vi lager dette lille
Program delegate. Lage et nytt prosjekt i Visual Studio
Program delegate Kommunikasjon mellom objekter er en utfordring i objektorientert programmering. Dette GUI eksempelet viser hvordan bruke en delegate til å gjøre metodekall i et annet objekt. Vi skal legge
Introduksjon til objektorientert programmering
Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes
INF Våren Li' repe$sjon om Tråder og GUI. Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo. Ins$tu' for informa$kk
INF1010 - Våren 2015 Li' repe$sjon om Tråder og GUI Stein Gjessing,, Universitetet i Oslo 1 GUI, tråder og hendelser Op-sys (Win, Linux,..) Ditt Program sin Event Dispatch Thread Hver ting brukeren gjør
UNIVERSITETET I OSLO
FASIT UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Kontinuasjonseksamen i : Eksamensdag : INF1000 Grunnkurs i objektorientert programmering Fredag 7. januar Tid for eksamen :
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 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 =
Kapittel 8: Programutvikling
Kapittel 8: Programutvikling Redigert av: Khalid Azim Mughal ([email protected]) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Kontinuasjonseksamen i : Eksamensdag : INF1000 Grunnkurs i objektorientert programmering Fredag 7. januar Tid for eksamen : 09.00
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveksamen i INF1010 Objektorientert programmering Dato: 26. mai 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 6 sider.
La oss begynne med en repetisjon av hva som skjer når du kjører Javaprogrammet
K A P I T T E L 18 Tråder N år et program kjøres, utføres programsetningene i en bestemt rekkefølge. En tråd er det samme som denne programflyten, og i dette kapitlet skal vi se på hvordan vi starter og
Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen
Forkurs INF1010 Dag 1 Andreas Færøvig Olsen ([email protected]) Tuva Kristine Thoresen ([email protected]) Institutt for Informatikk, 6. januar 2014 Forkurs INF1010 - dag 1 Hello, World! Typer Input/output
INF Notater. Veronika Heimsbakk 10. juni 2012
INF1010 - Notater Veronika Heimsbakk [email protected] 10. juni 2012 1 Tilgangsnivåer 2 CompareTo Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N
Grafisk Brukergrensesnitt
Grafisk Brukergrensesnitt Repetisjonskurs Hva må kunnes? JFrame JPanel JComponents Layouts Listeners jframe Representerer et vindu JComponents legges på vinduet Har en tittel og størrelse Komponenter struktureres
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider.
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 13. juni 2006 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 5
1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)
Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)
LO191D/LC191D Videregående programmering
LO191D/LC191D Videregående programmering Eksamen mai 2012 Løsningsforslag Oppgave 1 Klassen Destinasjon: // Oppgaven er uklar på hva som skal inn i klassen Destinasjon. // Her følger en minimumsutgave
Argumenter 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
Dagens tema Kapittel 8: Objekter og klasser
Dagens tema Kapittel 8: Objekter og klasser Hva er objekter og klasser? Programmering med objekter Klassedeklarasjoner Generering av objekter Tilgang til elementer i objektene Objekt- og klassevariable
Rekursjon. (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. IN1010 uke 8 våren Dag Langmyhr
Fakultet Rekursjon Fibonacci Sjakk Hanois tårn Lister Oppsummering Rekursjon (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. n! = n x n-1 x n-2 x... x 2 x 1 Å beregne fakultet Den
Grafiske brukergrensesnitt med Swing og AWT
Grafiske brukergrensesnitt med Swing og AWT - 1 av 11 INNHOLD INTRODUKSJON 3 VINDUER, RAMMER OG PANELER. 4 KOMPONENTER OG VINDUSELEMENTER 6 KNAPPER OG KNAPPELYTTERE.. 8 LAYOUT.. 10 APPENDIX. 11 2 av 11
Rekursjon. (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. IN1010 uke 8 våren Dag Langmyhr
Fakultet Bredde Rekursjon Fibonacci Sjakk Hanois tårn Lister Oppsummering Rekursjon (Big Java kapittel 13) Fra Urban dictionary: recursion see recursion. n! = n x n-1 x n-2 x... x 2 x 1 Å beregne fakultet
Oppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre
Oppsummering Kort gjennomgang av klasser etc ved å løse halvparten av eksamen 2012. Klasser Interface Subklasser Klasseparametre Datastrukturer Hva er problemet? Oppgaven Emballasjefabrikken Renpakk skal
Tråder Repetisjon. 9. og 13. mai Tråder
Tråder Repetisjon 9. og 13. mai Tråder Hva er tråder? 2 Hva er tråder? I utgangspunktet uavhengige aktiviteter som konkurrerer om å få bruke prosessoren. 2 Hvorfor tråder? 3 Hvorfor tråder? Flere oppgaver
Fra Python til Java, del 2
Fra Python til Java, del 2 Hvordan kjøre Java? På Ifis maskiner På egen maskin Et eksempel Array-er For-setninger Lesing og skriving Metoder Biblioteket Hva trenger vi egentlig? Å kjøre Java For å kunne
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring AITeL
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring AITeL Delprøve Kandidatnr: Prøvedato: 2. mars 2005 Varighet: 3 timer (9:00 12:00) Fagnummer: LO196D Fagnavn: Videregående programmering med
1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)
Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)
public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren
Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en
INF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012
INF1000 - Uke 10 Ukesoppgaver 10 24. oktober 2012 Vanlige ukesoppgaver De første 4 oppgavene (Oppgave 1-4) handler om HashMap og bør absolutt gjøres før du starter på Oblig 4. Deretter er det en del repetisjonsoppgaver
EKSAMENSFORSIDE Skriftlig eksamen med tilsyn
BOKMÅL EKSAMENSFORSIDE Skriftlig eksamen med tilsyn Emnekode: 108 + 108N Dato: 19.12.201 Ansv. faglærer: Roy M. Istad Campus: Bø Antall oppgaver: 5 Tillatte hjelpemidler (jfr. emnebeskrivelse): Alt trykt
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 6. juni 2006 Tid for eksamen: 1430 1730 Oppgavesettet er på 6 sider. Vedlegg: INF1010 Objektorientert programmering
Løsningsforslag Test 2
Løsningsforslag Test 2 Oppgave 1.1: Interface definerer et grensesnitt som kan implementeres av flere klasser. Dette gir en standardisert måte å kommunisere med objekter av en eller flere relaterte klasser.
Kapittel 7: Mer om arv
Kapittel 7: Mer om arv Redigert av: Khalid Azim Mughal ([email protected]) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk Forlag,
Gjøre noe i hele treet = kalle på samme metode i alle objekten. Java datastruktur Klassestruktur
Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på
EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.
Høgskolen i Telemark Fakultet for allmennvitenskapelige fag EKSAMEN I 6108/6108N PROGRAMMERING I JAVA 21. 12. 2015 Tid: 4 timer Sidetall: Hjelpemiddel: Merknader: Framside + 5 sider Alt trykt og skriftlig
Programmering i C++ Løsningsforslag Eksamen høsten 2005
Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det
INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF, 22. mai 23 Prøveeksamen 23 (Eksamen 2. juni 22) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Oppgave a Tegn klassehierarkiet for de 9 produkttypene som er beskrevet over. Inkluder også
UNIVERSITETET I OSLO
Side 1 UNIVERSITETET I OSLO Kandidatnr Det matematisk-naturvitenskapelige fakultet Eksamen i: PRØVEEKSAMEN INF1000 Eksamensdag: Prøveeksamen 22.11.2011 Tid for eksamen: 12:15-16:15 Oppgavesettet er på
Kompilering Statiske Syntaksanalyse Feilsjekking Eksempel Oppsummering
Dagens tema Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Statiske metoder og variabler Hvordan oppdage feil? Kildekode Hva er kompilering? Anta at
Programmeringsspråket C
Programmeringsspråket C Bakgrunn Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI standard i 1988; omtrent alle følger
public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren
Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en
TOD063 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
INF1000 oppgaver til uke 38 (17 sep 23 sep)
INF1000 oppgaver til uke 38 (17 sep 23 sep) Formål: Øve på programmering med forgreninger, løkker og arrayer. Teoritimer (plenumsøvinger): 1. Oppgave 4 og 6 i kapittel 4 i læreboka. 2. En blokk er en samling
TDT4100 Objektorientert programmering
Eksamensoppgave i TDT4100 Objektorientert programmering Tirsdag 2. juni 2009, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikrer Trond Aalberg. Kontaktperson under
static int ant_steiner; //antall steiner static int teller2 = 0; //teller for printing til Thread^ murer; //murertråden
Øving 4 Thorstein Brekke Operativsystemer Oppgave 1 Kode for Murer: // Uke4oppgave1murer.cpp : main project file. #include "stdafx.h" using namespace System; using namespace Threading; using namespace
INF1010. Grensesnittet Comparable<T>
INF1010 21. februar 2013 Grensesnittet Comparable Stein Michael Storleer Institutt for Informatikk Universitetet i Oslo Interface med parametre interface Utkledd { // T er klassen jeg er utkledd
Java PRP brukermanual
Java PRP brukermanual 1.1 Introduksjon 1.1.1 Hva er Java PRP Java PRP (Parallel Recursive Procedure) gir oss muligheten til automatisk parallellisering av programmer, som baserer seg på noen rekursive
Eks 1: Binærtre Binærtretraversering Eks 2: Binærtre og stakk
Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på
import javax.swing.*; import java.awt.*;
import javax.swing.*; import java.awt.*; import javax.swing.*; import java.awt.*; Pluss mange Implementasjoner av forskjellige grensesnitt class RammeDemo { public static void main(string[] args) { JFrame
Løse reelle problemer
Løse reelle problemer Litt mer om løkker, metoder med returverdier, innlesing fra fil og strenger INF1000, uke5 Ragnhild Kobro Runde MER OM LØKKER Repetisjon fra forrige uke: while Syntaks: while (condition)
TDT4100 Objektorientert programmering
Eksamensoppgave i TDT4100 Objektorientert programmering Torsdag 12. august 2010, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikret av Svein Erik Bratsberg. Kontaktperson
På tide med et nytt spill! I dag skal vi lage tre på rad, hvor spillerne etter tur merker ruter med X eller O inntil en av spillerne får tre på rad.
Tre på rad Skrevet av: Oversatt fra Code Club UK (//codeclub.org.uk Oversatt av: Geir Arne Hjelle Kurs: Python Tema: Tekstbasert, Spill Fag: Programmering Klassetrinn: 8.-10. klasse Introduksjon På tide
class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }
Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere
INF1000 (Uke 5) Mer om løkker, arrayer og metoder
INF1000 (Uke 5) Mer om løkker, arrayer og metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Praktisk informasjon Når disse
Arv. Book book1 = new Book(); book1. title = "Sofies verden" class Book { String title; } class Dictiona ry extends Book {
Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere
Emnenavn: Objektorientert programmering. Faglærer: Lars Emil Knudsen
EKSAMEN Emnekode: ITF10611 Dato: 3. mai 2018 Hjelpemidler: To A4-ark (fire sider) med egne notater Emnenavn: Objektorientert programmering Eksamenstid: 4 timer Faglærer: Lars Emil Knudsen Om eksamensoppgaven
Konstruktører. Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver. skjer følgende:
Konstruktører Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver Punkt p = new Punkt(3,4); class Punkt { skjer følgende: int x, y; 1. Det settes av plass i
En klasse er noe - en metode gjør noe (! / # <= (! * +!! ",-' %. "- -/ %.!#) )! " 0'%! * *$! "1-)) '' % '. 22!'( 7/ /! * 2 2! "*"% 8"%% 9 - -!
(')!'! "#$% &' # (! * +!! ",-' %. "- -/ %.!#) )! " 0'%! * *$! "1-)) '' % '. 22!'( - -'"* 3456% 7/ /! * 2 2! "*"% 8"%% 9 - -!: (! / #
I et Java-program må programmøren lage og starte hver tråd som programmet bruker. Er dette korrekt? Velg ett alternativ
INF2440-V18 Information INF2440 Vår 2018 eksamen Dato og tid: 11. juni 2018 09:00. Varighet: 4 timer Hjelpemidler: Alt skriftlig materiale er tillatt. Ingen elektroniske hjelpemidler er tillatt. Powerpoint
13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER
.9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,
2 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.
i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4
Forelesning inf - Java 4 Repetisjon: arrayer Tema: Løkker Arrayer Metoder Ole Christian Lingjærde,. september Deklarere og opprette array - eksempler: int[] a = new int[]; String[] a = new String[]; I
Forelesning inf Java 4
Forelesning inf1000 - Java 4 Tema: Løkker Arrayer Metoder Ole Christian Lingjærde, 12. september 2012 Ole Chr. Lingjærde Institutt for informatikk, 29. august 2012 1 Repetisjon: arrayer Deklarere og opprette
INF1000: Forelesning 4. Mer om arrayer Metoder
INF1000: Forelesning 4 Mer om arrayer Metoder MER OM ARRAYER 2 Array som en samling verdier Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene: String[] studenter = new String[500];
