Autor Beitrag
ReggaeGregi
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Di 20.03.07 21:28 
Hi Leute,
könnt ihr mir bitte helfen. Ich will als Übung ein Kreuzmuster erstellen. Dieses Krieg ich bereits hin
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
 
                        XXXXX
                        XXXX
                        XXX
                        XX
                        X

Aber andere Muster sollten eingentlich einfach sein aber ich bin noch nicht drauf gekommen. Vileicht könnt Ihr mir helfen. Ich würde gerne folgendes Muster hinkriegen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
        
                XXXXX
                 XXXXX
                  XXXXX
                   XXXXX

und das woll das schwierigste
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
      
                                                    X
                                                   X X
                                                  X X X
                                                 X X X X


VIELEN DANK FÜR EURE HILFE ;)
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 20.03.07 21:32 
Moin und :welcome: im Forum!

Zeig doch mal deinen bisherigen Code, dann können wir dir auch besser helfen; wenn du dann noch eine etwas genauere Beschreibung deiner "Problemstelle" gibst, sollten wir schon weiter kommen! ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
ReggaeGregi Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Di 20.03.07 23:58 
also soweit bin ich gekommen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
var i,spalte:integer; x,j:string;
begin

// Das ist eine Schleifenverschachtelung

For i:=1 to 4 Do
   begin
     j:=j+' ';
       For spalte:=1 to i Do
        begin
         j:=j+'X';
         Memo1.Lines.Add(j);
    end;
   end;


end;


aber mit diesem System krieg ich nciht die anderen hin. Also bitte helft mit dringend. Danke
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 21.03.07 00:06 
Moin!

OK, erster Schritt, wie muss denn der Code geändert werden, um das Dreieck, was du damit erstellst, auf den Kopf zu stellen? ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
ReggaeGregi Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 21.03.07 00:10 
na eigentlich einfach anstellen von 1 to 4 wird 4 to 1 aber ich brauch ja die anderen Muster
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 21.03.07 00:15 
Moin!

Gut, dann schau dir mal das hier an: ;)
ausblenden Quelltext
1:
2:
3:
4:
 XXXXX  
 oXXXXX  
 ooXXXXX  
 oooXXXXX

Was fällt dir auf?

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
ReggaeGregi Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 21.03.07 00:34 
Ich verstehe schon. Aber ich weiss nicht wie ich das genau in meinem Quelltext einbauen kann. Oder ich hab ein fehler drin. weil bei mir kommt das hier raus :
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
o Xo X
o Xo XX
o Xo XXo X
o Xo XXo XX
o Xo XXo XXX
o Xo XXo XXXo X
o Xo XXo XXXo XX
o Xo XXo XXXo XXX
o Xo XXo XXXo XXXX
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 21.03.07 00:36 
Moin!

Du solltest erstmal deinen Code dazu bringen, überhaupt nur ein Dreieck zu erzeugen, ohne diese Spalten (oder ist das Teil der Aufgabe?). ;) Also sowas hier:
ausblenden Quelltext
1:
2:
3:
4:
 x
 xx
 xxx
 xxxx

Poste doch mal deinen Code, der genau dieses Dreieck erzeugt.

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 21.03.07 01:04 
Moin!

Hm, einen kleinen Anschubser geb ich dir mal noch, das wäre der Code für das Dreieck:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
  var
    i,j: Integer;
    Zeile: String;
begin
  Memo1.Clear;
  for i := 1 to 4 do begin
    Zeile := '';
    for j := 1 to i do
      Zeile := Zeile +'X';
    Memo1.Lines.Add(Zeile);
  end;
end;

Gedanklicher Ansatz für das Parallelogramm: Es ist ja immer eine feste Anzahl Xe und die Anzahl der Leerzeichen davor ist "dreieckig"... ;)

cu
Narses

//EDIT: Variablenname ausgetauscht: aus 'x' -> 'Zeile' gemacht, passt besser und ist dann mit deinem Code stimmig ;)

_________________
There are 10 types of people - those who understand binary and those who don´t.


Zuletzt bearbeitet von Narses am Mi 21.03.07 10:33, insgesamt 1-mal bearbeitet
ReggaeGregi Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 21.03.07 08:19 
jo danke ich hatte einen kleinen Fehler irgendwo drinne. Aber auf diesem Rechner habe ich den richtigen Quelltext
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var i,j,d:integer; zeile,x:string;
begin
For i:=1 to 4 do
 begin
 Zeile:=' ';
 For j:=4 to i Do Zeile:=Zeile+'x';
 memo1.lines.add(zeile)
end;
 end;


Aber sorry ich kriegs immer noch nicht. Ich schaff nicht mal wirklich überhaupt ein R echteck
ausblenden Delphi-Quelltext
1:
2:
3:
               xxxxx
               xxxxx
               xxxxx

Geschweige es versetzt anzusetzten. Das muss man doch mit einer weiteren Variable arbeiten oder?

Mfg
ReggaeGregi
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 21.03.07 10:32 
Moin!

user profile iconReggaeGregi hat folgendes geschrieben:
Aber sorry ich kriegs immer noch nicht. Ich schaff nicht mal wirklich überhaupt ein Rechteck

Ein Rechteck ist doch noch einfacher, als ein Dreieck: ;)

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
  var
    i: Integer;
begin  
  for i := 1 to 4 do  
    Memo1.Lines.Add('XXXXX');
end;


user profile iconReggaeGregi hat folgendes geschrieben:
Geschweige es versetzt anzusetzten.

Jetzt brauchst du doch das Ganze nur noch zu kombinieren, sprich ein Leerzeichen-Dreieck davor zu setzen. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
freak4fun
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 604
Erhaltene Danke: 4

Win 7 Pro
VS 2013 Express, Delphi, C#, PHP, Java
BeitragVerfasst: Mi 21.03.07 10:36 
Mal so als Idee:
ausblenden Delphi-Quelltext
1:
function LeftSpaces(const ACount: Integer; const AChr: String = ' '): String;					


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
begin
  Memo1.Clear;
  for i := 1 to 4 do
    Memo1.Lines.Add(LeftSpaces(i - 2'  ') + 'xxxx');
end;

function TForm1.LeftSpaces(const ACount: Integer; const AChr: String = ' '): String;
var
  i: Integer;
begin
  Result := '';
  for i := 0 to ACount do    
    Result := Result + AChr;
end;


Der Sinn hat sich mir aber noch nicht erschlossen. :rofl:

MfG
freak

_________________
"Ich werde auf GAR KEINEN Fall…!" - "Keks?" - "Okay, ich tu's."
i++; // zaehler i um 1 erhoehen
oldmax
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 380


D3 Prof, D4 Prof
BeitragVerfasst: Mi 21.03.07 10:55 
Hi
Also, Narses hat dir ja nun ein lauffähiges Beispiel gegeben und wenn das bei dir nicht funktioniert, dann sind Fehler von deiner Seite drin. Aber nun, warum ich mich dazu melde, du mußt dich davon lösen, das ein PC ein kompliziertes Teil ist und eine Programmiersprache noch viieeel komplizierter.
nehmen wir mal den Code vo Narses und gehen Schritt für Schritt durch, denn genau das tust du, wenn du es mit der Hand auf ein Blatt Papier malst . 1. Reihe 1 Kreuz
2. Reihe 2 Kreuze, dritte Reihe 3 Kreuze usw. So entsteht dein Kreuzmuster "Dreieck".

ausblenden Delphi-Quelltext
1:
2:
3:
x
xx
xxx

Sieht ein bischen komisch aus, du wolltest doch
ausblenden Delphi-Quelltext
1:
2:
3:
4:
    x
   xxx
  xxxxx
 xxxxxxx

also beginnen wir mit der ersten Reihe. Du hast eine Vorstellung, wieviele Zeilen du schreiben willst und daher beginnst du genau mit der Anzahl an Leerzeichen (Spacetaste) wie du Zeilen hast-1.
nun zählst du einmal die Kreuze in den Zeilen und stellst fest, die Anzahl verhält sich wie ZeilenZahl*2-1
also Zeile 1= 1*2-1=1
Zeile 2= 2*2-1=3
Zeile 3= 3*2-1=5
Zeile 4= 4*2-1=7
usw.
Wenn dir diese Schritte und Zusammenhänge klar sind, dann wirst du auch entsprechende Programmierung hinbekommen.
In diesem Fall sieht's dann so aus:
angenommen 4 zeilen

Also
vereinbare erst mal ein paar einfache Variable

ausblenden Delphi-Quelltext
1:
2:
3:
Zeilen   : Integer;
AnzLeer : Integer;
Anzeige : String;



Setze im Programm die Zeilenzahl

ausblenden Delphi-Quelltext
1:
Zeilen:=4;					

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
For i:=1 to Zeilen do // i entspricht der Zeile
begin  
  Anzeige:=''// Anzeige ist ganz leer
  For J=1 to Zeile-1 do Anzeige:=Anzeige+' '// erinnern wir uns, Leerzeichenzahl ist Zeilenzahl -1
  For j:=1 to i*2-1 do Anzeige:=Anzeige+'X'// X=Zeilenzahl *2-1, siehe obige Erklärung
  Memo1.Lines.Add(x); // und nun tragen wir den String "Anzeige ins Memofeld ein
end;


Diesen Code kannst du auch mal mit einer anderen Zeilenzahl ausprobieren. Nun zu deinen anderen Wünschen. Die Vorgehensweise ist analog. Erst überlegen, wie sehen die Schritte aus und wie muß ich Programmieren, um diese Schritte mit einem Programm abzubilden.
Viel Spaß

_________________
Zier dich nich so, ich krieg dich schon....
ReggaeGregi Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Sa 24.03.07 11:29 
Jo Vielen Dank. Leute. Ich hab alles hingekriegt. Das ist super.