Avansert bruk av Eclipse - Eclipsekurs fra Mesan
|
|
- Frank Bjerke
- 6 år siden
- Visninger:
Transkript
1 Avansert bruk av Eclipse - Eclipsekurs fra Mesan Refactoring i fellesskap Utgangspunktet Om refactoring i Eclipse Gjennomføring Kildekoden Kjør! Myk intro - Rename Oops - sjekk kommentarer Siden vi er inne på det - Change Method Signature Endring av klassenavn Hvileskjær Alt i ett - Introduce Parameter Object Ekte innkapsling - Encapsulate Field Uforanderlig - Inline Skjerpings - Extract Interface Langsomt, skyndsomt - Extract Class Frikobling - Introduce Parameter, Use Supertype Where Possible, Introduce Factory Restopplag Eksemplarisk - Extract Local Variable Videre forfremmelse - Convert Local Variable to Field Halvparten av dobbelt - Inline Lastenes sum er - Extract Constant Generalisme i praksis - Generalize Declared Type Extract Method Videre? Utgangspunktet Support International har hatt inne en hospitant fra Faulty Software som har laget en bakgrunnsjobb for å følge opp purring på saker. Den funker i og for seg fint, men når vi nå skal lage den nye jobben for utdatering av foreldede saker over samme lest, oppdager vi jo fort at eksisterende kode ikke helt kvalifiserer som clean... Se BatchResult.java og tro på det du hører...
2 Ved siden av den grusomme målklassen finner du
3 PurreJobb dette er "klienten" som bruker klassen. Den simulerer en kjøring med et antall produsenter og konsumenter som kommuniserer via en kø. Vi skal ikke bruke mye tid inne i denne det aller meste av endringer i denne bør skje automatisk som følge av refactorings. PurreJobbSystemTest en tung test som kjører hele jobben (plussminus 5 sekunder), og sjekker at totalresultatet blir som forventet. Ved siden av å få hakket renere kode, har vi noen absolutte mål for forbedringen av gørra. Vi ønsker å skille jobbkontrolldelen fra telling/rapportering. Vi ønsker å kunne styre rapportering og output friere ikke være låst til et hardkodet format til en tekstfil med magisk navn. Og ikke minst ønsker vi å skille ut det som er spesifikt for akkurat denne jobben (og det er nesten bare sakstelleren) fra det som er generelt. I tillegg er det hardkodet at det skal være en primærjobb med 2 understeg ( public static final int ANTALL_STEG= 2+1; ) vi vil gjerne kunne dele opp i vesentlig flere steg enn det. Om refactoring i Eclipse Vi skal jobbe oss gjennom noen av valgene på menyen Refactoring i Eclipse. Den menyen er fast du får en mer konteksttilpasset (duh) utgave ved å høyreklikke og se på refactoring på kontekstmenyen lett tilgjengelig med *Alt+Shift+T, den viser generelt bare valg som passer til det du har merket (figuren viser resultatet av å merke navnet på en klasse). Gjennomføring Etter hvert steg i gjennomgangen skal vi kjøre gjennom testen(e) for å sjekke at alt fortsatt virker. Det er jo tanken bak "refactoring" å endre "utseende" uten å endre oppførsel... Ta gjerne en kikk på JavaDoc, formatering etc etter hver refactoring, det har en tendens til å krølle seg litt, særlig når man gjør flere steg og koden er ikke-kompilerbar deler av tiden. Alle referanser under gjelder klassen som (i hvert fall foreløpig) heter BatchResult, så fremt annet ikke er sagt dog vil vi etter hvert gjøre denne uinteressant. Kildekoden For å komme fort i gang ligger utgangspunktet for oppgaven som ZIP-fil her: refactoring-utgangspunkt.zip Løsningsforslag finnes her: V0_1.zip Kjør! Vi skal ta de første stegene mot en ny og bedre verden... Myk intro Rename I kildekodemappen src/main/java ligger pakken no.way. Dette var kanskje ikke noe slående pakkenavn. Vi skal flytte oss under no.support (troll i ord?) og dermed omdøpe pakken til no.support.batch.purring.
4 1. Merk pakken i Project Explorer, velg Rename fra menyen Refactoring. 2. Eller trykk ( F2 eller) Alt+Shift+R etter å ha merket pakken man trenger jo egentlig ikke å rote i menyer for alt... Helt magisk skal nå package være riktig i Javafilene. Men vi får en kompileringsfeil i kildekodemappen src/test/java der testen er plassert. Gjør den samme tilpasningen på pakkenavnet og kompileringsfeilen skal være rettet Det er mer enn klasser som kan omdøpes. I klassen BatchResult ønsker vi å endre to metoder. Begge metodene er en del av implementasjon av interfacet ResultCounter. 1. Først endrer vi metoden addok som har et litt misvisende navn den var kanskje tenkt å telle antall OK, men teller i praksis antall forekomster behandlet. Så da bør jo metodenavnet avspeile virkelighet vi endrer navnet til inctotal. 2. Gå til ResultCounter og se at metodenavnet er endret også her. 3. Når vi først er i interfacet så kan vi gjøre tilsvarende endring for metoden getok som vi endrer til gettotal. 4. Gå tilbake til BatchResult og se at endringen også er kommet med her. Dobbeltklikk på metodenavnet, trykk Alt+Shift+R, skriv inn 'inctotal'. OK, og ferdig med den. Det kan hende (avhenger av oppsett) du ikke får opp en dialogboks, men at navnet blir merket, og får en ramme rundt seg. Du kan skrive inn det nye navnet direkte inne i rammen, og trykke Enter når du er ferdig, eller du kan trykke nedtrekkspilen og be om å få dialogboksen (du trenger ofte ikke den til hverdags). Gjør ditto for getok. Vitsen med å bruke en refactoring i stedet for bare å skrive inn nytt navn, er selvfølgelig at vi da også endrer navnet i kallende klasser. For å gjøre dette (over)tydelig, kan vi også omdøpe en variabel i klassen BatchCounter fra counter til total.
5 Dobbeltklikk på variabelnavnet, trykk Alt+Shift+R, skriv inn 'total'. OK, og ferdig Oops sjekk kommentarer Ta en kikk på metodekommentaren for inctotal etter at vi byttet navn. Naturlig nok fikser ikke refactoring på prosa vi må skrive om Tell opp antall OK på egenhånd (nå). Og det gjelder generelt kikk på kommentarer før/etter refactoring, de kommer fort i utakt. Siden vi er inne på det Change Method Signature Kikk enda en gang på inctotal. Den tar to nokså anonyme int som parameter gjett hvor mange som kommer til å lure på hvilken som er stegnummer og hvilken som er antall (eller enda skumlere gjette feil). En kjapp analyse (dobbeltklikk på metodenavnet, trykk Ctrl+Shift+G sjekk referansene som dukker opp i søkevinduet) viser at alle som kaller på denne nå har 1 som antall. Så kanskje er det litt YAGNI å kunne angi antall la oss gå ut fra at den alltid kalles med 1 og heller utsette problemet til en gang noen får behov for bulkoppdatering (kanskje vi rekker å se på det etterpå). Så vi vil ta ta bort parameter nummer 2, antall, fra metoden. Go!
6 1. Dobbeltklikk på metodenavnet, trykk Alt+Shift+C (eller velg Refactor>Change Method Signature). NB: Hvis du akkurat har brukt Ctrl+Shift+G, kan det være Eclipse tror du vil jobbe med markert treff i søkeresultatet i stedet for i editoren dobbeltsjekk at du prøver å endre riktig "ting". Dette gjelder alle refactorings, og er lett å bomme på Svar ja på spørsmålet om at det er greit å gjennomføre operasjonen på denne metoden. Den informerer om at metoden er en implementasjon av interfacet ResultCounter. 3. Marker parameter nr. 2, og trykk Remove. 4. Du vil få en stygg advarsel, men det er greit, vi skal fikse på resultatet det er ikke alltid refactoring er 100% automatisk Vi får kompileringsfeil på addandget(pantall) endre dette til incrementandget(), så blir det bra. Endring av klassenavn Vi har en klasse med et misvisende navn. Dette henger igjen fra en tidligere refaktoreringsjobb som ikke ble ferdigstilt. Omdøp klassen OpptellingOgStyringOgRapporteringForStatusJobb til PurreJobbResultat. Heretter vil vi jobbe mest i no.support.batch.batchresult, ta det som default, så fremt annet ikke er nevnt. Hvileskjær Vi har jobbet hardt nok en stund la oss ta et par enkle... Alt i ett Introduce Parameter Object Let deg frem til report-metoden i BatchResult. Den har 6 strenger som parametere, og trenger åpenbart litt hjelp. Det er rimelig å tro at de 6 strengene tilsvarer hhv venstre, senter og høyre oppe og nede, men detaljene sparer vi til senere. I første omgang lager vi bare en klasse DocumentHeaderFooter som kan innkapsle disse den skal foreløpig ikke ha gettere og settere, bare 6 public String (så kan vi trene på get/set i neste avsnitt).
7 1. 2. Dobbeltklikk på metodenavnet, velg Refactor>Introduce Parameter Object. Angi DocumentHeaderFooter som navn på en toppnivåklasse, fjern krysset på gettere og settere. Ekte innkapsling Encapsulate Field Vi angrer selvfølgelig umiddelbart på at vi ikke lagde gettere og settere i forrige punkt det var jo et helt kunstig påfunn. Gå inn i den nye klassen DocumentHeaderFooter, og gjør om de 6 strengene til private felter med gettere og settere.
8 For hvert av feltene merk feltet og velg Refactor>Encapsulate Field. Forskjellen på å bruke Encapsulate Field og Source>Generate Getters and Setters er at sistnevnte generelt ikke fikser på eksisterende tilganger (men til gjengjeld kan den ta mange av gangen). Uforanderlig Inline Men egentlig vil vi jo gjerne ha et immutable verdiobjekt som konstrueres ferdig i constructoren. Så ved nærmere ettertanke kan du inline alle setterne (så fremt du ikke parprogrammerer med en villmann, er disse nemlig bare i bruk i constructoren). For hver av setxxx-metodene, merk navnet og trykk Alt+Shift+I ( Refactor>Inline). Skjerpings Extract Interface Nå har vi tatt det for rolig for lenge... Videre med forretningsmålene. Nå vil vi trekke ut et interface for jobbstyringen det er typisk de trådorienterte metodene threadsup(), threadsdown(), getthreadcount(), stepdone() vi ønsker å skille ut i et interface ThreadControl.
9 1. 2. Plasser markøren i BatchResult og velg Refactor>Extract Interface Marker de 4 nevnte metodene, pass på at det er krysset av for å benytte Interfacet der mulig. 3. Rydd i etc Langsomt, skyndsomt Extract Class Da har vi grensesnittet, men vi ønsker jo å få ut funksjonaliteten også. Flytt over threadstarted og threadcounter i en egen klasse BatchControl. Denne klassen skal implementere ThreadControl. Denne metoden er ikke spesielt vakker. Ville nok gjort litt mer manuelt hvis ikke poenget var å prøve ut refactorings...
10 Klipp ut de 4 metodene som utgjør ThreadControl i BatchResult ut på et trygt sted f.eks. Notepad Bli stående i BatchResult, og velg Refactor>Extract Class Marker de to feltene threadstarted og threadcounter, og be om ikke å få gettere/settere, angi navnet BatchControl for klassen, og batchcontrol for variabelen (nederst) Men den implementasjonen ble kanskje ikke så vakker. Flytt opprettelsen av BatchControl (dvs = new BatchControl() ) fra deklarasjonen til constructoren, og send med step som parameter (bruk QuickFix for å få den på plass). Gjør feltene i BatchControl om til private final, og flytt over opprettelsen av de enkelte variablene til constructoren. Du bør da ende med en constructor som ser slik ut: BatchControl.BatchControl() public BatchControl( final int step) { this.threadcounter= new AtomicInteger[step]; this.threadstarted= new boolean[step]; for ( int i=0; i< step; i++) { this.threadcounter[i]= new AtomicInteger(); } } Legg til implements ThreadControl, og lim inn metodene slik de tidligere lå i BatchResult. Gå til BatchResult, og endre typen på variabelen batchcontrol til ThreadControl. Marker variabelen batchcontrol, og velg Source>Generate Delegate Methods, rydd gjerne i resultatet.
11 Nytt designmål nådd vi har fristilt trådstyringen Frikobling Introduce Parameter, Use Supertype Where Possible, Introduce Factory Det er alt for mye new i denne koden. Marker hver av new BatchControl, new BatchLogger og new BatchCounter i constructoren i BatchResult, og bruk Introduce Parameter på dem. Pass på å merke hele teksten, f.eks for BatchCounter så merk new BatchCounter(step). Dersom du får kompileringsfeil i constructoren i PurreJobbResultat, så klarer du sikkert å fikse på dem også. Av en eller en annen grunn insisterer Eclipse på å bruke typen til objektet (f.eks. BatchControl) i stedet for typen til variabelen som skal inneholde den (f.eks. ThreadControl). Dette fikser vi ved å gå inn i hver av klassene BatchControl, BatchCounter og BatchLogger, og velge Refactor>Use Supertype Where Possible. Merk de respektive interfacene, og så hvordan constructoren langsom får en penere argumentliste. Så oppretter vi en ny klasse ResultFactory i en ny pakke no.support.batch.factory, hvoretter vi markerer constructoren i PurreJobbResultat og kjører Refactor>Introduce Factory. Kall metoden createresult (vi skal fikse litt på den), og legg den i no.support.batch.factory.resultfactory, men ikke be om privat constructor. Pynt gjerne litt på resultatet, men først og fremst gjør vi om til følgende metode denne er ikke ment å leve public static <T extends BatchResult> T createresult( final Class<? extends T> clazz, final boolean debug) { if ( clazz.isassignablefrom(purrejobbresultat.class)) { return (T) new PurreJobbResultat(debug); } return null; } Restopplag Vi brenner nå etter å gå løs på report-metoden, men det får vente litt vi har et pensum å leve opp til. Eksemplarisk Extract Local Variable er den første på listen. Den kan man jo bruke i et kjør mens man skriver kode, men vi må straks lete litt for å finne et eksempel.
12 Vi kan begynne med bunnen av BatchResult.report() der finner vi den enkle kodelinjen save(new File(("statusfix." + new SimpleDateFormat("yyMMdd-HHmmss").format(new Date()) + ".log"))); her bør det være mulig å trekke ut 2 variable i trekk: begynn med å lage en String av strenguttrykket fra "statusfix" til ".log". Deretter kan vi lage en File av det som gjenstår. Det virker kanskje overflødig, men det koster ingenting runtime, en som debugger vil kanskje takke deg, og syntaksen blir tydeligere. 1. Merk koden fra første fnutt i "statusfix" til siste fnutt i ".log" (Eclipse er ganskje kjip på riktig merking), og trykk Alt+Shift+L ( Refactor>Extract Local Variable). Kall strengen filename. 2. Merk new File(fileName, og trekk ut denne også. Videre forfremmelse Convert Local Variable to Field Det er en uskikk å hardkode filnavn og særlig til ufortsigbare navn som "statusfix log". Så vi ønsker å forfremme filnavnvariabelen fra forrige avsnitt til et felt logfilename i klassen, med get/set-metoder, så får heller den rare verdien få lov til å være default. Fix, please. 1. Merk den nye variabelen filename, og velg Refactor>Convert Local Variable to Field, og be om verdisetting allerede i deklarasjonen. Endre navnet samtidig. 2. Merk det nye feltet, og velg Source>Generate Getters and Setters for å la den bli en konfigurerbar public property. Halvparten av dobbelt Inline Refactoringen Inline kan brukes både på metoder og felt, og kan tidvis være grei for f.eks. å kvitte seg med variable som bare brukes én gang (når innholdet er like beskrivende som variabelnavnet+typen). Vi har så vidt brukt den over, men kan trene litt til på BatchResult.TOM_STRENG, som bare peker videre på EMPTY_STRING. Hvis vi inliner TOM_STRENG, benyttes EMPTY_STRING over alt. Merk TOM_STRENG, og velg Alt+Shift+I ( Refactor>Inline). Lastenes sum er Extract Constant Gå til metoden BatchResult.writeData. Der benyttes \n og \t som konstanter. Vi har i første omgang lyst til å gjøre disse til konstanter hhv LINE_SEP og FIELD_SEP. Skulle det bli god tid, kan du kanskje gjøre mer med disse (kikk i DocumentTable...), men i første rekke trekker vi ut disse som symbolske navn på hhv "ny linje" og "ny kolonne/felt".
13 Merk '\t', velg Refactor>Extract Constant, kall den FIELD_SEP, gjør den public, og kryss av for "Replace all" (men ikke "Qualify"). Gjenta det samme for '\n'. Generalisme i praksis Generalize Declared Type I toppen av BatchLogger finner du, om du har fulgt oppskriftene og ikke vært for flink, deklarasjonen private final LinkedList<String> messages= new LinkedList<String>(). Det er dårlig praksis å benytte mer konkrete typer i deklarasjoner enn du trenger, og collections av ymse slag er et typisk eksempel. Vi ønsker å gjøre om deklarasjonen (på venstre side av likhetstegnet) til en mest mulig generisk type (nei, jeg mener ikke Object...). Merk variabelen, velg Refactor>Generalize Declared Type. Eclipse foreslår noen muligheter, men fokuserer på List<String> gå for den! Extract Method Gå til metoden debug og marker koden som vist på skjermbildet under. Trykk Ctrl + Shift + M og gi den nye metoden et passende navn. Metoden skal være privat.
14 Videre? Per nå ser det omtrent ut som følger dersom du har fulgt opp alle oppfordringene:
Repitisjonskurs. Arv, Subklasser og Grensesnitt
Repitisjonskurs Arv, Subklasser og Grensesnitt Subklasser Klasser i OO-programmering representerer typer av objekter som deler et sett med egenskaper. En subklasse har egenskapene til en klasse + ett sett
Detaljerprogrameksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet "TGA"
Et større programeksempel Hvordan løse et reelt problem med en objektorientert fremgangsmåte En større problemstilling I uke 4 skrev vi et program for å sjekke om et gen (en tekstfil) inneholdt ordet "TGA"
DetaljerEksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus
// class Bygning Oppgave 1 System.out.println( Bolighus ); // class Bolighus Hva blir utskriften fra dette programmet? class Blokk extends Bolighus{ // class Blokk IN105subclassesII-1 Eksekveringsrekkefølgen
DetaljerArray&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
DetaljerArray&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
DetaljerLø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.
DetaljerVerden - Del 2. Steg 0: Oppsummering fra introduksjonsoppgaven. Intro
Verden - Del 2 Nybegynner Processing Intro Denne oppgaven bygger på oppgaven med samme navn som ligger på introduksjonsnivå her i Processingoppgavene. Klikk her for å gå til introduksjonsoppgaven av verden.
DetaljerGjø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å
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
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.
DetaljerEks 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å
DetaljerUNIVERSITETET 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å
DetaljerSteg 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
DetaljerINF Notater. Veronika Heimsbakk 10. juni 2012
INF1010 - Notater Veronika Heimsbakk veronahe@student.matnat.uio.no 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
DetaljerForklaring til programmet AbstraktKontoTest.java med tilhørende filer Konto.java, KredittKonto.java, SpareKonto.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 Forklaring til programmet AbstraktKontoTest.java med tilhørende
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
DetaljerOppsummering. 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
Detaljerclass 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
DetaljerGeneriske mekanismer i statisk typede programmeringsspråk
Generiske mekanismer i statisk typede programmeringsspråk Dette stoffet er Pensum, og det er bare beskrevet her Mye her er nok kjent stoff for mange INF5110 7. mai 2013 Stein Krogdahl 1 Hvordan kunne skrive
Detaljer< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4»
< T extends Comparable > Indre klasser mm. «Det du bør ha hørt om før oblig 4» Strukturen i oblig 3 null null null null Personbeholder pl null null Person p "Adnan" michael@ifi.uio.no INF1010 21. februar
DetaljerVerden. Introduksjon. Skrevet av: Kine Gjerstad Eide og Ruben Gjerstad Eide
Verden Skrevet av: Kine Gjerstad Eide og Ruben Gjerstad Eide Kurs: Processing Tema: Tekstbasert Fag: Matematikk, Programmering, Samfunnsfag Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon Velkommen
Detaljer1. NetBeans IDE: Lage en enkel mobilapplikasjon
Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag NetBeans IDE: Lage en enkel mobilapplikasjon Mildrid Ljosland/Lene Hoff 09.09.2008 Lærestoffet er utviklet for faget SO350D J2ME for programmering
DetaljerKapittel 7: Mer om arv
Kapittel 7: Mer om arv Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk Forlag,
DetaljerLæringsmål for forelesningen
Læringsmål for forelesningen Objektorientering Regler for oppførsel Java-programmering JUnit-testing Eclipse Opprette JUnit-test og kjøre den 1 Pensum Testing dekkes ikke av Liang! Er en viktig del av
DetaljerIntroduksjon 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
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
DetaljerObligatorisk oppgave 1 INF1020 h2005
Obligatorisk oppgave 1 INF1020 h2005 Frist: fredag 7. oktober Oppgaven skal løses individuelt, og må være godkjent for å kunne gå opp til eksamen. Før innlevering må retningslinjene Krav til innleverte
DetaljerKom forberedt til tirsdag. INF1000 Tips til obligatorisk oppgave 4. Noen generelle tips. Oblig4: Komme igang
Kom forberedt til tirsdag INF1000 Tips til obligatorisk oppgave 4 Kikk på prøveeksamen fra 2004 http://www.uio.no/studier/emner/matnat/ifi/inf1000/h 07/undervisningsmateriale/proveeksamen-H2004.pdf Tittel:
DetaljerJAVA Oppsummering for IS-102. Even Åby Larsen
JAVA Oppsummering for IS-102 Even Åby Larsen even.larsen@hia.no 26. april 2010 Innhold 1 Innledning 3 2 Hva er et Java program 4 2.1 Kjøring av java programmer................. 4 3 Grammatikk for Java
DetaljerLø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)
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
DetaljerINF1010, 21. februar Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF1010, 21. februar 2013 Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Ikke noe nytt her From the Java language specification (version 6): 14.14.2
DetaljerArv. 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
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
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
DetaljerCommunicate SymWriter: R1 Lage en tavle
Communicate SymWriter: R1 Lage en tavle I denne delen beskrives egenskaper som kan brukes for å lage en tavle til å skrive med. Stort sett vil du bare ha bruk for en del av dette når du lager skrivemiljøer.
Detaljer1- 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)
DetaljerVi har en plan. Om Mesan. Hva vil det si å jobbe i Mesan. Eclipsekurs Vi rekrutterer. Hvem vi er Hva jobber vi med
Eclipsekurs Vi har en plan Om Mesan Hvem vi er Hva jobber vi med Hva vil det si å jobbe i Mesan Oppstartsperiode - Mesaninen Din hverdag som nyutdannet i Mesan Eclipsekurs Vi rekrutterer Mesan Over 50
DetaljerSteg 1: Lag bildedeklarasjon
Bildepresentasjon Skrevet av: Ruben Gjerstad Eide og Kine Gjerstad Eide Kurs: Processing Tema: Tekstbasert, Animasjon Fag: Programmering, Kunst og håndverk Klassetrinn: 8.-10. klasse, Videregående skole
DetaljerEn liten oppskrift på hvordan jeg installert og fikk Xastir til å virke sånn at jeg ble synlig i APRS verden.
En liten oppskrift på hvordan jeg installert og fikk Xastir til å virke sånn at jeg ble synlig i APRS verden. La meg med en gang si at jeg er rimelig grønn i Linux verden så dere får bære over med meg
Detaljer1- 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)
DetaljerJava fra Eclipse til Evalanche
Java fra Eclipse til Evalanche Dette er en veiledning for deg som lurer på hvordan du skal overføre (eller sende inn) java-filer fra et prosjekt i Eclipse til Evalanche. Nyere versjon ligger her: http://bit.ly/1e8yjji
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 1. desember 2010 Tid for eksamen: 14.00 18.00
DetaljerNB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen..
Løsningsforslag Eksamen V2007 Oppgave 1 NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen.. Oppgave 1.1 Klasse som pakke rinne n primitiv datatype, slik at vi kan
DetaljerKapittel 8: Programutvikling
Kapittel 8: Programutvikling Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk
DetaljerAlgoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1
Delkapittel 3.1 Grensesnittet Liste Side 1 av 11 Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1 3.1 En beholder 3.1.1 En beholder En pappeske er en beholder En beholder er noe vi kan legge ting
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
DetaljerKanter, kanter, mange mangekanter. Introduksjon: Steg 1: Enkle firkanter. Sjekkliste. Skrevet av: Sigmund Hansen
Kanter, kanter, mange mangekanter Skrevet av: Sigmund Hansen Kurs: Processing Tema: Tekstbasert, Animasjon Fag: Matematikk, Programmering, Kunst og håndverk Klassetrinn: 8.-10. klasse, Videregående skole
DetaljerFlytte innhold fra Fronter til Canvas
Høgskolen i Innlandet Flytte innhold fra Fronter til Canvas Veiledning og informasjon om konvertering av innhold fra Fronter til Canvas. 07.05.2018 Innhold Fronter... 3 Veien videre... 3 Nedlastning av
DetaljerObligatorisk oppgave 4: Lege/Resept
Obligatorisk oppgave 4: Lege/Resept INF1010 Frist: mandag 27. mars 2017 kl. 12:00 Versjon 1.0 (111c894 ) Innhold 1 Innledning 1 1.1 Begreper................................ 2 2 Pasienter 2 3 Leger og lister
DetaljerDiverse eksamensgaver
Diverse eksamensgaver Noen har fått den idé å lage et språk hvor klasser kan ha noe tilsvarende byvalue-result -parametere. Klasser har ingen konstruktører, og by-value-result parametere spesifiseres som
DetaljerVerden - Del 2. Intro. Skrevet av: Kine Gjerstad Eide
Verden - Del 2 Skrevet av: Kine Gjerstad Eide Kurs: Processing Tema: Tekstbasert Fag: Matematikk, Programmering, Samfunnsfag Klassetrinn: 8.-10. klasse, Videregående skole Intro Denne oppgaven bygger på
DetaljerLøse reelle problemer
Løse reelle problemer Litt mer om løkker, metoder med returverdier og innlesing fra fil INF1000, uke4 Geir Kjetil Sandve Repetisjon fra forrige uke: while Syntaks: while (condition) do1; do2;... Eksempel:
DetaljerINF1010, 15. januar 2014 2. time. Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF1010, 15. januar 2014 2. time Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Repetisjon fra gamle dager: Metoder med parametre En metode uten parameter:
DetaljerEKSAMEN 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
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 å
DetaljerINF1000 Mer om objekter
INF1000 Mer om objekter Marit Nybakken marnybak@ifi.uio.no 8. mars 2004 Dette dokumentet skal tas med en bøtte salt og forfatter sier fra seg alt ansvar. Dere bør ikke bruke definisjonene i dette dokumentet
DetaljerINF1010, 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å
DetaljerProgrammering 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
DetaljerFor å sjekke at Python virker som det skal begynner vi med å lage et kjempeenkelt program. Vi vil bare skrive en enkel hilsen på skjermen.
Kuprat Skrevet av: Geir Arne Hjelle Kurs: Python Tema: Tekstbasert Fag: Norsk Klassetrinn: 5.-7. klasse, 8.-10. klasse Introduksjon I dette kurset skal vi introdusere programmeringsspråket Python. Dette
DetaljerOppgavesett for NVivo 9
Oppgavesett for NVivo 9 Oppgave 1: Nytt prosjekt Det første du ser når du åpner NVivo er en liste over de siste prosjektene du har jobbet med i programmet. I dag lager vi et nytt prosjekt. Klikk på New
DetaljerTryll bort heksa. Introduksjon. Sjekkliste Følg instruksjonene på lista. Huk av etter hvert. Test. Lagre 2/8
Innhold Innhold Tryll bort heksa Introduksjon Steg 1: Lag en flyvende heks Steg 2: Få heksa til å dukke opp og forsvinne Steg 3: Tryll bort heksa med et klikk! Steg 4: Legg til tid og poeng En ekstra utfordring:
DetaljerExcel. Kursopplegg for SKUP-skolen 2010
Excel Kursopplegg for SKUP-skolen 2010 1 Excel: Basisfunksjoner Konseptet bak Excel er referansepunkter bestående av ett tall og en bokstav. Et regneark består av loddrette kolonner (bokstav) og vannrette
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
Detaljer2 Om statiske variable/konstanter og statiske metoder.
Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når
DetaljerProgram 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
DetaljerStein Gjessing. Institutt for informatikk. Universitetet i Oslo. Institutt for informatikk
INF1010 11. mai 2017 Monitorer med kritiske regioner og passive venting innbygget i Java - Kommunikasjon mellom prosesser i Java (Ikke pensum i INF1010) Stein Gjessing Universitetet i Oslo 1 Repetisjon:
DetaljerINF1010 våren Grensesnitt
INF1010 våren 2013 Torsdag 24. januar Grensesnitt Stein Gjessing Institutt for informatikk Dagens tema n n Norsk: Grensesnitt Engelsk: Interface n Les notatet Grensesnitt i Java av Stein Gjessing 2 Hva
DetaljerUNIVERSITETET I OSLO
Side 1 UNIVERSITETET I OSLO Kandidatnr Det matematisk-naturvitenskapelige fakultet LØSNINGSFORSLAG Eksamen i: PRØVEEKSAMEN INF1000 Eksamensdag: Prøveeksamen 22.11.2011 Tid for eksamen: 12:15-16:15 Oppgavesettet
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Onsdag 4. juni 2014 Tid for eksamen: 9:00-15:00 Oppgavesettet er på
DetaljerIN våren 2018 Tirsdag 16. januar
IN1010 - våren 2018 Tirsdag 16. januar Java Objekter og klasser Stein Gjessing Universitetet i Oslo 1 1 IN1010: Objektorientert programmering Hva er et objekt? Hva er en klasse? Aller enkleste eksempel
DetaljerIN våren 2019 Onsdag 16. januar
IN1010 - våren 2019 Onsdag 16. januar Java Objekter og klasser Stein Gjessing Universitetet i Oslo 1 1 IN1010: Objektorientert programmering Hva er et objekt? Hva er en klasse? Aller enkleste eksempel
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1020 Algoritmer og datastrukturer Eksamensdag: 15. desember 2004 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 6 sider.
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
DetaljerUke 8 Eksamenseksempler + Ilan Villanger om studiestrategier. 11. okt Siri Moe Jensen Inst. for informatikk, UiO
Uke 8 Eksamenseksempler + Ilan Villanger om studiestrategier 11. okt. 2011 Siri Moe Jensen Inst. for informatikk, UiO 1 Innhold Eksamen INF1000 Høst 2011: Oppgave 4-7 Tekstmanipulering Metoder med og uten
DetaljerVerdens korteste grunnkurs i Excel (2007-versjonen)
Verdens korteste grunnkurs i Excel (2007-versjonen) NB! Vær oppmerksom på at Excel kan se annerledes ut hos dere enn det gjør på bildene under. Her er det tatt utgangspunkt i programvaren fra 2007, mens
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
DetaljerINF1010 notat: Binærsøking og quicksort
INF1010 notat: Binærsøking og quicksort Ragnhild Kobro Runde Februar 2004 I dette notatet skal vi ta for oss ytterligere to eksempler der rekursjon har en naturlig anvendelse, nemlig binærsøking og quicksort.
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
DetaljerINF1000 - 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
DetaljerHer skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den.
PXT: Stein, saks, papir Skrevet av: Bjørn Hamre Kurs: Microbit Introduksjon Her skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den. Steg 1: Velge tilfeldig
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
DetaljerInnhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk
Innhold uke 7 Objektorientert programmering i Python: Introduksjon IN1000 Høst 2017 uke 7 Siri Moe Jensen Lite tilbakeblikk: Prosedyrer og funksjoner Objektorientert programmering Introduksjon: Hvorfor,
DetaljerTest 2 OOP. - Prøveeksamen
Test 2 OOP - Prøveeksamen 2007 - Viktig: Jobb med oppgavene som om det var eksamen Ikke snakk med sidemann, ta korte pauser, benytt kun skriftlige hjelpemidler du hadde tenkt til å hatt med på eksamen.
DetaljerOblig 4 (av 4) INF1000, høsten 2009 Værdata, leveres innen 6. nov. kl
Oblig 4 (av 4) INF1000, høsten 2009 Værdata, leveres innen 6. nov. kl. 16.00 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
DetaljerINF Repetisjon: Hvordan bygge treet og analysere? 8. september Typisk situasjon. De problematiske syntaks-diagrammene
Dagens tema: INF 2100 8. september 2004 Mer om strukturen i treet og hvordan bygge det Testing av at navn er deklarert og brukt riktig Arbeid i gruppene neste uke: Oppgaver relevant for dette stadiet i
DetaljerSteg 1: Hvordan styre figurer med piltastene
Labyrint Skrevet av: Geir Arne Hjelle Kurs: Scratch Tema: Blokkbasert, Spill Fag: Programmering Klassetrinn: 1.-4. klasse, 5.-7. klasse, 8.-10. klasse Introduksjon I dette spillet vil vi kontrollere en
DetaljerIN1010 våren januar. Objektorientering i Java
IN1010 våren 2018 23. januar Objektorientering i Java Om enhetstesting Om arrayer og noen klasser som kan ta vare på objekter Stein Gjessing Hva er objektorientert programmering? F.eks: En sort boks som
DetaljerToPlayer. Steg 1: Kom i gang med metodene setup og draw. Gjør dette: Introduksjon:
ToPlayer Introduksjon Processing Introduksjon: Nå skal vi lage et spill som to personer kan spille mot hverandre. Vi har kalt det ToPlayer, men du kan kalle det hva du vil. Målet er å dytte en figur, eller
DetaljerØvingsforelesning TDT4105
Øvingsforelesning TDT4105 Gjennomgang øving 9, intro øving 10. Eksamensoppgaver. Benjamin A. Bjørnseth 10. november 2015 2 Oversikt Praktisk Gjennomgang øving 9 Introduksjon sudoku Oppgave 4 Kont-eksamen
DetaljerTelle i kor steg på 120 frå 120
Telle i kor steg på 120 frå 120 Erfaringer fra utprøving Erfaringene som er beskrevet i det følgende er gjort med lærere og elever som gjennomfører denne typen aktivitet for første gang. Det var fire erfarne
DetaljerExcel. Kursopplegg for SKUP-konferansen 2015. Laget av trond.sundnes@dn.no
Excel Kursopplegg for SKUP-konferansen 2015 Laget av trond.sundnes@dn.no 1 Konseptet bak Excel er referansepunkter bestående av ett tall og en bokstav. Et regneark består av loddrette kolonner (bokstav)
DetaljerEKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL. 09.00 13.00
Side 1 av 6 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap EKSAMEN I FAG
DetaljerMathType. En innføring
MathType. En innføring Innhold ÅPNING AV MATHTYPE... 2 HURTIGTASTER... 3 Å LAGE EGNE HURTIGTASTER... 5 TABELL OVER HURTIGTASTER... 6 VERKTØYLINJER... 7 PLASSERE EGNE SYMBOLER PÅ VERKTØYLINJENE... 8 TEKSTFORMATERING
DetaljerVEILEDNING FOR INSTALLASJON AV SIGNALOPPSETT I AUTOCAD
VEILEDNING FOR INSTALLASJON AV SIGNALOPPSETT I AUTOCAD 02E Oppdatert hyperlenke i dokumentet 24.10.2018 LOFJON HENMAG ZACTHO 01E Oppdatert, bedre tilpasset eksterne leverandører 04.05.2018 LOFJON HENMAG
DetaljerEmnenavn: 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
DetaljerDebugging. Tore Berg Hansen, TISIP
Debugging Tore Berg Hansen, TISIP Innhold Innledning... 1 Å kompilere og bygge et program for debugging... 1 Når debugger er i gang... 2 Symbolene i verktøylinjen... 3 Start på nytt... 3 Stopp debugging...
Detaljer23.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
DetaljerAlgoritmer og datastrukturer Eksamen
Eksamensoppgave i Algoritmer og datastrukturer ved Høgskolen i Oslo Side 1 av 5 Algoritmer og datastrukturer Eksamen 30.11.2010 Eksamenstid: 5 timer Hjelpemidler: Alle trykte og skrevne + håndholdt kalkulator
DetaljerINF1010 - Seminaroppgaver til uke 3
INF1010 - Seminaroppgaver til uke 3 Oppgave 1 I denne oppgaven skal vi lage et klassehiearki av drikker. Alle klassene i hiearkiet skal implementere følgende grensesnitt p u b l i c i n t e r f a c e Drikkbar
Detaljer