Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
schule:klassen:2017:10b:kap8uebungen [2018/03/14 09:16] – angelegt martin | schule:klassen:2017:10b:kap8uebungen [2021/12/29 10:40] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Übungen ====== | ||
+ | ==== 0. Programmgerüst ==== | ||
+ | Mit diesem Programmgerüst können Sie die folgenden Aufgaben bearbeiten: | ||
+ | <code java> | ||
+ | package test2; | ||
+ | public class Uebung { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | new Uebung().start(); | ||
+ | |||
+ | } | ||
+ | |||
+ | public void start(){ | ||
+ | |||
+ | System.out.println(" | ||
+ | // Hier kommt der Programmcode rein | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Aufgabe 1 (Programme ohne Arrays) ==== | ||
+ | **a) Schreiben Sie ein Programm, das in den zwei Variablen x und y die Werte 7 und -20 speichert, deren Summe berechnet und ausgibt!** \\ | ||
+ | <code java> | ||
+ | int x = 7; | ||
+ | int y = -20; | ||
+ | | ||
+ | int summe = x + y; | ||
+ | System.out.println(summe); | ||
+ | </ | ||
+ | **b) Erweitern Sie das Programm so, dass die Werte von x und y vertauscht und dann ausgegeben werden! \\ | ||
+ | **Tipp: Sie benötigen eine dritte Variable… \\ | ||
+ | <code java> | ||
+ | int x = 7; | ||
+ | int y = -20; | ||
+ | |||
+ | int z = x; | ||
+ | x = y; | ||
+ | y = z; | ||
+ | | ||
+ | System.out.println(" | ||
+ | </ | ||
+ | **c) Schreiben Sie ein Programm, das die Zahlen von 1 bis 100 ausgibt!** \\ | ||
+ | <code java> | ||
+ | int i = 1; | ||
+ | | ||
+ | while(i <= 100){ | ||
+ | System.out.println(i); | ||
+ | i++; | ||
+ | } | ||
+ | </ | ||
+ | **d) Schreiben Sei eine Methode mittelwert, die zwei Dezimalzahlen a, b entgegennimmt und deren Mittelwert zurückgibt!** \\ | ||
+ | <code java> | ||
+ | public class Uebung1 { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | new Uebung1().start(); | ||
+ | |||
+ | } | ||
+ | |||
+ | private void start() { | ||
+ | |||
+ | // Test der Funktion mittelwert | ||
+ | double m = mittelwert(5, | ||
+ | |||
+ | System.out.println(m); | ||
+ | | ||
+ | } | ||
+ | |||
+ | private double mittelwert(double a, double b) { | ||
+ | return (a + b)/2; | ||
+ | } | ||
+ | |||
+ | |||
+ | } | ||
+ | </ | ||
+ | **e) Schreiben Sie eine Methode, die zwei ganze Zahlen start, ende entgegennimmt und die Summe start + (start + 1) + (start + 2) + … + ende zurückliefert!** \\ | ||
+ | <code java> | ||
+ | public class Uebung1 { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | new Uebung1().start(); | ||
+ | |||
+ | } | ||
+ | |||
+ | private void start() { | ||
+ | |||
+ | // Test der Funktion summeStartBisEnde | ||
+ | double m = summeStartBisEnde(5, | ||
+ | |||
+ | System.out.println(m); | ||
+ | |||
+ | } | ||
+ | |||
+ | private int summeStartBisEnde(int start, int ende) { | ||
+ | int summe = 0; | ||
+ | |||
+ | int i = start; | ||
+ | while(i <= ende){ | ||
+ | summe = summe + i; | ||
+ | // Es geht auch summe += i; | ||
+ | i++; | ||
+ | } | ||
+ | |||
+ | return summe; | ||
+ | } | ||
+ | |||
+ | |||
+ | } | ||
+ | </ | ||
+ | **f) Ergänzen Sie die Methode so, dass sie auch funktioniert, | ||
+ | <code java> | ||
+ | public class Uebung1 { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | new Uebung1().start(); | ||
+ | |||
+ | } | ||
+ | |||
+ | private void start() { | ||
+ | |||
+ | // Test der Funktion summeStartBisEnde | ||
+ | double m = summeStartBisEnde(5, | ||
+ | |||
+ | System.out.println(m); | ||
+ | |||
+ | } | ||
+ | |||
+ | private int summeStartBisEnde(int start, int ende) { | ||
+ | | ||
+ | if(start > ende){ | ||
+ | int z = ende; | ||
+ | ende = start; | ||
+ | start = z; | ||
+ | } | ||
+ | | ||
+ | int summe = 0; | ||
+ | |||
+ | int i = start; | ||
+ | while(i <= ende){ | ||
+ | summe = summe + i; | ||
+ | // Es geht auch summe += i; | ||
+ | i++; | ||
+ | } | ||
+ | |||
+ | return summe; | ||
+ | } | ||
+ | |||
+ | |||
+ | } | ||
+ | </ | ||
+ | **g) Schreiben Sie eine Methode, die die Koordinaten x und y eines Punktes entgegennimmt und seinen Abstand zum Ursprung des Koordinatensystems zurückliefert!** \\ | ||
+ | **Tipp: Die Funktion Math.sqrt berechnet die Wurzel einer Dezimalzahl.** \\ | ||
+ | <code java> | ||
+ | public class Uebung1 { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | new Uebung1().start(); | ||
+ | |||
+ | } | ||
+ | |||
+ | private void start() { | ||
+ | | ||
+ | double m = abstandVomUrsprung(3, | ||
+ | |||
+ | System.out.println(m); | ||
+ | |||
+ | } | ||
+ | |||
+ | | ||
+ | return Math.sqrt(x*x + y*y); | ||
+ | } | ||
+ | |||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Aufgabe 2 (Programme mit Arrays) ==== | ||
+ | **a) Schreiben Sie ein Programm, das ein Integer-Array der Länge 20 instanziert und mit Zufallszahlen von 0 bis 100 belegt!** \\ | ||
+ | **Tipp: (int)(Math.random()*101) gibt eine entsprechende Zufallszahl zurück.** \\ | ||
+ | **b) Erweitern Sie das Programm so, dass es die Liste auf dem Bildschirm ausgibt!** \\ | ||
+ | **c) Erweitern Sie das Programm so, dass es die größte der Zahlen sucht und ausgibt!** \\ | ||
+ | **d) Erweitern Sie das Programm so, dass es den Mittelwert der Zahlen berechnet und ausgibt!** \\ | ||
+ | <code java> | ||
+ | public class Aufgabe2 { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | new Aufgabe2().start(); | ||
+ | |||
+ | } | ||
+ | |||
+ | private void start() { | ||
+ | |||
+ | int[] feld = new int[20]; | ||
+ | |||
+ | feldBelegen(feld); | ||
+ | feldAusgeben(feld); | ||
+ | |||
+ | int größteZahl = sucheGrößte(feld); | ||
+ | System.out.println(" | ||
+ | |||
+ | double mittelwert = berechneMittelwert(feld); | ||
+ | System.out.println(" | ||
+ | |||
+ | } | ||
+ | |||
+ | private double berechneMittelwert(int[] feld) { | ||
+ | |||
+ | int summe = 0; // Kleinste mögliche int-Zahl | ||
+ | |||
+ | int i = 0; | ||
+ | while (i < feld.length) { | ||
+ | |||
+ | summe = summe + feld[i]; | ||
+ | i++; | ||
+ | } | ||
+ | |||
+ | return (double) summe / feld.length; | ||
+ | |||
+ | } | ||
+ | |||
+ | private int sucheGrößte(int[] feld) { | ||
+ | |||
+ | int max = Integer.MIN_VALUE; | ||
+ | |||
+ | int i = 0; | ||
+ | while (i < feld.length) { | ||
+ | |||
+ | if (feld[i] > max) { | ||
+ | max = feld[i]; | ||
+ | } | ||
+ | |||
+ | i++; | ||
+ | |||
+ | } | ||
+ | |||
+ | return max; | ||
+ | |||
+ | } | ||
+ | |||
+ | private void feldAusgeben(int[] feld) { | ||
+ | |||
+ | int i = 0; | ||
+ | while (i < feld.length) { | ||
+ | |||
+ | System.out.print(feld[i] + ", "); | ||
+ | |||
+ | i++; | ||
+ | |||
+ | } | ||
+ | |||
+ | System.out.println(); | ||
+ | |||
+ | } | ||
+ | |||
+ | private void feldBelegen(int[] feld) { | ||
+ | |||
+ | int i = 0; | ||
+ | while (i < feld.length) { | ||
+ | |||
+ | feld[i] = (int) (Math.random() * 101); | ||
+ | |||
+ | i++; | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Aufgabe 3 (Bubblesort) ==== | ||
+ | **a) Erweitern Sie das Programm aus Aufgabe 2 so, dass es die Liste sortiert und dann ausgibt!** \\ | ||
+ | Tipp: Siehe http: | ||
+ | <code java> | ||
+ | public class Aufgabe2 { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | |||
+ | new Aufgabe2().start(); | ||
+ | |||
+ | } | ||
+ | |||
+ | private void start() { | ||
+ | |||
+ | int[] feld = new int[20]; | ||
+ | |||
+ | feldBelegen(feld); | ||
+ | feldAusgeben(feld); | ||
+ | sortieren(feld); | ||
+ | feldAusgeben(feld); | ||
+ | |||
+ | } | ||
+ | |||
+ | private void sortieren(int[] feld){ | ||
+ | |||
+ | boolean fertig = false; | ||
+ | |||
+ | while(!fertig) { | ||
+ | fertig = true; | ||
+ | int i = 0; | ||
+ | while (i < feld.length - 1) { | ||
+ | if (feld[i] > feld[i + 1]) { | ||
+ | int z = feld[i]; | ||
+ | feld[i] = feld[i + 1]; | ||
+ | feld[i + 1] = z; | ||
+ | fertig = false; | ||
+ | } | ||
+ | i++; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | private void feldAusgeben(int[] feld) { | ||
+ | |||
+ | int i = 0; | ||
+ | while (i < feld.length) { | ||
+ | |||
+ | System.out.print(feld[i] + ", "); | ||
+ | |||
+ | i++; | ||
+ | |||
+ | } | ||
+ | |||
+ | System.out.println(); | ||
+ | |||
+ | } | ||
+ | | ||
+ | private void feldBelegen(int[] feld) { | ||
+ | |||
+ | int i = 0; | ||
+ | while (i < feld.length) { | ||
+ | |||
+ | feld[i] = (int) (Math.random() * 101); | ||
+ | |||
+ | i++; | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </ | ||
+ |