PHP Tannenbaum mit Arrays umsetzen

Shauni

Cadet 3rd Year
Registriert
Feb. 2011
Beiträge
44
Hi Leute ^^

also ich muss ein Programm in PHP schreiben, welches die eingegebene Höhe des Tannenbaumes im Vorherigen Eingabeformular über die Methode Post bekommt. (Diese HTM-Seite hab ich schon fertig ^^).

jetzt muss mein PHP-Skript folgendes machen:

es Soll jetzt eine auf Die Höhe angepasste ausgabe machen z.B.:

Eingabe: 4

dann:

X
XXX
XXXXX
XXXXXXX
X
X

Die Höhe des Stammes soll laut vorgabe

"Eingabe / 4 * 2"

sein in diesem Beispiel also

4 / 4 * 2

die Gesamthöhe ist dann Eingabe + Stamm

jetzt weiß ich allerding nicht wie ich dass Programmieren soll dass sich die richtigen Arrayelemente initialisiert werden und die "Pyramide" rauskommt.

danke für eure hilfe im Vorraus ^^
Ergänzung ()

hmm iwie übernimmts des mit dem "Tannenbaum nicht richtig glaub jeder weiß was da rauskommen soll.
 
Krone = 1
Schleife von 1 bis x (z.B. 4): Krone = Krone + 2; Krone entspricht Anzahl der 'x'-Zeichen
Schleife von 1 bis x (z.B. 4) / 4 * 2: jeweils 1 'x' zeichnen.
 
nur n halber tannenbaum? ;)
 
wie gesagt hir stellts iwie nicht ganz dar ^^ und ja arrays ist in der Aufgabenstellung ^^probier ich dann mal danke :)
 
Im Computerbase-Forum werden an jedem Zeilenbeginn alle Leerschritte entfernt.
Um das zu verhindern und Ascii-Art zu ermöglichen muss man seine Zeilen mit
[ CODE ] [ /CODE ] umgeben

Code:
  so
    zum
      Beispiel
 
ich versuch's mal:
PHP:
$input = $_POST["Eingabe"];  // Eingabe einlesen
$heightTrunk = $input /4 * 2;  // Höhe des Stammes
$heightTree = heightTrunk + $input ; // Höhe des ganzen Baumes
$myArray = array();   // das Array (zunächst leer)
// Krone erzeugen
for ($i = 0; $i <$input; $i++)
{
    $myArray[] = "x";  // neues Element ins Array einfügen
    for($j = 0; $j < $i; $j++)
    {
        $myArray[$i] .= "xx";  // zwei x hinzufügen
    }
}
// Stamm erzeugen
for ($i = 0; $i <$heightTrunk; $i++)
{
    $myArray[] = "x";  // neues Element ins Array einfügen
}
// Ausgabe
for ($i = 0; $i <$heightTree; $i++)
{
    echo $myArray[$i]."<br>";  // Array-Element ausgeben, danach neue Zeile
}
Hab's nicht getestet, übernehme keine Garantie, dass es funktioniert ;)
Die Eingabe-Textbox im Eingabeformular muss den Namen "Eingabe" haben, sonst klappt das $_POST["Eingabe"] nicht.
 
Zuletzt bearbeitet:
Daaron schrieb:
Hört ihr wohl auf, Hausaufgaben direkt zu lösen?
willst du damit sagen, dass meine Lösung tatsächlich eine Lösung (also eine echt funktionierende) ist? Bin selbst noch nicht so sattelfest in PHP, hätte mich nicht gewundert, wenn meine "Lösung" kompletter Stuss gewesen wäre ;)
 
Nö... ich habs weder getestet noch bin ich motiviert, es zu testen. Aber die Forenregeln besagen nun einmal hinsichtlich Hausaufgaben: leichte Hilfestellung ja, wirkliche Lösungen nein... sonst lernen die betreffenden Personen ja nix.
 
und Hausaufgaben bekommen wir keine ^^ was das gute an dieser Ausbildung ist :D

wir bekommen so ca. jede 2 bis 4 Woche ein neues Projekt. alles grundlegende wird uns immer gelehrt jedoch möchten die Lehrer auch dass wir uns selber etwas schlau machen vor allem im Fach höhere Programmiersprachen (c#, c++). Gegen Code aus dem Internet sagen sie grundsätzlich nichts jedoch raten sie natürlich da von ab, da man besser lernt wenn man es selbst gemacht hat ^^ deswegen müssen wir sozusagen als Beweis dass wir unser eigenes Programm verstehen es auskommentieren und auch ab und zu Vorstellen.

mir ging es in dem Thread mehr über mein Verständnisproblem, da ich nicht genau wusste wie ich z.B. das Array so aussehen lasse:

Code:
      X     
    XXX   
  XXXXX
XXXXXXX     
      X
      X

da ich gedacht habe ich muss den höchsten Index des Arrays durch 2 teilen und dann -1, jedoch wusste ich ab da auch nicht weiter da wir bis jetzt nur statische Arrays hatten ^^

auf jedenfall hilft mir dieses Beispiel auch etwas (obwohl ich es immer noch nicht zu 100% verstehe :D). jetzt weiß ich wenigstens so ungefähr wie in php dynamische Arrays deklariert / initialisiert werden. juhuuu :D
Ergänzung ()

hm etz hat er die andere Seite des Baumes gefressen ^^
Ergänzung ()

$myArray[$i] .= "xx"; // zwei x hinzufügen

also mit dem Punkt füge ich dem Array noch ein Element zu so wie ich es verstehe ^^ oder ?
 
Shauni schrieb:
also mit dem Punkt füge ich dem Array noch ein Element zu so wie ich es verstehe ^^ oder ?
nein, du manipulierst ein bereits im Array vorhandenes Elemente, nämlich das $i-te, und zwar fügst du dem String, der dieses Array-Element bildet, einen weiteren "xx"-Teilstring an. Sei z.B. $i=2 und $j=1. Dann sind die Array-Elemente, bevor die Codezeile durchlaufen wird
PHP:
$myArray[0]=="x"
$myArray[1]=="xxx"
$myArray[2]=="xxx"
Die Codezeile fügt dem 2. Array-Element zwei x an, es ist danach also
PHP:
$myArray[0]=="x"
$myArray[1]=="xxx"
$myArray[2]=="xxxxx"
Das Hinzufügen eines neuen Elements ins Array findest du woanders, in Zeile 8.
 
Zurück
Oben