Benutzer-Werkzeuge

Webseiten-Werkzeuge


types:arrays:aufgabe6loesungen:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
types:arrays:aufgabe6loesungen:start [2022/03/22 14:55] – angelegt Martin Pabsttypes:arrays:aufgabe6loesungen:start [2022/03/31 14:48] (aktuell) – [Lösung zu c)] Martin Pabst
Zeile 5: Zeile 5:
   * c) Das Programm soll untersuchen, ob das Feld mindestens zwei gleiche Zahlen enthält und dann ausgeben "Zwei gleiche Zahlen gefunden!" oder "Das Feld enthält lauter unterschiedliche Zahlen.".   * c) Das Programm soll untersuchen, ob das Feld mindestens zwei gleiche Zahlen enthält und dann ausgeben "Zwei gleiche Zahlen gefunden!" oder "Das Feld enthält lauter unterschiedliche Zahlen.".
   * d) Das Programm soll die Reihenfolge der Zahlen im Feld umkehren, aus dem Feld [12, 3, 44, 8, 10, 1, 90, 50, 40, 30] soll also das Feld [30, 40, 50, 90, 1, 10, 8, 44, 3, 12] werden.   * d) Das Programm soll die Reihenfolge der Zahlen im Feld umkehren, aus dem Feld [12, 3, 44, 8, 10, 1, 90, 50, 40, 30] soll also das Feld [30, 40, 50, 90, 1, 10, 8, 44, 3, 12] werden.
 +
 +===== Lösung zu a) =====
 +a) Das Programm soll die größte der 10 Zahlen ausgeben.
 +<HTML>
 +
 +<div class="java-online" style="height: 400px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Aufgabe6a'}">
 +
 +<script type="text/plain" title="6a.java">
 +int[] z = new int[10];
 +
 +// Mit Zufallszahlen belegen
 +for(int i = 0; i < 10; i++) {
 +   z[i] = Random.randint(1, 100);
 +}
 +
 +// Ausgeben
 +for(int i = 0; i < 10; i++) {
 +   print(z[i] + " ");
 +}
 +println();
 +
 +// Maximum finden und ausgeben
 +int maximum = z[0];
 +
 +for(int i = 0; i < 10; i++){
 +   if(z[i] > maximum){
 +   maximum = z[i];
 +   }
 +}
 +
 +println("Die Größte der Zahlen ist: " + maximum);
 +
 +</script>
 +</HTML>
 +
 +===== Lösung zu b) =====
 +b) Das Programm soll die Summe der 10 Zahlen ausgeben.
 +<HTML>
 +
 +<div class="java-online" style="height: 400px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Aufgabe6b'}">
 +
 +<script type="text/plain" title="6b.java">
 +int[] z = new int[10];
 +
 +// Mit Zufallszahlen belegen
 +for(int i = 0; i < 10; i++) {
 +   z[i] = Random.randint(1, 100);
 +}
 +
 +// Ausgeben
 +for(int i = 0; i < 10; i++) {
 +   print(z[i] + " ");
 +}
 +println();
 +
 +// Summe berechnen und ausgeben
 +int summe = 0;
 +
 +for(int i = 0; i < 10; i++) {
 +   summe = summe + z[i];
 +}
 +
 +println("Die Summe der Zahlen ist: " + summe);
 +
 +</script>
 +</HTML>
 +
 +
 +===== Lösung zu c) =====
 +c) Das Programm soll untersuchen, ob das Feld mindestens zwei gleiche Zahlen enthält und dann ausgeben "Zwei gleiche Zahlen gefunden!" oder "Das Feld enthält lauter unterschiedliche Zahlen.".
 +=== Strategie ===
 +Wir vergleichen zunächst 
 +  * ''z[0]'' mit ''z[1]'' bis ''z[9]'', dann 
 +  * ''z[1]'' mit ''z[2]'' bis ''z[9]'', dann 
 +  * ''z[2]'' mit ''z[3]'' bis ''z[9]'', usw...
 +  * ... und zuletzt ''z[8]'' mit ''z[9]''.
 +Falls wir dabei irgendwann zwei gleiche Zahlen gefunden haben merken wir uns das, indem wir eine boolesche Variable ''found'' auf ''true'' setzen.
 +
 +<HTML>
 +
 +<div class="java-online" style="height: 600px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Aufgabe6c'}">
 +
 +<script type="text/plain" title="6c.java">
 +int[] z = new int[10];
 +
 +// Mit Zufallszahlen belegen
 +for(int i = 0; i < 10; i++) {
 +   z[i] = Random.randint(1, 100);
 +}
 +
 +// Ausgeben
 +for(int i = 0; i < 10; i++) {
 +   print(z[i] + " ");
 +}
 +println();
 +
 +boolean found = false; // Annahme: keine zwei gleichen Zahlen
 +
 +for(int i = 0; i <= 8; i++) {
 +   for(int j = i + 1; j <= 9; j++){
 +      if(z[i] == z[j]){
 +         found = true;
 +      }
 +   }
 +}
 +
 +if(found == true){     // Besser: if(found){ ... }
 +   println("Zwei gleiche Zahlen gefunden!");
 +} else {
 +   println("Das Feld enthält lauter unterschiedliche Zahlen.");
 +}
 +
 +</script>
 +</HTML>
 +
 +
 +===== Lösung zu d) =====
 +d) Das Programm soll die Reihenfolge der Zahlen im Feld umkehren, aus dem Feld [12, 3, 44, 8, 10, 1, 90, 50, 40, 30] soll also das Feld [30, 40, 50, 90, 1, 10, 8, 44, 3, 12] werden.
 +<HTML>
 +
 +<div class="java-online" style="height: 600px; width: 100%" data-java-online="{'withBottomPanel': false, 'id': 'Aufgabe6d'}">
 +
 +<script type="text/plain" title="6d.java">
 +int[] z = new int[10];
 +
 +// Mit Zufallszahlen belegen
 +for(int i = 0; i < 10; i++) {
 +   z[i] = Random.randint(1, 100);
 +}
 +
 +// Ausgeben
 +for(int i = 0; i < 10; i++) {
 +   print(z[i] + " ");
 +}
 +println();
 +
 +// Umkehren
 +for(int i = 0; i <= 4; i++) {
 +   // Dreiertausch:
 +   int a = z[i];
 +   z[i] = z[9 - i];
 +   z[9 - i] = a;
 +}
 +
 +// Nochmal Ausgeben
 +for(int i = 0; i < 10; i++) {
 +   print(z[i] + " ");
 +}
 +println();
 +
 +</script>
 +</HTML>
 +
 +
types/arrays/aufgabe6loesungen/start.1647957350.txt.gz · Zuletzt geändert: 2022/03/22 14:55 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki