Parallelogramm

Ben3

Mitglied
Geometrische Figuren: Parallelogramm
Schreiben Sie ein Programm, welches ein Parallelogramm aus Rautezeichen (#) ausgibt. Die Höhe h und Breite b sollen als Parameter von Ihrem Programm eingelesen werden (erst die Höhe mit der Meldung Höhe eingeben: und danach die Breite mit der Meldung Breite eingeben:).

Beispiele
Code:
h=5 und b=4

####
 ####
  ####
   ####
   ####

h=3 und b=7

#######
 #######
  #######

Eingaben prüfen
Überprüfen Sie die eingegebenen Werte auf Gültigkeit. Beide Werte müssen zwischen 1 und 25 liegen. Wenn ein ungültiger Wert eingegeben wird, soll Ihr Programm die Fehlermeldung Wert ungültig! ausgeben. Die Eingabe für diesen Wert muss dann wiederholt werden. Das ganze soll so oft wiederholt werden, bis ein gültiger Wert eingegeben wurde.

Ein vollständiger Programmablauf könnte z.B. so aussehen:
Code:
Höhe eingeben:
-3                   (Kommentar: das ist eine Eingabe!)
Wert ungültig!
5                    (Kommentar: das ist eine Eingabe!)
Breite eingeben:
0                    (Kommentar: das ist eine Eingabe!)
Wert ungültig!
99                   (Kommentar: das ist eine Eingabe!)
Wert ungültig!
3                    (Kommentar: das ist eine Eingabe!)
###
 ###
  ###
   ###
   ###


Hi das ist meine Aufgabe hänge aber gerade fest...

Java:
import java.util.Scanner;
class Parallelogramm{
  
        public static void main (String[] args){
            Scanner scan = new Scanner(System.in);
          
          
          
          
          
            System.out.println("Höhe eingeben:");
             int h = scan.nextInt();
            
          
             while(h>25 || h<1){
             System.out.println("Wert ungültig!");
             h = scan.nextInt();
             }
            
             System.out.println("Breite eingeben:");
                int b =scan.nextInt();
          
            while(b>25 || b<1){
             System.out.println("Wert ungültig!");
                b = scan.nextInt();
            }
          
          for(int a = 0; a<h; a++) {
        
            if(a!=0)
            System.out.print(" ");
            
        
          
           for(int i = 0; i<b; i++){
          
            System.out.print("#");
          
           }
           System.out.println();
          }
          
        }
}

Das ist bis jetzt meine Lösung würde mich über Hilfe freuen.
Bekomme das mit den einrücken durch Leerzeichen nicht hin.
 
Zuletzt bearbeitet von einem Moderator:

Ben3

Mitglied
Die while- Schleife ist zur Überprüfung der Bedingung.
Und die For-schleife gibt die richtige Anzahl der # aus und macht ein Zeilenumbruch dazwischen.
 

mihe7

Top Contributor
Du sollst nicht den Code erklären (noch dazu unvollständig; es gibt z. B. zwei for-Schleifen), sondern einen Lösungsansatz für die Ausgabe des Parallelogramms angeben, ohne Java-Code dabei zu verwenden.
 

Ben3

Mitglied
Du sollst nicht den Code erklären (noch dazu unvollständig; es gibt z. B. zwei for-Schleifen), sondern einen Lösungsansatz für die Ausgabe des Parallelogramms angeben, ohne Java-Code dabei zu verwenden.


Ich würde die Leerzeichen um jede Zeile um 1 erhöhen. Z.b so bald die Höhe 1 größer wird, eventuell anhand einer Schleife ein Leerzeichen dazu addiert werden und das so lange bis sich h nicht mehr erhöht.
 

mihe7

Top Contributor
D. h.
Code:
1. leerzeichen := 0
2. wiederhole h mal
2.1 gib leerzeichen-mal ein Leerzeichen aus
2.2 gib breite-mal eine Raute aus
2.3 erhöhe leerzeichen um 1
?
 

mihe7

Top Contributor
Mal abgesehen davon, dass in dem Algorithmus oben die Ausgabe des Zeilenumbruchs fehlt: warum nicht?

Du musst in Deinem Code doch if (a!=0) nur durch eine for-Schleife ersetzen, die von 0 bis a (excl.) zählt und dabei jeweils ein Leerzeichen ausgibt.
 

mihe7

Top Contributor
Mal komplett:
Java:
// beginnt mit leerzeichen := 0 und wiederholt h-mal, 
// nach jeder Iteration wird leerzeichen um 1 erhöht
for(int leerzeichen = 0; leerzeichen<h; leerzeichen++) {
    // leerzeichen-mal ein Leerzeichen ausgeben:
    for (int i = 0; i < leerzeichen; i++) {
        System.out.print(" ");
    }

    // b-mal eine Raute ausgeben
    for (int i = 0; i < b; i++) {
        System.out.print("#");
    }

    // Zeilenumbruch
    System.out.println();
}
 
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben