Frage von stylezZzP, 117

Wer kennt sich mit php programmen aus und kann mir bei einer aufgabe weiterhelfen?

also ich habe ein programm welches so aussieht:

<?php $x0=array(41,56,19,82,41,19); $x1=array("blau",19,"gold",41,41,"rot",82); $x2=array(74,19,41,18,19,"rot","blau");

$x3[]=$x0;

$x3[]=$x1;

$x3[]=$x2;

$x3[]=$x1;

$y=19; $p=0; $t=0; $x=41; $y=$x; $r=3;

function Weiter($a,$c,$s,$z)

{ global $x3;

global $x;

global $t;

$e=count($a);

$q=13;

if ($c==0){ $c=41; $t=1;};

for ($i=$s; $i<$e; $i++)

{ for ($j=$s; $j<$z; $j++){

if(($t==1) && ($c == $a[$i][$j])){

$q++; }; if (($t==0) && ($c == $a[$i][$j]))

return $a[$i][$j+1]; }; }

return $q; };

$a1=Weiter($x3,$p,1,7); echo "a1=$a1
";

?>

meine frage ist folgende. das programm spuckt 18 aus. jedoch komme ich auf 14. es scheitert wohl an dem punkt wo "t" wieder zu 1 wird. da muss ich doch q um eins erhöhen. wenn t=0 wäre, dann würde ich auch auf 18 kommen.

hoffe jemand kennt sich aus

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von Dory1, 49

$a[$i][$j] zeigt fünfmal auf den Wert 41 ($c),

13 ($q) + 5 = 18

Hat dein Programm auch irgendeinen praktischen Sinn?

Kommentar von stylezZzP ,

denke weniger, muss so erdachte aufgaben fürs studium auslesen. lg

Kommentar von stylezZzP ,

also muss ich immer wenn in der wert in der matrix auftaucht eins erhöhen?

Kommentar von Dory1 ,

Was du "musst" weiß ich nicht(?). Laut deinem Code wird $q in diesem Fall um eins erhöht:

if (($t == 1) && ($c == $a[$i][$j])) {
 $q++; }

Wie lautet denn überhaupt die Aufgabe?

(Und welcher Uni-Professor denkt sich bitte so einen Unsinn aus? :D)

Kommentar von stylezZzP ,

die aufgabe ist, dass wir nur das programm auf einem blatt papier bekommen und dann die "echo" werte berechnen sollen.

ja, und wenn die 41 nochmal auftaucht, wird nochmal um 1 erhöht?

Kommentar von Dory1 ,

$q (13) wird immer dann erhöht wenn 

$a[$i][$j]

41 ergibt. $c ist 41 und $t ist immer 1. Die Bedingung

(($t == 1) && ($c == $a[$i][$j]))



trifft 5x zu, ergo: 13 + 5 = 18

Kommentar von stylezZzP ,

perfekt, vielen dank!

Kommentar von Dory1 ,

kein ding, hau rein...

Antwort
von Tschoo, 61

Hallo!

Was mit auffällt, ohne den Programmablauf nachzugehen, sind die 4 Zuweisungen für $x3, wird ja dann immer wieder überschrieben -- ist das korrekt so? Was ist der Sinn dahinter?

Gruß

Kommentar von stylezZzP ,

nein da wird eine matrix definiert durch welche die for-schleife nachher läuft.

gruß

Kommentar von Tschoo ,

Oh je -- und ich verwende  viel PHP, aber das ist mir nicht bekannt -- das nehme ich einfach mal so hin und schau mir doch den Ablauf an.

Kommentar von stylezZzP ,

ja ich denke dass man diese art von befehl kaum im alltag benötigt, aber die schule will das eben :D

Kommentar von Tschoo ,

Tut mir leid -- anscheinend habe ich gerade ein Blockade im Hirn -- bin nebenbei beim Kaffemaschine-entkalken -- sogar  da habe ich gerade Schwierigkeiten.

Bin später noch mal da ...

Kommentar von stylezZzP ,

danke für den aufwand, jetzt habe ich die lösung aber!

ich habe bei der for-schleife aufgehört weiter durchzulaufen, da die 41 aber 5 mal auftaucht, muss ich q um 5 erhöhen.

lg

Antwort
von Tschoo, 68

Hallo!

Ich kenne mich schon aus, aber habe keine Lust das MischMasch bei dir zu lesen -- andere können es doch auch formatiert hier reinstellen.

Gruß


Ahh -- jetzt plötzlich ist es formatiert da -- liegt wohl doch an den GuteFrage-Programmieren ....

Kommentar von stylezZzP ,

war formatiert, beim abschicken wurde es aber umgeschmissen, sorry ich versuch es nochmal

Kommentar von stylezZzP ,

wenns jetzt formatiert ist kannst du mir doch sicher helfen? :)

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten