Hallo,
habe im Netz nichts richtiges gefunden.
Wie kann ich in PHP soetwas programmieren
*
**
***
****
*****
irgendwie mit einer schleife.
mfg
elo
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
//edit: Der Nickles-Editor weigert sich den Code anzunehmen...
Hier ein Bild davon:
http://imageshack.us/photo/my-images/21/codeep.png/
Bitte gib den Code aber nicht als Hausaufgabe ab, ohne ihn vorher verstanden zu haben!
Hallo,
vielen Dank für die Antwort, da ich aber gerade Anfange ist es schwerr zu verstehen.
Außerdem hatte ich die ganze Zeit $1 gelesen aber mit einer Zahl darf eine Variable nicht anfangen und dann lief es auch als ich es geändert hatte usw. hatte mich versehen.
Als Hausaufgabe abgeben geht wohl nicht so einfach bin über 40.
mfg
elo
Hallo,
nochmal danke, aber kannst Du es ein wenig erklären schecke im Moment echt nicht viel, wie gesagt bin Anfänger.
mfg
elo
Also die wenigen Ziffern sind grün gefärbt (entweder 0 oder 1), als Zähler-Variablen habe ich die Kleinbuchstaben I und L verwendet.
Um eine Pyramide bauen zu können, müssen wir zunächst ein Gerüst bauen. Um den Bau dieses Gerüsts kümmert sich eine For-Schleife mit der Zählervariable I, die mit echo "[br]" eine neue Zeile erstellt.
Uns fällt außerdem auf, dass wenn wir von oben anfangen (wir bauen in die Tiefe), die Nummer der Reihe der Anzahl der Asterisken (*) entspricht.
Also schreiben wir in unsere bestehende Schleife eine weitere Schleife, die so oft durchlaufen wird, wie tief wir uns gerade befinden.
Zur Erinnerung: Die Tiefe haben wir in der Variable I gespeichert, die die erste Schleife zum Zählen verwendet.
So weit alles klar? Jetzt müssen wir I-viele Sternchen ausgeben (siehe L-Schleife).
Wenn wir alles so lassen, haben wir aber nur eine halbe Pyramide. Wir müssen die Asterisken noch an der richtigen Stelle platzieren.
Dazu schreiben wir einfach vorher nur Leerzeichen.
Die 2. Leerzeichen-Schleife ist übrigens unnötig, da man die eh nicht sieht. Die bräuchtest du nur, wenn du einen Kasten erstellen wolltest, in dem sich die Pyramide befindet. Dann brauchst du nicht nur links der Asterisken einen Abstand, sondern auch rechts davon.
for ($i = 1; $i<=5; $i++) echo str_repeat('*', $i);
Einzeiler ;-)
Gruß Borlander
Hallo,
danke für die ausführliche Erklärung aber ich glaube da brauche ich nocj ein bisschen bis ich das so richtig peile.
Der Einzeiler geht nicht macht nur eine Zeile.
mfg
Elo
Zeilenumbruch bei der Ausgabe vergessen. Hätte das doch testen sollen ;-)
Das tuts:
for ($i = 1; $i<=5; $i++) echo str_repeat('*', $i)."\n";
Gruß
Borlander
Hallo,
ne geht immer noch nicht.
elo
wenn du den Code im Browser ausführst, musst du \n durch (ohne Leerzeichen) ersetzen.
@Borlander: Wir schaffst du es, den Code hier einzufügen?
Ansonsten, was funktioniert noch nicht? Die Anordnung der Asterisken? Wie schon erklärt, musst du diese durch Leerzeichen an die richtige Stelle schieben lassen.
In <code> </code> ;-)
durch Leerzeichen an die richtige Stelle schieben lassen.
Das funktioniert auf einer Webseite aber auch nicht so ohne weiteres. Und geschützte Leerzeichen wären da äußerst unsauber. Btw.: Das könnte man dann bequem mit
str_pad
machen ;-)
Hallo,
ich lerne gerade php und das war eine Übung.
Ich mache das mit xampp, SuperHTML, scriptly usw.
Dein code hatte ich letztes mal getestet und es geht nicht, der etwas aufwendigierer Code der funktioniert.
mfg
elo
Was genau geht da nicht?
Wenn Du HTML-Ausgabe brauchst, dann musst Du die Zeilenumbrüche wie von bechri geschrieben mit <br/> ausgeben. "\n" erzeugt nur einen Zeilenumbruch im Text, aber der wird vom Browser bei der HTML-Darstellung ignoriert.
for ($i = 1; $i<=5; $i++) echo str_repeat('*', $i).'<br />';
würde es da tun.
Gruß
Borlander
Hallo,
sorry bin eben Anfänger, habe es getestet geht jetzt, aber ist links bündig.
danke
elo
bei mir klappt das Einfügen von Code noch immer nicht, vielleicht liegt das ja auch an Firefox.
Wie gesagt: Du musst die Sternchen an die richtige Position schieben. also schreib vor das Asterisken-str_repeat ein weiteres str_repeat, das Leerzeichen schreibt. So wie oben beim ausführlichen Code-Beispiel.
Da du den Code allerdings im Browser ausführst, könntest du mit dem HTML-Tag [center] das gleiche Ergebnis erreichen.
Schau dir einfach an, wie die Funktion str_repeat funktioniert. Dann wirst du den Code verstehen!
http://de.php.net/manual/de/function.str-replace.php
Hallo,
danke für die ganzen Antworten, aber verstehen ist gut ich habe noch nicht mal Deinen großen Code verstanden.
mfg
elo
http://de.php.net/manual/de/function.str-replace.php
Falscher Link!
http://www.php.net/manual/de/function.str-repeat.php
Wobei man das ganze wie schon oben geschrieben u.U. deutlich bequemer mit str_pad lösen kann ;-)
Ist Dein Beispiel im Ursprungsposting doch auch? ;-)
Was genau willst Du denn eigentlich erreichen mit dem Ganzen?
Hallo,
bin Anfänger das ist eine Übung und ist jetzt abgeschlossen erstmal.
mfg
elo