Dies ist eine alte Version des Dokuments!
Das blueJ-Projekt enthält eine Klasse zufallsreihe
, die ein Array von int-Zahlen speichert und mit Zufallswerten füllt. Beim Anlegen von zufallsreihe-Objekten musst du angeben, wie viele Elemente die Zufallsreihe enthalten soll. Eventuell muss man für einzelne Aufgaben den Parameter der Methode getZufallszahl(…) anpassen oder den Quellcode geschickt ändern.
Verschaffe dir einen Überblick über die gegebenen Methoden.
Schreibe jeweils eine Methode, die… Teste deine Methoden durch entsprechende Aufrufe in der main Methode.
die Summe aller Werte im Array bestimmt und zurückgibt.
die Anzahl der Nullen im Array bestimmt und zurückgibt.
den Index bestimmt, an dem sich die letzte 0 des Arrays befindet und diesen zurückgibt. Falls keine 0 enthalten ist, soll -1 zurückgegeben werden.
den Index bestimmt, an dem sich die erste 0 des Arrays befindet und diesen zurückgibt. Falls keine 0 enthalten ist, soll -1 zurückgegeben werden.
prüft, ob das Array mindestens eine 1 enthält.
prüft, ob das Array mindestens eine 2 und mindestens eine 5 enthält.
prüft, ob das Array einen Fixpunkt enthält. Ein Fixpunkt ist ein Element, das gleich seinem Index ist, d.h. es muss daten[i] == i
gelten.
die Anzahl der Wiederholungen bestimmt und zurückgibt. Eine Wiederholung liegt vor, wenn zwei aufeinanderfolgende Elemente des Arrays den gleichen Wert haben.
die Anzahl der Dreier-Wiederholungen bestimmt und zurückgibt. Hier müssen drei aufeinanderfolgende Elemente gleich groß sein.
die Länge der längsten Serie des Arrays bestimmt und zurückgibt. Eine Serie sind mehrere direkt aufeinanderfolgende Elemente, die den gleichen Wert haben.
die zweitgrößte Zahl des Arrays bestimmt und zurückgibt.
Jedes Element des Arrays soll um 1 erhöht werden.
Jede 0 im Array soll durch eine 100 ersetzt werden.
Jedes Element des Arrays soll um eine Stelle nach vorne gerückt werden. Das erste Element soll an die letzte Stelle gesetzt werden. Diese Operation nennt man "Rotation".
Das Array soll umgedreht werden.
Lösungsvorschläge Aufgaben 1-7
/**
* aufaufgabe01Summe() berechnet die Summe aller Arrayelemente
*
* @return Summe aller Arrayelemente
*/
public int aufgabe01Summe()
{
int summe = -1;
for (int i=0; i<this.anzahl; i++) {
summe = summe + daten[i];
}
return summe;
}
/**
* aufgaufgabe02ZaehleNullen() Gibt die Zahl den Nullen im Array zurück
*
* @return Zahl der Nullen
*/
public int aufgabe02ZaehleNullen()
{
int numNull = 0;
for (int i=0; i<this.anzahl; i++) {
if ( daten[i] == 0 ) {
numNull++;
}
}
return numNull;
}
/**
* aufgabe03FindeLetzteNull() Gibt den Index des Elements mit der letzten Null zurück
*
* @return Index des Elements mit der letzten Null
*/
public int aufgabe03FindeLetzteNull()
{
int letzteNullIndex = -1;
for(int i=0; i<this.anzahl; i++) {
if ( daten[i] == 0 ){
letzteNullIndex = i;
}
}
return letzteNullIndex;
}
/**
* aufgabe04FindeErsteNull() Gibt den Index des Elements mit der ersten Null zurück
*
* @return Index des Elements mit der ersten Null
*/
public int aufgabe04FindeErsteNull()
{
for(int i=0; i<this.anzahl; i++) {
if ( daten[i] == 0 ){
return i;
}
}
return -1;
}
/**
* aufgabe05Enthaelt1() Wahr, wenn die Zahlenreihe mindestens eine 1 enthaelt
*
* @return Wahr, wenn 1 vorhanden, sonst falsch
*/
public boolean aufgabe05Enthaelt1()
{
for(int i=0; i<this.anzahl; i++) {
if ( daten[i] == 1 ){
return true;
}
}
return false;
}
/**
* aufgabe06Enthaelt2Und5()a Wahr, wenn die Zahlenreihe mindestens eine 2
* und eine 5 enthaelt
*
* @return Wahr, wenn 1 u. 5 vorhanden, sonst falsch
*/
public boolean aufgabe06Enthaelt2Und5()
{
boolean enthaelt2 = false;
boolean enthaelt5 = false;
for(int i=0; i<this.anzahl; i++) {
if ( daten[i] == 2 ) {
enthaelt2 = true;
}
if ( daten[i] == 5 ) {
enthaelt5 = true;
}
}
return (enthaelt2 && enthaelt5);
}
/**
* aufgabe07EnthaeltFixpunkt() Wahr, wenn die Zahlenreihe mindestens einen
* Fixpunkt enthält
*
* @return Wahr, wenn Fixpunkt vorhanden, sonst falsch
*/
public boolean aufgabe07EnthaeltFixpunkt()
{
for(int i=0; i<this.anzahl; i++) {
if ( daten[i] == i ){
return true;
}
}
return false;
}
Lösungsvorschlag Aufgabe 8
/**
* aufgabe08ZaehleWiederholungen() Gibt die Zahl dert Wiederholungen zurück.
* Drei aufeinanderfolgende Zahlen sind zwei Wdh (wie kann man das anders zaehlen,
* was muss man im Code aendern?)
*
* @return Zahl der Wdh
*/
public int aufgabe08ZaehleWiederholungen()
{
int numWdh = 0;
for(int i=0; i<this.anzahl-1; i++) {
if (daten[i] == daten[i+1]) {
numWdh++;
}
}
return numWdh;
}
Lösungsvorschlag Aufgabe 9
/**
* aufgabe09ZaehleDreierWiederholungen() Gibt die Zahl der dreier Wiederholungen zurück.
* Vier aufeinanderfolgende Zahlen sind zwei 3er Wdh (wie kann man das anders zaehlen,
* was muss man im Code aendern?)
*
* @return Zahl der Wdh
*/
public int aufgabe09ZaehleDreierWiederholungen()
{
int numWdh = 0;
for(int i=0; i<this.anzahl-2; i++) {
if (daten[i] == daten[i+1] && daten [i+1] == daten[i+2]) {
numWdh++;
}
}
return numWdh;
}