(Frage) PHP Grundlagen - for - if -

mesp2201

Grünschnabel
Hi,

ich beschäftige mich gerade mit dem PHP Online Book von galileocomputing.de

Folgende Aufgabe hab ich gerade erledigt.

Schreiben Sie ein Programm (Datei uc16.php), in dem mit Hilfe von mehreren for-Schleifen die nachfolgend angegebenen Zeilen ausgegeben werden. Ein Tip: Für die letzte Zahlenreihe wird zusätzlich eine if-Bedingung benötigt.

so muss die Bildschirmausgabe aussehen:
13 17 21 25 29

2 1.5 1 0.5 0 -0.5 -1

2000 3000 4000 5000 6000

Z5 Z7 Z9 Z11 Z13

ab1 ab2 ab3

c2 c3 c12 c13 c22 c23

13 17 21 33 37 41 45

Das tut sie auch.
http://mesp2201.cwsurf.de/openbook/uc16.php

Das ist meine Lösung:
PHP:
<?php

// Loseung 1
   for ($a=13; $a<=29; $a=$a+4)
   {
      echo "$a ";
   }
      echo "<p>";
// Loesung 2
   for ($b=2; $b>=-1; $b=$b-0.5)
   {
      echo "$b ";
   }
      echo "<p>";
// Loesung 3
   for ($c=2000; $c<=6000; $c=$c+1000)
   {
      echo "$c ";
   }
      echo "<p> ";
// Loesung 4
   for ($d=5; $d<=13; $d=$d+2)
   {
      echo "Z$d ";
   }
      echo "<p>";
// Loesung 5
   for ($e=1; $e<=3; $e++)
   {
      echo "ab$e ";
   }
      echo "<p> ";
// Loesung 6
   for ($f=2 & $g=3; $f<=22; $f=$f+10 & $g=$g+10)

   {
      echo "c$f c$g ";
   }
      echo "<p>";
// Loesung 7

   for ($i=13; $i<=45; $i=$i+4)
   {
    if ($i==25)
       {$i=33;}
      echo "$i ";
   }
?>

Nun wollte ich Fragen ob es eine bessere Lösung dafür gibt und wenn ja wie die aussehen könnte ?
Nicht lachen jetzt das sind einfachste Grundlagen.Bin quasi ein PHP Frischling :rolleyes:
Nur möchte ich einfach wissen ob es auch andere (einfachere,bessere) Lösungen dafür gibt. Die sich an die Anweisungen der Aufgabe halten.

Danke und mfg

Markus
 
Wie geil -.-
LOL, also ich würde Dafür nicht jedes mal ne neue For-Schleife schreiben -.- würde schon mal nicht der Lösung entsprechen ^^ ...

Tja was du nicht brauchst ist der HTML-TAG
PHP:
"<p>"   -->       echo "$a \n";
So müsste es sein, ansonsten passt es doch nach den Angaben, oder liege ich da falsch?

Naja schreib mir dann Morgen mal ne Lösung ^^ lol muhahaha
So jetzt mal ne dumme Frage, haste bei dem BUCH nicht auch ne MUSTERLÖSUNG?
 
Tja was du nicht brauchst ist der HTML-TAG
PHP:
"<p>"   -->       echo "$a \n";
So müsste es sein, ansonsten passt es doch nach den Angaben, oder liege ich da falsch?
Ja ein bisschen, \n macht nur einen Zeilensprung im Quelltext, nur mit <br /> oder auch <p> erreicht man in der fertigen Seite einen Zeilensprung bzw. Absatz. Aber eigentlich nicht soo wichtig.
Naja schreib mir dann Morgen mal ne Lösung ^^ lol muhahaha
So jetzt mal ne dumme Frage, haste bei dem BUCH nicht auch ne MUSTERLÖSUNG?
Und da ist sie:
PHP:
  for ($i=13; $i<=29; $i=$i+4)
   {
      echo "$i ";
   }
   echo "<p>";

   for ($i=2; $i>=-1; $i=$i-0.5)
   {
      echo "$i ";
   }
   echo "<p>";

   for ($i=2000; $i<=6000; $i=$i+1000)
   {
      echo "$i ";
   }
   echo "<p>";

   for ($i=5; $i<=13; $i=$i+2)
   {
      echo "Z$i ";
   }
   echo "<p>";

   for ($i=1; $i<=3; $i=$i+1)
   {
      echo "a b$i ";
   }
   echo "<p>";

   for ($i=2; $i<=22; $i=$i+10)
   {
      $k = $i + 1;
      echo "c$i c$k ";
   }
   echo "<p>";

   for ($i=13; $i<=45; $i=$i+4)
   {
      if ($i<=21 || $i>=33) echo "$i ";
   }
(von: http://www.galileocomputing.de/openbook/php4/kapn.htm#Xxx757477)


Viele Grüße
 
Ja ein bisschen, \n macht nur einen Zeilensprung im Quelltext, nur mit <br /> oder auch <p> erreicht man in der fertigen Seite einen Zeilensprung bzw. Absatz. Aber eigentlich nicht soo wichtig.

Und da ist sie:
PHP:
  for ($i=13; $i<=29; $i=$i+4)
   {
      echo "$i ";
   }
   echo "<p>";

   for ($i=2; $i>=-1; $i=$i-0.5)
   {
      echo "$i ";
   }
   echo "<p>";

   for ($i=2000; $i<=6000; $i=$i+1000)
   {
      echo "$i ";
   }
   echo "<p>";

   for ($i=5; $i<=13; $i=$i+2)
   {
      echo "Z$i ";
   }
   echo "<p>";

   for ($i=1; $i<=3; $i=$i+1)
   {
      echo "a b$i ";
   }
   echo "<p>";

   for ($i=2; $i<=22; $i=$i+10)
   {
      $k = $i + 1;
      echo "c$i c$k ";
   }
   echo "<p>";

   for ($i=13; $i<=45; $i=$i+4)
   {
      if ($i<=21 || $i>=33) echo "$i ";
   }
(von: http://www.galileocomputing.de/openbook/php4/kapn.htm#Xxx757477)


Viele Grüße

:rolleyes: Hab da gar nicht geschaut obs Lösungen giebt.*schäm*
Find ich auch nicht so gut. Sonst kommt man nur all zu oft in versuchung nachzuschauen

aber trozdem danke

Zeilensprung mit /n das wusste ich jetzt nicht. Schon wieder was dazugelernt
 
Es soll ja auch zum Lernen da sein, aber wenn man mit dem Skript fertig ist, darf man dann schon reinschauen. Sonst weiß man ja nicht obs falsch war ;-)
 
^^ Genau -.-
Naja hab mir PHP eher mit "learning by doing" beigebracht ...
Aber im "normal Fall" is da ne Lösung -.- und naja, die muss ja dabei sein wie schon unten erwähnt wurde, um zu wissen ob es stimmt ...

Wenns dir nicht gefällt, dann lass halt nen Freund das übernehmen :rolleyes: wobei die glaube ich mal nicht besonders erfreut darüber sein werden ;-)

P.S.: schreib dann mal noch rein ob deiner Lösung so stimmt ...
 
Nun. Im Grunde stimmt meine Lösung. Ich bekomme genau Das Ergebnis das gefordert wurde nur.

Das:

c2 c3 c12 c13 c22 c23

PHP:
 for ($i=2; $i<=22; $i=$i+10)
   {
      $k = $i + 1;
      echo "c$i c$k ";
   }

Hatte ich so gelöst:

PHP:
   for ($f=2 & $g=3; $f<=22; $f=$f+10 & $g=$g+10)

   {
      echo "c$f c$g ";
   }

Und diese Aufgabe:

13 17 21 33 37 41 45

PHP:
   for ($i=13; $i<=45; $i=$i+4)
   {
      if ($i<=21 || $i>=33) echo "$i ";
   }

Hatte ich so interpretiert:

PHP:
   for ($i=13; $i<=45; $i=$i+4)
   {
    if ($i==25)
       {$i=33;}
      echo "$i ";
   }
?>

Nun das zeigt mir das man mit verschiedenen Lösungen zum gleichen Ergebnis kommt.
Aber meine auch nicht die optimale war. Wenn auch funktionell.
Deshalb war auch meine Frage was man besser machen kann und evtl. warum man das so besser machen kann.
Da man auch daraus lernt wenn man verschiedene Lösungen für ein Problem hat.
Wie gesagt mir ist bis dahin nicht aufgefallen, das dort auch Lösungen vorhanden sind :rolleyes:
 
Zurück