![]() |
Delphi Schulaufgaben
Hallo Leute hoffe erstmal das ich in der richtigen Kategorie bin
Ich habe Delphi in der Schule und folgendes Problem als Aufgabe haben wir : Versuchen Sie mit Hilfe einer geschachtelten For Anweisung ein Tannenbaum auf den Bildschirm zu Zeichen die aus vielen gleichen frei wählbaren Zeichen besteht Als Rechteck bekommen ich das ganze hin aber als Baum keine ahnung kann mir jmd helfen soll also so aussehen: ------x -----xxx ----xxxxx ---xxxxxxx ------x |
AW: Delphi Schulaufgaben
Ist so ähnlich wie ein Rechteck, nur das die innere Schleife 3 mit variablen Grenzen sind
|
AW: Delphi Schulaufgaben
Moin,
Soweit ich das sehe, sind es pro Zeile 2 Zeichen mehr. Das heißt, du zählst bei der inneren Schleife, bis auf das letzte mal, immer bis zum Index der äußeren Schleife + 2. Hilft dir das schon? Edit: Das ist so gesehen jetzt natürlich nicht mehr ganz so sinnvoll / richtig, da der Baum jetzt anders aussieht ;) Ist aber trotzdem kein Problem, da die Leerräume pro Zeile um 1 wachsen -> Schleife-Grenze ;) Grüße, Max |
AW: Delphi Schulaufgaben
ehm iwie weiss ich grad nicht was du meinst so sieht mein Rechteck aus
Code:
procedure TForm2.Button2Click(Sender: TObject);
var i,j: integer; ergebniss, zeichen: string[100]; begin zeichen:= edit1.text; for i:= 0 to 6 do begin ergebniss:=' '; for j:= 0 to 12 do begin ergebniss:= ergebniss + zeichen; end; memo1.Lines.Add(ergebniss); end; end; |
AW: Delphi Schulaufgaben
Wie gesagt, musst du die innere anpassen
-Leerzeichen (weniger werdend) -Xe (mehr werdend) |
AW: Delphi Schulaufgaben
Tipp: Du kannst als Start- und Endwerte von Schleifen auch Variablen angeben. Also z.B:
Delphi-Quellcode:
for i := variable_x to variable_y do ...
|
AW: Delphi Schulaufgaben
:wall: checks grad ehrlich gesagt nicht
|
AW: Delphi Schulaufgaben
Code:
3 leer; 1 xx xxx xxxxx xxxxxxx x x 2 leer; 3 x 1 leer; 5 x 0 leer; 7 x ... |
AW: Delphi Schulaufgaben
Vllt ist es sich so einfacher vorzustellen:
Wenn die Baumkrone 4 Zeilen hoch sein muss, dann ist die längste Zeile 2*(4-1) + 1=7 Zeichen lang. 1 Zeile: 3 leer, 1 x, 3 leer 2 Zeile: 2 leer, 3 x, 2 leer 3 Zeile: 1 leer, 5 x, 1 leer 4 Zeile: 0 leer, 7 x, 0 leer Leerzeichen immer -1 und x immer +2 |
AW: Delphi Schulaufgaben
Ja aber wie mache ich das den so wie ich es versuche funktioniert es definitiv nicht stehe aber auch ehrlich gesagt immoment voll aufem schlauch
da ich schon seit mehreen stunden darüber nachdenke
Code:
:pale: glaube das ist immoment völlig falsch was ich versuche da ich immer noch ein rechteck habe und nichtmal annähernd einen Baum
for i:= 0 to 7 do
begin ergebniss:=' '; ergebniss:= ergebniss - ergebniss ; |
AW: Delphi Schulaufgaben
Verwende 2 innere Schleifen
Delphi-Quellcode:
Äussere Schleife
Innere Schleife Leerzeichen Ausgabe Leerzeichen Innere Schleife Ende Innere Schleife x Ausgabe x Innere Schleife Ende Äussere Schleife Ende |
AW: Delphi Schulaufgaben
Tipp: Entweder über
![]() ![]() oder ![]() [edit] OK, oder über zusätzliche Schleifen das machen, was DupeString für einen machen würde, ala mkinzlers Vorschlag :stupid: |
AW: Delphi Schulaufgaben
Was willst du mit
Delphi-Quellcode:
bezwecken? Überlge dir, ob der Code, den du schreibst, Sinn macht.
ergebniss:= ergebniss - ergebniss ;
(Nebenbei, "Ergebnis" schreibt sich mit einem s am Ende - auch wenn den Compiler die Rechtschreibung nicht interessiert, sollte man sie nicht vernachlässigen) |
AW: Delphi Schulaufgaben
Sry wegen dem Ergebnis xD ehem joa du wie gesagt steh immoment ziemlich auf dem Schlauch
ehm mit dieser methode
Delphi-Quellcode:
bekomm ich das hier raus
begin
zeichen:= edit1.text; for i:= 0 to 0 do begin ergebniss:=' '; memo1.Lines.Add(ergebniss); for j:= 7 downto 3 do begin ergebniss:=ergebniss + zeichen ; memo1.Lines.Add(ergebniss); end; end; end; x xx xxx xxxx xxxxx |
AW: Delphi Schulaufgaben
Lies mal, was dir geraten wurde, du brauchst zwei innere Schleifen.
Zitat:
Dann liesse sich allerdings kein einziges Programm mehr kompilieren...(Compiler error. unknown language: 'TMyKunde') |
AW: Delphi Schulaufgaben
Es fehlt auch die 1. innere Schleife (Leerzeichen) :zwinker:
|
AW: Delphi Schulaufgaben
Die Schleife
Delphi-Quellcode:
wird eh nur einmal durchlaufen (von 0 bis 0), also kannst du sie auch weglassen.
for i:= 0 to 0 do
Wie gesagt, mit jeder Zeile werden es 2 X mehr. Ergo muss die Obergrenze für die innere Schleife mit jedem Durchgang um 2 erhöht werden. Überlege dir die Abhängigkeit zwischen der Baumbreite und dem Zeilenindex. Du kannst Variablen als Schleifen-Begrenzungen verwenden. Das sind eigentlich alle Tipps, die ich dir geben kann, ohne die Lösung vorwegzunehmen, was wir hier im Forum selbstverständlich nicht machen. Ich bin aber sicher, dass du mit etwas Nachdenken die Lösung auch selbst herausfindest... und wenn nicht, schlaf mal eine Nacht drüber und probier es morgen noch mal. |
AW: Delphi Schulaufgaben
-.- Joa probier es ja zu beherzigen aber iwie bin ich immer noch auf dem falschen Dampfer
Also habe mir das jetzt so gedacht an dem Bsp von mkinzler
Code:
Hoffe das ich das jetzt wenigstens verstanden habe
Äußere Schleife sagt wie oft die inneren durchlaufen sollen
1.Innere Schleife sagt wie oft das Leerzeichen gezählt wird >>> Leerzeichen wird ausgegeben 1.Innere schleife ende 2.Innere Anzahl wie oft das Zeichen gezählt wird >>> Zeichen wird ausgegeben 2.Schleife ende Äußere Schleife Ende Und danke schonmal das ihr soviel Geduld aufbringt :) hatte leider eine lange Pause im programmieren |
AW: Delphi Schulaufgaben
Ja. Wobei die Anzahlen ja in Beziehung stehen
|
AW: Delphi Schulaufgaben
So habe mal ganz lange nachgedacht und bin zum Entschluss gekommen brauche nur eine Schleife
Code:
und Bums es hat funktioniert nur den Baumstamm habe ich nicht hinbekommen also der Baum sieht immoment so aus
var i, hoehe: integer;
Leerzeichen, Zeile, zeichen: string[100]; begin zeichen:= edit1.Text; hoehe:= 7; for i:=hoehe downto 1 do begin Leerzeichen := stringofchar (' ', i-1); zeile := zeile + zeichen; memo1.Lines.Add(Leerzeichen + zeile) end; end;
Code:
ok eher eine Pyramide :wink: aber ist denk ich mal Grundsätzlich richtig
x
xxx xxxxx xxxxxxx Vielen Dank nochmal für eure Hilfe =) |
AW: Delphi Schulaufgaben
Zitat:
|
AW: Delphi Schulaufgaben
Stimmt O.o ach man manchmal siet man den Wald vor lauter Bäumen nicht xD
Edit: ehm kann ich das thema iwie selbst schließen falls nicht könnte das ein Mod für mich tun =) und danke noch einmal für eure hilfe |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz