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

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

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

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

(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

Vi programmerar Java!

TDDC77 Objektorienterad Programmering

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

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

Dugga i Grundläggande programmering STS, åk

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

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

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

Tentamen ID1004 Objektorienterad programmering April 7, 2015

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.

Föreläsning 3-4 Innehåll

Typkonvertering. Java versus C

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 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

OOP Objekt-orienterad programmering

JAVA Mer om klasser och objektorientering

2 b) Följande finns definierat: public class Käk String titel = "Chili con carne"; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda("Svartpe

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

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

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private

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

Java, klasser, objekt (Skansholm: Kapitel 2)

Fält av referenser. Konstruktorerna används för att skapa Bilar och Trafikljus.

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

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

2 b) Följande finns definierat: public class Spel String titel = "Spel"; Dice[] tärningar = new Dice[10]; tärningar[0] = new Dice("Röd"); tärningar[1]

[] Arrayer = Indexerad variabel

Tentamen i Grundläggande programmering STS, åk 1 fredag

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

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

Föreläsning REPETITION & EXTENTA

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

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

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

Objektorienterad programmering i Java

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

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

Tentamen OOP

Algoritmanalys. Genomsnittligen behövs n/2 jämförelser vilket är proportionellt mot n, vi säger att vi har en O(n) algoritm.

2 b) Bodega bodegan = new Bodega(); double moms = 0.235; String namn = "Vargtass"; System.out.println(namn + " " + moms + bodegan.ändra(moms, namn); S

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Föreläsning 2, vecka 8: Repetition

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

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

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

Arrayer (fält)

OOP Tenta

Tentamen i Programmering

DELPROV 1 I DATAVETENSKAP

Klasser och objekt. Henrik Johansson. August 20, 2008

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

Villkor och tester. Utförande satser bygger upp metoderna, man brukar finindela detta i: sekvenser. Ett program består i princip av: selektioner (val)

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

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

Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.

public och private Obs: private inte skyddar mot access från andra objekt i samma klass.

Tentamen i Grundläggande programmering STS, åk

OOP Objekt-orienterad programmering

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

Tentamen i Grundläggande programmering STS, åk 1 fredag

Tentamen i Programmeringsteknik I,, KandMa/Fy,

Tentamen, EDAA10 Programmering i Java

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

OOP Objekt-orienterad programmering

Objektorienterad programmering. Telefonboken igen, en bättre version. En jämförelse. Föreläsning 4

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

Föreläsning 5-6 Innehåll

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim Agenda (halvdag)

Arrayer. results

TENTAMEN OOP

Laboration 1 - Grunderna för OOP i Java

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

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

Tentamen i Programmeringsteknik I, ES,

Instuderingsfrågor, del D

Tentamen i Grundläggande programmering STS, åk 1 lördag

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

JAVAUTVECKLING LEKTION 8

Laboration 13, Arrayer och objekt

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

Tentamen på kursen DA7351, Programmering , kl Malmö högskola Teknik och samhälle. DA7351, Programmering

SMD 134 Objektorienterad programmering

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

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

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

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

TENTAMEN OOP

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

Tentamen i Programmeringsteknik I

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

OOP Tenta

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

"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde

Anteckningar 1: Grundläggande saker

Objekt och referenser

Transkript:

Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 12 I torsdags: Klassen TelefonKostnad Exemplifierar objektorienterad design, metoder, konstruktorer static Standardklassen Math Matematiska funktioner Exemplifierar static Slumptal Mittkurs-utvärdering Idag: Uppföljning mittkurs-utvärdering Arrayer: Motivering, teori och exempel

Mittkurs-utvärdering uppföljning Föreläsningar: Är uppskattade tack! Har bra tempo (20 tycker lagom, 4 snabbt, 1 långsamt) Har halkat efter labbar och lektioner Åtgärd: Hoppar över ett exempel idag och går direkt till arrayer Åtgärd: Vi använder fler reservföreläsningar Åtgärd: Jag använder hela föreläsningstiden Bra varva BlueJ / OH / tavla. BlueJ bäst, tavla sämst Åtgärd: ingen kod eller teori på tavla bara nyckelord, uppgifter etc

Mittkurs-utvärdering uppföljning Examination: Oklara former Boken: Åtgärd: Jag förklarar examinationsformer idag Åtgärd: Jag går igenom dugga, projekt och essä idag Åtgärd: Jag gör kopplingar till boken på föreläsningar Se även hemsidan!

Mittkurs-utvärdering uppföljning Labbar: För långa väntetider Åtgärd: Labhandledarna medvetna om problemet Åtgärd: De som är kvar från förra labben får lägst prioritet Oklara labinstruktioner Åtgärd: Jag kan eventuellt se över lab 4 & 5 MEN: Konkreta exempel efterlyses! Vi vill använda Java på hemsidor Åtgärd: OK, det får ni på lab 5 Lektioner: Några vill ha mer hjälp & mindre redovisning Ingen åtgärd: inte så många tog upp det, och det är knepigt att ändra examinationsformer

Examination För betyg 3: G på varje delmoment För betyg 4 eller 5: Kvalitetspoäng (51 p = betyg 4, 71 p = betyg 5) Fås för: Lektionsuppgifter (poäng för att ha förberett) Labbar (G vid första deadline => 2 p) Projekt (svårt projekt ger mer poäng) Dugga Essä Kvalitetspoäng kan inte användas för att få betyg 3 om något moment saknas Se hemsidan!

Dugga Former: 14 maj 3 timmar Flervalsfrågor Innehåll: Som förra årets dugga, men lättare Se hemsidan, under material / gamla tentor Programförståelse Frågetyper: Vad skriver programmet i uppgiften ut? Lucktext: Vad ska xxx i programmet bytas ut mot? Förberedelse: Skriv / läs programexempel Se under Material på hemsidan!

Essä Former: enskilt arbete ca 1-2 sidor med normal formatering inlämning senast 25 maj Uppgift: rubrik: Objektorienterad programmering som problemslösningsstrategi diskutera OOP som strategi för att lösa programmerings-relaterade problem inom teknik personlig betraktelse: redovisa fakta, bedöm, ta ställning Se hemsidan!

Projekt Former: grupper om 2 (behöver inte vara labgrupper) 16 maj: delredovisning (ca 1-2 sidor) 29 maj: sista inlämning (rapport + kod) 31 maj & 1 juni: redovisning i seminarieform disputation, men snällare varje projektgrupp opponerar på en annan grupp Se hemsidan

Projekt Förslag till projekt: eget fia med knuff platsbokning på SJ räkna med stora tal spelet Life kalender blocket kontaktförmedling Yatzy Max 5 grupper per projekt

Projekt Hur man klarar projektet Kom ihåg FISK! Fundera först (och mest) på vad som finns, därefter på vad som händer Utgå från problemet, inte från Java Koda en bit i taget T.ex. metod eller del av metod Testa M.a.o.: lös delproblem först Enkel main som testar en metod är ofta bra Börja idag. Det stora och svåra problemet är att hitta en bra struktur. Tänk igenom före delredovisningen.

Och nu: ARRAYER!

Arrayer: motivering Uppgift Läs in 6 tal Läs in ett tal till (kalla det x) Tala om ifall x fanns bland de 6 Exempelkörning: Mata in 6 tal: 2713 87 115 62 11 4 Mata in ett till: 11 Talet fanns i listan!

Arrayer: motivering En lösning: Vi behöver spara alla 6 talen 6 variabler i main-metoden: Std.out.println( Mata in 6 tal: ); int tal1, tal2, tal3, tal4, tal5, tal6; tal1 = Std.in.readInt(); tal2 = Std.in.readInt(); tal3 = Std.in.readInt(); tal4 = Std.in.readInt(); tal5 = Std.in.readInt(); tal6 = Std.in.readInt(); Std.out.println( Mata in ett till: ); int tal = Std.in.readInt(); if (tal == tal1 tal == tal2 tal == tal3 tal == tal4 tal == tal5 tal == tal6) Std.out.println( Talet fanns i listan! ); else Std.out.println( Talet fanns inte i listan! );

Arrayer: motivering OK, men om vi ska kunna mata in 100 tal? 100 variabler med olika namn: i main-metoden: Std.out.println("Mata in 100 tal:"); int tal1, tal2, tal3, tal4, tal5, tal6, tal7, tal8, tal9, tal10, tal11, tal12, tal13, tal14, tal15, tal16, tal17, tal18, tal19, tal20, tal21, tal22, tal23, tal24, tal25, tal26, tal27, tal28, tal29, tal30, tal31, tal32, tal33, tal34, tal35, tal36, tal37, tal38, tal39, tal40, tal41, tal42, tal43, tal44, tal45, tal46, tal47, tal48, tal49, tal50, tal51, tal52, tal53, tal54, tal55, tal56, tal57, tal58, tal59, tal60, tal61, tal62, tal63, tal64, tal65, tal66, tal67, tal68, tal69, tal70, tal71, tal72, tal73, tal74, tal75, tal76, tal77, tal78, tal79, tal80, tal81, tal82, tal83, tal84, tal85, tal86, tal87, tal88, tal89, tal90, tal91, tal92, tal93, tal94, tal95, tal96, tal97, tal98, tal99, tal100; tal1=std.in.readint(); tal2=std.in.readint(); tal3=std.in.readint(); tal4=std.in.readint(); tal5=std.in.readint(); tal6=std.in.readint(); tal7=std.in.readint(); tal8=std.in.readint(); tal9=std.in.readint(); tal10=std.in.readint(); tal11=std.in.readint(); tal12=std.in.readint(); tal13=std.in.readint(); tal14=std.in.readint (); tal15=std.in.readint(); tal16=std.in.readint(); tal17=std.in.readint(); tal18=std.in.readint(); tal19=std.in.readint(); tal20=std.in.readint(); tal21=std.in.readint(); tal22=std.in.readint(); tal23=std.in.readint(); tal24=std.in.readint(); tal25=std.in.readint(); tal26=std.in.readint(); tal27=std.in.readint (); tal28=std.in.readint(); tal29=std.in.readint(); tal30=std.in.readint(); tal31=std.in.readint(); tal32=std.in.readint(); tal33=std.in.readint(); tal34=std.in.readint(); tal35=std.in.readint(); tal36=std.in.readint(); tal37=std.in.readint(); tal38=std.in.readint(); tal39=std.in.readint(); tal40=std.in.readint (); tal41=std.in.readint(); tal42=std.in.readint(); tal43=std.in.readint(); tal44=std.in.readint(); tal45=std.in.readint(); tal46=std.in.readint(); tal47=std.in.readint(); tal48=std.in.readint(); tal49=std.in.readint(); tal50=std.in.readint(); tal51=std.in.readint(); tal52=std.in.readint(); tal53=std.in.readint (); tal54=std.in.readint(); tal55=std.in.readint(); tal56=std.in.readint(); tal57=std.in.readint(); tal58=std.in.readint(); tal59=std.in.readint(); tal60=std.in.readint(); tal61=std.in.readint(); tal62=std.in.readint(); tal63=std.in.readint(); tal64=std.in.readint(); tal65=std.in.readint(); tal66=std.in.readint (); tal67=std.in.readint(); tal68=std.in.readint(); tal69=std.in.readint(); tal70=std.in.readint(); tal71=std.in.readint(); tal72=std.in.readint(); tal73=std.in.readint(); tal74=std.in.readint(); tal75=std.in.readint(); tal76=std.in.readint(); tal77=std.in.readint(); tal78=std.in.readint(); tal79=std.in.readint (); tal80=std.in.readint(); tal81=std.in.readint(); tal82=std.in.readint(); tal83=std.in.readint(); tal84=std.in.readint(); tal85=std.in.readint(); tal86=std.in.readint(); tal87=std.in.readint(); tal88=std.in.readint(); tal89=std.in.readint(); tal90=std.in.readint(); tal91=std.in.readint(); tal92=std.in.readint (); tal93=std.in.readint(); tal94=std.in.readint(); tal95=std.in.readint(); tal96=std.in.readint(); tal97=std.in.readint(); tal98=std.in.readint(); tal99=std.in.readint(); tal100=std.in.readint(); Std.out.println("Mata in ett till:"); int tal=std.in.readint(); if (tal==tal1 tal==tal2 tal==tal3 tal==tal4 tal==tal5 tal==tal6 tal==tal7 tal==tal8 tal==tal9 tal==tal10 tal==tal11 tal==tal12 tal==tal13 tal==tal14 tal==tal15 tal==tal16 tal==tal17 tal==tal18 tal==tal19 tal==tal20 tal==tal21 tal==tal22 tal==tal23 tal==tal24 tal==tal25 tal==tal26 tal==tal27 tal==tal28 tal==tal29 tal==tal30 tal==tal31 tal==tal32 tal==tal33 tal==tal34 tal==tal35 tal==tal36 tal==tal37 tal==tal38 tal==tal39 tal==tal40 tal==tal41 tal==tal42 tal==tal43 tal==tal44 tal==tal45 tal==tal46 tal==tal47 tal==tal48 tal==tal49 tal==tal50 tal==tal51 tal==tal52 tal==tal53 tal==tal54 tal==tal55 tal==tal56 tal==tal57 tal==tal58 tal==tal59 tal==tal60 tal==tal61 tal==tal62 tal==tal63 tal==tal64 tal==tal65 tal==tal66 tal==tal67 tal==tal68 tal==tal69 tal==tal70 tal==tal71 tal==tal72 tal==tal73 tal==tal74 tal==tal75 tal==tal76 tal==tal77 tal==tal78 tal==tal79 tal==tal80 tal==tal81 tal==tal82 tal==tal83 tal==tal84 tal==tal85 tal==tal86 tal==tal87 tal==tal88 tal==tal89 tal==tal90 tal==tal91 tal==tal92 tal==tal93 tal==tal94 tal==tal95 tal==tal96 tal==tal97 tal==tal98 tal==tal99 tal==tal100) Std.out.println("Talet finns i listan!"); else Std.out.println("Talet finns inte i listan!");... eller arrayer!

Arrayer: teori förklaring Vanliga variabler innehåller ett värde En array (synonymer: fält, matris) innehåller en tabell av värden Varje element kan användas som en variabel: det kan få ett värde värdet kan användas i beräkningar vanlig variabel: array: 0.1 0.2 0.5 3.1 5.0-10.0 2.8 dessa är arrayens 7 element 5.0

Arrayer: teori typer Varje array har en och samma typ på alla element (t.ex. int, double, String, TelefonKostnad) Exempel: En int-array för 100-tal-exemplet En double-array för att lagra matematiska vektorer En String-array för att lagra namnen på alla studenter i kursen En TelefonKostnad-array för att lagra alla telefoner på Susanna Import & Export

Arrayer: teori deklarera och skapa nya deklaration (skapar en variabel som kan referera till en array): double[] listaavtal; initiering: skapar en doublearray med 5 element listaavtal = new double[5]; låter listaavtal referera till den nya arrayen hakparenteser gör att vi får en referens till array, i stället för bara ett värde

Arrayer: teori deklarera och skapa nya new ger defaultvärde 0 för alla element double[] listaavtal; listaavtal = new double[5]; I minnet: listaavtal: 0.0 0.0 0.0 0.0 0.0

Arrayer: teori åtkomst sker via indexering Varje element i arrayen har ett nummer, som kallas index. Första elementet har index 0 Sista elementet har index: (antal element)-1 double[] listaavtal; listaavtal = new double[5]; index 0 index 1 index 2 index 3 index 4 listaavtal: 0.0 0.0 0.0 0.0 0.0

Arrayer: teori åtkomst sker via indexering Enskilda element i arrayen kommer man åt med indexering double[] listaavtal; listaavtal = new double[5]; listaavtal[1] = 40.0; (sätter element 1 till 40) listaavtal[4] = 2.0; (sätter element 4 till 2) Std.out.println(listaAvTal[0]); (Skriver ut 0.0) Std.out.println(listaAvTal[1]); (Skriver ut 40.0) index 0 index 1 index 2 index 3 index 4 listaavtal: 0.0 40.0 0.0 0.0 2.0

Arrayer: teori åtkomst sker via indexering Kan indexeras med vilket heltal som helst, även variabler och uttryck double[] listaavtal; listaavtal = new double[5]; for (int i = 0; i < 5; i++) listaavtal[i] = i * 2.5; index 0 index 1 index 2 index 3 index 4 listaavtal: 0.0 2.5 5.0 7.5 10.0

Arrayer: exempel 100-tal-uppgiften Kom ihåg: uppgift Läs in 100 tal Läs in ett tal till (kalla det x) Tala om ifall x fanns bland de 6 Exempelkörning: Mata in 100 tal: 2713 87... 11 4 Mata in ett till: 11 Talet fanns i listan!

Arrayer: exempel Vänd på lista Uppgift: Läs in ett heltal n Läs in n stycken flyttal Skriv ut talen i omvänd ordning Exempelkörning: Hur många tal vill du mata in? 3 Mata in 3 tal: 43.4 11 4 Talen i omvänd ordning: 4 11 43.4

Mer array-teori: längd Arrayens längd sparas i instansvariabeln length: double[] listaavtal; listaavtal = new double[5]; Std.out.println(listaAvTal.length); (skriver ut 5) Inte en metod: Kan inte ändras: listaavtal.length() listaavtal.length = 10 index 0 index 1 index 2 index 3 index 4 listaavtal: 0.0 40.0 0.0 0.0 2.0 length = 5

Teori: null Ibland vill man att en variabel av klasstyp (String, TelefonKostnad osv) inte ska referera till något objekt Det görs genom att den får värdet null: String text = null; null är ett nyckelord i Java Varibel som refererar till objekt: var: Varibel med värde null: var:

Teori: null Endast variabler av klasstyp kan vara null. Variabler av atomiska typer (int, boolean osv) kan inte vara null Instansvariabler och metoder kan inte användas. Följande ger fel vid körning: TelefonKostnad olasmobil = null; olasmobil.skickasms(); // metodanrop går inte! olasmobil.variabel = 3; // instansvariabler kan inte använda (varför måste det bli fel?)

Teori: null En variabel av typen String med värdet null är inte en sträng av längd 0 M.a.o.: det är skillnad på String ingetobjekt = null; och String tomsträng = ; Varför? (ledning: se förra OH-bilden)

Teori: Default-värden Klassvariabler och instansvariabler kan deklareras och ges ett värde samtidigt: class Test { private int x = 4; private String namn = Lisa ; } Om de inte ges värde får de default-värde: class Test { private int x; // x blir 0 private String namn; // namn blir null } Beror på typen: default för tal (int, double, osv) är 0 default för boolean är false default för referensvariabler (t.ex. objekt) är null

Teori: Default-värden för arrayer Arrayvariabler är referenser Alltså: defaultvärde null Varje element i arrayen har en typ När en array skapas, får varje element defaultvärdet för typen String[] listaavtexter; int[] listaavheltal; // nu har både listaavtexter och listaavheltal värdet null listaavtexter = new String[3]; listaavheltal = new int[4]; // nu refererar listaavtexter till arrayen { null, null, null } // nu refererar listaavheltal till arrayen { 0, 0, 0, 0 }

Mer array-teori: skapa ny och initiera samtidigt En array kan få sina värden då den skapas måsvingar double[] listaavtal = { 3.1, 7.8, 6.0 }; Std.out.println(listaAvTal.length); (skriver ut 3) Std.out.println(listaAvTal[0]); (skriver ut 3.1) Std.out.println(listaAvTal[1]); (skriver ut 7.8) Std.out.println(listaAvTal[2]); (skriver ut 6.0) Används i stället för new + tilldelning Nu behövs inte new Arrayens längd = antal angivna element listaavtal: index 0 index 1 index 2 3.1 7.8 6.0 length = 3

Mer array-teori: arrayer av objekt En array av objekttyp måsvingar double[] listaavtal = { 3.1, 7.8, 6.0 }; Std.out.println(listaAvTal.length); (skriver ut 3) Std.out.println(listaAvTal[0]); (skriver ut 3.1) Std.out.println(listaAvTal[1]); (skriver ut 7.8) Std.out.println(listaAvTal[2]); (skriver ut 6.0) Nu behövs inte new. arrayens längd = antal angivna element listaavtal: index 0 index 1 index 2 3.1 7.8 6.0 length = 3

Mer array-exempel: månadernas namn Uppgift: Skriv ett program som läser in ett heltal från 1 till 12 och skriver ut namnet på motsvarande månad Använd en array Exempelkörning: Skriv månadens nummer: 5 Månad 5 heter maj

Mer array-exempel: Varannat tal Uppgift: Läs in en array av flyttal Skriv ut summan av alla tal på jämna positioner, summan av alla tal på udda positioner, och summan av alla tal. Exempelkörning: Hur många tal vill du skriva in? 4 Skriv in 4 tal: 1 10 2 20 Summan av tal på jämna positioner: 3 Summan av tal på udda positioner: 30 Summan av alla tal: 33 index 0 index 1 index 2 index 3 index 4 0.0 40.0 0.0 0.0 2.0 jämn udda jämn udda jämn

Mer array-exempel: Summera Uppgift: fyll i det som fattas! class Summera { public static void main(string[] args) { int[] array1 = { 13, -22, 82, 17, 31, 11, 40, -100, -12, 1}; int[] array2 = {-12, 24, -79, -13, -1, -1, 49, 7, 310, 9}; int[] summa = new int[10]; // Summera värden från motsvarande element i array1 och array2 // och spara resultatet i summa. System.out.println("Summor: "); // Skriv ut alla värden i summa. } }

Mer array-exempel: Näst största Uppgift: Läs in en array av flyttal Skriv ut det näst största talet Exempelkörning: Hur många tal vill du skriva in? 4 Skriv in 4 tal: 1 10 2 20 Det näst största är 10

Mer array-exempel: Öka arraykapaciteten Uppgift: Skriv en metod som: tar en int-array som parameter returnerar en int-array som har dubbelt så många element som den givna arrayen första halvan ska innehålla samma värden som den givna arrayen andra halvan ska bara innehålla nollor Exempel: Parameter: 3 7 6 Returvärde: 3 7 6 0 0 0

Mer array-exempel: Rotera array Uppgift: Skriv en metod som: tar en int-array som parameter flyttar alla element ett steg bakåt (till lägre index), utom det första, som läggs sist index 0 index 1 index 2 index 3 index 4

Fundera hemma: Sortering Uppgift: Läs in en array av flyttal Skriv ut arrayen sorterad med det minsta först Exempelkörning: Hur många tal vill du skriva in? 4 Skriv in 4 tal: 8 5 1 2 9 Sorterade: 1 2 5 8 9