Yngvar Geschrieben 11. Juni 2007 Geschrieben 11. Juni 2007 Tag auch, Ich hab mir etwas Arbeit gemacht und das pascalsche Dreieck dynamisch mti PHP aufgebaut. Jetzt soll es eine funktion geben, in der alle durch x teilbare Zahlen markiert werden solen. Ab der ca. 35. Zeile markiert er aber nichts mehr, weil die Zahl für interger zu hoch ist. Hier der Link zur Page: http://pascal.topfkuchration.de Hier der Code: <? if ($pascal == "fibonacci") {include("fibonacci.php");include("bon_color.php");} $hochzahl=0; $id = 1; $wert = 1; $reihe = 1; $platz = 1; $color_i = 0; $zahl[$reihe][$platz] = $wert; if($f==0){$wert=0;} $color[0] = ($c != "" AND $zahl[$reihe][$platz]%$c == 0) ? "red" : "white"; if($pascal=="fibonacci")$color_i++; echo "<br><div align=center><table border=1><tr><td width=$a height=$b align=center><font color=$color[$color_i] size=$d>".$f*$wert."</td></tr></table>"; if($pascal=="2erPotenz"){echo "2<sup>0</sup> = 1";$hochzahl++;} if ($pascal == "fibonacci")$color_i++; if ($pascal=="multinome") {echo"(a+<sup>$hochzahl</sup>=1";$hochzahl++;} while ($platz == $reihe) { $color[0] = ($c != "" AND $zahl[$reihe][$platz]%$c == 0) ? "red" : "white"; $bin_formel = ""; $bin_i = 1; $id++; $reihe++; $platz=1; $wert=1; $zahl[$reihe][$platz] = $wert; $zahl[$reihe][0] = 0; if($f==0){$wert=0;} echo "<table border=1><tr><td width=$a height=$b align=center><font color=$color[$color_i] size=$d>".$wert*$f."</td>"; if ($pascal == "fibonacci")$color_i++; $color_i2 = $color_i; while ($platz < $reihe) { $id++; $Nreihe = $reihe; $Nreihe--; $Aplatz = $platz; $platz++; $Bplatz = $platz; $Azahl = $zahl[$Nreihe][$Aplatz]; $Bzahl= $zahl[$Nreihe][$Bplatz]; $wert = $Azahl+$Bzahl; if($Aplatz == '0' OR $Bplatz == '0') $wert=1; $zahl[$reihe][$platz] = $wert; if($f==0){$wert=0;} $color[0] = ($c != "" AND $zahl[$reihe][$platz]%$c == 0) ? "red" : "white"; echo "<td width=$a height=$b align=center><font color=".$color[$color_i2]." size=$d> ".$wert*$f." </font></td>"; if ($pascal == "fibonacci")$color_i2++; if ($pascal=="multinome") {include("multinome.php");$bin_formel .= " · ";} } echo "</tr></table>"; //2er Potenz if ($pascal=="2erPotenz")include("2erPotenz.php"); // !!--!! 2er Potenz if ($pascal=="multinome") {include("multinome.php");echo"(a+<sup>$hochzahl</sup>=$bin_formel";$hochzahl++;} if($reihe > $e) exit; } echo "</td></tr></table>"; ?>[/code] Danke für alle Hilfe die ich bekomme, halte darüber nämlcih ein Referat, evtl. morgen O.o Gruß Felix
geloescht_JesterDay Geschrieben 12. Juni 2007 Geschrieben 12. Juni 2007 Ich hab mir etwas Arbeit gemacht und das pascalsche Dreieck dynamisch mti PHP aufgebaut. Jetzt soll es eine funktion geben, in der alle durch x teilbare Zahlen markiert werden solen. Ab der ca. 35. Zeile markiert er aber nichts mehr, weil die Zahl für interger zu hoch ist. [...] Danke für alle Hilfe die ich bekomme, halte darüber nämlcih ein Referat, evtl. morgen O.o Du rechnest ja den Modulus aus um das zu erreichen, sch dir mal die Seite an: PHP: bcmod - Manual (auch das letzte Kommentar)
Yngvar Geschrieben 12. Juni 2007 Autor Geschrieben 12. Juni 2007 $x ist demnach die Zahl durch die dividiert werden soll und $y der divitent. Richtig? Das Ergebnis der funktion ist das Ergebnis der Aufgabe? oder TRUE / FALSE ?
geloescht_JesterDay Geschrieben 13. Juni 2007 Geschrieben 13. Juni 2007 $x ist der Divident und $y der Divisor, wobei ich mir nicht sicher bin, ob man das bei Modulus auch so nennt. Ich kann dir keine math. Regel dazu nenne, aber ein paar Stichproben zeigen, dass die Methode funktioniert (zumindest gehe ich mal davon aus jetzt). Das ganze wird so gemacht: Du nimmst eine bestimmte Anzahl an Ziffern vom Anfang deines Dividenden (die Zahl die geteilt werden soll). Diese Anzahl Ziffern bilden eine neue Zahl, die du "modulierst" (wie nennt man diesen Vorgang eigentlich?) Übrig bleibt der Rest der Division. Diesen Rest nimmst du und hängst die gleich Anzahl Ziffern vom Ursprungsdividenden ohne den schon genommenen Ziffern an. Und machst mit dieser neuen Zahl dasselbe. Am Ende bleibt ein Rest, welches der Rest der Gesamtdivision ist. Da du nur Teile der Zahl nimmst, kannst du sehr große Zahlen nehmen, nur der Modulus (Divisor) darf nicht > Int sein.
Yngvar Geschrieben 19. Juni 2007 Autor Geschrieben 19. Juni 2007 Das funktioniert soweit, nur leider sind immernoch fehlerhafte darstellungen da. Man betrachte sich http://pascal.topfkuchration.de/?pascal=faktorium&tab=0 und gebe die zahl 22 ein. Ganz unten im Dreieck wird es nicht mehr richtig angezeigt. Obwohl es eigentlich müsste. Aber in diesem Bereich sind wir schon bei 1.2345678E+10 oder so was in der Art. Das sind für den Computer aber ja keine richtigen Zahlen mehr (die einer-Ziffer ist eine Unbekannte) Das Referat ist im übrigen gut gelaufen. War auch nicht anders zu erwarten Felix
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden