tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
376
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    d2mike d2mike ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    161
    Hallo
    Ich bräuchte wieder mal eure hilfe!

    PHP-Code:
    package praktikum.ab4;
    import esop.simpleIO.*;
        
    public class 
    aufgabe3b {

        public static 
    void mainString args[] ){
        
            
    int zeilen;
            
            
    Out.println("Zeilen?");
            
    zeilen In.readInt();
            
            for (
    int i=1i<=zeileni++){
                for (
    int j=0j<ij++){
                    
    Out.print(i);
                }
                
    Out.println("");
            }
            
    Out.println("");
        }

    dann sieht die ausgabe bei 4 Zeilen so aus:
    1
    22
    333
    4444

    Jetzt kommt das Problem - das ganze soll aber auch zentriert, also in Pryamidenform, ausgegeben werden --> und das raff ich einfach nicht:

    ...1
    ..22
    .333
    4444

    Wie kann ich das lösen? Natürlich ohne (.)

    Danke für eure Hilfe!

    Michael
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Dir jetzt einfach so die Lösung zu verraten wäre natürlich zu einfach. Aber überleg dir doch mal wieviel Leerzeichen du in jeder Zeile vor die Elemente schreiben mußt. Kleiner Tipp: die Anzahl der Leerzeichen ist umgekehrt proportional zu der Anzahl der Elemente in jeder Zeile.

    Schreib dir am besten einfach für ein paar Zeilen hin wieviel Leerzeichen und wieviel Elemente du hast. Dann versuch daraus eine Formel abzuleiten.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    d2mike d2mike ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    161
    danke für die schnelle Antwort!

    Annahme: ich hab 4 Zeilen...

    dann bräuchte ich beim ersten 3 Leerzeichen
    beim zweiten 2 Lz
    und beim dritten 1 Lz

    oder?
    aber wie bauch ich das in meine Schleifen ein? zusätzlich eine neue?

    lg Michael
     

  4. #4
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von MUZekater Beitrag anzeigen
    danke für die schnelle Antwort!

    Annahme: ich hab 4 Zeilen...

    dann bräuchte ich beim ersten 3 Leerzeichen
    beim zweiten 2 Lz
    und beim dritten 1 Lz

    oder?
    Du kannst es ja mal ausprobieren. (z.B. auf kariertem Papier)
    Zitat Zitat von MUZekater Beitrag anzeigen
    aber wie bauch ich das in meine Schleifen ein? zusätzlich eine neue?
    Ja, das wäre eine gute Idee.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  5. #5
    Avatar von takidoso
    takidoso takidoso ist offline Mitglied Brillant
    Registriert seit
    Aug 2004
    Ort
    Kömigstein
    Beiträge
    911
    Also ich würde anders vorgehen.
    die Länge der größten auszugebenen Zeile ist doch ziemlich bekannt, oder?
    jede weitere Zeile ist der Zeichenlänge kurz vor der Ausgabe auch bekannt.
    nun muss man nur noch ungefär sich erinnern wie man Texte zentral schreibt. In den Zeiten, wo man noch mit Schreibmaschienen handtierte wußte man das
    * sei mal die zu zentrlisiernede Zeile, + die größte


    Code :
    1
    2
    
    **********            (10 Zeichen)
    ++++++++++++++++++++   (20 Zeichen)

    man würde jetzt doch erwaten dass die kleinere Zeile um 5 nach rechts gerückt würde.

    Code :
    1
    2
    3
    4
    
         **********       (10Zeichen)
    ++++++++++++++++++++  (20 Zeichen)
     
    -----          -----   (5+10+5 = 20)

    also erscheint mir da eine formel vielleicht ganz passend zu funktionieren

    (Zeichenanzahl(kleinere Zeile) - Zeichenanzahl(längste-Zeile)) / 2

    probiere mal aus ob es auch mit anderen Anzahlen geht

    Takidoso
     

  6. #6
    d2mike d2mike ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    161
    mhm, danke für deine Hilfe --> aber irgendwie raff ich das noch immer nicht!
    Bei mir sieht das jetzt folgendermaßen aus:

    PHP-Code:

    package praktikum
    .ab4;
    import esop.simpleIO.*;
       

    public class 
    aufgabe3b {

        public static 
    void mainString args[] ){
        
            
    int zeilen;
            
            
    Out.println("Zeilen?");
            
    zeilen In.readInt();
            
            for (
    int i=1i<=zeileni++){
                for (
    int k=(zeilen-i)/2k>=0k--){
                    
    Out.print(".");
                }
                for (
    int j=0j<ij++){
                    
                    
    Out.print(i);
                }
                
    Out.println("");
            }
            
    Out.println("");
        }

    Die Ausgabe bei "4" Zeilen so:

    PHP-Code:
    Zeilen?
    4
    ..1
    ..22
    .333
    .4444 
    und das haut noch immer nicht hin!
     

  7. #7
    d2mike d2mike ist offline Mitglied Gold
    Registriert seit
    Jan 2005
    Beiträge
    161
    ich die Lösung *juhu*

    PHP-Code:
    package praktikum.ab4;
    import esop.simpleIO.*;
       

    public class 
    aufgabe3b {

        public static 
    void mainString args[] ){
        
            
    int zeilen;
            
            
    Out.println("Zeilen?");
            
    zeilen In.readInt();
            
            for (
    int i=1i<=zeileni++){
                for (
    int k=(zeilen-i); k>=0k--){
                    
    Out.print(" ");
                }
                for (
    int j=0j<ij++){
                    
                    
    Out.print(i+" ");
                }
                
    Out.println("");
            }
            
    Out.println("");
        }

    Bei 4 sieht das dann so aus:
    PHP-Code:
    Zeilen?
    4
        1 
       2 2 
      3 3 3 
     4 4 4 4 
    danke für Eure Hilfe! Michael
     

Ähnliche Themen

  1. Transform Component - extrude schaff ich nicht
    Von geronimoisfree im Forum Autodesk Maya (ehemals Alias)
    Antworten: 3
    Letzter Beitrag: 07.03.10, 01:25
  2. Mysql ausgabe will einfach nicht
    Von Jantz im Forum PHP
    Antworten: 3
    Letzter Beitrag: 11.11.06, 10:23
  3. Antworten: 2
    Letzter Beitrag: 11.03.06, 16:50
  4. Ich schaff nicht mal das !
    Von Stephan Zesiger im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 7
    Letzter Beitrag: 25.06.02, 07:16
  5. Schaff es noch immer net !
    Von Nucleus im Forum PHP
    Antworten: 7
    Letzter Beitrag: 04.01.02, 09:31