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.

Relevanta dokument
Lektion 7. Datateknik A, Java I, 5 poäng

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

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

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

Objektorienterad programmering i Java

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

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

(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

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

[] Arrayer = Indexerad variabel

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

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

Kapitel 6. Kapitel 6. Hakparenteser fšr att ange index float[] priser = new float[500]; frekvens[4] boolean[] flaggor;

Arrayer (fält)

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

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

Arrayer. results

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

SMD 134 Objektorienterad programmering

Föreläsning 2, vecka 8: Repetition

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

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

Lösningsförslag: Instuderingsfrågor, del D

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Objektorienterad Programmering (TDDC77)

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

Föreläsning 3-4 Innehåll

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)

Typkonvertering. Java versus C

F7 - Arrayer. ID1004 Objektorienterad programmering Fredrik Kilander

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

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

Tentamen ID1004 Objektorienterad programmering April 7, 2015

TDIU01 - Programmering i C++, grundkurs

Java, klasser, objekt (Skansholm: Kapitel 2)

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

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

Föreläsning 10 OM DELMÅLSKONTROLLEN ; VARIABLERS SYNLIGHET STRING OCH STRINGBUILDER

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

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

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

Tentamen ID1004 Objektorienterad programmering October 29, 2013

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

Föreläsning REPETITION & EXTENTA

OOP Objekt-orienterad programmering

Programmering A. Johan Eliasson

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Föreläsning 5-6 Innehåll

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

Klassdeklaration. Metoddeklaration. Parameteröverföring

Parameteröverföring. Exempel. Exempel. Metodkropp

tentaplugg.nu av studenter för studenter

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

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

Tentamen OOP

Den som bara har en hammare tror att alla problem är spikar

Grundläggande programmering med C# 7,5 högskolepoäng

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

Objektorienterad Programmering (TDDC77)

Agenda. Arrayer deklaration, åtkomst Makron Flerdimensionella arrayer Initiering Strängar Funktioner och arrayer. Övningar nu och då

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

Del A (obligatorisk för alla)

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

LÖSNINGSFÖRSLAG TENTAMEN

Introduktion till Java

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

Repetition av OOP- och Javabegrepp

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

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

Repetition av OOP- och Javabegrepp

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

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

DAT043 - föreläsning 8

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at

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

Tentamen , Introduktion till Java, dtaa98, dtea53

Tentamen Grundläggande programmering

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

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

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

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

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

Tentamen i Grundläggande Programvaruutveckling, TDA548

Föreläsning 10. Pekare (Pointers)

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

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.

Tentamen ID1004 Objektorienterad programmering December 15, 2012

Programmeringsteknik I

Arrayer med primitiva datatyper

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Laboration 1: Figurer i hierarki

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

Introduktion till Java

Minnestilldelning (allokering) och frigörande (avallokering) av minne

Transkript:

Föreläsning 11 Arrayer Arrayer Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt int[] tal = new int[3]; Kan ha en array av t.ex: Heltal (int) Tecken (char) Personer (objekt av klassen Person) GeometriObjekt (Cirkel och Rektangel) Arrayer Array består av ett antal element Varje element lagrar ett värde av arrayens typ Varje element har ett index som avgör var i arrayen elementet finns tal[0] // första elementet, index 0 tal[1] // andra elementet, index 1 tal[2] // tredje elementet, index 2 En array med N element har 0 som första index och N-1 som sista 1

Deklarera och Skapa Array Arrayen heltal kan deklareras och skapas på följande sätt: int[] tal; // Deklarerar tal = new int[10]; // Skapar Eller så här: int[] tal = new int[10]; int tal[] = new int[10]; Arrayens namn är tal tal[0], tal[1],, tal[9] Arrayen innehåller 10 element av typen int Exempel På Olika Arrayer float[] priser = new float[500]; boolean[] flags; flags = new boolean[20]; char[] tecken = new char[1750]; int a = 33; double[] svar = new double[a + 67]; float[] priser2 = priser; Arrayer Är Objekt I java ses en array som ett objekt Instansierar en array med new Finns en medlemsvariabel (length) En variabel av typen array är en referensvariabel Används arrayer som parameter skickas referensen, inte elementen En array är dock inte en instans av klassen Array 2

Arrayer Element refereras med namnet på arrayen följt av dess index tal[4] representerar en plats att lagra ett heltal av typen int T.ex kan den: användas i en uträkning tilldelas ett värde jämföras skrivas ut tal[4] + 3; tal[4] = 3; if (tal[4] == 67){...}; System.out.println(tal[4]); Storleken på en Array En array har en fast storlek, som inte kan förändras Index som används för att referera ett element måste vara giltigt int tal[] = new int[10]; int i = 3; int j = 5; tal[4]; // Refererar till 5:e elementet tal[i]; // Refererar till 4:e elementet tal[i + j] // Refererar till 9:e elementet tal[j % i] // Refererar till 3:e elementet tal[4.4]; tal['4']; tal["4"]; tal[-1]; tal[10]; // Kan inte använda ett flyttal som index // Kan inte använda en char som index // Kan inte använda en String som index // Kan inte använda negativa tal som index // Kan inte använda tal större högsta index! Storleken på en Array Varje array har en publik konstant som kallas length Denna konstant innehåller storleken på arrayen (antal element) tal.length; // Rätt tal.length(); // Fel! length innehåller antalet element, inte det högsta index. tal.length == 10 // Sant tal.length == 9 // Falskt 3

En Array Av Objekt Elementen i en array kan vara referenser till ett objekt Deklarationen: Person[] familj = new Person[3]; reserverar utrymme för att lagra 3 referenser till Person-objekt Några Person-objekt skapas inte Varje objekt i arrayen måste instansieras var för sig En Array Av Personer Person[] familj = new Person[3]; familj[0] = new Person("Pappa Svensson", 33); familj[1] = new Person("Mamma Svensson", 31); familj[2] = new Person("Dotter Svensson", 8); Skapar 4 objekt null 1 array för att lagra Person-objekt 3 Person-objekt Arrayen används sen för att komma åt de enskilda elementen Notera! String namn1 = familj[0].getnamn(); familj[1].setnamn("svea Svensson"); familj[2].print(); familj När en array skapas, så skapas inte objekten som ska lagras i arrayen. 0 1 2 null null Initiering Av Arrayer En array kan ges värden när den skapas Omges av klamrar, separeras med komma Storleken på arrayen bestäms genom antalet initieringsvärden int[] tal = {79, 87, 94, 82, 67, 98, 87, 81}; // 8 element String[] ord = {"Hej", "Java", "Array", "Snö"}; // 4 element double[] tal = {1.21, 32.212, 0.02, 10.1, 0.0}; // 5 element String[] betygskala = {"IG", "G", "VG", "MVG"}; // 4 element Person[] f = {new Person("Pappa Svensson", 33), new Person("Mamma Svensson", 31), new Person("Dotter Svensson", 8)}; // 3 element 4

2D Arrayer En 2D-array är en array av arrayer Första arrayens storlek måste anges Den andra arrayen behöver inte vara av samma storlek int[][] array2d_1 = new int[10][10]; // 100 element totalt int[][] array2d_2 = new int[5][4]; // 20 element totalt int[][] array2d_3 = new int[2][]; // x element totalt array2d_3[0] = new int[5]; array2d_3[1] = new int[10]; Exempel på initiering int[][] i = { {0,1}, {1,2}, {2,3}, {3,4}, {4,5} }; Arrayer Som Parametrar En array kan skickas till en metod som en parameter int[] tal = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; add1(tal); public void add1(int[] t) {... } Det är referensen till arrayen som skickas Ändringar på ett element i metoden gör ändringar i originalet Arrayer som returvärde En metod kan även returnera en array av en viss typ int[] tal = skapaheltalsarray(); public int[] skapaheltalsarray() { int[] t = new int[10];... return t; } 5

Arrayer - Nackdelar Fast storlek Kan varken öka eller minska dynamiskt Kan endast lagra en typ av element Saknar användbara metoder Person[] familj = new Person[3]; familj[0] = new Person("Pappa Svensson", 33); familj[1] = new Person("Mamma Svensson", 31); familj[2] = new Person("Dotter Svensson", 8); familj[3] = new Person("Son Svensson", 14); //kan inte öka familj[2] = new Hund("Karo"); //fel typ 6