Beruflich Dokumente
Kultur Dokumente
Antwort:
Arrays
Speicherung vieler Werte gleichen Datentyps
unter einem Namen.
Array (Messwerte)
1. Deklaration double [ ] messwerte; //oder double messwerte [ ];
21 24 0.52 23
0 1 2 3
In Bildern
double [] messwerte= new double[4];
messwerte[2] = 123.458; 4 Schubladen groß.
we r te
mess
123.458
3
1 2
0
noten[index] = input.nextInt();
löst eine
IndexOutOfBoundsException aus
und bricht ab
Überblick
datentyp [ ] bei der Deklaration:
datentyp [ ] arrayName = new datentyp [ anzahl ];
int anzahl = puselmuckel.nextInt() ; int anzahl = 15;
0.1245
-7245
true
45
Eine neue Zahl erzeugt man mit:
intZahl = zahlenMaschine.nextInt();
//positive oder negative Ganzzahl
intZahl = zahlenMaschine.nextInt(obergrenze);
//0 bis < obergrenze
floatZahl = zahlenMaschine.nextFloat();
//von 0 bis unter 1
doubleZahl = zahlenMaschine.nextDouble();
//von 0 bis unter 1
Aufgaben
1a) Erstellen sie das folgende Projekt
Es werden in einer Schleife 5 ganzen Zufallszahlen im Wertebereich 1 bis 49 gezogen.
Anschließend soll zuerst die Summe aller Zahlen berechnet werden und dann das Array
und die Summe ausgegeben werden.
Erstellen Sie das Programm als J07_Zufallszahlen
1b) Lassen Sie die Größe des Arrays vom Benutzer bestimmen.
1c) Geben Sie die geraden Zahlen aus und zählen Sie diese.
1d) Ermitteln Sie die größte und die kleinste Zahl des Arrays.
Vorgehensweise:
Feld deklarieren Int [] gezogene_zahl;
Feldgrösse Gezogene_zahl= new int[5];
Zähle von 0 bis 4
zahl ziehen
zahl ausgeben
for (int i = 0; i < gezogene_zahl.length; i++) {
gezogene_zahl[i] = zahlenMaschine.nextInt(49) + 1;
System.out.println("Gezogene Zahlen: " + gezogene_zahl[i]);
}
Vorgehensweise
1. Bestimmung der Feldgröße
anzahl = in.nextInt();
2. Ziehung der Zufallszahlen
1.Zähle von 0 bis Feldlänge
2.Ziehe Zufallszahl
3.gezogene_zahl[i] = zahlenMaschine.nextInt(49) + 1;
3. Anzahl der geraden Zahlen ermitteln
1.Wenn gerade Zahl dann zähle
(gezogene_zahl[i] % 2 == 0) gerade++;
2.Sonst ungerade++
4. Schreiben Sie einen Algorithmus der keine
doppeltenn Zahlen zulässt
1. Minimum ermitteln
Ersten Wert des Feldes als Minimum setzen
min=gezogene_zahl[0];
1.Zähle von 1 bis feldlänge
Wenn gezogene_zahl[i]<min
Dann min=gezogene_zahl[i];
2.Ausgabe Min
Verhindern von doppelten Zahlen
0 1 2 3 4
16 20 24 34
Random tombola = new Random();
boolean gleicheZahlGefunden = false;
for (int i = 0; i < lottozahlen.length; i++) {
do {Gezogene Zahl 16
34
20
24
20
gleicheZahlGefunden
Vergleiche gezogene Zahl mit = false;
bisher gezogenen
lottozahlen[i]
Zahlen, wenn gleich = tombola.nextInt(49) + 1; bei
dann ziehe neu. Beginne
jeder for (int j = 0;Zahl
gezogenen j < ibei
&&Index
!gleicheZahlGefunden;
0 j++) {
if (lottozahlen[i] == lottozahlen[j])
gleicheZahlGefunden = true;
}
} while (gleicheZahlGefunden == true);
Generator initialisieren
Gezogen =false
6 Zahlen generieren und in lottozahlen mit For Schleife
Generiere neue Zahl solange wie gezogen =true
Do
gezogen false
For Schleife von 0 bis i und gezogen=false
for (int j = 0; j < i && !gleicheZahlGefunden; j++) {
// Zahlen vergleichen
if (lottozahlen[i] == lottozahlen[j])
gleicheZahlGefunden = true;
}
Aufgabe 5
Schreiben Sie Ihr Programm J04a_JavaLernen.java in
J07_JavaLernen.java um. Damit es etwas flexibler wird, erstellen Sie
einen Satz von Fragen in einem Array und einen passenden Satz von
Antworten. Die Antwort für die Frage an Stelle 0 muss auch an Stelle 0
des Antwort-Arrays stehen.
Lassen Sie mit Hilfe einer generierten Zufallszahl zwischen 0 und Array-
Ende eine Frage auswählen und überprüfen Sie die Antwort. Der
Benutzer soll eine Rückmeldung erhalten, ob die von ihm eingegebene
Antwort richtig war, also der Antwort im Array entspricht. Erstellen Sie
mindestens 10 Fragen mit Antworten. Das Programm soll solange laufen,
bis der Nutzer nicht mehr möchte.
Aufgaben
Aufgabe 6
a) Schreiben Sie ein Programm J07_Wechselkurs, welches den Wechselkurs
einer Währung abfragt. Anschließend werden die Tageskurse für eine Woche (7
Tage) eingelesen. Das Programm gibt aus, an wie viel Tagen der Tageskurs
unterhalb des Fixkurses lag, an wie viel Tagen er darüber lag und an wie vielen
Tagen er gleich dem Fixkurs war.
b) Ergänzen Sie das Programm J07_Wechselkurs um die Berechnung der
maximalen Abweichung (nach unten oder oben) und der Ausgabe des
Wochentags an dem die Abweichung auftrat.
Aufgabe 7
Verändern Sie Ihr Zahlenumwandlungsprogramm: Es soll jetzt eine beliebig lange
mehrstellige Zahl eingegeben werden können. Anschließend soll sie anschließend
als Text ausgegeben werden. Das Array erleichtert die Aufgabe, da man die
einzelnen Ziffern in einem Array speichern kann.
Beispiel: 123 eins zwei drei.
J07_Zahlenumwandlung
Aufgabe 8
Verändern Sie Ihr Dualzahlenprogramm aus J02, indem Sie es flexibel gestalten.
J07_Dualzahlen
Aus Java von Kopf bis Fuß S.16-17
Lassen Sie zufällig Phrasen bilden,
solange der Benutzer weiter machen
möchte.
Überlegen Sie sich eigene Begriffe
führen Sie das Programm aus und
benutzen Sie die genau die ausgegeben
Phrase bei Ihrer nächsten Meldung
J07_Phrasomat
Messwerte
int messwerte[];
messwerte = new int[5];
Scanner input= new Scanner(System.in);
int stelle;
int eingabe;
messwerte[0] = 24;
messwerte[1] = 27;
messwerte[2] = 22;
messwerte[3] = 21;
messwerte[4] = 19;
System.out.println("Ausgabe der Werte");
for (int i = 0; i < messwerte.length; i++) {
System.out.println(messwerte[i]);
}
do {
System.out.println("Wählen Sie eine Stelle zwischen 1 und 5 aus): ");
stelle = input.nextInt();
if (stelle < 1 || stelle > 5) {
System.out.println("Nur Zahlen zwischen 1 und 5");
}
} while (stelle < 1 || stelle > 5);
System.out.println("Welchen Wert wollen Sie eingeben: ");
messwerte[stelle-1] = input.nextInt();
System.out.println("Ausgabe der Werte");
for (int i = 0; i < messwerte.length; i++) {
System.out.print( i +". " messwerte[i]+", " );
}
Mehrdimensionale Arrays
int symmetrisch [][]; Symmetrisches Array
symmetrisch = new int [2][3]; mit 2 Zeilen und 3
Spalten also 6
Speicherplätzen
int nichtSymmetrisch[][];
nichtSymmetrisch = new int [10][ ];
for( int i = 0 ; i < nichtSymmetrisch.length; i++)
Anzahl der
{ Zeilen in der
nichtSymmetrisch[i] = new int[i+1]; Tabelle
System.out.print("Länge Zeile:"+ nichtSymmetrisch[i].length);
}
Anzahl der
Unsymmetrisches Array.
Spalten in der
Anzahl Spalten unterscheidet
Zeile
sich von Zeile zu Zeile.