[][] Arrayer med två index

Relevanta dokument
[] Arrayer = Indexerad variabel

Lässtrategier för att förstå och tolka texter samt för att anpassa läsningen efter textens form och innehåll. (SV åk 1 3)

Projektdokumentation för Othello

Schackledarens blad Lektion 1

Hästhopp. Detta är en övning som tränar olika problemlösningsstrategier och statistik. Den lämpar sig för år 4 och uppåt

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

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

//Använd main som ett "handtag" för att hålla ihop programmet. //Själva programmet finns i övriga klasser.

Kort Sammanfattning av Schack MAS

UPPGIFT 1 V75 FIGUR 1.

kl Tentaupplägg

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Tentamen FYTA11 Javaprogrammering

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

Programmering II (ID1019) :00-11:00

Att utveckla den sociala samvaron genom schack Författare: Jonas Nilsson

kl Tentaupplägg

Per Holm Lågnivåprogrammering 2014/15 24 / 177. int och double = = 2, 147, 483, 647

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

Microsoft Office Excel, Grundkurs 1. Introduktion

LÄRARHANDLEDNING. Eleverna kan två och två eller i större grupper på ett lekfullt sätt träna följande: Talinnehåll Addition Subtraktion Multiplikation

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

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 2

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

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

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

Föreläsning 2, vecka 8: Repetition

JAVAUTVECKLING LEKTION 8

725G61 - Laboration 2 Loopar och arrayer. Johan Falkenjack

Handbok Knights. Översättare: Stefan Asserhäll

Programmeringsuppgift Game of Life

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

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

Excel Övning 1 ELEV: Datorkunskap Sida 1 Niklas Schilke

TENTAMEN PROGRAMMERING I JAVA, 5P SOMMARUNIVERSITETET

Instruktion för laboration 1

Genetisk programmering i Othello

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

Tentamen TEN1 HI

Tentamen i Grundläggande Programvaruutveckling, TDA548

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 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

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

Fem schackmattelektioner för årskurserna F-3 av Fredric Hillertz och Jesper Hall

Lågnivåprogrammering. Föreläsning 2 Lågnivåprogrammering. Binära tal. En enkel modell av datorns inre

Föreläsning 3-4 Innehåll

TENTAMEN MOM1 GRUNDLÄGGANDE PROGRAMMERINGSTEKNIK OCH

Kvalificeringstävling den 26 september 2017

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

SCB :-0. Uno Holmer, Chalmers, höger 2 Ex. Induktiv definition av lista. // Basfall

C++ Lektion Tecken och teckenfält

Tenta (TEN3) i kursen 729G04 Programmering och diskret matematik 5 feb 2016, kl 14:00-18:00

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

Hur kommer jag igång?

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

JAVA Mer om klasser och objektorientering

Metoder - en funktion: medel

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

Extramaterial till Matematik X

DD1321, Tentamen i tillämpad programmering och datalogi Lördagen den 18 dexember 2010 kl 13 18

SMD 134 Objektorienterad programmering

TDDC77 Objektorienterad Programmering

Extramaterial till Matematik Y

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.

Sagaforms spelregler SCHACK, FIA MED KNUFF, BACKGAMMON, DOMINO

Bildkälla: Pixabay. 1) Timer: konstruktion av en maskin som skall välta en aluminiumburk vid en given tidpunkt.

i LabVIEW. Några programmeringstekniska grundbegrepp

Övningsuppgift 2 Datalogi I 2I1027/2I1035/2I1046

Lärarhandledning Tärningsspel

Tentamen , Introduktion till Java, dtaa98, dtea53

ENKEL Programmering 3

Programmering II (ID1019) :00-11:00

Lösningsförslag tentamen FYTA11 Java

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

Produktionsstöd har erhållits från Specialpedagogiska skolmyndigheten

Föreläsning 8: Exempel och problemlösning

Inledning till OpenOffice Calculator Datorlära 2 FK2005

Tentamen ID1004 Objektorienterad programmering October 29, 2013

TDIU Regler

Klassdeklaration. Metoddeklaration. Parameteröverföring

översiktskurs (5DV031)

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

Datalogi, grundkurs 1

Erfarenheter från labben

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

Schackborgarmärket. Lär dig hur pjäserna går! Namn:

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

Schackborgarmärket. Lär dig hur pjäserna går! Namn:

TDP Regler

Datorövning 1 Calc i OpenOffice 1

Skriv i mån av plats dina lösningar direkt i tentamen. Skriv ditt kodnummer längst upp på varje blad.

Datorlaboration 1 Deskriptiv statistik med hjälp av MS Excel vers. 2010

Schackborgarmärket. Matt med två torn! Namn:

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

Matte att räkna med. Utdrag ur Lgr11 angående ämnet matematik

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 ges för: Tentamensdatum: Tid:

A: måndag B: tisdag C: onsdag D: torsdag E: fredag. Vilken av följande bitar behöver vi för att det ska bli ett rätblock?

Att använda pekare i. C-kod

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

Transkript:

[][] Arrayer med två index Exempel på saker med två index: En digital bild: bilden har rader (y) och kolumner (x) Mätdata i en tabell med rader och kolumner Spel: o Schack o Sudoku o Luffarschack Arrayer med två index 1

Vi skapar en arrayvariabel med två index Betyder två index int [][] t = { {7,3,4}, {-2,8,5} }; Kan ses som en tabell: inde ex1 0 1 index2 0 1 2 7 3 4-2 8 5 Elementen är : 1:a index 2:a index t[0][0]=7, t[0][1]=3, t[0][2]=4, t[1][0]=-2, t[1][1]=8, t[1][2]=5. Arrayer med två index 2

int [][] t = { {7,3,4}, {-2,8,5} }; Element Arrayen har två element t[0] resp. t[1], där ett sådant element är endimensionell array, som i sin tur består av tre element som är heltal. Så här ser det ut i minnet: t[0] t[1] t[1][0] -2 t[1][1] 8 t[1][2] 5 t t[0][0] 7 t[0][1] 3 t[0][2] 4 Arrayer med två index 3

Skriv ut talen som en tabell // En dubbelloop: // En yttre loop: // För varje rad, dvs 1:a index for (int i1=0; i1<=1; i1++) { // En inre loop: // För varje kolumn, dvs 2:a index for (int i2=0; i2<=2; i2++) { // Skriv ut utan radbyte, men med TAB mellan talen System.out.print( t[i1][i2] ] } // slut på den inre loopen // Skriv ut radbyte System.out.println(); t } // slut på den yttre loopen + "\t"); i1 är 1:a index i2 är 2:a index Arrayer med två index 4

Summera talen int sum=0; // Loop för 1:a index for (int i1=0; i1<=1; i1++) { // Loop för 2:a index for (int i2=0; i2<=2; i2++) { sum = sum + t[i1][i2]; } // slut på den inre loopen } // slut på den yttre loopen System.out.println(sum); Arrayer med två index 5

2D-arrayen vet sin storlek för båda dess index int [][] t = { {7,3,4}, {-2,8,5} }; t.length har värdet 2, därför att t består av 2 element t[0].length har värdet 3, därför att t[0] består av 3 element t[1].length har värdet 3, därför att t[1] består av 3 element Arrayer med två index 6

Representation av icke-rektangulära 2D-arrayer Exempel binomialkoefficienter i i i ett icke-rektangulär kt array 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 int [][] bin = { {1}, {1,1}, {1,2,1}, {1,3,3,1}, bin.length har värdet 6 bin[0].length har värdet 1 bin[1].length har värdet 2 bin[2].length har värdet 3 bin[3].length har värdet 4 bin[4].length har värdet 5 bin[5].length har värdet 6 {1,4,6,4,1}, 4 1} {1,5,10,10,5,1} 10 10 5 1} }; Arrayer med två index 7

Vi skriver ut arrayen bin: for (int i1=0; i1<bin.length; i1++) { // bin[i1].length är raden i1 s längd for (int i2=0; i2<bin[i1].length; i2++) { System.out.print(bin[i1][i2]+ " "); } // Radbyte mellan varje System.out.println(); } Resultatet blir: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 Arrayer med två index 8

Ex. schackspel 0 2:a index 7 0 1:a index 7 Arrayer med två index 9

Ex. hur ett schackbräde kan representeras i Java 8 ggr 8 element med tecken: 8 rader, 8 kolumner Varje tecken är första bokstaven i pjäsens namn: Torn, Springare, Löpare, Dam, Kung, Bonde Versaler är svarta pjäser. Gemener är vita pjäser. Tecknet _ betyder tom plats. char [][] start_bräde = { }; {'T','S','L','D','K','L','S','T'} }, {'B','B','B','B','B','B','B','B'}, {'_','_','_','_','_','_','_','_'}, {'_','_','_','_','_','_','_','_'},' ' ' ' ' ' ' ' ' ' ' ' ' ' '} {'_','_','_','_','_','_','_','_'}, {'_','_','_','_','_','_','_','_'}, {'b','b','b','b','b','b','b','b'}, 'b'} {'t','s','l','d','k','l','s','t'} Arrayer med två index 10

Vi skriver ut startbrädet for (int i=0; i<=7; i++) { } for (int j=0; j<=7; j++) { } System.out.print( print(" "+start_bräde[i][j]); System.out.println(); Arrayer med två index 11

Börja spela // Vi startar med ett nytt tomt bräde char [][] bräde = new char[8][8]; // Kopiera innehållet från // start_bräde till bräde // Placera ut pjäserna for (int i=0; i<=7; i++) { for (int j=0; j<=7; j++) { bräde[i][j]=start_bräde[i][j]; } } Arrayer med två index 12

Första draget... Antag att datorn spelar med vita pjäser. Vit flyttar bonden D2 till D4 // flytta den till D4 bräde[4][3] = bräde[6][3]; // och ta bort den från D2 // underskrykningstecknet betyder tom plats bräde[6][3] ] = '_'; Sedan är det dags för användaren att flytta en svart pjäs Arrayer med två index 13

Senare i spelet Datorn (vit) flyttar bonden D4 Om det finns en svart pjäs i C5 eller E5 slå ut den och flytta bonden dit. Annars om D5 är ledig,flytta bonden dit. Lagra utslagna vita pjäser i en 1D-array vars element är tecken, så att programmet håller koll på dem. Ha en räknare för antalet utslagna vita pjäser. Gör på samma sätt för de svarta pjäserna,men i en annan 1D-array och en annan räknare. Arrayer med två index 14

Arrayer med 3 index Exempel på tredimensionella data: Bilder (medicinska bilder med voxlar, jmfr pixlar) ) Spel Volymsdata Arrayer med två index 15

Rubiks kub En 3-dimensionell array i Java? Hur representeras det i Java? Arrayer med två index 16

I kuben finns: Rubiks kub Totalt 27 st element 8 st element (hörnen) med tre sidor 1 st element (mitt i) har noll sidor 6 st element har en sida 12 st element har två sidor Varje sida har en färg (Color) Arrayer med två index 17

Övningar 2D-arrayer 1. Vi har en array som representerar ett excel-ark, med tre rader och fyra kolumner som är tre elevers poäng i ett prov med fyra uppgifter: u1 u2 u3 u4 a) Skapa arrayen med data Elev 1 3 1 2 1 Elev 2 2 3 3 1 totala poäng. Gör det gärna Elev 3 medenloopsåblir en 4 3 3 4 b) Beräkna elev nummer 2 s programmet generellt. c) Beräkna medelvärdet av poängen för uppgift 3. Gör det gärna med en loop så blir programmet generellt. d) Beräkna medelvärdet av poängen för alla uppgifter i provet. Gör det med en loop. Arrayer med två index 18

Övningar 2D-arrayer 2. a) Skapa en arrayesom representerar en sudoku- spelplan (9x9 rutor) med int [][] = new int[9][[9]; Alla element blir därmed noll automatiskt. Lägg in enkla startvärden i det genom att bara lagra siffror 1-9 i den övre raden. Övriga rutor skall vara tomma. Låt heltalsvärdet noll betyda tomt. 1 2 3 4 5 6 7 8 9 b) Skriv ut hela sudokuspelplanen. Skriv ut nollor där det är tomma rutor. Arrayer med två index 19

Övningar 2D-arrayer c) En annan princip för startvärden: Lägg in värden 1-9ih hela diagonalen. Skriv ut hela sudoku-spelplanen. Arrayer med två index 20

Övningar 2D-arrayer d) Extra-uppgift: En annan princip för startvärden: Lägg in värden 1-9it tre av delar av spelplanen l enligt nedan. Skriv ut hela sudoku-spelplanen. Arrayer med två index 21

Extra övning 3. a) )Skapa en sudoku-spelplan l som fylls med slumpmässiga siffror 1-9 i alla rutor. Gör ingen kontroll av siffrorna. b) Bygg på programmet: Räkna hur många rader som är godkända dvs innehåller alla siffror 1-9. c) )Bygg på programmet: Räkna hur många kolumner som är godkända, dvs innehåller alla siffror 1-9. d) Bygg på programmet: Räkna hur många av de 9 st 3x3 rutorna som är godkända. e) Med räknarna i b)-d) kan du kontrollera ifall hela sudoku t är korrekt. Arrayer med två index 22