PHP übungen - komme da nicht weiter
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anzahl
aufgabe
ausgabe
beispiel
code
dank
ergebnis
frage
grad
innenteil
input
lernen
schleife
schleifen
sinn
spalte
string
variablen integrieren
weg
zeile
-
Hallo!
Auch ich lerne PHP. Aus diesem Grund hab ich mir verschiedene übungen rausgesucht, über deren sinn sich zwar streiten lässt, aber es geht ja nur um die Übung.
Soo.. ich werd euch die aufgabe schreiben:
Ich handhabe das ganze mit variablen, damit es abänderbar ist.
Ausgabe soll so ausschaun:
11111
10001
10001
10001
11111
Ich krieg es einfach nicht hin. Vielleicht ist es für manch einen total lächerlich, ich verzweilfe gereade, dass ich an einer scheinbar einfachen Aufgabe scheitere. Ich hab noch mehr knifflige Beispiele, die alle aufeinander aufbauen.
Vielleicht würde mir der substr_replace() helfen.
Mein erster Lösungsansatz war:
einer variable den wert 1 zuweisen
einer variable den wert 0 zuweisen
und dann so mit echos ausgeben lassen. Und den string wiederholen lol, Was komforableres muss her. Nur WIE...
Beitrag zuletzt geändert: 15.1.2009 10:33:48 von sunny017 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
wie währe es wie folgt:
<?php a = "11111<br />"; b = "10001<br />"; print $a.$b.$b.$b.$a; ?>
Beitrag zuletzt geändert: 15.1.2009 12:32:24 von mergener -
Wenn schon mit Variablen, dann auch variabel ;)
<?php $a = "1"; $b = "0"; $s1 = $a.$a.$a.$a.$a; $s2 = $a.$b.$b.$b.$a; echo $s1.$s2.$s2.$s2.$s1; ?>
-
Wenn schon mit Variablen, dann sollte die ausgabe auch stimmen! Du hast die BR's vergessen!
<?php $a = "1"; $b = "0"; $c = "<br />"; $s1 = $a.$a.$a.$a.$a.$c; $s2 = $a.$b.$b.$b.$a.$c; echo $s1.$s2.$s2.$s2.$s1; ?>
-
mergener Ergebnis:
52225
nicht ganz was ich wollte...
trueweb: du bist super ich danke dir
und noch mergener, das hätt ich bestimmt noch hinbekommen, die Ausgabe stimmt ja theoretisch ;)
Ach wenns noch andere Lösungsvorschläge gibt, nur zu ;)
Beitrag zuletzt geändert: 15.1.2009 11:34:07 von sunny017 -
sunny017 schrieb:
mergener Ergebnis:
52225
nicht ganz was ich wollte...
Kommt davon wenn man viel mit Programmiersprachen schreibt wo man per "+" und nicht per "." Strings zusammen führt. :D
Ich hab den Beitrag mal verbessert.
Anderer Lösungsweg, der einfachste:
print = " 11111<br /> 10001<br /> 10001<br /> 10001<br /> 11111";
Es gibt millionen Wege sowas auszugeben :D
Beitrag zuletzt geändert: 15.1.2009 12:32:09 von mergener -
alles klar ;) .. eigentlich hätt ich auf den . von alleine kommen können *am kopf kratz* lol ..
Naja.. das es bestimmt seeehr viele wege gibt um ans ziel zu kommen, ist mir klar, der für mich ersichtlichste war eben das mit dem echo.
Erst bin ich nicht mal auf die idee gekommen die variablen zu verknüpfen und hatte dann was weiss ich wie viele echos..
Naja.. ich tüftel grade an einer lösung mit einer schleife, for würde sich meiner meinung nach anbieten *denk* -
Da der Umgang mit Variablen gelernt werden soll, habe ich in meinem Beispiel möglichst alles Variabel. Das Muster ist ja vorgegeben.
<?php $a = "1"; $b = "0"; $anzahl = 10; $s1 = $a.$a.$a.$a.$a; $s2 = $a.$b.$b.$b.$a; echo $s1."<br />"; for($i = 1; $i <= $anzahl; $i++) { echo $s2."<br />"; } echo $s1; ?>
Ich wüsste jedenfalls nicht, wo man da noch Variablen integrieren könnte. So gesehen machen Variablen eh in dem Beispiel eh keinen Sinn, aber es handelt sich schließlich nur um eine Übung. -
Wahrscheinlich solltest du aber sowas machen:
<? $a = "1"; // Ausgabestring für den Rand $b = "0"; // Ausgabestring für den Innenteil $x = 10; // variable Spalten bzw. Zeilenanzahl (bitte selbst variieren) for ($zeile = 1; $zeile <= $x; $zeile++) { for ($spalte = 1; $spalte <= $x; $spalte++) { if ($zeile == 1 or $zeile == $x or $spalte == 1 or $spalte == $x) { echo $a; } else { echo $b; } } echo '<br />'; } ?>
@effektdesign: Lernen soll man aus dieser Übung: Verschachtelte for-Schleifen, um später mal eine HtML-Tabelle mit Daten aus der Datenbank aufzubauen
Grüßle
Beitrag zuletzt geändert: 15.1.2009 15:29:55 von scout -
Ok da hast du Recht dein Lösungsansatz ist sinnvoll. Also daraus lernt man auch was.
Aber aus der Aufgabenstellung war nicht erkennbar das man mit Schleifen arbeiten soll.
Außerdem sollte $x= 5 sein ;)
aber das sieht natürlich auch nicht schlecht aus :D
1111111111
1000000001
1000000001
1000000001
1000000001
1000000001
1000000001
1000000001
1000000001
1111111111
-
Danke scout ;)
Das is auch toll, werd ich mir morgen genau anschaun, mal sehn ob ich das nachstellen kann. Mit for schleifen komm ich noch nicht so gut klar.
Aus den Aufgaben geht nicht klar hervor wie man es lösen soll/muss, aber ich finds gut, wenn man sich das selber erarbeiten kann, so kann man verschiedene wege tüfteln. Bin ja noch nicht weit mit PHP. Ich hab sie irgendwo in den tiefen des internets gefunden, weiss nicht mehr wo.
bin grad an dieser, Ausgabe soll so aussehen.
MXXXX
XAXXX
XXRXX
XXXIXX
XXXXO
DAS
MXXXX
AXXXX
RXXXX
IXXXXX
OXXXX
hab ich hinbekommen.. Es funktioniert über ein Formular, wo der user seinen namen eingeben kann, dieser wird in ner variable gespeichert. So ist es möglich das auch eine Susanne und ein Fritz usw die richtige ausgabe bekommen. Ich habs mit ner for schleife, variablen, mit der Funktion die ausgibt wie lang ein string ist und mit ner andern die mir grad nicht einfallen will, geschafft. also denk ich mal das obiges recht ähnlich zu lösen sein wird. Bis jetzt hatte ich noch keinen geistesblitz.
Beitrag zuletzt geändert: 15.1.2009 21:56:02 von sunny017 -
geht auch ohne for ;)
<?php $times = 5; $one = 1; $zero = 0; echo str_repeat ($one,$times).'<br>'; echo str_repeat($one.str_repeat($zero,$times-2).$one.'<br>',$times-2); echo str_repeat ($one,$times); ?>
-
@sunny017
<? $input = "MARIO"; $fill = 'X'; $len = strlen($input); for ($a=0; $a<$len; $a++) { for ($b=0; $b<$len; $b++) { if($a == $b) echo $input{$a}; else echo $fill; } echo '<br />'; } ?>
Beitrag zuletzt geändert: 16.1.2009 0:40:27 von c0d3c -
Ohh super ich danke euch. Nun komm ich alleine klar, kann von mir aus geclosed werden
--> closed by tct
Bei Fragen z.B. Wiedereröffnung einfach an mich wenden.
Beitrag zuletzt geändert: 16.1.2009 10:58:57 von tct -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage