Java/Array: Unterschied zwischen den Versionen

Aus ZUM-Unterrichten
main>Ugh
Keine Bearbeitungszusammenfassung
 
K (27 Versionen importiert)
(26 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Kasten gelb|Dieser Artikel entspricht der Ausarbeitung auf http://informatik.zum.de/pieper/
Dort finden sich ausdruckbare Materialien und die zugehörigen Beispiele.}}
{{Unterrichtsidee}}
==Zur Konzeption==
==Zur Konzeption==
{{Idee|
* Es wird anhand von elementaren Methoden zum Umgang mit dem Array der Array erklärt. Man kann sich dabei auf Mathematik beziehen: x1, x2, x3.. xn als indizierte Variable sollte den Schülern bekannt sein.  
* Es wird anhand von elementaren Methoden zum Umgang mit dem Array der Array erklärt. Man kann sich dabei auf Mathematik beziehen: x1, x2, x3.. xn als indizierte Variable sollte den Schülern bekannt sein.  
* Ein netter Vergleich für Neulinge ist ein "Schubladenschrank" mit nummerierten Schubladen.  
* Ein netter Vergleich für Neulinge ist ein "Schubladenschrank" mit nummerierten Schubladen.  
* Die Beispiele sind auf den Umgang mit BlueJ hin konzipiert und enthalten daher keine main Methode.  
* Die Beispiele sind auf den Umgang mit BlueJ hin konzipiert und enthalten daher keine main Methode.  
* Es können Parallelen zum Alltag hergestellt werden: Wo nutzen Schüler privat so etwas wie einen Array (z.B. Karteikasten, Buch, Kalender, Handyadressbuch...).
* Es können Parallelen zum Alltag hergestellt werden: Wo nutzen Schüler privat so etwas wie einen Array (z.B. Karteikasten, Buch, Kalender, Handyadressbuch...).}}
 
==Einstieg ins Thema==
* [http://informatik.zum.de/pieper/blog/index.php?entry=entry070110-165509 Hier] findet sich ein Bildschirmfilm zum Thema Einstieg in Arrays in [[Java]] mit [[BlueJ]].


== Datenstrukturen ==
== Datenstrukturen ==
Zeile 14: Zeile 14:
Im eindimensionalen Fall wird das Array häufig als Vektor und im zweidimensionalen Fall als Tabelle oder Matrix bezeichnet. Arrays sind aber keinesfalls nur auf zwei Dimensionen beschränkt, sondern werden beliebig mehrdimensional verwendet.  
Im eindimensionalen Fall wird das Array häufig als Vektor und im zweidimensionalen Fall als Tabelle oder Matrix bezeichnet. Arrays sind aber keinesfalls nur auf zwei Dimensionen beschränkt, sondern werden beliebig mehrdimensional verwendet.  
Wegen ihrer Einfachheit und grundlegenden Bedeutung bieten die allermeisten Programmiersprachen eine konkrete Umsetzung dieser Datenstruktur als zusammengesetzten Datentyp Array im Grundsprachumfang an.  
Wegen ihrer Einfachheit und grundlegenden Bedeutung bieten die allermeisten Programmiersprachen eine konkrete Umsetzung dieser Datenstruktur als zusammengesetzten Datentyp Array im Grundsprachumfang an.  
|Datenstruktur|18.05.2006}}  
|Datenstruktur|18.05.2006}}
 


== Ein erstes Beispiel ==
== Ein erstes Beispiel ==
<java>
<source lang="java">
public class ArrayTest1
public class ArrayTest1
{
{
Zeile 33: Zeile 32:
   }
   }
    
    
   public double getZahlInFeld(int index, int wert)
   public double getZahlInFeld(int index)
   {
   {
     return zahlenFeld[index];
     return zahlenFeld[index];
   }   
   }   
}
}
</java>
</source>


Die Eigenschaft zahlenfeld wird als Array mit double-Elementen deklariert:
Die Eigenschaft zahlenfeld wird als Array mit double-Elementen deklariert:
Zeile 53: Zeile 52:
Die Zählung eines Arrays beginnt bei 0, daher hat ein Array mit 10 Elementen den höchsten Index 9.}}  
Die Zählung eines Arrays beginnt bei 0, daher hat ein Array mit 10 Elementen den höchsten Index 9.}}  


Greift man auf einen Index außerhalb des festgelegten Bereichs zu, so erhält man eine Fehlermeldung. Bei dem obigen Beispiel reicht es, den Index 10 zu wählen.  
Greift man auf einen Index außerhalb des festgelegten Bereichs zu, so erhält man eine Fehlermeldung. Bei dem obigen Beispiel reicht es, den Index 10 zu wählen.


==length==
==length==
Jeder Array hat die Eigenschaft length, mit der die Länge des Feldes festgestellt werden kann.
Jeder Array hat die Eigenschaft length, mit der die Länge des Feldes festgestellt werden kann.


<java>
<source lang="java">
   public double getLaenge()
   public int getLaenge()
   {
   {
     return zahlenFeld.length;
     return zahlenFeld.length;
   }
   }
</java>
</source>


==Ausgabe aller Werte==
==Ausgabe aller Werte==
Zeile 69: Zeile 68:
Denken Sie daran, dass i zunächst auf 0 und nicht auf 1 gesetzt werden muss.
Denken Sie daran, dass i zunächst auf 0 und nicht auf 1 gesetzt werden muss.


<java>
<source lang="java">
   public void gibAus ()
   public void gibAus ()
   {
   {
Zeile 78: Zeile 77:
       }
       }
   }
   }
</java>
</source>


==Zufallszahlenfeld==
==Zufallszahlenfeld==
<java>
<source lang="java">
   public void macheZufallsfeld (int maximum)
   public void macheZufallsfeld (int maximum)
   {
   {
Zeile 90: Zeile 89:
       }
       }
   }
   }
</java>
</source>
Die oben abgebildete Methode weist dem Feld Zufallszahlen (ohne Nachkommastellen) zu. Das ist sehr praktisch, wenn man das Feld nicht von Hand befüllen möchte. maximum gibt obere Grenze an. Die Zufallszahlen liegen also zwischen 1 und (einschließlich) maximum.
Die oben abgebildete Methode weist dem Feld Zufallszahlen (ohne Nachkommastellen) zu. Das ist sehr praktisch, wenn man das Feld nicht von Hand befüllen möchte. maximum gibt obere Grenze an. Die Zufallszahlen liegen also zwischen 1 und (einschließlich) maximum.




== Was ist die größte Zahl im Feld ==
== Was ist die größte Zahl im Feld ==
<java>
<source lang="java">
   public double getGroessteZahl ()
   public double getGroessteZahl ()
   {
   {
Zeile 108: Zeile 107:
       return maximum;
       return maximum;
   }   
   }   
</java>
</source>


Eine typische Aufgabe im Zusammenhang mit Arrays ist, die größte Zahl zu suchen (z.B. Maximaltemperatur bei einer Temperaturzeitreihe).
Eine typische Aufgabe im Zusammenhang mit Arrays ist, die größte Zahl zu suchen (z.B. Maximaltemperatur bei einer Temperaturzeitreihe).
Zeile 120: Zeile 119:
{{Übung|# Lassen Sie in einer neuen Methode die kleinste Zahl im Feld suchen.
{{Übung|# Lassen Sie in einer neuen Methode die kleinste Zahl im Feld suchen.
# Lassen Sie in einer neuen Methode den Index und nicht den Wert des größten Elementes zurückgeben.
# Lassen Sie in einer neuen Methode den Index und nicht den Wert des größten Elementes zurückgeben.
# Lassen Sie in einer neuen Methode die Summe aller Zahlen im Feld zurückgeben. Der Benutzer soll eine Zahl übergeben. Wenn die Zahl im Feld vorkommt, soll true zurückgegeben werden, wenn nicht false.}}
# Lassen Sie in einer neuen Methode die Summe aller Zahlen im Feld zurückgeben.
# Lassen Sie in einer neuen Methode den Benutzer eine Zahl übergeben. Wenn die Zahl im Feld vorkommt, soll true zurückgegeben werden, wenn nicht false.}}
 
==Linkliste==
 
 


==siehe auch==
Einführungsbeispiel zu ARRAYs in Java: Prüfung eines EAN-Codes:
* [[Java]]
{{Pdf|eanCode.pdf|Der EAN-Code}}


==Weblinks==
* http://www.programmersbase.net/Content/Java/Content/Tutorial/Java/Array.htm
* http://www.rolandgeyer.at/kurse/german/javsrc/jav017.html


{{Kategorie:Informatik}}
[[Kategorie:Java]]
[[Kategorie:Unterrichtsidee]]
[[Kategorie:Informatik]]

Version vom 17. August 2019, 04:04 Uhr

Zur Konzeption

Unterrichtsidee
  • Es wird anhand von elementaren Methoden zum Umgang mit dem Array der Array erklärt. Man kann sich dabei auf Mathematik beziehen: x1, x2, x3.. xn als indizierte Variable sollte den Schülern bekannt sein.
  • Ein netter Vergleich für Neulinge ist ein "Schubladenschrank" mit nummerierten Schubladen.
  • Die Beispiele sind auf den Umgang mit BlueJ hin konzipiert und enthalten daher keine main Methode.
  • Es können Parallelen zum Alltag hergestellt werden: Wo nutzen Schüler privat so etwas wie einen Array (z.B. Karteikasten, Buch, Kalender, Handyadressbuch...).


Einstieg ins Thema

  • Hier findet sich ein Bildschirmfilm zum Thema Einstieg in Arrays in Java mit BlueJ.

Datenstrukturen

In der Informatik ist eine Datenstruktur eine bestimmte Art, Daten zu verwalten und miteinander zu verknüpfen, um in geeigneter Weise auf diese zugreifen und diese manipulieren zu können. Datenstrukturen sind immer mit bestimmten Operationen verknüpft, um eben diesen Zugriff und diese Manipulation zu ermöglichen.

Das Array ist die einfachste verwendete Datenstruktur. Es werden hierbei mehrere Variablen vom selben Basisdatentyp gespeichert. Ein Zugriff auf die einzelnen Elemente wird über einen Index möglich. (...) Im eindimensionalen Fall wird das Array häufig als Vektor und im zweidimensionalen Fall als Tabelle oder Matrix bezeichnet. Arrays sind aber keinesfalls nur auf zwei Dimensionen beschränkt, sondern werden beliebig mehrdimensional verwendet. Wegen ihrer Einfachheit und grundlegenden Bedeutung bieten die allermeisten Programmiersprachen eine konkrete Umsetzung dieser Datenstruktur als zusammengesetzten Datentyp Array im Grundsprachumfang an.


Wikipedia-logo.png Datenstruktur, Wikipedia – Die freie Enzyklopädie, 18.05.2006 - Der Text ist unter der Lizenz „Creative Commons Attribution/Share Alike“ verfügbar; zusätzliche Bedingungen können anwendbar sein. Siehe die Nutzungsbedingungen für Einzelheiten. In der Wikipedia ist eine Liste der Autoren verfügbar.



Ein erstes Beispiel

public class ArrayTest1
{
  private double[] zahlenFeld;
 
  public ArrayTest1()
  {
    zahlenFeld = new double[10];   
  }
  
  public void setZahlInFeld(int index, double wert)
  {
    zahlenFeld[index]=wert;
  }
  
  public double getZahlInFeld(int index)
  {
    return zahlenFeld[index];
  }  
}

Die Eigenschaft zahlenfeld wird als Array mit double-Elementen deklariert:

private double[] zahlenFeld;

Das Kennzeichen hierfür sind die eckigen Klammern. Im Konstruktor wird dann ein neues Array mit 10 Elementen angelegt:

zahlenFeld = new double[10];

Auf die einzelnen Elemente kann man mit Angabe des Index zugreifen:

zahlenFeld[5]=27.3;

setzt beispielsweise zahlenFeld mit dem Index 5 auf den Wert 27.3 So erklärt sich die get- und die set-Methode im obigen Beispiel. Natürlich muss bei einem Array noch der Index genannt werden, weshalb sich der Übergabeparameter index ergibt.


Hinweis: Die Zählung eines Arrays beginnt bei 0, daher hat ein Array mit 10 Elementen den höchsten Index 9.

Greift man auf einen Index außerhalb des festgelegten Bereichs zu, so erhält man eine Fehlermeldung. Bei dem obigen Beispiel reicht es, den Index 10 zu wählen.

length

Jeder Array hat die Eigenschaft length, mit der die Länge des Feldes festgestellt werden kann.

  public int getLaenge()
  {
    return zahlenFeld.length;
  }

Ausgabe aller Werte

Die Ausgabe aller Werte eines Arrays lässt sich einfach mit Hilfe einer einfachen Schleife realisieren, die abbricht, wenn eine Zählvariable (in diesem Fall i) die Länge des Feldes erreicht hat. Denken Sie daran, dass i zunächst auf 0 und nicht auf 1 gesetzt werden muss.

  public void gibAus ()
  {
      int i=0;
      while(i<zahlenFeld.length){
         System.out.println("Index:"+i+" hat den Wert "+zahlenFeld[i]);
         i++;
      }
  }

Zufallszahlenfeld

  public void macheZufallsfeld (int maximum)
  {
      int i=0;
      while(i<zahlenFeld.length){
         zahlenFeld[i]=(int)(maximum*(Math.random()))+1;
         i++;
      }
  }

Die oben abgebildete Methode weist dem Feld Zufallszahlen (ohne Nachkommastellen) zu. Das ist sehr praktisch, wenn man das Feld nicht von Hand befüllen möchte. maximum gibt obere Grenze an. Die Zufallszahlen liegen also zwischen 1 und (einschließlich) maximum.


Was ist die größte Zahl im Feld

  public double getGroessteZahl ()
  {
      double maximum=zahlenFeld[0];
      int i=1;
      while(i<zahlenFeld.length){
         if (zahlenFeld[i]>maximum) {
            maximum=zahlenFeld[i];    
         }
         i++;
      }
      return maximum;
  }

Eine typische Aufgabe im Zusammenhang mit Arrays ist, die größte Zahl zu suchen (z.B. Maximaltemperatur bei einer Temperaturzeitreihe). Dabei geht man wie folgt vor:

  • Eine Hilfsvariable maximum bekommt den ersten Wert des Feldes zugewiesen.
  • Danach werden alle anderen Werte des Feldes durchlaufen und mit maximum verglichen.
  • Jedesmal, wenn ein größerer Wert gefunden wurde, wird maximum überschrieben.

Die folgenden Übungen sind alle ähnlich: Sie benötigen eine Schleife, Hilfsvariablen und zumindest bei 1 und 2 eine if-Abfrage.


Übung
  1. Lassen Sie in einer neuen Methode die kleinste Zahl im Feld suchen.
  2. Lassen Sie in einer neuen Methode den Index und nicht den Wert des größten Elementes zurückgeben.
  3. Lassen Sie in einer neuen Methode die Summe aller Zahlen im Feld zurückgeben.
  4. Lassen Sie in einer neuen Methode den Benutzer eine Zahl übergeben. Wenn die Zahl im Feld vorkommt, soll true zurückgegeben werden, wenn nicht false.


Linkliste

Einführungsbeispiel zu ARRAYs in Java: Prüfung eines EAN-Codes: Pdf20.gif Der EAN-Code