28_Array_MaxMin

Code-Dateien

DateinameAktion
CODECode_MTB_D.zipDownload
CODECode_Temperatur.zipDownload
CODECode_Temperature.zipDownload

PDF-Dokumente

DateinameAktion
PDFFolie_Array_MaxMin.pdfÖffnen
PDFUebung_Skirennen.pdfÖffnen
PDFUebung_Wechselkurs.pdfÖffnen

Videos

DateinameAktion
VIDEOVideo_MTB_DAbspielen
VIDEOVideo_Temperature_EAbspielen

Lernmaterialien

Array

Wir wollen die täglichen Temperaturwerte in Wien speichern.

001.png

Ohne Array

public class Temperatur
{
    private double temp0;
    private double temp1;
    private double temp2;
    private double temp3;
    private double temp4;
    ...
    private double temp30;

}
  • Immer den gleichen Datentyp double

  • Mehrere Werte (Tag 0 .. 30)

Mit Array

002.png

Jedes Element hat:

  • Index (0 .. 11)

  • Wert

Array erstellen

public class Temperatur
{
    private double[] temp;

    public Temperatur()
    {
        temp = new double[12];
    }
}

double[] Es handelt sich um ein Array vom Typ double.

new double[12] Erstellt ein neues Array mit 12 double Elementen. Somit können Elemente mit dem Index von 0 bis 11 angesprochen werden.

003.png
002.png

Es gibt keine Unterscheidung ob am Tag 10:

  • es 0 Grad hatte oder

  • kein Messwert vorhanden ist.

Wir benötigen eine weitere Eigenschaft welche die Anzahl an gültigen Werte speichert.

004.png

Durch die anzahl=9 ist definiert, das die Werte mit dem Index von 0 bis 8 gültige Temperaturwerte sind.

Testdaten

    public void testdaten()
    {
        temp[0] = 12.7;
        temp[1] = 8.3;
        temp[2] = 5.7;
        temp[3] = 0.0;
        temp[4] = -3.7;
        temp[5] = -2.0;
        temp[6] = -11.4;
        temp[7] = -12.7;
        temp[8] = -8.9;
        anzahl = 9;
    }
005.png

Ausgabe

Es sollen folgende Informationen ausgegeben werden:

Tag 0: 12.7    ++++++++++++
Tag 1: 8.3     ++++++++
Tag 2: 5.7     +++++
...
Tag 7: -12.7   ------------

Erste Versuch nur die Werte sollen ausgegeben werden.

    public void ausgeben()
    {
        for (int i=0; i<anzahl; i++)
        {
            System.out.println("Tag " + i + ": " + temp[i]);
        }
    }

Zweiter Versuch nur die positiven Werte erhalten ein Diagram ++++++++

    public void ausgeben()
    {
        for (int i=0; i<anzahl; i++)
        {
            System.out.print("Tag " + i + ": " + temp[i] + "\t");
            for (int j=1; j<=temp[i]; j++)
            {
                System.out.print("+");
            }
            System.out.println();
        }
    }

"\t" gibt einen Tabulator aus.

for (int j=1; j<temp[i]; j++) zählt von 1 bis zum Wert und gibt ein * aus.

Beispiel: temp[1] = 8.3

for (int j=1; j<=8.3;j++)

Zweiter Versuch nur die negativen Werte erhalten ein Diagram -----------

    public void ausgeben()
    {
        for (int i=0; i<anzahl; i++)
        {
            System.out.print("Tag " + i + ": " + temp[i] + "\t");
            if (temp[i]>0)
            {
                for (int j=1; j<=temp[i]; j++)
                {
                    System.out.print("+");
                }
            }
            else
            {
                for (int j=-1; j>=temp[i]; j--)
                {
                    System.out.print("-");
                }                
            }
            System.out.println();
        }
    }

for (int j=-1; j>=temp[i]; j--)

Beispiel: temp[6] = -11.4

for (int j=-1; j>=-11.4; j--)

Tag 0: 12.7     ++++++++++++
Tag 1: 8.3      ++++++++
Tag 2: 5.7      +++++
Tag 3: 0.0  
Tag 4: -3.7     ---
Tag 5: -2.0     --
Tag 6: -11.4    -----------
Tag 7: -12.7    ------------
Tag 8: -8.9     --------