Föreläsning 8 Flerdimensionella fält ArrayList enum switch-satsen
|
|
- Hugo Marcus Andersson
- för 6 år sedan
- Visningar:
Transkript
1 Föreläsning 8 Flerdimensionella fält ArrayList enum switch-satsen
2 Tvådimensionella fält Tvådimensionella fält är fält av fält. int[][] tabell = new int[3][4]; tabell
3 Tvådimensionella fält Istället för att skapa ett tvådimensionellt fält med new kan fältet skapas genom att initiera värden till fältet vid deklarationen int[][] tabell = {{12, 34, 71, 9}, {53, 43, 33, 68}, {29, 1, 3, 42}}; Eftersom ett tvådimensionellt fält är ett fält med referenser till ett endimensionellt fält, kan raderna vara olika långa int[][] tabell = {{12, 34, 71, 9}, {53, 43, 33}, {29, 1}};
4 Tvådimensionella fält int[][] tabell = {{12, 34, 71, 9}, {53, 43, 33}, {29, 1}}; tabell[].length ger 4 tabell[1].length ger 3 tabell[2].length ger 2 Arrays.sort(tabell[]) sorterar rad i tabell Arrays.sort(tabell[1]) sorterar rad 1 i tabell Arrays.sort(tabell[2]) sorterar rad 2 i tabell
5 Problemexempel Skriv ett program som läser in en NxN matris, samt avgör och skriver ut huruvida matrisen är symmetrisk eller inte. Matrisens gradtal ges som indata. För en symmetrisk matris A gäller att a ij = a ji för alla i och j Analys: Indata: Ett gradtal samt en kvadratiskt matris med detta gradtal. Utdata: Utskrift av huruvida den inlästa matrisen är symmetrisk eller inte. Exempel: Matrisen ger utskriften MATRISEN ÄR SYMMETRISK, medan matrisen ger utskriften MATRISEN ÄR INTE SYMMETRISK, medan matrisen
6 Design: Diskussion: När vi skall kontrollera om matrisen är symmetrisk utgår vi från att så är fallet. För att handha denna kunskap sätter vi en boolsk variabel, som vi kan kalla okey till värdet true. Sedan genomlöper vi matrisen och om vi då påträffar något element a ij för vilket det gäller att a ij a ji har vi en icke-symmetrisk matris. Detta kommer vi ihåg genom att sätta okey till värdet false. Algoritm: 1. Läs gradtalet n 2. Läs matrisen A 3. okey = true; 4. För varje element a ij i matrisen A 4.1. if (a ij a ji ) okey = false; 5. if okey Skriv ut Matrisen är symmetrisk.. else Skriv ut Matrisen är INTE symmetrisk.. Datarepresentation: A är av datatypen double[][].
7 Implementation: import javax.swing.*; public class Symmetric { public static void main(string[] args) { String input = JOptionPane.showInputDialog("Ange matrisens gradtal: "); int size = Integer.parseInt(input); double[][] matrix = readmatrix(size); if (issymmetric(matrix)) JOptionPane.showMessageDialog(null, "Matrisen är symetrisk!"); else JOptionPane.showMessageDialog(null, "Matrisen är INTE symetrisk!"); } // main
8 Implementation: fortsättning public static double[][] readmatrix(int size) { double[][] thematrix = new double[size][size]; for (int row = ; row < size; row = row + 1) { for (int col = ; col < size; col = col + 1) { String input = JOptionPane.showInputDialog("Ge element (" + row + ", " + col + ")"); thematrix[row][col] = Double.parseDouble(input); } } return thematrix; } // readmatrix public static boolean issymmetric(double[][] matrix) { boolean okay = true; for (int row = ; row < matrix.length; row = row + 1) for (int col = ; col < matrix[row].length; col = col + 1) if (matrix[row][col]!= matrix[col][row]) okay = false; return okay; }//issymmetric }//Symmetric
9 Alternativ implementation av metoden readmatris, med användning av ett Scannerobjekt och inläsning från System.in: import java.util.*;... public static double[][] readmatrix(int size) { double[][] thematrix = new double[size][size]; System.out.print( "Ge element: "); Scanner sc = new Scanner(System.in); for (int row = ; row < size; row = row + 1) { for (int col = ; col < size; col = col + 1) { thematrix[row][col] = sc.nextdouble(); } } return thematrix; } // readmatrix
10 Flerdimensionella fält Man kan ha ett godtyckligt antal dimensioner i ett fält, dvs man kan bilda fält av fält av fält av fält av... int[][][] cube = new int[3][3][4]; cube
11 Flerdimensionella fält En bild kan lagras som ett tvådimensionellt fält av bildpunkter (eller pixels). I en gråskalebild är varje bildpunkt ett heltal i intervallet [, 255], där betecknar svart och 255 betecknar vitt. I en färgbild utgörs varje bildpunkt av tre heltal i intervallet [, 255], som representerar intensiteten av färgerna rött, grönt respektive blått. En gråskalebild respektive en färgbild med höjden 8 pixels och bredden 6 pixels avbildas således enligt: int[][] grayimage = new int[8][6]; int[][][] colorimage = new int[8][6][3];
12 Klassen ArrayList Ett fält är en statisk datastruktur, vilket innebär att storleken på fältet måste anges när fältet skapas. Detta innebär att fält inte är särskilt väl anpassade för att handha dynamiska datasamlingar, dvs datasamlingar som under sin livstid kan variera i storlek. För att handha dynamiska datasamlingar i ett fält måste man själv utveckla programkod för att t.ex: - ta bort ett element ur fältet - lägga in ett nytt element på en given position i fältet - öka storleken på fältet om ett nytt element inte ryms. Klassen ArrayList är en standardklass (av flera) för all handha samlingar av objekt. Särskilt när vi handhar dynamiska datasamlingar, är det lämpligt att använda klassen ArrayList istället för ett endimensionellt fält. ArrayList finns i paketet java.util.
13 Klassen ArrayList<E> Metod Beskrivning ArrayList<E>() skapar en tom ArrayList för element av typen E. void add(e elem) void add(int pos, E elem) E get(int pos) E set(int pos, E elem) E remove(int pos) lägger in elem sist i listan (d.v.s. efter de element som redan finns i listan). lägger in elem på plats pos. Efterföljande element flyttas ett position framåt i listan. returnerar elementet på plats pos. ersätter elementet på plats pos med elem, returnerar elementet som fanns på platsen pos. tar bort elementet på plats pos, returnerar det borttagna elementet. Efterföljande element i listan flyttas en position baket i listan.
14 Klassen ArrayList<E> Metod int size() boolean isempty() int indexof(e elem) boolean cointains(object elem) void clear() String tostring() Beskrivning returnerar antalet element i listan returnerar true om listan är tom, annars returneras false returnerar index för elementet elem om detta finns i listan, annars returneras -1 returnerar true om elem finns i listan, annars returneras false tar bort alla elementen i listan returnerar en textrepresentation på formen [e 1, e 2,..., e n ] Anm: Metoderna indexof och cointains förutsätter att objekten i listan kan jämföras, d.v.s. klassen som objekten tillhör måste definiera metoden public boolean equals(object obj) Alla standardklasser, såsom String, Integer och Double, definierar metoden equals.
15 Klassen ArrayList Klassen ArrayList är en generisk klass. Detta innebär att när man skapar en lista av klassen ArrayList måste man ange en typparameter som specificerar vilken typ av objekt som skall lagras lagras i listan. Exempel: ArrayList<String> words = new ArrayList<String>(); ArrayList<Integer> values = new ArrayList<Integer>(); ArrayList<BigInteger> bigvalues = new ArrayList<BigInteger>(); ArrayList<Person> members = new ArrayList<Person>(); I en ArrayList kan man endast spara objekt, dvs. en ArrayList kan inte innehålla de primitiva datatyperna (t.ex. int, double, boolean och char). Vill man handha primitiva datatyper med hjälp av en ArrayList måste man lagra objekt av motsvarande omslagsklass.
16 Autoboxing och auto-unboxing Typomvandling sker automatiskt mellan primära datatyper och motsvarande omslagsklass. Detta kallas för autoboxing respektive auto-unboxing. Istället för att skriva Integer talobjekt = new Integer(1);... int tal = talobjekt.tovalue(); kan man skriva Integer talobjekt = 1;... int tal = talobjekt; //autoboxing //auto-unboxing
17 Förenklad for-sats När man vill löpa igenom alla objekt i en samlingar (t.ex. ett objekt av ArrayList eller ett en-dimensionellt fält) finns den förenklade for-satsen. Genomlöpning av hela samlingarna med den vanliga for-satsen double[] values = new double[1]; ArrayList<String> listan = new ArrayList<String>();... for (int index = ; index < values.length; index = index +1) System.out.println(values[index]); for (int pos = ; pos < listan.size(); pos = pos +1) System.out.println(listan.get(pos)); Genomlöpning av hela samlingarna med den förenklade for-satsen double[] values = new double[1]; ArrayList<String> listan = new ArrayList<String>();... for (double v : values) System.out.println(v); for (String str : listan) System.out.println(str);
18 Problemexempel Skriv en metod private static ArrayList<Integer> readlista() som läser in en indatasekvens består av osorterade heltal från standard input och returnerar dessa i en ArrayList. I indatasekvensen kan samma tal förekomma flera gånger, men i listan skall endast den första förekomsten av varje unikt tal skall lagras. Exempel: Antag att indatasekvensen består av talen , ett anrop av metoden readlist skall då returnera en lista som innehåller talen 1, 4, 2, 5, 12 och 3.
19 Algoritm: 1. while (fler tal att läsa) 2.1. läs talet 2.2. if (talet inte finns i listan ) lagra talet i listan; 3. returnera listan Implementation public static ArrayList<Integer> readlist() { ArrayList<Integer> list = new ArrayList<Integer>(); Scanner in = new Scanner(System.in); while (in.hasnextint()) { int value = in.nextint(); if (!list.contains(value)) { list.add(value); } } return list; }//readlist
20 Klassen PhoneBook implementerad med fält public class PhoneBook { private Entry[] book; private int count; public PhoneBook(int size) { book = new Entry[size]; count = ; }//constructor Antalet element måste bokföras public void put(string name, String nr) { book[count] = new Entry(name, nr); count = count + 1; }//put public String get(string name) { for (int i = ; i < count; i = i +1) if (name.equals(book[i].getname())) return book[i].getnumber(); return null; }//get }//PhoneBook Maximal storlek måste anges public class Entry { private String name; private String number; public Entry(String name, String number) { this.name = name; this.number = number; }//constructor public String getname() { return name; }//getname public String getnumber() { return number; }//getnumber }//Entry
21 Klassen PhoneBook implementation med ArrayList import java.util.arraylist; public class PhoneBook { private ArrayList<Entry> book = new ArrayList<Entry>(); public PhoneBook(int size) { book = new ArrayList<Entry>(); }//constructor public void put(string name, String nr) { book.add(new Entry(name, nr)); }//put public String get(string name) { for (Entry e : book) if (name.equals(e.getname())) return e.getnumber(); return null; }//get }//PhoneBook public class Entry { private String name; private String number; public Entry(String name, String number) { this.name = name; this.number = number; }//constructor public String getname() { return name; }//getname public String getnumber() { return number; }//getnumber }//Entry
22 Uppräkningstyper - enum I bland vill man kunna använda variabler som endast skall kunna anta vissa givna värden: gender: MALE, FEMALE state: READY, RUNNING, BLOCKED, DEAD suit: HEARTS, SPADES, DIAMONDS, CLUBS season: WINTER, SPRING, SUMMER, FALL bearing: NORTH, WEST, SOUTH, EAST I Java kan detta göras genom att deklarera särskilda uppräkningsklasser: public enum suit { enum inte class HEARTS, SPADES, DIAMONDS, CLUBS; }//suit Räkna upp alla värden (instanser) typen skall ha
23 Uppräkningstyper - enum Varje deklarerat (uppräknat) värde i en enum är en instans av klassen. Varje värde är implicit public, static och final, alltså en klasskonstant. Metod int compareto(e o) boolean equals(e o) String name() I int ordinal() String tostring) static E valueof(string str) static E[] values() Beskrivning returnerar ett negativt heltal om aktuellt objekt är mindre än argumentet o, om aktuellt objekt och argumentet o är lika och ett positivt heltal om aktuellt objekt är större än argumentet o. Jämförelsen görs efter den ordning objekten har deklarerats returnerar true om o är lika med aktuellt objekt, annars returneras false returnerar namnet på aktuellt objekt (enligt deklarationen) returnerar ordningstalet för aktuellt objekt (enligt deklarationen) returnerar namnet på aktuellt objekt (enligt deklarationen) returnerar objektet med det angivna namnet returnerar ett fält innehållande objekten i klassen
24 Lägga till tillstånd på enum-konstanter Eftersom enum definierar en klass kan man ge tillstånd och beteenden till objekten som tillhör en uppräkningstyp, Tillståndet hos en instans beskrivs med hjälp av instansvariabler. Tillståndet för en instans ges som argument till instansen. En konstruktor för att initiera tillståndet behöver definieras. Konstruktorn får/kan inte vara public. public enum Customer { CHILD(5), ADULT(1), SENIOR(6); private int price; private Customer(int price) { this.price = price; }//constructor public int getprice() { return price; }//getprice }//Customer Argument som anger tillståndet Konstruktor som sätter tillståndet
25 Lägga till beteenden på enum-konstanter public enum DayOfWeek { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY; public int nrinweek() { return this.ordinal() + 1; }//nrinweek public DayOfWeek tomorrow() { DayOfWeek[] days = DayOfWeek.values(); return days[(this.ordinal() + 1) % days.length]; }//tomorrow public DayOfWeek yesterday() { DayOfWeek[] days = DayOfWeek.values(); return days[(this.ordinal() - 1) % days.length]; }//yesterday public static DayOfWeek getdaywithnr(int daynr) { DayOfWeek[] days = DayOfWeek.values(); return days[daynr - 1]; }//getdaywithnr }//DayOfWeek Returnerar vilket ordningsnummer i veckan Den aktuell dagen har Returnerar dagen efter aktuell dag Returnerar dagen före aktuell dag Returnerar dagen med ordningsnummer daynr i veckan
26 switch-satsen En switch-sats är en selekteringssats med flervalsalternativ. Varje alternativ beskrivs av en case-sats; som består dels av ett case-uttryck, dels av de satser som anger vad som skall göras om alternativet inträffar. I switch-satsen testas värdet av ett uttryck (expression) mot ett antal givna case-uttryck (value1, value2, ). Uttrycket (expression) måste vara en heltalstyp, typen char eller en uppräkningstyp. case-uttrycken måste ha samma typ som expression. case-uttrycken måste ha olika värden. switch-satsen kan innehålla ett default-alternativ, som avser de möjliga alternativ som inte anges i ett eget case-uttryck Syntax: switch (expression) { case value1: statements; break; case value2: case value3: statements; break;...(more cases)... default: statements; }
27 switch-satsen Först evalueras uttrycket expression. Det erhållna värdet jämförs med värdena av caseuttrycken. Om det finns ett case-uttryck som har samma värde som expression, sker ett hopp till den sats som följer efter detta case-uttryck. Annars sker ett hopp till satsen efter default-alternativet (om ett sådant finns). Exekveringen av en case-sats, forsätter förbi andra case-uttryck tills switch-blocket är slut eller tills ett break-uttryck påträffas. Flera case-uttryck kan således finnas framför ett visst alternativ. Syntax: switch (expression) { case value1: statements; break; case value2: case value3: statements; break;...(more cases)... default: statements; }
28 switch-satsen: Flödesscheman uttryck satser value1 value2 value3 value4 satser satser satser value5 satser uttryck value1 satser value2 value3 value4 satser satser satser value5 satser Oops: om man glömmer break körs även nästa case.
29 switch-satsen: Exempel public enum DayOfWeek { MONDAY,TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;... }//DayOfWeek public static void tellitlikeitis(dayofweek day) { switch (day) { case MONDAY: System.out.println("Mondays are bad."); break; case FRIDAY: Utförs för SATURDAY och SUNDAY Utförs för TUESDAY, WEDNESDAY och THURSDAY System.out.println("Fridays are better."); break; case SATURDAY: case SUNDAY: System.out.println("Weekends are best."); break; default: System.out.println("Midweek days are so-so."); } }//tellitlikeitis
30 Shorthand operatorer I Java finns ett antal shorthand operatorer. Dels finns operatorer för increment och decrement, både i en prefix och i en postfix version, dels finns sammansatta tilldelningsoperatorer. Shorthand Motsvarand uttryck ++x x x x - 1 x++ x + 1 x-- x - 1 x += y x -= y x *= y x /= y x = x + y x = x - y x = x * y x = x / y
31 Shorthand operatorer Efter som operatorerna ++ och -- ändrar värdet på en variabel måste man vara observant om man använder dessa operatorer i kombination med en tilldelningsoperator. Betrakta nedanstående satser: firstnumber = 1; secondnumber = ++firstnumber; Efter att satserna har utförts har både variabeln fistnumber och secondnumber värdet 11. När däremot följande satser exekveras firstnumber = 1; secondnumber = firstnumber++; Har variabeln fistnumber värdet 11och variabeln secondnumber värdet 1. Prefixoperatorn (++i) utförs före tilldelningsoperatorn, medan postfixoperatorn (i++) utförs efter tilldelningsoperatorn. Använd shorthand operatorerna med med försiktighet!
Tvådimensionella fält
Tvådimensionella fält Tvådimensionella fält är fält av fält. int[][] tabell = new int[][4]; tabell Tvådimensionella fält Istället för att skapa ett tvådimensionellt fält med new kan fältet skapas genom
Föreläsning 8. Föreläsning 8 Flerdimensionella fält ArrayList enum. Flerdimensionella. ArrayList enum switch-satsen. switch-satsen
Föreläsning 8 Flerdimensionella fält ArrayList enum Flerdimensionella switch-satsen Föreläsning 8 ArrayList enum switch-satsen Tvådimensionella fält Tvådimensionella fält är fält av fält. int[][] tabell
Föreläsning 8. Föreläsning 8 Flerdimensionella fält ArrayList enum. Flerdimensionella. ArrayList enum switch-satsen. switch-satsen
Föreläsning 8 Flerdimensionella fält ArrayList enum Flerdimensionella fält switch-satsen Föreläsning 8 ArrayList enum switch-satsen Tvådimensionella fält Tvådimensionella fält är fält av fält. int[][]
Flerdimensionella fält och textfiler
Flerdimensionella fält och textfiler Föreläsning 7 TDA54 - Objektorienterad Programmering Sammanfattning Fält (arrays) Sträng In- och utmatning av data Utan att kunna läsa och skriva data skulle de flesta
Objektorienterad programmering
Objektorienterad programmering Föreläsning 7: flerdimensionella fält och textfiler Dr. Alex Gerdes Dr. Carlo A. Furia Hösttermin 216 Chalmers University of Technology Sammanfattning föreläsning 6 Endimensionella
Föreläsning 7. Flerdimensionella fält ArrayList. Flerdimensionella. ArrayList. In- och utmatning av data
Föreläsning 7 Läsa Läsa och och skriva skriva textfiler textfiler Flerdimensionella Flerdimensionella fält fält ArrayList ArrayList In- och utmatning av data Utan att kunna läsa och skriva data skulle
Repetition av OOP- och Javabegrepp
ArrayList Repetition av OOP- och Javabegrepp En lista i vilken man kan lagra objekt Implementerar List-interfacet Skiljer sig från ett vanligt endimensionellt fält: Dynamisk expanderar när den blir
Repetition av OOP- och Javabegrepp
ArrayList Repetition av OOP- och Javabegrepp En lista i vilken man kan lagra objekt Implementerar List-interfacet Skiljer sig från ett vanligt endimensionellt fält: Dynamisk expanderar när den blir
Föreläsning 8. Föreläsning 8 Textfiler Flerdimensionella fält ArrayList enum switch-satsen
In- och utmatning av data Föreläsning 8 Textfiler Flerdimensionella fält ArrayList enum switch-satsen Utan att kunna läsa och skriva data skulle de flesta program vara ganska meningslösa. Den data som
Föreläsning 8. Föreläsning 8
In- och utmatning av data Utan att kunna läsa och skriva data skulle de flesta program vara ganska meningslösa. Föreläsning 8 Den data som ett program är beroende av kan t.ex. Textfiler Flerdimensionella
Föreläsning 8. Klassen String Mer om fält Klassen ArrayList
Föreläsning 8 Klassen String Mer om fält Klassen ArrayList Standardklassen String Texter handhas i Java med standardklassen String. Ett objekt av klassen String består av en följd av tecken, dvs element
EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass
EDAA20 Föreläsning 11-12 Klassen ArrayList Klassen ArrayList Skriva program som läser data från en textfil och skriver data till en textfil Repetition inför delmålskontroll 2 är en standardklass (i paketet
OOP Objekt-orienterad programmering
OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public
Föreläsning 3. Iteration while-satsen
Föreläsning 3 Iteration while-satsen Datatypen double I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna, som används för att lagra tal (t.ex. int och double), har
Saker du ska kunna Föreläsning 13 & 14
Saker du ska kunna Föreläsning 13 & 14 LISTOR Ta bort element från en vektor Både sorterad och osorterad Söka upp element i en vektor Linjärsökning räcker (jag har även visat binärsökning) Registrering
Föreläsning 7. for-satsen Fält
Föreläsning 7 for-satsen Fält for-satsen for-sats är en styrsats för iterationer. for-sats har följande generella utseende: for (initiering; villkor; ändring) sats; for-satsen är ekvivalent med följande
Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar
Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.
(16 februari 2016 F5.1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (16 februari 2016 F5.2 ) Pokertärningar
Föreläsning 3. Iteration. while-satsen for-satsen do-satsen
Föreläsning 3 Iteration while-satsen for-satsen do-satsen Datatypen double De enkla datatyperna, som används för att lagra tal (t.ex. int och double), har en begränsad storlek och representerar således
Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..
Ett problem Kontrollstrukturer och er Hur sparas data T ex när man vill spara resultaten av en tävling Exempel med 3 deltagare: public class Competition private int result1; private int result2; private
I ett program hantera man ofta samlingar av objekt av samma typ.
Fält I ett program hantera man ofta samlingar av objekt av samma typ. Sådana samlingar vill man vanligtvis kunna gruppera ihop till en sammanhängande struktur. För detta ändamål tillhandahåller Java språkkonstruktioner
Klassen String Mer om fält Något om inläsning
Standardklassen String TDA43 I Programmerade system Föreläsning (OH-bilder 8) Klassen String Mer om fält Något om inläsning Christer Carlsson Texter handhas i Java med standardklassen String. Ett objekt
Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling
metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man
Arrayer. results
Arrayer 85 Arrayer Deklarerar utrymme för många variabler i en enda deklaration Array (fält) Varje värde har ett numeriskt index i Java indexeras en array med N element med indexen till N-1 Exempel: 1
Instuderingsfrågor, del E
Uppgift 1. Instuderingsfrågor, del E Objektorienterad programmering, Z1 Skriv en en deklaration som skapar ett 2-dimensionellt heltalsfält med följande utseende: 1 3 6 10 2 5 9 13 4 8 12 15 7 11 14 16
Föreläsning REPETITION & EXTENTA
Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder
Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.
(1 oktober 2017 F5 1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (1 oktober 2017 F5 2 ) Pokertärningar
Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer
Exempel for (int antal=; antal < 75; antal++) System.out.println (antal); Arrayer for (int num=5; num
for-satsen Fält for-satsen Föreläsning 8 (OH-bilder 7) for-satsen for-sats är en styrsats för iterationer. for-sats har följande generella utseende:
for-satsen for-sats är en styrsats för iterationer. for-sats har följande generella utseende: TDA143 I1 Programmerade system Föreläsning 8 (OH-bilder 7) for-satsen for ( initiering; villkor; ändring) sats;
Tentamen OOP 2015-03-14
Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning
Objektorienterad programmering
Objektorienterad programmering Föreläsning 6: fält och klassen String Dr. Alex Gerdes Dr. Carlo A. Furia Hösttermin 2016 Chalmers University of Technology Sammanfattning föreläsning 5 Abstraktion Abstraktion
Mer om klasser och objekt
Klassvariabler och klassmetoder En klass kan innehålla klassvariabler och klassmetoder. TDA143 I1 Programmerade system Föreläsning 5 (OH-bilder 5) Mer om klasser och objekt Christer Carlsson Det som skiljer
Lösningsförslag till tentamen
Uppgift 1 Lösningsförslag till tentamen 150117 a) Utskriften blir: 7 Metoden returnerar värdet av den största siffran som ingår i talet som skickas till metoden. b) Utskriften blir k= 5 a= [3, 1] b= [3,
Lösningsförslag till tentamen 150317
Uppgift 1 Lösningsförslag till tentamen 150317 1) Sant 2) Falskt. I ett RAM-minne är åtkomsttiden densamma för alla minnesadresser.) 3) Falskt. Det är TCP som använder sig av en fast kommunikationsförbindelse.)
Del A (obligatorisk för alla)
Del A (obligatorisk för alla) A1. Ringa in rätt svarsalternativ eller skriv svar i ruta om sådan a) Satsen double x = (int)(1 + 3/2.0) + 3.; resulterar i b) Satsen int x = (int)(1 + 3/2.0) + 3.; resulterar
Iteration. Föreläsning 3. TDA540 - Objektorienterad Programmering
Iteration Föreläsning 3 TDA540 - Objektorienterad Programmering Meddelande Kursrepresentanter: - Mattias Ajander, Daniel Hultgren, Sanna Sandberg - Mejladresserna finns på kurshemsidan Jätte välkommen
Föreläsning 3-4 Innehåll
Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå
Föreläsning 7. Fält Klassen String
Föreläsning 7 Fält Klassen String Fält I ett program hantera man ofta samlingar av objekt av samma typ. Sådana samlingar vill man vanligtvis kunna gruppera ihop till en sammanhängande struktur. För detta
Föreläsning 6. Fält. Fält Klassen String. Fält
Föreläsning 6 Fält Fält Klassen Klassen String String Fält I ett program hantera man ofta samlingar av objekt av samma typ. Sådana samlingar vill man vanligtvis kunna gruppera ihop till en sammanhängande
Objektorienterad programmering E. Algoritmer. Telefonboken, påminnelse (och litet tillägg), 1. Telefonboken, påminnelse (och litet tillägg), 2
Objektorienterad programmering E Algoritmer Linjär sökning Binär sökning Tidsuppskattningar Föreläsning 9 Vad behöver en programmerare kunna? (Minst) ett programspråk; dess syntax och semantik, bibliotek
Objektorienterad programmering
Objektorienterad programmering Iteration: while-satsen, for-satsen och do-satsen Dr. Alex Gerdes Dr. Carlo A. Furia Hösttermin 2016 Chalmers University of Technology Meddelande Studentrepresentanter Reflektera
Abstrakt datatyp. -Algoritmer och Datastrukturer- För utveckling av verksamhet, produkter och livskvalitet.
-Algoritmer och Datastrukturer- Abstrakt datatyp Datatyp för en variabel Betecknar i ett programmeringsspråk den mängd värden variabeln får anta. T ex kan en variabel av typ boolean anta värdena true och
Lösningsförslag till tentamen
Uppgift 1 Lösningsförslag till tentamen 140828 a) public class MyMax { public static void main(string[] args) { //5 ändra String till String[] System.out.println("Maximum is: " + maximum(5, 7)); //2 ändra
Objektorienterad programmering i Java
Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet
Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2015-06-11 Skrivtid: 08:00 13:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Objektorienterad programmering. Telefonboken igen, en bättre version. En jämförelse. Föreläsning 4
Telefonboken Objektorienterad programmering Telefonboken igen, en bättre version Telefonboken, igen. Tvådimensionella fält. Exempel: femtonspelet. Modellklassen. Ett textbaserat program. Ett grafiskt program.
Föreläsning 3: Booleans, if, switch
TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt
Fält och klassen String
Fält och klassen String Föreläsning 6 TDA540 - Objektorienterad Programmering Meddelande Ni får inte ändra Robot.java Börjar med rätta efter deadlinen Sammanfattning Abstraktion Abstraktion Abstraktion
Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ
orienterad programmering Föreläsning 3 Exempel: Telefonboken Fält som funktionsresultat Exempel Definiera static double[] vectorsum(double[] a, double[] b) Betrakta sedan följande kodavsnitt:... double[]
F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander
F12 - Collections ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Collections (samlingar) En collection är ett objekt som fungerar som en samling av andra objekt En collection erbjuder
Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2
AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga
Iteration while-satsen
Datatypen double TDA143 I1 Programmerade system Föreläsning 3 (OH-bilder 3) Iteration while-satsen Christer Carlsson I en dator kan man inte lagra hur stora eller hur små tal som helst. De enkla datatyperna,
Enkla variabler kontra referensvariabel
Enkla variabler kontra referensvariabel En variabel är ett namngivet minnesutrymme i datorns primärminne. En variabel som används för att representera en primitiv datatyp kallas för enkel variabel. Deklarationssatsen
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Del A (obligatorisk för alla)
Del A (obligatorisk för alla) A1. Koden följer garanterat namnkonventionerna. Ringa in rätta svar och lämna in tillsammans med dina övriga svar! a) Hur många objekt skapas av följande kod? World w = new
Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Föreläsning 3. Föreläsning 3. Iteration. while-satsen for-satsen do-satsen. while-satsen. do-satsen. Datatypen double
Föreläsning 3 Föreläsning 3 Iteration while-satsen for-satseniteration do-satsen while-satsen for-satsen do-satsen Datatypen double De enkla datatyperna, som används för att lagra tal (t.ex. int och double),
Laboration 4: Digitala bilder
Objektorienterad programmering, Z : Digitala bilder Syfte I denna laboration skall vi återigen behandla transformering av data, denna gång avseende digitala bilder. Syftet med laborationen är att få förståelse
public class BoundedCounter {
Uppgift 1 I Javas standardbibliotek finns en klass för rektanglar. Nedanstående kod visar relevanta delar av klassen: public class Rectangle {... public Rectangle(int height, int weight) {... public Rectangle(int
TENTAMEN OOP
TENTAMEN OOP 2014-03-15 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2018-03-16 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
OOP Objekt-orienterad programmering
OOP F2:1 OOP Objekt-orienterad programmering Föreläsning 2 Input/Output Programsatser Selektion Output OOP F2:2 Görs via System.out, anropa antingen print eller println: System.out.print("Hej"); System.out.println(
Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek
De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000
Lösningsförslag till tentamen
Uppgift 1 Lösningsförslag till tentamen 150418 a) i) Utskriften blir: ii) [8, 3, 9, 4, 5] Metoden mystery flyttar om elementen i fältet arr på så sätt att alla elementen, förutom det första, flyttas ett
TENTAMEN OOP
TENTAMEN OOP 2013-08-08 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2016-06-11 Skrivtid: 0900 1400 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Tentamen , Introduktion till Java, dtaa98, dtea53
Mittuniversitetet 2007-09-01 Institutionen för informationsteknologi och medier Sid:1(3) dtaa98, dtea53 Martin Kjellqvist; Linda Karlsson, Ulf Reiman Lösningsansatser Tentamen 2007-09-01, Introduktion
Föreläsning 1. Abstrakta datatyper, listor och effektivitet
Föreläsning 1 Abstrakta datatyper, listor och effektivitet Föreläsning 1 Datastrukturer Abstrakta DataTyper ADT Lista Lista och Java Collections Framework (ArrayList) Lista implementerad med en array Analys
OOP Objekt-orienterad programmering
OOP F2:1 OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion Deklaration och tilldelning OOP F2:2 int x; double d; char ch; boolean
Föreläsning Innehåll. Hantera många element. Exempel: polygon Godtyckligt antal element. Exempel: polygon forts
Föreläsning 11-12 Innehåll Hantera många element Tidigare har vi använt vektorer för att lagra många element av samma tp. Eempel: Klassen ArraList Inläsning från tetfil, utskrift på tetfil int[] nbrs
Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod
Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer
TENTAMEN OOP
TENTAMEN OOP 2014-01-19 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2014-10-17 Skrivtid: 0800-1300 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till
Algoritmer. Två gränssnitt
Objektorienterad programmering E Algoritmer Sökning Linjär sökning Binär sökning Tidsuppskattningar Sortering Insättningssortering Föreläsning 9 Vad behöver en programmerare kunna? (Minst) ett programspråk;
Objekt-orientering. Java är ett objekt-orienterat programmeringsspråk
Repetition EDAA10 Objekt-orientering Java är ett objekt-orienterat programmeringsspråk Program byggs upp av klasser och objekt Objekt instantieras från klasser Klasser och objekt innehåller attribut och
Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)
Föreläsning 10 STRING OCH STRINGBUILDER; VARIABLERS SYNLIGHET Att deklarera och att använda variabler När vi deklarerar en variabel, t ex int x; inför vi en ny variabel med ett namn och en typ. När namnet
Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2015-03-19 Skrivtid: 14:00 19:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Lösningsförslag: Instuderingsfrågor, del A
Uppgift 1. Objektorienterad programmering, Z1 Lösningsförslag: Instuderingsfrågor, del A Följande regler gäller för namngivning av identifierare i Java: 1. Ett identifierarnamn består endast av bokstäver,
Typkonvertering. Java versus C
Typer Objektorienterad programmering E Typkonvertering Typkonvertering Satser: while, for, if Objekt Föreläsning 2 Implicit konvertering Antag att vi i ett program deklarerat int n=3; double x = 5.2; Då
Föreläsning 9-10 Innehåll
Föreläsning 9-10 Innehåll Inläsning från textfil, utskrift från textfil Vektorer med objekt Matriser Datavetenskap (LTH) Föreläsning 9-10 HT 2018 1 / 41 Klassen Scanner Läsa från System.in Vi har tidigare
Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2012-06-04 Skrivtid: 1400-1700 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2017-03-16 Skrivtid: 0800 1300 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }
En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class
Den som bara har en hammare tror att alla problem är spikar
Introduktion Föreläsning (Weiss kap. -4) Många begrepp blir det Introduktion till kursen Exempel: Datastrukturen mängd Generiska Den som bara har en hammare tror att alla problem är spikar Vilken
Lösningsförslag övning 2.
Objektorienterad programmering, Z1 Lösningsförslag övning 2. Uppgift 1. public class SIUnits { public static double yardspermeter = 1.093613; public static double poundperkilo = 2.204623; public static
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
DAT043 Objektorienterad Programmering
DAT043 Objektorienterad Programmering Detta är en exempeltenta som innehåller gamla tentauppgifter av ungefär liknande slag som ni kan förvänta er se på ordinarie tenta i Del 1 respektive Del 2. Dock är
Tommy Färnqvist, IDA, Linköpings universitet
Föreläsning 9 Pekare, länkade noder, länkade listor TDDD86: DALP Utskriftsversion av föreläsning i Datastrukturer, algoritmer och programmeringsparadigm 25 september 2015 Tommy Färnqvist, IDA, Linköpings
Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ
Organisation En array Šr en ordnad lista av všrden Varje všrde har ett numeriskt index - deklaration & anvšndning som parametrar flerdimensionella fšlt N element indexeras med 0 till N-1 0 1 2 3 4 5 6
Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2015-01-10 Skrivtid: 8.00 13.00 Hjälpmedel: Java-bok Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till
Institutionen för TENTAMEN CTH HT-14 Datavetenskap TDA540. Tentamen för TDA540 Objektorienterad programmering
Institutionen för TENTAMEN CTH HT-14 Datavetenskap 2015-01-17 TDA540 Tentamen för TDA540 Objektorienterad programmering DAG: 15-01-17 TID: 14:00 18:00 Ansvarig: Joachim von Hacht och Christer Carlsson
Lösningsförslag till tentamen
Uppgift 1 Lösningsförslag till tentamen 131220 a) Första felet beror på att namnet på klassen är felstavat i konstruktorn! Således har vi ingen konstruktor utan en metod med namnet Trubel. En metod måste
Lösningsförslag till tentamen
Uppgift 1 Lösningsförslag till tentamen 140423 a) Vad kompilatorn klagar på är att metoden Math.sqrt() inte finns! Detta kan ju verka något mystiskt eftersom vi alla vet att det i klassen Math finns en
Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering
Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-16, TDA540 Dag: 2017-01-09, Tid: 14.00-18.00 Uppgift 1 a) class används för en klassdeklaration
Parallellism, återblick
Parallellism, återblick Josef Svenningsson December 11, 2012 Lab7 Det är problem med lab7. Gå med i den grupp som ni använt tidigare. DEMO Flera saker händer samtidigt Ofta hanterar program olika indata
Sammanfattning och repetition utgående från typiska tentamensuppgifter
(2 mars 2018 F6 1 ) Dagens föreläsning Sammanfattning och repetition utgående från typiska tentamensuppgifter (2 mars 2018 F6 2 ) A-fråga Hur många objekt skapas av nedanstående kod? World w = new World();
Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2015-06-11 Skrivtid: 08:00 13:00 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.
JAVAUTVECKLING LEKTION 8
JAVAUTVECKLING LEKTION 8 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Fält (Arrayer) Att skapa och arbeta med fält Indexering Jämförelse av fält Flerdimensionella fält 1 VAD
Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering
Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-15, TDA540 Dag: 2016-04-09, Tid: 14.00-18.00 Uppgift 1 Metoden mystery vänder om ett fält.
Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:
Omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-16, TDA540 Dag: 2017-04-12, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar: