Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

Relevanta dokument
Objektorienterad Programmering (TDDC77)

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Objektorienterad Programmering (TDDC77)

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

TDDC77 Objektorienterad Programmering

Objektorienterad Programmering (TDDC77)

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Objektorienterad Programmering (TDDC77)

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy cards. Slingor

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

Objektorienterad Programmering (TDDC77)

TDDC77 Objektorienterad Programmering

Föreläsning 3-4 Innehåll

Objektorienterad Programmering (TDDC77)

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

Outline. Objektorienterad Programmering (TDDC77) Laborationsserie del två. Vad händer under HT2. Introduktion HT2 UML.

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Instuderingsfrågor, del D

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Objektorienterad Programmering (TDDC77)

Att skriva till och läsa från terminalfönstret

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

Objektorienterad Programmering (TDDC77)

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Outline. Objektorienterad Programmering (TDDC77) Abstrakta klasser. Abstrakta metoder. Abstrakta klasser. Gränssnitt. Uppräkningar (enum) Ahmed Rezine

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

Föreläsning 6: Metoder och fält (arrays)

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Outline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen

Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

Skillnader mellan Python och Java

OOP Objekt-orienterad programmering

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Anteckningar 1: Grundläggande saker

Objektorienterad Programmering (TDDC77)

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output

Föreläsning 2, vecka 8: Repetition

Programmering för språkteknologer I, VT2012. Rum

Typkonvertering. Java versus C

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

PROGRAMMERING-Java Omtentamina

Objektorienterad Programmering (TDDC77)

TDDC77 Objektorienterad Programmering

Outline. Objektorienterad Programmering (TDDC77) Kursinfo. Outline. Hemsida. Organization. Ahmed Rezine Examination. Webreg.

JAVAUTVECKLING LEKTION 4

Objektorienterad Programmering (TDDC77)

Tentamen ID1004 Objektorienterad programmering April 7, 2015

Kompilera och exekvera Javakod

Objektorienterad programmering i Java

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

TENTAMEN OOP

OOP Objekt-orienterad programmering

Föreläsning 1 & 2 INTRODUKTION

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

DELPROV 1 I DATAVETENSKAP

Institutionen för TENTAMEN CTH VT-15 Datavetenskap TDA540. Tentamen för TDA540 Objektorienterad programmering

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Föreläsning REPETITION & EXTENTA

Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Outline. Objektorienterad Programmering (TDDC77) Lösningen heter Collection. Collection gränsnittet. Collection. Iterable. Ahmed Rezine.

Objekt som argument. Föreläsning 7-8 Innehåll. Hur komma åt den andra kvadratens attribut? Anropa metod på objektet självt

Outline. Objektorienterad Programmering (TDDC77) Åsidosättning. Signatur. Åsidosättning. Abstrakta klasser. Ahmed Rezine.

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Del A (obligatorisk för alla)

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Föreläsning 7-8 Innehåll

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

OOP Tentamen

Programmering för språkteknologer II, HT2011. Rum

TENTAMEN OOP

Programmeringsteknik och Matlab. Dagens program. Viktiga datum. Repetitionsexempel. Repetition av if/else, for, while och Scanner

Chapter 4: Writing Classes/ Att skriva egna klasser.

Objektorienterad programmering i Java

Objektorientering: Lagring, räckvidd och livstid

Föreläsnings 9 - Exceptions, I/O

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Föreläsning 1 & 2 INTRODUKTION

Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada

Transkript:

Outline Objektorienterad Programmering (TDDC77) Föreläsning V: arrayer, metoder, räckvidd (scope), eclipse Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Vända om inlästa värden Vända om inlästa värden /* Reverse. java * Programmet demonstrera hur man kan läsa * in verden och skriva ut de i omv änd ordning class Reverse { /* Be anv ä ndaren om två tal och skriver ut de * i omv änd ordning public static void main ( String [] args ){ Scanner in = new Scanner ( System.in ); int x0, x1, x2, x3; x0 = in. nextint (); x1 = in. nextint (); x2 = in. nextint (); x3 = in. nextint (); System.out. print ("Du matade in:"); System.out. print (" "+ x3 ); System.out. print (" "+ x2 ); System.out. print (" "+ x1 ); System.out. print (" "+ x0 ); System.out. println (); I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler I Kallas Array på engleska, ibland Fält på svenska I En jätte bra tutorial http://docs.oracle.com/javase/ tutorial/java/nutsandbolts/arrays.html int [] numbers = new int [4]; eller... int [] numbers ; numbers = new int [4]; eller... int [] numbers = {3,5,8,13; System.out. println ("Första elementet är: " + numbers [0]); System.out. println (" Sista elementet är: " + numbers [ numbers. Length - 1]); float [] ratios = new float [12]; String [] names = new String [ MAX ]; boolean [] flags = new boolean [ numberofflags ]; String [] names = {" TDDC77 ", " TDDD39 ", " TDDC75 ";

Att vända om 400 inlästa värden Att vända om 400 inlästa värden med For slingan int nrofints = 400; int [] vä rden = new int [ nrofints ]; int pos = 0; while ( pos < nrofints ){ System. out. println (" Mata in ett heltal : "); vä rden [ pos ] = in. nextint (); pos = pos + 1; pos = 399; while ( pos >= 0){ System. out. println (vä rden [ pos ] + " "); pos = pos - 1; int nrofints = 400; int [] vaerden = new int [ nrofints ]; for ( int pos =0; pos < nrofints ; pos ++){ System. out. println (" Mata in ett heltal : "); vaerden [ pos ] = in. nextint (); for ( int pos = nrofints -1; pos >=0; pos - -){ System. out. println ( vaerden [ pos ] + " "); Outline I En bit kod med ett eget namn I Kan anropas flera gånger från olika delar av programmet I När de körts färdigt fortsätter programmet där man var innan

Att skapa en metod Medelvärdet public static int nextint(){... public static void println(){... public static int nextint(){... public static void println(string s){... får ett heltal i retur får inte något i retur alls använder inte några parametrar kräver en String som parameter I Skriv ett program som ska fråga hur många tal som ska läsas: godtyckligt många (fast minst ett tal) mella 0 och maxvärdet för int I Gör inläsningar till en array I Beräkna medelvärdet; summan av talen antas rymmas i en long I Skriv ut resultatet som bör vara av flyttalstyp /* Monolitisk. java * Programmet illustrerar hur man kan skriva ett monolitisk * kod ist ä llet för att brytta ner problemet i mindre bittar. class Monolitisk { /* Läser in antalet element, sen läser in själva elementerna, * rä kna upp medelv ä rdet och skriver ut den. int size ; // lä ser in ett heltal som är minst 1 System.out. print (" Enter an int that is larger or equal to 1: "); size=scan. nextint (); while ( size < 1); int [] numbers = new int [ size ]; { // skriver om varje gång jag vill lä ser in ett heltal?? System.out. print (" Enter an int that is larger or equal to 0: "); numbers [k]=scan. nextint (); while ( numbers [k] < 0); long sum = 0; for (int p =0; p < numbers. length ; p ++) sum = sum + numbers [p]; System.out. println ("The average value is: " + (( double )sum / size )); /* NerBryten. java * Illustrerar hur programmet Monolitisk. java kan brytas ner public // Få en int array som parameter och returnera summan av dess element static public long computesum ( int [] nums ){ for (int p =0; p< nums. length ; p ++) result += nums [p]; //Få en int array som parameter och returnerar medelv ä rdet av dess element static public double computeaverage ( int [] nums ){ return ( double ) computesum (nums )/ nums. length ; //lä ser in ett heltal som är större eller lik med parametern " min " static public int readintlargerorequalto ( int minimal ){ System.out. print (" Enter an int that is larger or equal to " + minimal + ": "); while (result <minimal ); //läser in antalet element och deras värden, skriver upp deras medelvärde int [] numbers = new int [ readintlargerorequalto (1)];

Outline /* NerBryten. java * Illustrerar hur programmet Monolitisk. java kan brytas ner public // Få en int array som parameter och returnera summan av dess element static public long computesum ( int [] nums ){ for (int p =0; p< nums. length ; p ++) result += nums [p]; //Få en int array som parameter och returnerar medelv ä rdet av dess element static public double computeaverage ( int [] nums ){ return ( double ) computesum (nums )/ nums. length ; //lä ser in ett heltal som är större eller lik med parametern " min " static public int readintlargerorequalto ( int minimal ){ System.out. print (" Enter an int that is larger or equal to " + minimal + ": "); while (result <minimal ); //läser in antalet element och deras värden, skriver upp deras medelvärde int [] numbers = new int [ readintlargerorequalto (1)]; /*... static public long computesum ( int [] nums ){ for (int p =0; p< nums. length ; p ++) result += nums [p]; static public double computeaverage ( int [] nums ){ return ( double ) computesum (nums )/ nums. length ; while (result <min ); /*... public static int [] numbers ; // ny variabel som alla kan "se" static public long computesum (/* int [] nums ){ for (int p =0; p< numbers. length ; p ++) result += numbers [p]; static public double computeaverage (/* int [] nums ){ return ( double ) computesum ( numbers )/ numbers. length ; while (result <min ); int numbers = new int [ readintlargerorequalto (1)]; numbers = new int [ readintlargerorequalto (1)];

/*... public static int [] numbers ; // Klass variabel numbers static public long computesum (/* int [] nums ){ for (int p =0; p< numbers. length ; p ++) result += numbers [p]; //lä ser från klass variabeln numbers static public double computeaverage (/* int [] nums ){ return ( double ) computesum ( numbers )/ numbers. length ; //lä ser från klass variabeln numbers while (result <min ); /*... public static int [] numbers ; // Klass variabel numbers static public long computesum (/* int [] nums ){ // lokal variabel result for (int p =0; p< numbers. length ; p ++) result += numbers [p]; //lä ser från klass variabeln numbers static public double computeaverage (/* int [] nums ){ return ( double ) computesum ( numbers )/ numbers. length ; //lä ser från klass variabeln numbers // lokal variabel scan // lokal variabel result while (result <min ); numbers = new int [ readintlargerorequalto (1)]; // tilldela ett värde till klass variabeln numbers = new int [ readintlargerorequalto (1)]; // tilldela ett värde till klass variabeln Vad blir resultatet? Nu då? /* SkuggningLokalt. java * Programmet illustrerar hur lokala variabler * kan skugga klass variabler. class SkuggningLokalt { public static int a = 6; /* SkuggningParam. java * Programmet illustrerar hur parametrar * kan skugga klass variabler. class SkuggningParam { public static int a = 6; public static int addition ( int c){ int a = 2; return a + c; public static int addition ( int a){ return a + b; public static void main ( String [] args ){ a = addition (b); System. out. println (a); public static void main ( String [] args ){ a = addition (b); System. out. println (a); public static int b = 5; public static int b = 5;

Outline I är en Integrated Development Environement (IDE) I Är helt gratis I Till alla operativsystem I finns i flera varianter för olika språk/tillämpningar I Sköter organisationen av filer, editering av filer, kompilering, exekvering och felsökning Hemma Starta I Starta (på universitetet med kommandot eclipse&) I http://eclipse.org I Klicka på Download I Välj IDE for Java Developers I vill att du ska välja workspace, välj en mapp som alltid är tillgänglig och som kan användas hela kursen. Här kommer alla dina projekt och filer att sparas I Om du starta fe för första gången får du upp en välkomstskärm. Klicka på den böjda pilen till höger för att bli av med den I Du bör nu ha igång med sisådär fyra delfönster

Översikt Skriv ut array I Till vänster bör du se Package Explorer. Här ser du dina olika projekt, och dess filer (tom första gången) I I mitten ligger Kodfönstret I Till höger ligger Outline här syns en översikt över dina funktioner och globala variabler I Längst ner finns en mängd tabbar, bland andra Problems för felmeddelanden om din kod och Console där in-/utmatning till/från programmet sker när du kör det I Skriv en metod printarray(int[] list) som givet en array av heltal, list, skriver ut dess element separerade med kommatecken I Skriv en likadan för flyttal och strängar