From 066f0190d960eab467598972bb5207c010e66d39 Mon Sep 17 00:00:00 2001 From: Domen <@> Date: Fri, 4 Apr 2025 15:31:08 +0200 Subject: [PATCH] i want to kms and i want it riiight awayyy yeaaah yeahhh --- ArrayExperimente.java | 229 ++++++++++++++++++++++++++++++++++++++ ArrayExperimenteTest.java | 206 ++++++++++++++++++++++++++++++++++ Doppelschleifen.java | 12 ++ 3 files changed, 447 insertions(+) create mode 100644 ArrayExperimente.java create mode 100644 ArrayExperimenteTest.java diff --git a/ArrayExperimente.java b/ArrayExperimente.java new file mode 100644 index 0000000..5d039fe --- /dev/null +++ b/ArrayExperimente.java @@ -0,0 +1,229 @@ + +/** + * Uebungen mit Arrays. + * + * Verschiedene Methoden, die einfache Operationen auf int-Arrays durchfuehren. + * + * Du kannst deine Loesungen mit der beigefuegten Testklasse automatisch + * ueberpruefen + * - Klicke mit der rechten Maustaste auf die ArrayExperimenteTest (grün) + * -> "Alles Testen" + * - 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 Array, das ausgegeben werden soll. + */ + public static void arrayAusgeben(int[] array) + { + for(int i=0; i<array.length; i++) // Durchläuft das ganze Array + { + System.out.println(array[i]); // und gebe dein Eintrag an der Stelle i aus + } + } + + + /** + * Zum Ausprobieren: Erstellt ein neues int-Array und füllt alle Einträge mit 42 + * anschließend wird das Array auf der Konsole ausgegeben + */ + public static void zumAusprobieren() + { + //Erstellt ein neues int-Array + int[] meinArray = new int[10]; + + //Gehe mit einer vor Schleife durch dass Array + for(int i=0; i<meinArray.length; i++) + { + //TODO: Hier musst du nurnoch den jeweiligen Wert mit 42 belegen + } + + //Gebe das Array auf der Konsole aus + arrayAusgeben(meinArray); + } + + /** + * Zum Ausprobieren: Wie eben, nur jetzt soll das Array mit den Werten + * 0, 1, 2, ... 9 belegt werden + */ + public static void zumAusprobieren2() + { + //TODO: + //Erstelle ein neues Array und belege es mit den Einträgen 0 bis 9 + //Du brauchst wieder eine for-Schleife + //Gebe anschließend das das Array auf der Konsole aus + } + + + + /** + * Der Funktion wird ein Array übergeben. + * Die Funktion erhoeht nun jeden Eintrag um eins. + * Es wird kein neues Array angelegt. + * @param array Zu manipulierendes Array. Es darf nicht leer sein. + */ + public static void addiereJeweilsEins(int[] array) + { + // TODO... + //Du brauchst wieder eine for-Schleife + } + + + + /** + * 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) + { + // TODO... + } + + + + /** + * Ermittelt die Summe ueber alle Arrayelemente. + * @param array Array, das aufaddiert wird. + * @returns Summe aller Arrayelemente. + */ + public static int summe(int[] array) + { + // TODO... + //Hinweis: Du benötigst eine Variable + + // das return steht hier nur, damit der Compiler nicht meckert: + return -32460; + } + + + + /** + * 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) + { + // TODO... + + // das return steht hier nur, damit der Compiler nicht meckert: + 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) + { + // TODO... + + // das return steht hier nur, damit der Compiler nicht meckert: + return -3245646; + } + + + + /** + * 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) + { + // TODO... + + // das return steht hier nur, damit der Compiler nicht meckert: + return -346; + } + + + + /** + * 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) + { + // TODO... + + // das return steht hier nur, damit der Compiler nicht meckert: + return -324688; + + } + + + + /** + * 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[] aray) + { + // TODO: Formuliere diese Funktion als Einzeiler, indem du + // Funktionen, die du oben schon geschrieben hast, geschickt aufrufst. + // Diese Variante einfacher zu formulieren als mit einer Schleife + // (braucht allerdings mehr Rechenschritte). + + // das return steht hier nur, damit der Compiler nicht meckert: + return -3244786; + } + + + /** + * 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... + } + + +} diff --git a/ArrayExperimenteTest.java b/ArrayExperimenteTest.java new file mode 100644 index 0000000..8479ecb --- /dev/null +++ b/ArrayExperimenteTest.java @@ -0,0 +1,206 @@ +import static org.junit.Assert.*; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import java.util.Arrays; + +/** + * The test class ArrayExperimenteTest. + * + * @author Urs Lautebach + * überarbeitet Ho, 24 + * @version 2017-10 + */ +public class ArrayExperimenteTest +{ + /** + * Sets up the test fixture. + * + * Called before every test case method. + */ + @Before + public void setUp() + { + } + + /** + * Tears down the test fixture. + * + * Called after every test case method. + */ + @After + public void tearDown() + { + } + + @Test + public void testistEnthalten() + { + int[] testArray = new int[] {1, -43, 1000, 1000, 3, 4, 13, 1000, 70, -41}; + assertTrue(ArrayExperimente.istEnthalten(1000, testArray)); + assertTrue(ArrayExperimente.istEnthalten(-41, testArray)); + assertTrue(ArrayExperimente.istEnthalten(1, testArray)); + assertFalse(ArrayExperimente.istEnthalten(77, testArray)); + + testArray = new int[] {66}; + assertTrue(ArrayExperimente.istEnthalten(66, testArray)); + assertFalse(ArrayExperimente.istEnthalten(77, testArray)); + + testArray = new int[] {}; + assertFalse(ArrayExperimente.istEnthalten(77, testArray)); + } + + @Test + public void testindexVon() + { + int[] testArray = new int[] {1, -43, 1000, 1000, 3, 4, 13, 1000, 70, -41}; + assertEquals(0, ArrayExperimente.indexVon(1, testArray)); + assertEquals(1, ArrayExperimente.indexVon(-43, testArray)); + assertEquals(9, ArrayExperimente.indexVon(-41, testArray)); + assertEquals(-1, ArrayExperimente.indexVon(1231, testArray)); + + testArray = new int[] {66}; + assertEquals(-1, ArrayExperimente.indexVon(1231, testArray)); + assertEquals(0, ArrayExperimente.indexVon(66, testArray)); + + testArray = new int[] {}; + assertEquals(-1, ArrayExperimente.indexVon(1231, testArray)); + } + + + + @Test + public void testmaxWert() + { + int[] testArray = new int[] {1, -43, 1000, 1000, 3, 4, 13, 1000, 70, -41}; + assertEquals(1000, ArrayExperimente.maxWert(testArray)); + + testArray = new int[] {0, -43, -41}; + assertEquals(0, ArrayExperimente.maxWert(testArray)); + + testArray = new int[] {-43, -41}; + assertEquals(-41, ArrayExperimente.maxWert(testArray)); + + testArray = new int[] {66}; + assertEquals(66, ArrayExperimente.maxWert(testArray)); + } + + @Test + public void testmaxIndex() + { + int[] testArray = new int[] {1, -43, 1000, 3, 4, 13, 70, -41}; + assertEquals(2, ArrayExperimente.maxIndex(testArray)); + + testArray = new int[] {1, -43, 1000, 3, 4, 13, 70, -41, 5367}; + assertEquals(8, ArrayExperimente.maxIndex(testArray)); + + testArray = new int[] {0, -43, -41}; + assertEquals(0, ArrayExperimente.maxIndex(testArray)); + + testArray = new int[] {-43, -41}; + assertEquals(1, ArrayExperimente.maxIndex(testArray)); + + testArray = new int[] {-41}; + assertEquals(0, ArrayExperimente.maxIndex(testArray)); + } + + @Test + public void testquersumme() + { + int[] testArray = new int[] {1, -43, 3, 4, 13, 70, -41}; + assertEquals(7, ArrayExperimente.summe(testArray)); + + testArray = new int[] {0, -43, -41}; + assertEquals(-84, ArrayExperimente.summe(testArray)); + + // einelementiges Array: + testArray = new int[] {51}; + assertEquals(51, ArrayExperimente.summe(testArray)); + } + + @Test + public void testaddiereJeweilsEins() + { + int[] test = new int[] {1, -43, 3, 4, 13, 70, -41}; + int[] ergebnis = new int[] {2, -42, 4, 5, 14, 71, -40}; + + ArrayExperimente.addiereJeweilsEins(test); + + assertArrayEquals(ergebnis, test); + + } + + @Test + public void testaddiereJeweilsD() + { + int[] test = new int[] {1, -43, 3, 4, 13, 70}; + int d = 5; + int[] ergebnis = new int[] {6, -38, 8, 9, 18, 75}; + + + ArrayExperimente.addiereJeweilsD(test, d); + + assertArrayEquals(ergebnis, test); + } + + + + @Test + public void testarrayUmdrehen() + { + // Array mit ungerader Laenge: + int[] test = new int[] { 1, -43, 3, 4, 13, 70, -41 }; + int[] umgedreht = ArrayExperimente.arrayUmdrehen(test); + int[] ergebnis = new int[] { -41, 70, 13, 4, 3, -43, 1 }; + + assertEquals(ergebnis.length, umgedreht.length); + assertArrayEquals(ergebnis, umgedreht); + + // Array mit gerader Laenge: + test = new int[] { 1, -43, 3, 4, 70, -41 }; + umgedreht = ArrayExperimente.arrayUmdrehen(test); + ergebnis = new int[] {-41, 70, 4, 3, -43, 1}; + + assertEquals(ergebnis.length, umgedreht.length); + assertArrayEquals(ergebnis, umgedreht); + + // Array mit Laenge 1: + test = new int[] { 1 }; + ergebnis = new int[] {1}; + umgedreht = ArrayExperimente.arrayUmdrehen(test); + + assertEquals(ergebnis.length, umgedreht.length); + assertArrayEquals(ergebnis, umgedreht); + } + + @Test + public void testarrayUmdrehenInPlace() + { + // Array mit ungerader Laenge: + int[] test = new int[] { 1, -43, 3, 4, 13, 70, -41 }; + ArrayExperimente.arrayUmdrehenInPlace(test); //test umdrehen + int[] ergebnis = new int[] { -41, 70, 13, 4, 3, -43, 1 }; + + assertEquals(ergebnis.length, test.length); + assertArrayEquals(ergebnis, test); + + // Array mit gerader Laenge: + test = new int[] { 1, -43, 3, 4, 70, -41 }; + ArrayExperimente.arrayUmdrehenInPlace(test); + ergebnis = new int[] {-41, 70, 4, 3, -43, 1}; + + assertEquals(ergebnis.length, test.length); + assertArrayEquals(ergebnis, test); + + // Array mit Laenge 1: + test = new int[] { 1 }; + ergebnis = new int[] {1}; + ArrayExperimente.arrayUmdrehenInPlace(test); + + assertEquals(ergebnis.length, test.length); + assertArrayEquals(ergebnis, test); + } + + + +} diff --git a/Doppelschleifen.java b/Doppelschleifen.java index b7accb9..c260c49 100644 --- a/Doppelschleifen.java +++ b/Doppelschleifen.java @@ -29,4 +29,16 @@ public class Doppelschleifen } } + + public static int muster(int n){ + + for(int a = 1; a<=n; a++){ + + for(int b = 1;b <=a; b++){ + System.out.print("*"); + } + System.out.println(); + } + return n; +} }