199 lines
5.5 KiB
Java
199 lines
5.5 KiB
Java
|
|
/**
|
|
* Uebungen mit Arrays.
|
|
*
|
|
* Verschiedene Methoden, die einfache Operationen auf int-Arrays durchfuehren.
|
|
*
|
|
* Du kannst deine Loesungen mit der beigefuegten Testklasse automatisch
|
|
* ueberpruefen
|
|
* - Klicke dazu im Hauptfenster auf Werkzeuge -> Testen -> Tests starten
|
|
* - Sobald du glaubst, eine Funktion fertig programmiert zu haben,
|
|
* startest du die Tests und ueberzeugst dich im Testergebnisfenster,
|
|
* dass der Test fuer diese Funktion erfolgreich durchgelaufen ist.
|
|
* - Falls er fehlschlaegt, kannst du dort auf den entsprechenden Test klicken
|
|
* und nachschauen, was genau fehlgeschlagen ist.
|
|
*
|
|
*/
|
|
public class ArrayExperimente
|
|
{
|
|
public static int beispiel[]= new int[] {1, 3, 4, -13, 0, 70, -111};
|
|
public static int nochnArray[]= new int[] {20,21,22,23,24,25,26};
|
|
|
|
/**
|
|
* Gibt das uebergebene Array auf der Konsole aus.
|
|
* @param array, das ausgegeben werden soll.
|
|
*/
|
|
public static void arrayAusgeben(int[] array)
|
|
{
|
|
for(int i=0; i<array.length; i++)
|
|
{
|
|
System.out.println(array[i]);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Ermittelt, ob ein Wert im Array vorkommt, d.h. ob
|
|
* eines der Arrayelemente diesen Wert hat.
|
|
* @param gesucht zu suchender Wert.
|
|
* @param array Array, in dem gesucht wird.
|
|
* @returns ob gesucht im Array vorkommt.
|
|
*/
|
|
public static boolean istEnthalten(int gesucht, int[] array)
|
|
{
|
|
for(int i=0; i<array.length; i++)
|
|
{
|
|
if(array[i] == gesucht)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Ermittelt, an welchem Index im Array der Wert "gesucht" vorkommt.
|
|
* @param gesucht Wert, nach dem im Array gesucht wird.
|
|
* @param array Array, in dem gesucht wird.
|
|
* @returns den Index, an dem gesucht im Array vorkommt; -1, falls es
|
|
* nicht vorkommt.
|
|
*/
|
|
public static int indexVon(int gesucht, int[] array)
|
|
{
|
|
for(int i=0; i<array.length; i++)
|
|
{
|
|
if(array[i] == gesucht)
|
|
{
|
|
return i;
|
|
}
|
|
|
|
|
|
}
|
|
|
|
return -1;
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Ermittelt den Wert des groessten im Array enthaltenen Elements.
|
|
* @param array Array, in dem gesucht wird. Es darf
|
|
* nicht leer sein.
|
|
* @returns Den groessten vorkommenden Wert.
|
|
*/
|
|
public static int maxWert(int[] array)
|
|
{
|
|
int bisherigesmax = array[0];
|
|
for(int i=0;i<array.length ;i++)
|
|
{
|
|
if(array[i]> bisherigesmax)
|
|
{
|
|
bisherigesmax = array[i];
|
|
|
|
}
|
|
}
|
|
return bisherigesmax;
|
|
|
|
|
|
}
|
|
|
|
/**
|
|
* Ermittelt den Index des groessten im Array enthaltenen Elements.
|
|
* @param array Array, in dem gesucht wird.
|
|
* @returns Den Index des groessten vorkommenden Werts.
|
|
*/
|
|
public static int maxIndex(int[] array)
|
|
{
|
|
int bisherigesMaxIndex = 0;
|
|
for(int i=0;i<array.length ;i++)
|
|
{
|
|
if(array[i]> array[bisherigesMaxIndex])
|
|
{
|
|
bisherigesMaxIndex = i;
|
|
|
|
}
|
|
}
|
|
return bisherigesMaxIndex;
|
|
|
|
}
|
|
|
|
/**
|
|
* Ermittelt den Index des groessten im Array enthaltenen Elements.
|
|
* @param array Array, in dem gesucht wird.
|
|
* @returns Den Index des groessten vorkommenden Werts.
|
|
*/
|
|
public static int maxIndexKuerzer(int[] array)
|
|
{
|
|
return indexVon(maxWert(array),array);
|
|
|
|
}
|
|
|
|
/**
|
|
* Ermittelt die Summe ueber alle Arrayelemente.
|
|
* @param array Array, das aufaddiert wird.
|
|
* @returns Summe aller Arrayelemente.
|
|
*/
|
|
public static int querSumme(int[] array)
|
|
{
|
|
int bisherigeSumme = 0;
|
|
for(int i=0;i<array.length;i++)
|
|
{
|
|
bisherigeSumme += array[i];
|
|
}
|
|
return bisherigeSumme;
|
|
}
|
|
|
|
/**
|
|
* Die Funktion erhoeht im urspruenglichen Array jeden Eintrag um "zuschlag".
|
|
* Es wird kein neues Array angelegt.
|
|
* @param array Zu manipulierendes Array. Es darf nicht leer sein.
|
|
* @param zuschlag diese Zahl wird zu jedem Arrayeintrag dazuaddiert.
|
|
*/
|
|
public static void addiereJeweilsD(int[] array, int zuschlag)
|
|
{
|
|
for(int i=0;i<array.length;i++)
|
|
{
|
|
array[i] = array[i] += zuschlag;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* Erstellt ein neues Array, in dem die Elemente des
|
|
* urspruenglichen Array in der umgekehrten Reihenfolge drin sind.
|
|
* @param array urspruengliches Array, darf nicht null sein
|
|
* @returns neues Array mit umgekehrter Reihenfolge.
|
|
*/
|
|
public static int[] arrayUmdrehen(int[] array)
|
|
{
|
|
// fuer diese Funktion darf man ein neues Array anlegen, das
|
|
// die Eintraege von wendeArray in umgedrehter Reihenfolge enthaelt.
|
|
|
|
// TODO...
|
|
|
|
// das return steht hier nur, damit der Compiler nicht meckert:
|
|
return null;
|
|
|
|
|
|
}
|
|
|
|
/**
|
|
* Dreht im bestehenden Array dessen Elemente in
|
|
* die umgekehrte Reihenfolge. Man sagt, die Funktion bearbeitet
|
|
* das Array "in place".
|
|
* @param wendeArray urspruengliches Array
|
|
*/
|
|
public static void arrayUmdrehenInPlace(int[] array)
|
|
{
|
|
// Diese Funktion loest die gleiche Aufgabe wie die obere, darf
|
|
// dafuer aber KEIN zusaetzliches Array benutzen, sondern muss
|
|
// (bis auf einzelne int-Variable) im wendeArray arbeiten.
|
|
// TODO...
|
|
}
|
|
|
|
|
|
}
|