Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
schule:klassen:2017:10b:kap8uebungen [2018/03/29 15:43]
martin [Aufgabe 2 (Programme mit Arrays)]
schule:klassen:2017:10b:kap8uebungen [2018/03/29 15:45] (aktuell)
martin
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("​So kann man etwas ausgeben!"​);​
 +        // Hier kommt der Programmcode rein
 +
 +    }
 +
 +}
 +</​code>​
 +
 +==== 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);​
 +</​code>​
 +**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("​X:​ " + x + ", Y: " + y);
 +</​code>​
 +**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++;
 +        }
 +</​code>​
 +**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,​ 11)
 +
 +        System.out.println(m); ​               ​
 +                ​
 +    }
 +
 +    private double mittelwert(double a, double b) {
 +        return (a + b)/2;
 +    }
 +
 +
 +}
 +</​code>​
 +**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,​ 20);
 +
 +        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;
 +    }
 +
 +
 +}
 +</​code>​
 +**f) Ergänzen Sie die Methode so, dass sie auch funktioniert,​ wenn ende < start ist. In diesem Fall soll sie die Summe ende + (ende + 1) + … + start zurückliefern!** \\ 
 +<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,​ 20);
 +
 +        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;
 +    }
 +
 +
 +}
 +</​code>​
 +**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,​ 4);
 +
 +        System.out.println(m);​
 +
 +    }
 +
 +   ​private double abstandVomUrsprung(double x, double y){
 +        return Math.sqrt(x*x + y*y);
 +   }
 +
 +
 +}
 +</​code>​
 +
 +==== 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("​Größte Zahl im Feld: " + größteZahl);​
 +
 +        double mittelwert = berechneMittelwert(feld);​
 +        System.out.println("​Mittelwert:​ " + mittelwert);​
 +
 +    }
 +
 +    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;​ // Kleinste mögliche int-Zahl
 +
 +        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++;
 +
 +        }
 +
 +    }
 +
 +}
 +</​code>​
 +
 +==== Aufgabe 3 (Bubblesort) ====
 +**a) Erweitern Sie das Programm aus Aufgabe 2 so, dass es die Liste sortiert und dann ausgibt!** \\
 +Tipp: Siehe http:​%%//​%%de.wikipedia.org/​wiki/​Bubblesort \\
 +<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++;
 +
 +        }
 +
 +    }
 +
 +}
 +
 +</​code>​
 + 
Drucken/exportieren
QR-Code
QR-Code schule:klassen:2017:10b:kap8uebungen (erstellt für aktuelle Seite)