In105 Programmering i Java de første skritt

Størrelse: px
Begynne med side:

Download "In105 Programmering i Java de første skritt"

Transkript

1 In105 Programmering i Java de første skritt IN105-javabasics-1

2 class Velkommen { Velkommen.java public static void main ( String [] args ) { new Velkommen ( ); Velkommen ( ) { System.out.println ( "Velkommen til IN105 ); Dette er et program skrevet i programmeringsspråket Java. Når det kjøres, skriver det teksten Velkommen til IN105 på skjermen. Programmet må ligge i en fil med nøyaktig samme navn som klassen, men med tillegget.java (jf. JavaGently s.19-20) IN105-javabasics-2

3 class Velkommen { Velkommen.java (forts.) public static void main ( String [] args ) { new Velkommen ( ); Velkommen ( ) { System.out.println ("Velkommen til IN105 ); IN105-javabasics-3

4 Velkommen.java (forts.) class Velkommen { public static void main ( String [] args ) { new Velkommen ( ); Velkommen ( ) { System.out.println ( "Velkommen til IN105 ); Fargekoding brukt i eksemplet o Ord og tegn i blått hører med i Java-språket o Ord i svart er ord som vi eller andre har deklarert i Java o Ord i rødt behandles nøyaktig slik de står Semikolon ; avslutter en setning Krøllparenteser { brukes for å gruppere setninger - IN105-javabasics-4

5 Kommentarer i programmet class Velkommen{public static void main(string[] args){new Velkommen( );Velkommen(){System.out.println("Velkommen til IN105 ); class Velkommen { /* Velkommen, skrevet av Knut Hegna 24.juli 2000 Skriver velkomsthilsen på skjermen. */ public static void main ( String [] args ) { new Velkommen ( ); // lager velkommen-objekt // slutt på metoden main Velkommen ( ) { System.out.println ( "Velkommen til IN105 ); // slutt på konstruktøren Velkommen // slutt på Velkommenprogrammet IN105-javabasics-5

6 Hvorfor kommentere? Et program som er forklart, kommentert og har en oversiktlig utforming (layout) er lettere å lese og forstå for deg selv og for andre. Tips: bruk kommenteringsteknikk aktivt i programmeringen IN105-javabasics-6

7 Utførelse av programmer class Velkommen { public static void main ( String [] args ) { new Velkommen ( ); Velkommen ( ) { System.out.println ( "Velkommen til IN105 ); Hvis vi kjenner programmeringsspråket, kan vi mentalt utføre programmet manuelt slik som vi for eksempel gjør når vi skal overbevise oss selv om at det er riktig Vi kan også la en datamaskin kjøre programmet det må da først oversettes (kompileres) til en form maskinen kan forstå Oversettingen gjøres av et oversetterprogram en kompilator IN105-javabasics-7

8 Maskinutstyret CPU Her regner maskinen Databuss Her flyttes data og program fram og tilbake Primærlager Lokalnett Her lagres program og data under kjøring Disk Her lagres program, oversatte programmer og data permanent (på filer) Institutt for informatikk Gerhard Jens Kaasbøll Skagestein/Knut Hegna IN105-javabasics-8

9 Kompilering class Vekommen { public static void main (String [ ] args) {... osv // Slutt på klassen Velkommen Velkommen.java gymir 4> javac Velkommen.java Java programtekst i en fil på disken filen må ha samme navn som den første klassen på filen Java-kompilatoren heter javac. Vi må oppgi navnet på filen der programteksten ligger Det kompilerte Java-programmet (kalt Java bytekode) i en annen fil på disken (Ljava/lang/String;)V ([Ljava/lang/String;)V <init> Code LineNumberTable Ljava/io/PrintStream; SourceFile Velkommen Velkommen til IN105 Velkommen.java java/io/printstream java/lang/object java/lang/system main out println Velkommen.class IN105-javabasics-9

10 Syntaksfeil System.out.println ( "Velkommen til IN105); in105>javac Velkommen.java Velkommen.java:7: String not terminated at end of line. System.out.println( "Velkommen til IN105); ^ Velkommen.java:8: ')' expected. ^ 2 errors in105> Institutt for informatikk Gerhard Jens Kaasbøll Skagestein/Knut Hegna IN105-javabasics-10

11 Program En datamaskinen er lite intelligent den kan bare utføre noen få typer ordre: o Les inn et tall (fra tastatur) o Skriv ut en tekst (til skjerm, disk, ) o Legg sammen to tall o... For å få gjort det vi vil, ber vi maskinen utføre et antall slike ordre/handlinger (én etter én) Denne rekken av ordre kalles et program Institutt for informatikk Gerhard Jens Kaasbøll Skagestein/Knut Hegna IN105-javabasics-11

12 Kjøring (programutførelse) (Ljava/lang/String;)V ([Ljava/lang/String;)V <init> Code LineNumberTable Ljava/io/PrintStream; SourceFile Velkommen Velkommen til IN105 Velkommen.java java/io/printstream java/lang/object java/lang/system main out println Velkommen.class gymir 5> java Velkommen Java byte-kode i en fil på disken leses inn i maskinens primærlager. gymir 5> java Velkommen Velkommen til IN105 gymir 6> Resultatet på skjermen IN105-javabasics-12

13 Program (forts.) Maskinen har allerede en rekke programmer o operativsystem o editor (redigeringsprogram) o oversetter-program (kompilator) o Java virtuell maskin (JVM utfører byte-koden) Nye programmer kan legges inn ved å o kopiere fra andre maskiner o skrive dem i editoren og lagre dem i en fil på disken Institutt for informatikk Gerhard Jens Kaasbøll Skagestein/Knut Hegna IN105-javabasics-13

14 class Toplussto { To pluss to er fire public static void main (String [ ] args) { new Toplussto(); Toplussto(){ int etheltall; etheltall = 2; System.out.println( etheltall = + etheltall); etheltall = etheltall + 2; Her oppretter vi en variabel kalt etheltall der vi kan lagre hele tall Her settes denne variablen lik 2 + legger her sammen innholdet av variabelen etheltall og tallet 2 System.out.println( Summen av etheltall og 2 er + etheltall); navn: etheltall type: int + skjøter her sammen to tekststrenger //Slutt class Toplussto IN105-javabasics-14

15 Tilordninger er ikke likninger etheltall = etheltall + 2;???????? Dette er ingen matematisk likning, men et regneuttrykk (etheltall + 2) etterfulgt av en tilordning (etheltall =) På høyre siden av tilordningsoperatoren brukes innholdet av variablen etheltall. Tilordningen ( the assignment ) fører til at verdien av uttrykket på høyre side lagres i variablen på venstre side av tilordningsoperatoren Tilordningsoperatoren = leses gjerne settes lik IN105-javabasics-15

16 Overlasting av operatorer Mellom to heltall bevirker + en heltallsaddisjon Mellom to flytende tall bevirker + en flyttallsaddisjon Mellom et heltall og et flytende tall bevirker + en flyttallsaddisjon : Mellom to tekststrenger bevirker + en sammenskjøting (konkatenering) Hallo + verden At en operator har ulik virkning avhengig av operandene, kalles overlasting (av operatoren) IN105-javabasics-16

17 Vekslingsprogrammet Kunden skal ha tilbake x kroner. Hvor mange mynter av hver valør skal kunden få utbetalt, under forutsetning at det skal være færrest mulig mynter? IN105-javabasics-17

18 Veksling.java (del 1) class Veksling { public static void main(string[ ] args) { new Veksling(); Her oppretter vi en variabel kalt beløp der vi kan lagre hele tall Veksling(){ int beløp; beløp = 78; System.out.print("Vekslepenger " + beløp ); System.out.println( kroner"); Her lagrer vi heltallet 78 i beløp ved hjelp av tilordningsoperatoren = print skriver ut uten linjeskift. println skriver ut med etterfølgende linjeskift. IN105-javabasics-18

19 Veksling.java (del 2) System.out.println( "20-kroner : " + beløp/20); beløp = beløp%20; Divisjon / mellom heltall gir heltallsdivisjon På høyre siden av = (dvs. i uttrykk) brukes verdien som er lagret i variablen % gir resten etter en divisjon System.out.println( "10-kroner : " + beløp/10); beløp = beløp%10; System.out.println( " 5-kroner : " + beløp/5); beløp = beløp%5; System.out.println( " 1-kroner : " + beløp); // slutt på konstruktøren Veksling //slutt på klassen Veksling IN105-javabasics-19

20 Veksling.java resultat.>java Veksling Vekslepenger : 78 kroner 20-kroner : 3 10-kroner : 1 5-kroner : 1 1-kroner : 3 > IN105-javabasics-20

21 Programutvikling Området som programmet skal handle om Programutførelse og test: Tilfredsstiller programmet kravspesifikasjonen? Kompilering og retting av syntaksfeil Kravspesifikasjon: Hva skal programmet gjøre? Analyse: Hva består området av? Utforming: Hvordan skal programmet struktureres? Koding: Skriving av programteksten Java syntaks IN105-javabasics-21

22 Egenskaper ved et godt program Et program bør inneholde færrest mulig feil være leselig være strukturert være modifiserbart (leselig og strukturert) kunne gjenbrukes være effektivt være robust / tåle feil bruk og at det inneholder feil være veldokumentert Institutt for informatikk Gerhard Stein Gjessing Skagestein/Knut Hegna IN105-javabasics-22

23 Et kritisk blikk på programmet Veksling Kravspesifikasjonen: Er den fullstendig? o Hva med 50-ørene? Hva med beløp med 10-ører? Analyse av området o Hva skal skje hvis vi ikke har nok mynter av en gitt valør? Utformingen: Er den god? o Mange gjentagelser i koden o Lite fleksibel, for eksempel mye arbeid hvis vi skal legge inn nye myntslag eller sedler o Tungvint å legge inn vekslebeløpet vi må rekompilere Mye kan tydeligvis forbedres, men først må vi lære mer Java! Kravspesifikasjon Programmet skal regne ut hvor mange mynter av hver valør som skal gis tilbake som vekslepenger. Det skal gis tilbake færrest mulig mynter. IN105-javabasics-23

24 Verdier og typer En verdi kan være eksempelvis o et heltall (78) o et flytende tall (3.1415) o en tekststreng ( Velkommen til IN105 ) o en logisk (boolesk) verdi (true) o En type er en familie av verdier o int er typen for heltall 3, 4, 13, 2000, 0, -37, o double er typen for flytende tall 2.5, 3.14, 7, 2E3, o String er typen for tekststrenger Velkommen, Java, o boolean er typen for logiske verdier true, false o Legg merke til at String skrives med stor forbokstav, de andre ikke (grunnen skal vi komme tilbake til) For en oversikt over Java typer, se Java Gently 2.4 og 3.2 IN105-javabasics-24

25 Heltall og desimaltall Datamaskiner håndterer disse på forskjellig måte. Heltall er alltid eksakte, mens desimaltall har en viss nøyaktighet. Desimaltall deklareres med double o Eks: double høyde, volum; Heltall deklareres med int o Eks: int antalltrær, antallfuglereder; IN105-javabasics-25

26 Java er et sterkt typet språk Variablene må deklareres til å lagre verdier av en bestemt type o eksempelvis int beløp; Kompilatoren kontrollerer o at verdiene som inngår i regnestykker er av riktig type o at typen av uttrykket på høyre side av en tilordning stemmer med typen av variablen på venstre side o eksempelvis vil int beløp; beløp = ; gi syntaksfeil Konvertering ( casting ) av en verdi fra en type til en annen er av og til mulig (detaljer senere) o Implisitt: double ti; ti = 10; o Eksplisitt: int beløp; beløp = (int) 3.14 IN105-javabasics-26

27 Deklarasjon og tilordning enkle variable Enkle variable kan inneholde én verdi Enkle variable deklareres ved å angi deres type og navn double beløp ; Programmet har nå en variabel som heter beløp og som kan inneholde et desimaltall Variable gis verdi ved tilordning beløp = 78.2 ; navn: beløp 78.2 type: double Deklarasjon og tilordning kan kombineres i én setning: double beløp = 78.2 ; Når en variabel først er deklarert, kan den brukes mange ganger Pr. konvensjon begynner variabelnavn alltid med liten bokstav Institutt for informatikk Gerhard Stein Gjessing Skagestein/Knut Hegna IN105-javabasics-27

28 Deklarasjon av konstanter static final type navn = verdi ; Konstanter En konstant er en variabel som ikke kan endres Eksempler static final double moms = 0.23 ; static final double pi = ; static final int maxantall = 100; Hvorfor bruke konstanter? navn: moms 0.23 type: double o Lettere å lese programmet 0.23 kan være hva som helst - moms er mer forklarende o Lettere å endre programmet dersom konstanten skulle endre seg: endre deklarasjonen static final double moms = 0.25 og rekompiler! Se JavaGently side 37 IN105-javabasics-28

29 Regneuttrykk Tall-variable kan tilordnes resultatet av regneuttrykk beløp = beløp * 1.23 ; Operatorene + - * / % kan brukes mellom variabler og/eller tall Resultatet av beløp % myntverdi blir resten (modulus) når beløp divideres med myntverdi double beløp=1.60, myntverdi = 0.5, resultat=0; resultat = beløp % myntverdi; Hva blir innholdet i variablen resultat? Institutt for informatikk Gerhard Stein Gjessing Skagestein/Knut Hegna IN105-javabasics-29

30 Presedenser i regneuttrykk Uttrykk regnes ut som vi er vant til fra matematikken, nemlig med følgende presedenser: 1. Parenteser : a * ( b + c ) 2. Multiplikasjon, divisjon og rest : a + b * c 3. Pluss og minus 4. Fra venstre mot høyre: a + b * c d / e Presedens Presedens = = går går foran, foran, regler regler for for i i hvilken hvilken rekkefølge rekkefølge operasjoner operasjoner skal skal utføres. utføres. Så hva er resultatet av * (4+6)? IN105-javabasics-30

31 Betinget utførelse If - setning if (betingelse) setning ; //kan også være en blokk { else setning ; //kan også være en blokk { Jf. JavaGently side 106 Eksempel: Rund av et ørebeløp til nærmeste 50 øre if (ørebeløp < 0.25) ørebeløp=0; else if (ørebeløp < 0.75) ørebeløp=0.50; else ørebeløp=1.0; 0,00 0,50 1,00 0,00 0,25 0,75 1,00 Er det noen smartere måte å gjøre dette på? IN105-javabasics-31

32 If-setningen Et uttrykk (en påstand) som enten er sant eller usant (resulterer i verdien true eller false) if (betingelse){ setningsblokk ; else { setningsblokk; Utføres hvis betingelsen er sann (true) Utføres hvis betingelsen er usann (false) If-setningsdelen else { setningsblokk ; kan utelates da gjøres ingenting hvis betingelsen er false IN105-javabasics-32

33 Utforming av betingelser For å kunne uttrykke betingelser må vi kunne framsette påstander, f.eks. sammenlikne verdier. Eksempel: alder > 17 // er alder større enn 17? Mer kompliserte betingelser kan kreve logiske (booleske) operasjoner Eksempel: (alder > 17) & (alder < 67) // er alder større enn 17 og i tillegg mindre enn 67? Se JavaGently side IN105-javabasics-33

34 Sammenlikningsoperatorene Vi kan sammenlikne tall (i uttrykk) med sammenlikningsoperatorene = = lik < mindre enn!= ikke lik >= større enn eller lik > større enn <= mindre enn eller lik Eksempler: int tall = 30, antall = 40; if ( tall == antall ) ( false) int maxantall = 100; if ( antall <= maxantall ) ( true )... if ( tall!= antall ) ( true ) Svarene på disse regnestykkene er sann eller usann (true eller false.) Disse verdiene (sann og usann) kaller vi logiske verdier eller sannhetsverdier. Institutt for informatikk Gerhard Stein Gjessing Skagestein/Knut Hegna IN105-javabasics-34

35 Logiske (booleske) operatorer Typen boolean har to verdier: false og true (sann og usann) Logiske binære operatorer: & and (og) or (eller) ^ xor (exclusive or, eksklusiv eller) Logisk unær operator:! not (ikke) La x og y være logiske variable eller logiske uttrykk: Uttrykket x & y har verdien sann bare når både x og y er sann Uttrykket x y har verdien usann bare når både x og y er usann Uttrykket x ^ y har verdien sann bare når enten x eller y er sann Uttrykket!x har verdien den motsatte sannhetsverdi av x Institutt for informatikk Gerhard Stein Gjessing Skagestein/Knut Hegna IN105-javabasics-35

36 Eksempel på bruk av logiske variabler class Barnebillett { public static void main (String [ ] args) { new Barnebillet(); Barnebillett(){ boolean barn, pensjonert; int alder = 19; boolean barnetakst; barn = alder <= 17; pensjonert = alder >= 67; barnetakst = barn pensjonert; System.out.println( Alder = + alder); System.out.println( Det er + barnetakst + at du kan reise på barnebillett ); // slutt Barnebillett // slutt class Barnebillett; Skriver: Alder = 19 Det er false at du kan reise på barnebillett Institutt for informatikk Gerhard Stein Gjessing Skagestein/Knut Hegna IN105-javabasics-36

37 To logiske operatorer til x && y Samme som & (og), men hvis x er usann, regnes ikke y ut. x y Samme som (eller), men hvis x er sann, regnes ikke y ut. Utregningen av et logisk uttrykk kan av og til gi opphav til et unntak (exception). F.eks. vil en divisjon med 0 gi et unntak. Ved å bruke && og kan vi noen ganger skrive bedre programmer som unngår unntak. Se JavaGently side 58 Mer om unntak senere I kurset! Institutt for informatikk Gerhard Stein Gjessing Skagestein/Knut Hegna IN105-javabasics-37

38 Kortsluttende eller - class Barnebillett { public static void main (String [ ] args) {new Barnebillett(); Barnebillett(){ boolean barn, pensjonert; int alder; boolean barnetakst; alder =19; barnetakst = alder <= 17 alder >= 67; System.out.println( Alder = + alder); System.out.println( Det er + barnetakst + at du kan reise på barnebillett ); // slutt Barnebillett // slutt class Barnebillett; Institutt for informatikk Gerhard Stein Gjessing Skagestein/Knut Hegna IN105-javabasics-38

39 double ørebeløp; Avrunding til nærmeste 50-øre if (ørebelop < 0.25) ørebeløp = 0; else if(ørebeløp < 0.75) ørebeløp = 0.50; else ørebeløp = 1.00; Opprinnelig versjon double ørebeløp; avrunding; static final double tjuefemøre = 0.25, syttifemøre =0.75; if (ørebelop < tjuefemøre) avrunding=0; if (ørebeløp >= tjuefemøre & ørebeløp < syttifemøre) avrunding = 0.50; if (ørebeløp >= syttifemøre) avrunding = 1.00; Bedre versjon??? IN105-javabasics-39

40 public class Veksling2 { Veksling2 med øreavrunding public static void main(string[ ] args) { new Veksling2(); double beløp, ørebeløp; int helekroner; if (ørebeløp == 1.0) { ørebeløp = 0; helekroner = helekroner + 1; System.out.println("20-kroner : + helekroner/20); helekroner=helekroner%20; Veksling2(){ beløp = 78.77; System.out.println("Vekslepenger "+ beløp +" kroner"); helekroner = (int) beløp; ørebeløp = beløp - helekroner; if (ørebeløp < 0.25) ørebeløp = 0; else if(ørebeløp < 0.75) ørebeløp = 0.50; else ørebeløp = 1.0; System.out.println("10-kroner : " + helekroner/10); helekroner=helekroner%10; System.out.println(" 5-kroner : " + helekroner/5); helekroner=helekroner%5; System.out.println(" 1-kroner : " + helekroner); System.out.println("rest " + ørebeløp); System.out.println("øreavrunding " + (beløp - ørebeløp - helekroner)); IN105-javabasics-40

41 Løkker - loops Duellen 1. antallskritt = 0 2. antallskritt == 10? Ja: gå til punkt 4 Nei: øk antallskritt med 1 3. Gå til punkt 2 4. Snu deg 5. Skyt Å gå tur 1. Er vi framme? Nei: ta ett skritt gå tilbake til pkt 1 2. Ta en hvil Å starte i Ludo: 1. Kast terningen 2. Fikk du 6? Nei: kast terningen, gå tilbake til pkt 2 3. Flytt ut en brikke IN105-javabasics-41

42 Løkker for-setning Enkel for-setning Se JavaGently side 62 for ( start ; kontroll ; oppdatering ) {setningsblokk start oppretter en ny variabel eller gir en gammel variabel en startverdi. Denne variabelen kalles løkkevariablen. kontroll er et logisk uttrykk som beregnes før setningsblokken utføres. Løkkevariabelen inngår nesten alltid her. Er verdien av uttrykket true, skal setningsblokken utføres en gang til. oppdatering oppdaterer (forandrer) løkkevariabelen etter at setningsblokk er utført. setningsblokk kan også være en enkelt setning. // Beregn 1! til 5! (dvs. 1 * 2 * 3 * 4 * 5) int fakultet = 1; for (int i = 1; i <= 5 ; i++ ) { fakultet = fakultet * i ; System.out.println(i +! = + fakultet); IN105-javabasics-42

43 Løkker while-setning while-setning Se JavaGently side 130 initialiser betingelse; while ( betingelse) {setningsblokk setningsblokken utføres om og om igjen sålenge betingelse er true For å forhindre en uendelig løkke må setningsblokken endre verdier som inngår i betingelsen // finn alle kvadrat-tall som er mindre enn 1000 int i = 1; while ( i * i < 1000 ) { System.out.println ( Kvadratet av +i+ er +i*i); i++; // kan også skrives: i = i + 1; IN105-javabasics-43 IN105-javabasics-40

44 Løkker - while /* Skriv ut Fibonacci-tallene mindre enn Et tall i rekken er summen av de to foregående. Vi starter med 0 og 1 og kaller dem forrige og nåværende. */ int forrige=0, nåværende = 1; while ( nåværende < 1000 ) { System.out.println ( nåværende ); int neste = forrige + nåværende; forrige = nåværende; nåværende = neste; IN105-javabasics-44

45 Veksling3 med while-løkke double beløp, ørebeløp; int helekroner, myntvalør = 20; Veksling3(){ beløp = 78.77; System.out.println("Vekslepenger "+beløp+" kroner"); helekroner = (int) beløp; // øreavrundinger (utelatt her) while (myntvalør >= 1) { System.out.println(myntvalør +"-kroner : "+ helekroner/myntvalør); helekroner = helekroner%myntvalør; myntvalør = myntvalør/2; if (myntvalør == 2) myntvalør = 1 System.out.println("rest " + ørebeløp); IN105-javabasics-45

46 Løkker do-while-setning do-while-setning Se JavaGently side 131 // initialiser betingelse; do {setningsblokk while ( betingelse); Fungerer som while, bortsett fra at betingelsen sjekkes etter hver utførelse av setningsblokk // Fibonacci-tall med do-while-løkke int forrige = 0, nåværende = 1; do { System.out.println ( nåværende ); int neste = forrige + nåværende; forrige = nåværende; nåværende = neste; while ( nåværende < 1000 ) ; IN105-javabasics-46

47 Metoder En metode er en navngitt samling Java-setninger som kan aktiviseres fra andre metoder (eller seg selv - ) class Velkommen2 { public static void main ( String [] args) { new Velkommen2 (); metoden main Velkommen2 () { skriv_ut(); metoden skriv_ut void skriv_ut() { System.out.println ( "Velkommen til IN105"); IN105-javabasics-47

48 Hvorfor bruker vi metoder? Vi unngår duplisering av kode og muliggjør gjenbruk Programmene blir mer forståelige og lettere å endre og rette når separate oppgaver er fordelt på ulike metoder som hver har et beskrivende metodenavn For å lage verktøy (metodebibliotek) Vi har ikke noe annet valg all programkode som gjør noe ligger i en eller annen metode Java har et STORT bibliotek av ferdige metoder IN105-javabasics-48

49 Metoder med parametre class Velkommen3 { public static void main ( String [] args) { new Velkommen3 (); aktuell parameter Velkommen3 () { skriv_ut( "IN105" ); formell parameter skriv_ut( "Java" ); void skriv_ut(string tekst) { System.out.println ( "Velkommen til " + tekst); kall på metoden println fra Java-biblioteket De aktuelle parametrene i metodekallet er uttrykk (regnestykker) De formelle parametrene er en kommaseparert liste med type og navn de blir lokale variable i metoden En aktuell parameter må ha en verdi av samme type som den tilsvarende formelle parameter den blir startverdi for den formelle parameteren IN105-javabasics-49

50 Formell parameter endres i metoden class Velkommen5 { public static void main ( String [] args) { new Velkommen5 (); Velkommen5 () { String kurs = "IN105"; skriv_ut( kurs ); System.out.println ( "Kurs = " + kurs ); void skriv_ut(string tekst) { tekst = "Sophus Lies auditorium"; System.out.println ( "Velkommen til " + tekst); Endring av den formelle parameteren i metoden får ikke konsekvenser for den aktuelle parameteren. IN105-javabasics-50

51 Metoder med returverdi class Toplussto2 { public static void main (String [ ] args) { new Toplussto2 (); Toplussto2 (){ int etheltall = 2; System.out.println("Etheltall = " + etheltall); etheltall = leggtilto(etheltall); System.out.println("Etheltall + 2 er " + etheltall); int leggtilto (int param) { return param + 2; En metode kan returnere en verdi I så fall erstattes void i metodedeklarasjonen med typen som returneres Metoden må inneholde en return-setning som gir selve returverdien IN105-javabasics-51

52 Veksling4 med metoden veksle Veksling4(){ double beløp=78.77, ørebeløp; int helekroner; System.out.println("Vekslepenger "+beløp+" kroner"); // Utelatt splitt i kr og øre; øreavrunding helekroner = veksle(helekroner, 20); helekroner = veksle(helekroner, 10); helekroner = veksle(helekroner, 5); helekroner = veksle(helekroner, 1); System.out.println("rest " + ørebeløp); int veksle (int kroner, int mynt) { System.out.println(mynt+"-kroner\t: " + kroner/mynt); return kroner%mynt; IN105-javabasics-52

53 Tabeller (Arrays) En tabell (en array) er en liste av variabler (tabellelementer) av samme type Hver enkelt variabel i listen refereres til ved hjelp av en indeks : liste[indeks] Den første variablen har indeksverdi 0 (Java-spesialitet!) 11 Tabeller har utallige anvendelser ofte mye mer rasjonelt å bruke en tabell enn å gi hver enkelt variabel et eget navn Se JavaGently kap 6.1 IN105-javabasics-53

54 Etablering av tabeller Etablering av en tabell skjer i tre trinn: 1. Deklarer en variabel som kan inneholde en peker (referanse) til en tabell 2. Opprett en tom tabell og tilordn tabellpekeren til variablen 3. Fyll om ønskelig tabellen med verdier Eksempel etablere en tabell (her med hele tall): int [ ] myntvalører; int kan erstattes med andre typer myntvalører = new int[4]; myntvalører[0]=20; myntvalører[1]=10; myntvalører[2]=5; myntvalører[3]=1; Detaljert gjennomgang på neste foil! IN105-javabasics-54

55 Eksempel på etablering av tabell Trinn 1 int [ ] myntvalører; navn: myntvalører null type: int[ ] Trinn 2 myntvalører = new int[4]; myntvalører Trinn 3 myntvalører[0]=20; myntvalører[1]=10; myntvalører[2]=5; myntvalører[3]=1; myntvalører IN105-javabasics-55

56 Trinn 1 + trinn 2 Trinnene kan slås sammen int [ ] myntvalører = new int[4]; myntvalører[0]=20; myntvalører[1]=10; myntvalører[2]=5; myntvalører[3]=1; Trinn 1 + trinn 2 + trinn 3 int [ ] myntvalører = {20, 10, 5, 1; Array-konstant kan bare brukes i initialisering Merk at det finnes en alternativ syntaks for type [ ] variabelnavn: type variabelnavn [ ]. JavaGently bruker den siste varianten IN105-javabasics-56

57 Den klassiske programmeringsfeil er å referere til tabellelementer som ikke eksisterer Eksempel: int [ ] myntvalører = {20, 10, 5, 1; int index = 4; mynt; mynt = myntvalører[index]; Java vil i slike tilfeller returnere et unntak ArrayIndexOutOfBoundException (mange andre programmeringsspråk gjør ikke det!) Alle tabeller har en spesiell egenskap length bruk den for å unngå indekseringsfeil: Korrekte indeksverdier er 0,, length-1 int[ ] myntvalører = {20, 10, 5, 1; int myntvalørlengde = myntvalører.length; int index, mynt; if(index < 0 index >= myntvalørlengde) System.out.println( Noe er galt + index) else mynt = myntvalører[index]; IN105-javabasics-57

58 Tabeller og løkker Tabeller brukes svært ofte i kombinasjon med løkker: int [ ] myntvalører = {20, 10, 5, 1; System.out.println( Myntvalørene er ); for (int i = 0; i < myntvalører.length; i ++) System.out.println(myntvalører[i] + -krone ); Viktig program-mønster! Legg merke til at vi lar indeksen starte på 0 og løpe opp til length-1. Grunnen er at tabellelementene er indeksert fra 0, mens length gir antall elementer. IN105-javabasics-58

59 Et litt større eksempel class ArrayEx { public static void main(string[ ] args){ new ArrayEx(); tabell ArrayEx(){ int [ ] tabell; tabell = new int [10]; System.out.println("Tallene i tabellen er:"); for (int ind = 0; ind < 10; ind++) { tabell[ind] = (ind + 3) * ind + 17; System.out.println(tabell[ind]); ind System.out.println("I omvendt rekkefølge:"); for (int ind = 9; ind >= 0 ; ind --){ System.out.println(tabell[ind]); Institutt for informatikk Gerhard Stein Gjessing Skagestein/Knut Hegna IN105-javabasics-59

60 Veksling5 med tabell og for-løkke class Veksling5 { public static void main(string[] args){ new Veksling5(); Veksling5 (){ double beløp = 78.77, ørebeløp; int helekroner; int[ ] myntverdier = {20, 10, 5, 1; // utelatt splitt i kr og øre og øreavrunding for (int i=0; i<myntverdier.length; i++){ System.out.println(myntverdier[i]+"-kroner\t: "+ helekroner/myntverdier[i]); helekroner=helekroner%myntverdier[i]; System.out.println("rest " + ørebeløp); IN105-javabasics-60

61 Tabeller og metoder Tabeller kan brukes som aktuelle parametre til metoder En tabell kan brukes som returverdi fra metoder nyttig hvis du skal returnere flere verdier av samme type Egentlig er det pekeren (referansen) som overføres dermed blir det enkelt å håndtere tabellens lengde Tabell-lengden defineres av leverandøren og leses av av mottakeren se eksempel på neste foil IN105-javabasics-61

62 Veksling6 med tabeller som parametre public class Veksling6{ public static void main(string[] args){ new Veksling6(); Veksling6(){ double beløp=78.77, ørebeløp; int helekroner; int[] myntverdier = {20, 10, 5, 1; System.out.println("Vekslepenger "+ beløp + " kroner"); int [ ] kronerogøre = delkronerogøre(beløp); veksle(kronerogøre[0], myntverdier); System.out.println("rest " + kronerogøre[1]/10.0); IN105-javabasics-62

63 Veksling6 (forts) int[ ] delkronerogøre(double beløp) { int[ ] kronerogøre = new int [2]; int helekroner; double ørebeløp; helekroner = (int) beløp; ørebeløp = beløp - helekroner; if (ørebeløp < 0.25) ørebeløp=0; else if(ørebeløp < 0.75) ørebeløp=0.50; else ørebeløp=1.0; System.out.println("øreavrunding " + (beløp - ørebeløp - helekroner)); if (ørebeløp==1.0){ørebeløp=0; helekroner++; kronerogøre[0] = helekroner; kronerogøre[1] = (int) (10 * ørebeløp); return kronerogøre; void veksle(int helekroner, int[ ] myntverdier) { int mynt; for (int i=0; i<myntverdier.length; i++) { System.out.println(myntverdier[i] + "- kroner \t:" + helekroner/myntverdier[i]); helekroner=helekroner%myntverdier[i]; IN105-javabasics-63

64 Metoden mains parameter public static void main (String [ ] args) void uttrykker at metoden main ikke returnerer noen verdi String [ ] args er metodens formelle parameter en tabell args med tekststrenger som elementer Metodens aktuelle parameter finner vi på kommandolinjen for kjøring av programmet: >java Klassenavn tekststreng0 tekststreng1. Eksempel: class Hallo { public static void main (String [ ] args) { System.out.println( Hallo, + args[0]); På kommandolinjen: >java Hallo Gerhard IN105-javabasics-64

65 Konvertering fra tekststrenger Vi kan nå lese parametre fra kommandolinjen, men som oftest må de konverteres fra tekststrenger til den typen vi trenger: o Fra tekststreng til heltall: int n = Integer.parseInt(args[indeks]); o Fra tekststreng til flytende tall: double d = new Double(args[indeks]).doubleValue( ); Dette ser kryptisk ut, men ta det som oppskrifter foreløpig! Vi har heller ikke tatt høyde for at parametre kan mangle eller at feilaktige parametre ikke kan la seg konvertere mer om det siden! IN105-javabasics-65

66 Veksling7 av beløp fra kommandolinjen public class Veksling7{ public static void main(string[] args){ if ( args.length >= 1){ new Veksling7(new Double(args[0]).doubleValue()); else System.out.println("Beløp mangler!"); Veksling7(double beløp){ double ørebeløp; int helekroner; int[] myntverdier = {20, 10, 5, 1; System.out.println("Vekslepenger "+beløp+ " kroner"); int [ ] kronerogøre = delkronerogøre(beløp); veksle(kronerogøre[0], myntverdier); System.out.println("rest " + kronerogøre[1]/10.0);... IN105-javabasics-66

67 Bruk av tabeller For å lagre predefinerte data (for eksempel myntvalører) For å lagre mellomresultater For å akkumulere i ulike elementer over tid For å håndtere en samling med data For å kunne overføre en samling med data til og fra metoder Det er ikke alltid nødvendig å bruke tabeller. Når data leses inn i et program kan de ofte skrives ut (for eksempel på fil) med en gang uten å bli mellomlagret i en tabell. Men skal det manipuleres mye med dataene er det hensiktsmessig å ta vare på dem i en tabell. Husk at en tabell ikke kan være av ubegrenset størrelse den ligger i primærlageret og noen megabyte er maksimum. Større mengder data må lagres på fil. Kompliserte datastrukturer på filer kalles databaser (IN114, IN212).. IN105-javabasics-67

68 Hvor setter jeg egentlig semikolon? Husk: Et uttrykk beregner en verdi Et semikolon etter et uttrykk gjør det om til en setning ved å fjerne verdien Derfor bør verdien først ha vært brukt til noe nyttig: o Tilordnet en variabel o Brukt som aktuell parameter o Inngå i if-else-konstruksjoner Altså: Sett semikolon etter tilordning, metodekall, variabeldeklarasjoner Sett ikke semikolon etter en ikke fullført setning som if, while osv. IN105-javabasics-68

69 Prosedyreorienterte programmeringsspråk Variabler, uttrykk Setninger, setningsblokker Tilordning (assignment) Kontrollflyt: o Setningssekvenser o Betinget utførelse o Løkker Dette er fellesgodset i alle prosedyreorienterte programmeringsspråk. Men Java er objektorientert! Så vi har bare sett begynnelsen Heng med! Metoder (prosedyrer, subrutiner) og kall av dem Strukturerte variable (tabeller, arrays) IN105-javabasics-69

2 Om statiske variable/konstanter og statiske metoder.

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.

Detaljer

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 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

Detaljer

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:

Detaljer

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon

Kort om meg. INF1000 Uke 2. Oversikt. Repetisjon - Introduksjon Kort om meg INF1000 Uke 2 Variable, enkle datatyper og tilordning Fredrik Sørensen Kontor: Rom 4311-NR, Informatikkbygget Brukernavn/e-post: fredrso@ifi.uio.no Utdanning: Dataingeniør, 2000 Cand.Scient,

Detaljer

INF 1000 høsten 2011 Uke september

INF 1000 høsten 2011 Uke september INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus 1 INF1000 undervisningen Forelesningene: Første

Detaljer

INF1000 undervisningen INF 1000 høsten 2011 Uke september

INF1000 undervisningen INF 1000 høsten 2011 Uke september INF1000 undervisningen INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Forelesningene: Første

Detaljer

Forelesning inf Java 4

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

Detaljer

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

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

Detaljer

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon

Oversikt. INF1000 Uke 2. Repetisjon - Program. Repetisjon - Introduksjon Oversikt INF1000 Uke 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning Uttrykk

Detaljer

13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER

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,

Detaljer

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

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

Detaljer

UNIVERSITETET I OSLO

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

Detaljer

INF1000 : Forelesning 4

INF1000 : Forelesning 4 INF1000 : Forelesning 4 Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk Universitetet

Detaljer

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4 Repetisjon: nesting av løkker Kort repetisjon av doble (nestede) løkker Mer om D-arrayer Introduksjon til D-arrayer Metoder Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk

Detaljer

Oversikt. Uke 2, INF 1000, 30 aug Variable, tilordninger og uttrykk. Repetisjon: Java programmering

Oversikt. Uke 2, INF 1000, 30 aug Variable, tilordninger og uttrykk. Repetisjon: Java programmering Oversikt Uke 2, INF 1000, 30 aug. 2005 - Variable, tilordninger og uttrykk. Institutt for Informatikk Universitet i Oslo Arne Maus 1 Litt repetisjon Hva er en variabel i et program Deklarasjoner og variabeltyper

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 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

Detaljer

Praktisk informasjon. I dag. Repetisjon: While-løkker. INF1000 (Uke 5) Mer om løkker, arrayer og metoder

Praktisk informasjon. I dag. Repetisjon: While-løkker. INF1000 (Uke 5) Mer om løkker, arrayer og metoder Praktisk informasjon INF (Uke 5) Mer om løkker, arrayer og metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Når disse timene er over har du lært nok til å løse oblig Frist.

Detaljer

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program Oversikt INF1000 Uke 1 time 2 Variable, enkle datatyper og tilordning Litt repetisjon Datamaskinen Programmeringsspråk Kompilering og kjøring av programmer Variabler, deklarasjoner og typer Tilordning

Detaljer

Programmeringsspråket C

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

Detaljer

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

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm Mer om easyio Mer om forgreninger Løkker 7. september 2004 Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo Java 4 1 Tre måter å lese fra terminal Først:

Detaljer

Praktisk informasjon. Repetisjon: While-løkker. I dag. INF1000 (Uke 5) Mer om løkker, arrayer og metoder. Oblig 2 er lagt ut

Praktisk informasjon. Repetisjon: While-løkker. I dag. INF1000 (Uke 5) Mer om løkker, arrayer og metoder. Oblig 2 er lagt ut Praktisk informasjon INF (Uke 5) Mer om løkker, arrayer og metoder Oblig er lagt ut Frist 8. februar Kan løses etter denne forelesningen Grunnkurs i programmering Institutt for Informatikk Universitetet

Detaljer

Forelesning inf Java 5

Forelesning inf Java 5 Ole Chr. Lingjærde 1 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen

Detaljer

Forelesning inf Java 5

Forelesning inf Java 5 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen til et Java-program

Detaljer

Kapittel 1 En oversikt over C-språket

Kapittel 1 En oversikt over C-språket Kapittel 1 En oversikt over C-språket RR 2015 1 Skal se på hvordan man En innføring i C Skriver data til skjermen Lese data fra tastaturet Benytter de grunnleggende datatypene Foretar enkle matematiske

Detaljer

Blokker og metoder INF1000 (Uke 6) Metoder

Blokker og metoder INF1000 (Uke 6) Metoder Blokker og metoder INF1000 (Uke 6) Metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Are Magnus Bruaset og Arild Waaler En blokk er en samling instruksjoner omgitt av krøllparenteser:

Detaljer

INF 1000 (uke 2) Variabler, tilordninger og uttrykk

INF 1000 (uke 2) Variabler, tilordninger og uttrykk INF 1000 (uke 2) Variabler, tilordninger og uttrykk Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset I dag skal vi se på Flere praktiske

Detaljer

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et eksempel Klasser

Detaljer

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler

Detaljer

Velkommen til. INF våren 2016

Velkommen til. INF våren 2016 Velkommen til INF1010 - våren 2016 Denne uken (onsdag og torsdag): Om INF1010 Java datastrukturer Klasser med parametre i Java Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 1 INF1010

Detaljer

INF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012

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

Detaljer

Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder

Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder INF1000 : Forelesning 4 Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk Universitetet

Detaljer

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011)

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag til oppgave 7, 8, og 9 mangler Klasser og objekter (kap. 8.1-8.14 i "Rett på Java" 3. utg.) NB! Legg merke til at disse

Detaljer

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler

Detaljer

for (int i=0; i<3; i++) { for (int j=0; j<5; j++) { System.out.print(i*j); System.out.println();

for (int i=0; i<3; i++) { for (int j=0; j<5; j++) { System.out.print(i*j); System.out.println(); Repetisjon: nesting av løkker Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk

Detaljer

Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo

Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Gaustadbekkdalen, januar 27 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår inne i primærlageret

Detaljer

Feilmeldinger, brukerinput og kontrollflyt

Feilmeldinger, brukerinput og kontrollflyt Feilmeldinger, brukerinput og kontrollflyt Skjønne hvordan et program presist utføres og forberede seg på håndtering av feil INF1000, uke2 Ragnhild Kobro Runde Programmeringskrøll Programmet vil ikke kjøre

Detaljer

INF1000: Forelesning 4. Mer om arrayer Metoder

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];

Detaljer

I dag skal vi se på. INF 1000 (uke 2) Variabler, tilordninger og uttrykk. Gruppene starter denne uken! Klart for første oblig

I dag skal vi se på. INF 1000 (uke 2) Variabler, tilordninger og uttrykk. Gruppene starter denne uken! Klart for første oblig INF 1000 (uke 2) Variabler, tilordninger og uttrykk Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo I dag skal vi se på Flere praktiske opplysninger Litt repetisjon Hva er en variabel

Detaljer

Litt mer om uttrykk: ++ og -- INF1000 : Forelesning 4. Oppgave. Blokker. 0 udefinert udefinert. Alternativ 2 Postfiks-operator

Litt mer om uttrykk: ++ og -- INF1000 : Forelesning 4. Oppgave. Blokker. 0 udefinert udefinert. Alternativ 2 Postfiks-operator Litt mer om uttrykk: ++ og -- INF : Forelesning Løkker og arrayer Mye og viktig stoff. Du MÅ løse oppgaver selv for å lære!. september 6 Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for

Detaljer

Enkle generiske klasser i Java

Enkle 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

Detaljer

INF1000: Forelesning 7. Konstruktører Static

INF1000: 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

Detaljer

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 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 =

Detaljer

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Tre måter å lese fra terminal.

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Tre måter å lese fra terminal. I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Repetisjon easyio Enkle if-setninger Mer om forgrening While-løkker Are Magnus

Detaljer

I dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger

I dag. Rep: Oppsummering - variabler. Rep: Datatyper. INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger I dag INF1000 (Uke 3) Mer om uttrykk, terminal I/O, forgreninger Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Litt repetisjon Mer om uttrykk Lesing og skriving til terminal Forgreninger

Detaljer

I dag skal vi se på. INF 1000 (uke 2) Variabler, tilordninger og uttrykk. Gruppene starter i dag! Klart for første oblig

I dag skal vi se på. INF 1000 (uke 2) Variabler, tilordninger og uttrykk. Gruppene starter i dag! Klart for første oblig INF 1000 (uke 2) Variabler, tilordninger og uttrykk Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo I dag skal vi se på Flere praktiske opplysninger Litt repetisjon Hva er en variabel

Detaljer

INF 1000 (uke 2) Variabler, tilordninger og uttrykk

INF 1000 (uke 2) Variabler, tilordninger og uttrykk INF 1000 (uke 2) Variabler, tilordninger og uttrykk Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B. Kristoffersen I dag skal vi se på Flere praktiske

Detaljer

Løsningsforslag ukeoppg. 3: sep (INF Høst 2011)

Løsningsforslag ukeoppg. 3: sep (INF Høst 2011) Løsningsforslag ukeoppg. 3: 7. - 13. sep (INF1000 - Høst 2011) Utskrift/ lesing med easyio, arrayer, løkker (kapittel 3-4 i læreboka, "Rett på Java" 3. utg.) NB! Legg merke til at disse er løsningsforslag.

Detaljer

TDT4100 Objektorientert programmering

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

Detaljer

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes.

Dagens tema. C-programmering. Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Dagens tema Dagens tema C-programmering Nøkkelen til å forstå C-programmering ligger i å forstå hvordan minnet brukes. Adresser og pekere Parametre Vektorer (array-er) Tekster (string-er) Hvordan ser minnet

Detaljer

INF1000 (Uke 4) Mer om forgreninger, While-løkker

INF1000 (Uke 4) Mer om forgreninger, While-løkker INF1000 (Uke 4) Mer om forgreninger, While-løkker Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B. Kristoffersen I dag Repetisjon easyio Enkle if-setninger

Detaljer

MER OM ARRAYER. INF1000: Forelesning 4. Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene:

MER OM ARRAYER. INF1000: Forelesning 4. Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene: 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];

Detaljer

Eksempel: Body Mass Index (BMI) Forelesning inf1000 - Java 3. Ferdig program (første del) Ferdig program (siste del)

Eksempel: Body Mass Index (BMI) Forelesning inf1000 - Java 3. Ferdig program (første del) Ferdig program (siste del) Forelesning inf1000 - Java 3 Eksempel: Body Mass Index (BMI) Tema: Mer om forgreninger Løkker Arrayer Litt om easyio Ole Christian Lingjærde, 5. september 2012 Ole Chr. Lingjærde Institutt for informatikk,

Detaljer

INF1000: Forelesning 7

INF1000: 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

Detaljer

Del 1 En oversikt over C-programmering

Del 1 En oversikt over C-programmering Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av

Detaljer

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Repetisjon. Mer om forgrening While-løkker

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Repetisjon. Mer om forgrening While-løkker I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Repetisjon easyio Enkle if-setninger Mer om forgrening While-løkker Are Magnus

Detaljer

Programmering Høst 2017

Programmering Høst 2017 Programmering Høst 2017 Tommy Abelsen Ingeniørfag - Data Innledning Dette er et dokument med litt informasjon og eksempler om kontrollstrukturer, samt oppgaver til forskjellige kontrollstrukturer. Spør

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 10. juni 2009 Tid for eksamen: 9.00 12.00 Oppgavesettet

Detaljer

Løse reelle problemer

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)

Detaljer

INF1000 (Uke 6) Mer om metoder, tekster

INF1000 (Uke 6) Mer om metoder, tekster INF1000 (Uke 6) Mer om metoder, tekster Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Rep: Metoder Java-programmene så langt

Detaljer

UNIVERSITETET I OSLO

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å

Detaljer

Introduksjon til objektorientert programmering

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

Detaljer

Rep: Metoder. INF1000 (Uke 6) Mer om metoder, tekster. Rep: Metoder. 3 typer variable: Klassevariable. Java-programmene så langt i kurset:

Rep: Metoder. INF1000 (Uke 6) Mer om metoder, tekster. Rep: Metoder. 3 typer variable: Klassevariable. Java-programmene så langt i kurset: INF1000 (Uke 6) Mer om metoder, tekster Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Rep: Metoder Java-programmene så langt i kurset: består av en enkelt klasse i klassen kan

Detaljer

Løsningsforslag ukeoppg. 2: 31. aug - 6. sep (INF Høst 2011)

Løsningsforslag ukeoppg. 2: 31. aug - 6. sep (INF Høst 2011) Løsningsforslag ukeoppg. 2: 31. aug - 6. sep (INF1000 - Høst 2011) Variabler, uttrykk, fogreninger (if-else) (kapittel 2 og 4.1-4.2 i læreboka, "Rett på Java" 3. utg.) Mål Få trening i teorien du trenger

Detaljer

INF1000 Metoder. Marit Nybakken marnybak@ifi.uio.no 16. februar 2004

INF1000 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

Detaljer

Kapittel 1. Datamaskiner og programmeringsspråk. 1.1 Programmering

Kapittel 1. Datamaskiner og programmeringsspråk. 1.1 Programmering Kapittel 1 Datamaskiner og programmeringsspråk Dette kapitlet er en kort introduksjon til programmering. Vi vil se på hvordan man skriver, bygger og kjører programmer, samt illustrere noen sentrale programmeringsbegrep

Detaljer

IN1010 våren januar. Objektorientering i Java

IN1010 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

Detaljer

INF1000 : Forelesning 3

INF1000 : Forelesning 3 INF1000 : Forelesning 3 Programeksempler Løkker Arrayer Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk Universitetet i Oslo 1 Body Mass Index (BMI) Vi skal lage et program

Detaljer

Oversikt. Hva er programmering & Java forkurset til INF1000. Hva er en datamaskin. Arne Maus Inst for Informatikk Univ. i Oslo

Oversikt. Hva er programmering & Java forkurset til INF1000. Hva er en datamaskin. Arne Maus Inst for Informatikk Univ. i Oslo Oversikt Hva er programmering & Java forkurset til INF1000 Arne Maus Inst for Informatikk Univ i Oslo I) Hva er en datamaskin Hvordan får vi den til å gjøre det vi vil Et program er en oppskrift til maskinen

Detaljer

Metoder med parametre, løkker og arrayer

Metoder med parametre, løkker og arrayer Metoder med parametre, løkker og arrayer Løse problemer med programmering INF1000, uke3 Ragnhild Kobro Runde METODER MED PARAMETRE Statiske void-metoder med parametre Den typen metoder vi så på forrige

Detaljer

Repetisjon: operatorene ++ og -- Java 5. Nøtt. Oppgave 1 (fra forrige gang) 0 udefinert udefinert. Alternativ 1 Prefiks-operator

Repetisjon: operatorene ++ og -- Java 5. Nøtt. Oppgave 1 (fra forrige gang) 0 udefinert udefinert. Alternativ 1 Prefiks-operator Litt mer om løkker Arrayer le Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i slo Java Repetisjon: operatorene ++ og -- Instruksjon i = i + i = i - Alternativ Prefiks-operator

Detaljer

INF1000 : Forelesning 1 (del 2)

INF1000 : Forelesning 1 (del 2) INF1000 : Forelesning 1 (del 2) Java Variable og tilordninger Heltall, desimaltall og sannhetsverdier Utskrift på skjerm Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet

Detaljer

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen Forkurs INF1010 Dag 1 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Tuva Kristine Thoresen (tuvakt@ifi.uio.no) Institutt for Informatikk, 6. januar 2014 Forkurs INF1010 - dag 1 Hello, World! Typer Input/output

Detaljer

Body Mass Index (BMI) INF1000 : Forelesning 3. Ferdig program (forts.) Ferdig program

Body Mass Index (BMI) INF1000 : Forelesning 3. Ferdig program (forts.) Ferdig program Body Mass Index (BMI) Programeksempler Løkker Arrayer Ole Christian Lingjærde Biomedisinsk forskningsgruppe Institutt for informatikk Universitetet i Oslo INF1000 : Forelesning 3 1 Vi skal lage et program

Detaljer

Grunnkurs i objektorientert programmering Hjelpehefte for studenter som tar INF101,

Grunnkurs i objektorientert programmering Hjelpehefte for studenter som tar INF101, Grunnkurs i objektorientert programmering Hjelpehefte for studenter som tar INF101, Institutt for informatikk, Universitetet i Oslo Oslo, 15. august 2001 2 Innhold Forord... 5 Kapittel 1 - Hva er programmering?...

Detaljer

Innlesning fra tastatur med easyio. INF1000 høst 2010. Vi må først skrive i toppen av programmet: import easyio.*;

Innlesning fra tastatur med easyio. INF1000 høst 2010. Vi må først skrive i toppen av programmet: import easyio.*; Innlesning fra tastatur med easyio INF1000 høst 2010 Forelesning 2: Innlesning fra terminal Boolean-variable if-setninger Løkker Litt mer om heltall: divisjon og modulo Vi må først skrive i toppen av programmet:

Detaljer

Seminaroppgaver IN1010, uke 2

Seminaroppgaver IN1010, uke 2 Seminaroppgaver IN1010, uke 2 1.a: Skriv en klasse HeiVerden.java. Klassen skal inneholde en main- metode (se på notatet fra tidligere). Inne i main -metoden skal programmet først la brukeren oppgi en

Detaljer

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.

Dagens 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

Detaljer

Eksamensrelevant repetisjonsstoff. Deklarasjoner og variabeltyper. Konstanter

Eksamensrelevant repetisjonsstoff. Deklarasjoner og variabeltyper. Konstanter Eksamensrelevant repetisjonsstoff Uke 13 Litt repetisjon 22 november 2005, Arild Waaler Inst. for informatikk, UiO datatyper og konvertering mellom datatyper returtyper til metoder løkkekonstruksjoner:

Detaljer

Hva er en metode. Hva skjer når vi kaller en metode

Hva er en metode. Hva skjer når vi kaller en metode Hva er en metode Uke 9 - Repetisjon av metoder, klasser og objekter Innkapsling: private og public Statisk programmering vs. programmering med objeker 18 okt. 2005, Arild Waaler Inst. for informatikk,

Detaljer

INF1010 våren januar. Objektorientering i Java

INF1010 våren januar. Objektorientering i Java INF1010 våren 2017 25. januar Objektorientering i Java Om enhetstesting (Repetisjon av INF1000 og lær deg Java for INF1001 og INF1100) Stein Gjessing Hva er objektorientert programmering? F.eks: En sort

Detaljer

Java. INF1000 : Forelesning 2. Ulike varianter for ulike behov. Java Standard Edition (Java SE) Java:

Java. INF1000 : Forelesning 2. Ulike varianter for ulike behov. Java Standard Edition (Java SE) Java: Variable og tilordninger Heltall, desimaltall og sannhetsverdier Kompilering og kjøring Utskrift på skjerm Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo

Detaljer

Repetisjon INF 1000 våren 2006

Repetisjon INF 1000 våren 2006 Repetisjon INF 1000 våren 2006 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B. Kristoffersen Mål for INF1000 Gi grunnleggende forståelse av noen sentrale

Detaljer

Kapittel 1: Datamaskiner og programmeringsspråk

Kapittel 1: Datamaskiner og programmeringsspråk Kapittel 1: Datamaskiner og programmeringsspråk 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

Detaljer

Java-kurs. Andreas Knudsen <andreakn@idi.ntnu.no> Nils Grimsmo <nilsgri@idi.ntnu.no> 9th October 2003

Java-kurs. Andreas Knudsen <andreakn@idi.ntnu.no> Nils Grimsmo <nilsgri@idi.ntnu.no> 9th October 2003 Java-kurs Andreas Knudsen Nils Grimsmo 9th October 2003 1 (Dette blir lagt ut på nett, du trenger ikke ta notater.) 1 Motivasjon For de som ikke går å data:

Detaljer

Programmering i C++ Løsningsforslag Eksamen høsten 2005

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

Detaljer

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04 INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a

Detaljer

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04 INF1000 (Uke 15) Eksamen V 04 Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset 22-05-2006 2 22-05-2006 3 22-05-2006 4 Oppgave 1a

Detaljer

Jentetreff INF1000 Debugging i Java

Jentetreff INF1000 Debugging i Java Jentetreff INF1000 Debugging i Java Ingrid Grønlie Guren ingridgg@student.matnat.uio.no 11. november 2013 Kort om feilmeldinger i Java Java har to ulike type feilmeldinger som man kan få når man skriver

Detaljer

Oblig 4Hybelhus litt mer tips enn i oppgaven

Oblig 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,

Detaljer

INF1000 Behandling av tekster

INF1000 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

Detaljer

Lese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder:

Lese fra fil. INF1000 : Forelesning 5. Eksempel. De vanligste lesemetodene. Metoder: Lese fra fil Filbehandling Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo INF1000 : Forelesning 5 Vi må først importere pakken easyio Vi åpner

Detaljer

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14.

Forkurs INF1010. Dag 2. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 14. Forkurs INF1010 Dag 2 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Gard Inge Rosvold (gardir@ifi.uio.no) Institutt for Informatikk, 14. januar 2016 Forkurs INF1010 - dag 2 Feilmeldinger 2 Forkurs INF1010

Detaljer

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015 Beskrivelse av programmeringsspråket Compila15 INF5110 - Kompilatorteknikk Våren 2015 Her beskrives syntaksen og den statiske semantikken (hva som skal sjekkes av kompilatoren) til språket Compila15. Den

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET 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

Detaljer

Eksempel: Body Mass Index (BMI)

Eksempel: Body Mass Index (BMI) Ole Chr. Lingjærde 1 Forelesning inf1000 - Java 3 Tema: Forgreninger Løkker Arrayer Ole Christian Lingjærde, 5. september 2013 1 Eksempel: Body Mass Index (BMI) Vi skal lage et program som beregner BMI

Detaljer

INF1000 (Uke 6) Mer om metoder, tekster

INF1000 (Uke 6) Mer om metoder, tekster INF1000 (Uke 6) Mer om metoder, tekster Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Orakeltjeneste på Abel Hjelp til Obligatorisk

Detaljer

Inf1000 uke 5 18.sept. 2007

Inf1000 uke 5 18.sept. 2007 En klasse er noe - en metode gjør noe Inf1000 uke 5 18.sept. 2007 Metoder Arne Maus, Gruppen for objektorientering, modellering og språk (OMS) Inst. for informatikk, Univ i Oslo 1 Metoder: Vi deler opp

Detaljer

UNIVERSITETET I OSLO

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

Detaljer

Orakeltjeneste på Abel Hjelp til Obligatorisk oppgave 2. INF1000 (Uke 6) Mer om metoder, tekster. Rep: Metoder. Rep: Metoder

Orakeltjeneste på Abel Hjelp til Obligatorisk oppgave 2. INF1000 (Uke 6) Mer om metoder, tekster. Rep: Metoder. Rep: Metoder INF1000 (Uke 6) Mer om metoder, tekster Orakeltjeneste på Abel Hjelp til Obligatorisk oppgave 2 Tirsdag 22. feb.: 10-14 Onsdag 23. feb.: 14 19 Grunnkurs i programmering Institutt for Informatikk Universitetet

Detaljer

INF 1000 høsten 2011 Uke 3 6. september

INF 1000 høsten 2011 Uke 3 6. september INF 1000 høsten 2011 Uke 3 6. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus 1 Innhold uke 3 Rep: variable og uttrykk Konvertering

Detaljer