150 likes | 293 Views
Föreläsning 8. Arrayer Diagnostiskt prov. Exempel. Skriv ett program som frågar efter 3 namn och skriver ut alla inmatade namn fast det sista inmatade namnet först och det första inmatade namnet sist. En körning av programmet kan se ut så här: Mata in namn1: KTH
E N D
Föreläsning 8 • Arrayer • Diagnostiskt prov
Exempel Skriv ett program som frågar efter 3 namn och skriver ut alla inmatade namn fast det sista inmatade namnet först och det första inmatade namnet sist. En körning av programmet kan se ut så här: Mata in namn1: KTH Mata in namn2: Programmering Mata in namn3: Nada Du matade in Nada, Datalogi, KTH
Problem Skriv ett program som frågar efter ett heltal sedan frågar programmet så många gånger som det inmatade talet efter ett namn och när användaren har besvarat alla frågor då skriver programmet ut alla inmatade namn fast det sista inmatade namnet först och det första inmatade namnet sist. En körning av programmet kan se så här ut: Ange det antal gånger du vill mata in : 2 Mata in namn1: bok Mata in namn2: penna Du matade in penna, book
…fortsättning En annan körning av programmet kan se ut så här: Ange det antal gånger du vill mata in: 4 Mata in namn1: KTH Mata in namn2: Nada Mata in namn3: Datalogi Mata in namn4: Program Du matade in Program, Datalogi, Nada, KTH
…fortsättning Det visar sig att med de programmeringskunskap som vi hittills har så är det omöjligt att skriva detta program, varför? Detta är föratt vi (programmeraren) har ingen aning om det antal ggr som användaren tänker att mata in något och därmed har vi ingen aning om hur många variabler som kommer att behövas i programmet. vad gör man då? Svaret är vektorer (Array eller Vector)
Array (Hakvektor) • Beteckningen [ ] betyder att vi har med en array att göra. • I en variabel av typen String kan man bara lagra ett namn åt gången men i en variabeln av typen String[] (man läser String-array eller array av String) kan man lagra flera namn samtidigt. Hur?
exempel String kursbeteckning = ”prgmedcl”; String[] kursBeteckningar =new String[3]; kursBeteckningar[0]=”prgmedcl”; kursBeteckningar[1]=”Matema”; kursBeteckningar[2]=”Elektr”;
Minnesbilde String kursbeteckning = ”prgmedcl”; String-objekt ”prgmedcl” String kursbeteckning
Minnesbild String[] kursBeteckningar =new String[3]; kursBeteckningar[0]=”prgmedcl”; kursBeteckningar[1]=”Matema”; kursBeteckningar[2]=”Elektr”; String[]-objekt String[] 0 1 2 kursbeteckning ”prgmedcl” ”Metema” ”Elektr”
Längden av en array Varje array har ett attribut som är av typen inte och visar antal element i arrayen String[] kursBeteckningar =new String[3]; int ak=kursBeteckningar.length; OBS! blanda inte attributenlength med metodenlength() Som finns i klassen String
Rita minnesbild för följande kod String[] kursBeteckningar =new String[3]; kursBeteckningar[0]=”prgmedcl”; kursBeteckningar[1]=”Matema”;
Minnesbild … int[] ålderAvAlla =new int[167]; for(int i=0; i<167; i++){ String ålders=stdin.readLine(); trålderAvAlla[i]=MiInteger.parseInt(ålderstr); } int[]-objekt int[] 1 0 166 ålderAvAlla …
Array Array (hakvektor) och vektorer är en lista av element av samma typ eller samma class. Man kan både ha hakvektorer (arrayer) av primitiva typer (int, double, char ,...) och arrayer av klasser. talArray int[] talArray=new int[6]; talArray[0] Index: 0 1 2 3 4 5 talArray[4]= 121; 121 18 talArray[5]= 18;
Matriser Matriser skapar man av 2 hakvektorer (array). Exempel: int[][] heltalMatris= new int [3][6]; heltalMatris heltalMatris[0][2]=124; andra index 0 1 2 3 4 5 124 0 1 2 Första index