Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

Php Pyramiede

Elo / 18 Antworten / Baumansicht Nickles

Hallo,

habe im Netz nichts richtiges gefunden.

Wie kann ich in PHP soetwas programmieren

*
**
***
****
*****

irgendwie mit einer schleife.

mfg

elo

bei Antwort benachrichtigen
bechri Elo „Php Pyramiede“
Optionen

//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!

MfG Chris
bei Antwort benachrichtigen
Elo bechri „//edit: Der Nickles-Editor weigert sich den Code anzunehmen... Hier ein Bild...“
Optionen

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

bei Antwort benachrichtigen
Elo Nachtrag zu: „Hallo, vielen Dank für die Antwort, da ich aber gerade Anfange ist es schwerr...“
Optionen

Hallo,

nochmal danke, aber kannst Du es ein wenig erklären schecke im Moment echt nicht viel, wie gesagt bin Anfänger.

mfg

elo

bei Antwort benachrichtigen
bechri Elo „Hallo, nochmal danke, aber kannst Du es ein wenig erklären schecke im Moment...“
Optionen

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.

MfG Chris
bei Antwort benachrichtigen
Borlander Elo „Php Pyramiede“
Optionen
for ($i = 1; $i<=5; $i++) echo str_repeat('*', $i);
Einzeiler ;-)

Gruß Borlander
bei Antwort benachrichtigen
Elo Borlander „for i 1 i“
Optionen

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

bei Antwort benachrichtigen
Borlander Elo „Hallo, danke für die ausführliche Erklärung aber ich glaube da brauche ich...“
Optionen
Der Einzeiler geht nicht macht nur eine Zeile.
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
bei Antwort benachrichtigen
Elo Borlander „ Zeilenumbruch bei der Ausgabe vergessen. Hätte das doch testen sollen - Das...“
Optionen

Hallo,

ne geht immer noch nicht.

elo

bei Antwort benachrichtigen
bechri Elo „Hallo, ne geht immer noch nicht. elo “
Optionen

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.

MfG Chris
bei Antwort benachrichtigen
Borlander bechri „wenn du den Code im Browser ausführst, musst du n durch ohne Leerzeichen...“
Optionen
@Borlander: Wir schaffst du es, den Code hier einzufügen?
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 ;-)
bei Antwort benachrichtigen
Elo Borlander „ In - Das funktioniert auf einer Webseite aber auch nicht so ohne weiteres. Und...“
Optionen

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

bei Antwort benachrichtigen
Borlander Elo „Hallo, ich lerne gerade php und das war eine Übung. Ich mache das mit xampp,...“
Optionen
Dein code hatte ich letztes mal getestet und es geht nicht
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
bei Antwort benachrichtigen
Elo Borlander „ Was genau geht da nicht? Wenn Du HTML-Ausgabe brauchst, dann musst Du die...“
Optionen

Hallo,

sorry bin eben Anfänger, habe es getestet geht jetzt, aber ist links bündig.

danke

elo

bei Antwort benachrichtigen
bechri Elo „Hallo, sorry bin eben Anfänger, habe es getestet geht jetzt, aber ist links...“
Optionen

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

MfG Chris
bei Antwort benachrichtigen
Elo bechri „bei mir klappt das Einfügen von Code noch immer nicht, vielleicht liegt das ja...“
Optionen

Hallo,

danke für die ganzen Antworten, aber verstehen ist gut ich habe noch nicht mal Deinen großen Code verstanden.


mfg


elo

bei Antwort benachrichtigen
Borlander bechri „bei mir klappt das Einfügen von Code noch immer nicht, vielleicht liegt das ja...“
Optionen
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

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 ;-)
bei Antwort benachrichtigen
Borlander Elo „Hallo, sorry bin eben Anfänger, habe es getestet geht jetzt, aber ist links...“
Optionen
aber ist links bündig.
Ist Dein Beispiel im Ursprungsposting doch auch? ;-)

Was genau willst Du denn eigentlich erreichen mit dem Ganzen?
bei Antwort benachrichtigen
Elo Borlander „ Ist Dein Beispiel im Ursprungsposting doch auch? - Was genau willst Du denn...“
Optionen

Hallo,

bin Anfänger das ist eine Übung und ist jetzt abgeschlossen erstmal.

mfg

elo

bei Antwort benachrichtigen