Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Sternchenmuster erstellen (https://www.delphipraxis.net/37735-sternchenmuster-erstellen.html)

Uncle Cracker 9. Jan 2005 16:25


Sternchenmuster erstellen
 
Hi,

wir sollen für die Schule ein Quelltext erstellen der folgendes "Bild" erstellt:

Code:
*********
 *******
  *****
   ***
    *
   ***
  *****
 *******
*********

Es soll Abgefragt werden, wieviel Sterne verwendet werden sollen, also wieviel Zeilen bzw. die erste Zeile, wieviele Sterne dort verwendet werden soll.

Die anderen Sternchenmuster habe ich ohne Probleme hinbekommen, doch nur dieses schaffe ich irgendwie nicht, habe es schon schon mit "repeat/until" probiert, aber irgendwie klappt das nicht :(

Hat vielleicht jemand eine Idee wie ich das machen könnte...?


:love: Danke UC


PS: Die 2. Zeile soll um eins eingerückt sein, klappt aber hier irgendwie nicht wirklich... Soll also aussehen wie 2 Trichter.

nailor 9. Jan 2005 16:34

Re: Sternchenmuster erstellen
 
du fängst mit der maximalzahl sternchen an. dann gehst du eine zeile runter und machst ein leerzeichen mehr und zwei sterne weniger. dann gehst du eine zeile runterm, machst ein leerzeichen mehr und zwei sterne weniger. bis nur noch ein stern da ist (wenn am anfang ungerade zahl war). dann gehst du runter machst immer eine leerstelle weniger und zwei sterne weniger.

Uncle Cracker 9. Jan 2005 16:39

Re: Sternchenmuster erstellen
 
In welcher Schleife würdest du das machen?

While, Repeat/Until oder For?


:love: Danke UC

SirThornberry 9. Jan 2005 16:46

Re: Sternchenmuster erstellen
 
ich würde 2 for-schleifen hintereinander machen. Die eine für den oberen sternchenteil, die andere für den unteren Teil

mr47 9. Jan 2005 16:49

Re: Sternchenmuster erstellen
 
Da du die Zeilenzahl weist kannst du es wahrscheinlich mit der For-Schleife machen :gruebel:

// edit: @ SirThornberry : Mist du warst schneller :mrgreen:

Uncle Cracker 9. Jan 2005 17:01

Re: Sternchenmuster erstellen
 
Also soweit bin ich schon, nur weiter komm ich nicht, wie kann ich das in die andere richtung machen?

Delphi-Quellcode:
program dreieck_links;
{$APPTYPE CONSOLE}

uses SysUtils;

var
  s, i, x, y, z: Integer;

begin
  Write('Wieviel Sterne: ');
  ReadLn(s);
  WriteLn;
  x := 0;
  z := s;
  for i := 0 to s - 1 do
  begin
    for y := 0 to z - 1 do
      Write('*');
    x := x + 1;
    z := z - 2;
    WriteLn;
    for y := 0 to x - 1 do
      Write(' ');
  end;
  ReadLn;
end.

:love: Danke UC

mr47 9. Jan 2005 17:04

Re: Sternchenmuster erstellen
 
gleich Schleife mit

Delphi-Quellcode:
for i:= hoheZahl downto niedrigeZahl

Uncle Cracker 9. Jan 2005 17:16

Re: Sternchenmuster erstellen
 
Also irgendwie bin ich einfach nur ein bisschen zu grau um mitzubekommen warum das irgendwie nicht geht :(

Habe jetzt folgendes:

Delphi-Quellcode:
program dreieck_links;
{$APPTYPE CONSOLE}

uses SysUtils;

var
  s, i, x, y, z: Integer;

begin
  Write('Wieviel Sterne: ');
  ReadLn(s);
  WriteLn;
  x := 0;
  z := s;

  for i := 0 to s - 1 do //Funktion für oberen Teil
  begin
    for y := 0 to z - 1 do
      Write('*');
    x := x + 1;
    z := z - 2;
    if z >= 0 then
    begin
      WriteLn;
      for y := 0 to x - 1 do
        Write(' ');
    end;
  end;

  for i := 0 to s do //Funktion für unteren Teil
  begin
    for y := 0 to z - 1 do
      Write('*');
    x := x - 1;
    z := z + 2;
    if z <= s then
    begin
      WriteLn;
      for y := 0 to x - 1 do
        Write(' ');
    end;
  end;

  ReadLn;
end.
Also wie gesagt, der obere Teil funktioniert einwandfrei, nur beim unteren Teil kommen irgendwie Leerzeilen dazu (keine Ahnung warum) und es wird nicht ganz das gemacht was ich will (es wird die eine Zeile doppelt ausgegeben).

Hat vielleicht irgendjemand eine Ahnung warum? Es ärgert mich zwar selber, aber ich probiere das jetzt schon seit fast einer Stunde und ich komme nur in kleinen Abständen vorran und jetzt kein bisschen mehr... :(


:love: Danke UC

jfheins 9. Jan 2005 17:29

Re: Sternchenmuster erstellen
 
Ich würde mir erst eine Function erstellen wie z.B.
Delphi-Quellcode:
function Sternchen (Count: Byte; Length: Byte): String;
Der du die Anzahl an Sternchen (z.B. 3, 7) übergibst, und die gibt dir dann z.B.
Code:
' ***  '
.

Diese kannst du dann ganz bequem aufrufen, ausgeben und schon hast du dein Sternchenmuster ...

moritz 9. Jan 2005 18:23

Re: Sternchenmuster erstellen
 
Mein Vorschlag
Code:
program dreieck_links;
{$APPTYPE CONSOLE}

uses SysUtils;

var
  max, pos: Byte;

function StrMulti (chr: Char; cnt: Byte):String;
begin
  result := '';
  if cnt = 0 then exit;
  repeat
    result := result + chr;
  until length (result) = cnt;
end;

begin
  Write ('Wieviel Sterne: ');
  ReadLn (max);
  // Wir brauchen eine ungerade Anzahl, dass wir in der Mitte einen Stern bekommen
  if (max mod 2 = 0) then inc (max, 1);
  pos := max;

  repeat
    WriteLn (StrMulti (' ', Round ((max - pos) / 2) ) + StrMulti ('*', pos));
    Inc (pos, -2);
  until pos = 1;
  repeat
    WriteLn (StrMulti (' ', Round ((max - pos) / 2) ) + StrMulti ('*', pos));
    Inc (pos, 2);
  until pos > max;
  ReadLn;
end.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:09 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz