MezData-Logo Creative Commons License 904 Lösungen Button :PI-BLUEJ: Übungen zu Schleifen

For-Schleife umwandeln

Wandeln Sie folgenden Quelltext in eine While-Schleife um, lösen Sie dabei die Java-Abkürzungen (z.B. n++) in einfache Ausdrücke (z.B. n=n+1) auf.

static void aufg1(){
  int n, s=0;
  for(n=1; n<=4; n++) System.out.print((s+=n)+" "); 
}

Erstellen Sie von der While-Schleifen-Lösung ein Struktogramm! Lösung..

Welche Ausgabe(n) erzeugt die Methode? 1 3 6 10

Welche Auswirkung hat der Modifizierer static, warum ist er hier sinnvoll? Es muss kein Objekt erzeugt werden um die Methode zu verwenden.

For-Schleife umwandeln

Wandeln Sie folgenden Quelltext in eine While-Schleife um, lösen Sie dabei die Java-Abkürzungen (z.B. n++) in einfache Ausdrücke (z.B. n=n+1) auf.

static void aufg2(){
  int n, s=1;
  for(n=2; n<=5; System.out.print((s*=n++)+" "));
}

Erstellen Sie von der While-Schleifen-Lösung ein Struktogramm! Lösung..

Welche Ausgabe(n) erzeugt die Methode? 2 6 24 120

Lösungen..

Programm Analyse (for mit break)

Erstellen Sie für folgende Methode ein Struktogramm! Lösung..

static void abreak(){
  int[] a = new int[10];
  int i=0;
  do{
    a[i]=(i+1)%5;
    i++;
  }while(i<7);
  // nun die Tabelle ausfüllen
  for(i=0; i<10; i+=2){
    System.out.print((a[i]*2.0)+" ");
    if (a[i]==0) break;
  } // welche Ausgabe erzeugt die for-schleife? 
}

Füllen Sie die Listen-Tabelle aus.

Welche Ausgabe erzeugt das Programm? 2.0 6.0 0.0

Aufgabenteil 2.
Element Speicher-Inhalt
a[0]  
a[1]  
a[2]  
a[3]  
a[4]  
a[5]  
a[6]  
a[7]  
a[8]  
a[9]  

Sternchen ausgeben

Problem: Nach der Eingabe einer Zahl soll eine Reihe von Sternen * ausgegeben werden, bzw ein Sternenmuster

3 einfache Sterne ausgeben:
***
3 Sternmuster ausgeben:
 *
***
 *
***
 *
***
3 Sternmuster nebeneinander ausgeben:
 *  *  * 
*********
Erstellen Sie jeweils zuerst ein Struktogramm und implementieren Sie dann die Lösung,
alle Aufgaben können in einem Projekt gelöst werden.
Sternchen.ausgeben1(n:GZ) Sternchen.ausgeben2(n:GZ) Sternchen.ausgeben3(n:GZ)
Ausgabe
n mal nebeneinander
"*"
Ausgabe
n mal Muster
untereinander
" * "
"***"
Ausgabe
n mal Muster
nebeneinander
" * "
"***"
Struktogramm.. Struktogramm.. Struktogramm..

Java-Lösung..

Dreieck ausgeben

Dreieck mit Kantenlaenge: 5
*
**
***
****
*****
Problem: Ein Programm soll ein rechtwinkliges Dreieck mit der Kantenlänge n ausgeben.
Erstellen Sie ein Struktogramm und implementieren Sie die Lösung.

Struktogramm..

Quersumme ermitteln

Für eine eingegebene Zahl n soll die Quersumme (Summe der Ziffern) berechnet und ausgegeben werden:

Beispiel 112: 1+1+2 = 4

Entwickeln Sie eine Methode Quersumme.berechne(n:GZ):GZ (Quelltext und Struktogramm)! [Quelltext] [Struktogramm]

Tipp: 112%10 = 2

Hugospiegel

Erstellen Sie eine Methode Hugo.spiegel1(s:Text) die einen eingegebenen Text spiegelt:

Eingabe: "Hugo" -> Ausgabe: "oguH"

Erstellen Sie ein Struktogramm für die Methode.

Erstellen Sie eine Methode Hugo.spiegel2(s:Text) die einen eingegebenen Text "Hugo" wie folgt ausgibt: Lösung..

H
Hu
Hug
Hugo
Hug
Hu
H

Quadratzahlengenerator

Quadratzahlen
zahlenfeld[]:GZ {20 Einträge}
ausgebenQuadratzahlen(n:GZ)
fuelleFeld(n:GZ)
ausgebenFeld()
berechneFeldSumme():GZ
berechneFeldSumme2():GZ

Eine Klasse für Quadratzahlen wird entwickelt das Diagramm des Endausbaus ist links zu sehen. Es soll kein Objekt erstellt werden müssen, daher sind die Attribute und Methoden "static" d.h. Klassen-Attribute und Klassen-Methoden.

Entwickeln Sie die Klassen-Methode ausgebenQuadratzahlen(n:GZ), die die Quadratzahlen von 1 bis n auf der Konsole ausgibt.

Ein Klassen-Attribut zahlenfeld[]:GZ kann maximal 20 Zahlen speichern. Die Methode fuelleFeld(n:GZ) schreibt die Quadratzahlen von 0 bis n in das Zahlenfeld. Bei zu kleinem Feld wird eine Fehlermeldung ausgegeben. Die Methode ausgebenFeld() gibt das Feld auf der Konsole aus.

Eine Methode berechneFeldsumme():GZ berechnet die Summe aller Feldelemente.

Die Methode berechneFeldsumme2():GZ verwendet hierzu eine while-Schleife. Erstellen Sie auch ein Struktogramm für diese Methode. Lösungen: [Quelltext] [Struktogramm]

Lottozahlengenerator (anspruchsvoll)

Erstellen Sie eine Klassen-Methode Lottozahlen.generiereZahlen(), die 6 Zahlen von 1 bis 49 ohne Wiederholungen auf der Konsole ausgibt. Lösung: [Lottozahlen.java]

Sternenkreuz mit for-Schleife (schwierig)

Erstellen Sie eine Methode Sternenkreuz.ausgabe(n:GZ) die Quadrate mit Kreuz ausgibt. Lösung..

*******
**   **
* * * *
*  *  *
* * * *
**   **
*******

Sternenpyramide (Aufgabe von Alex H.)

Erstellen Sie eine Methode Pyramide.zeichne(hoehe:GZ) die eine Pyramide ausgibt. Lösung..

   *   
  ***  
 ***** 
*******

  Sternenwürfel (Aufgabe von Alex H.)

Erstellen Sie eine Methode Wuerfel.zeichne(hoehe:GZ) die einen Würfel ausgibt. Lösung..

   ***********
  **        **
 * *       * *
***********  *
*  *      *  *
*  *      *  *
*  *      *  *
*  *      *  *
*  *      *  *
*  *      *  *
*  ***********
* *       * * 
**        **  
***********  

 

© Oliver Mezger 21.03.2010 MezData.de Den Kontakt herstellen...