Programm fehler suche

HI leute hab lange nichts mehr gepostet , aber immer mal wieder hier vorbei geschaut ...naja seis drum.

So nun zu meinem problem , ich hab ein php programm geschriebn , das Steckbriefaufgaben lösen soll. Diese aufgabe kann er schon lösen, aber bei anderen aufgaben bekommt das programm probleme! ich gehe davon aus , das dass problem im ersten abschnitt liegt wo die eigenschaften in funktionen verwandelt werden !
ich muss dazu sagen , das, dass mein erstes php programm ist , und deshalb bestimmt ein bisschen umständlich ist! Also wär ich für verbesserungsvrschläge auch nicht böse :)
Die gleichungen werden mit dem eliminations verfahren gelöst , so wie hier.


so jetzt aber ersteinmal der code :
PHP:
<?
//gegeben
$punkt			=	$_POST["punkt"];
$nullstelle	=	$_POST["nullstelle"];
$steigung		=	$_POST["steigung"];
$extrema		=	$_POST["extrema"];
$wendepunkt	=	$_POST["wendepunkt"];
//punkt
$xp	=	$_POST["xp"];
$yp	=	$_POST["yp"];
//nullstelle
$xn	=	$_POST["xn"];
$yn	=	$_POST["yn"];
//steigung
$xs	=	$_POST["xs"];
$ys	=	$_POST["ys"];
//extrema
$xe	=	$_POST["xe"];
$ye	=	$_POST["ye"];
//wendepunkt
$xw	=	$_POST["xw"];
$yw	=	$_POST["yw"];


//Freie gleichungen
$g1 = f;
$g2 = f;
$g3 = f;
$g4 = f;


//FUNKTIONEN BESTIMMEN 

//PUNKT GEG
if($punkt == 1 and $g1 == f){
$a1 = $xp*$xp*$xp;		 
$b1 = $xp*$xp;		
$c1 = $xp;		
$d1 = 1;		
$y1 = $yp;
$g1 = b;} 

//NULLSTELLE GEG
if($nullstelle == 1){
	if($vn != j and $g1 == f){
	$a1 = $xn*$xn*$xn;		 
	$b1 = $xn*$xn;		
	$c1 = $xn;		
	$d1 = 1;		
	$y1 = 0;
	$g1 = b;
	$vn = j;
}
		if($vn != j and $g2 == f){
	$a2 = $xn*$xn*$xn;		 
	$b2 = $xn*$xn;		
	$c2 = $xn;		
	$d2 = 1;		
	$y2 = 0;
	$g2 = b;
	$vn = j;
	}
}


//STEIGUNG GEG
if($steigung == 1){
	if($vs != j and $g1 == f){
			$a1 = 3*($xs*$xs);		 
			$b1 = 2*$xs;		
			$c1 = 1;		
			$d1 = 0;		
			$y1 = $ys;
			$g1 = b;
			$vs = j;
		}
		if($vs != j and $g2 == f){
			$a2 = 3*($xs*$xs);		 
			$b2 = 2*$xs;		
			$c2 = 1;		
			$d2 = 0;		
			$y2 = $ys;
			$g2 = b;
			$vs = j;
	}
	if($vs != j and $g3 == f){
			$a3 = 3*($xs*$xs);		 
			$b3 = 2*$xs;		
			$c3 = 1;		
			$d3 = 0;		
			$y3 = $ys;
			$g3 = b;
			$vs = j;
		}
}

//EXTREMA GEG
//1.ableitung 

if($extrema == 1){
	if($ve != j and $g1 == f){
			$a1 = $xe*$xe*$xe;		 
			$b1 = $xe*$xe;		
			$c1 = $xe;		
			$d1 = 1;		
			$y1 = $ye;
			$g1 = b;
			$ve = j;
			}
			
	if($ve != j and $g2 == f){
			$a2 = $xe*$xe*$xe;		 
			$b2 = $xe*$xe;		
			$c2 = $xe;		
			$d2 = 1;		
			$y2 = $ye;
			$g2 = b;
		  $ve = j;
			} 
			
	if($ve != j and $g3 == f){
			$a3 = $xe*$xe*$xe;		 
			$b3 = $xe*$xe;		
			$c3 = $xe;		
			$d3 = 1;		
			$y3 = $ye;
			$g3 = b;
			$ve = j;
			}
			
	if($ve != j and $g4 == f){
			$a4 = $xe*$xe*$xe;		 
			$b4 = $xe*$xe;		
			$c4 = $xe;		
			$d4 = 1;		
			$y4 = $ye;
			$g4 = b;
			$ve = j;
			}
			
}
//1.ableitung
if($extrema == 1){	
	if($ve2 != j and $g1 == f){
			$a1 = 3*($xe*$xe);		 
			$b1 = 2*$xe;		
			$c1 = 1;		
			$d1 = 0;		
			$y1 = 0;
			$g1 = b;
			$ve2 = j;
			}
	if($ve2 != j and $g2 == f){
			$a2 = 3*($xe*$xe);		 
			$b2 = 2*$xe;		
			$c2 = 1;		
			$d2 = 0;		
			$y2 = 0;
			$g2 = b;
			$ve2 = j;
			}
	if($ve2 != j and $g3 == f){
			$a3 = 3*($xe*$xe);		 
			$b3 = 2*$xe;		
			$c3 = 1;		
			$d3 = 0;		
			$y3 = 0;
			$g3 = b;
			$ve2 = j;
			}
	if($ve2 != j and $g4 == f){
			$a4 = 3*($xe*$xe);		 
			$b4 = 2*$xe;		
			$c4 = 1;		
			$d4 = 0;		
			$y4 = 0;
			$g4 = b;
			$ve2 = j;
			}	
}

//WENDEPUNKT GEG
//2.ableitung
if($wendepunkt == 1){
	if($vw2 != j and $g1 == f){
			$a1 = 6*$xw;		 
			$b1 = 2;		
			$c1 = 0;		
			$d1 = 0;		
			$y1 = 0;
			$g1 = b;
			$vw2 = j;
			}
	if($vw2 != j and $g2 == f){
			$a2 = 6*$xw;		 
			$b2 = 2;		
			$c2 = 0;		
			$d2 = 0;		
			$y2 = 0;
			$g2 = b;
			$vw2 = j;
			}
	if($vw2 != j and $g3 == f){
			$a3 = 6*$xw;		 
			$b3 = 2;		
			$c3 = 0;		
			$d3 = 0;		
			$y3 = 0;
			$g3 = b;
			$vw2 = j;
			}
	if($vw2 != j and $g4 == f){
			$a4 = 6;		 
			$b4 = 2*$xw;		
			$c4 = 0;		
			$d4 = 0;		
			$y4 = 0;
			$g4 = b;
			$vw2 = j;
			}
}
//punkt
if($wendepunkt == 1){
	if($vw != j and $g1 == f){
			$a1 = $xw*$xw*$xw;		 
			$b1 = $xw*$xw;		
			$c1 = $xw;		
			$d1 = 1;		
			$y1 = $yw;
			$g1 = b;
			$vw = j;
			}
			
	if($vw != j and $g2 == f){
			$a2 = $xw*$xw*$xw;		 
			$b2 = $xw*$xw;		
			$c2 = $xw;		
			$d2 = 1;		
			$y2 = $yw;
			$g2 = b;
			$vw = j;
			}
	if($vw != j and $g3 == f){
			$a3 = $xw*$xw*$xw;		 
			$b3 = $xw*$xw;		
			$c3 = $xw;		
			$d3 = 1;		
			$y3 = $yw;
			$g3 = b;
			$vw = j;
			}
	if($vw != j and $g4 == f){
			$a4 = $xw*$xw*$xw;		 
			$b4 = $xw*$xw;		
			$c4 = $xw;		
			$d4 = 1;		
			$y4 = $yw;
			$g4 = b;
			$vw = j;
			}
}


echo"<br>$a1 $b1 $c1 $d1 = $y1<br>";
echo"<br>$a2 $b2 $c2 $d2 = $y2<br>";
echo"<br>$a3 $b3 $c3 $d3 = $y3<br>";
echo"<br>$a4 $b4 $c4 $d4 = $y4<br><br><br><br><br><br>";



//zwischen variablen bunker
$az1 = $a1;
$bz1 = $b1;
$cz1 = $c1;
$dz1 = $d1;
$yz1 = $y1;

$az2 = $a2;
$bz2 = $b2;
$cz2 = $c2;
$dz2 = $d2;
$yz2 = $y2;

$az3 = $a3;
$bz3 = $b3;
$cz3 = $c3;
$dz3 = $d3;
$yz3 = $y3;

$az4 = $a4;
$bz4 = $b4;
$cz4 = $c4;
$dz4 = $d4;
$yz4 = $y4;



//1. 1Gleichung A-Faktor KILLEN und vorzeichen
$avtest = substr("$a2",0, 1);    
if($avtest == "-"){
	$a1 = $a1*-1;
	$b1 = $b1*-1;
	$c1 = $c1*-1;
	$d1 = $d1*-1;
	$y1 = $y1*-1;
	}

if($a1 != 1){
	$a1/$a1;
	$b1/$a1;
	$c1/$a1;
	$d1/$a1;
	$y1/$a1;
}

//2. 2Gleichung A KILLEN mit 1.Gleichung
$az1 = ($a1*-1)*$a2;
$bz1 = ($b1*-1)*$a2;
$cz1 = ($c1*-1)*$a2;
$dz1 = ($d1*-1)*$a2;
$yz1 = ($y1*-1)*$a2;
$a2 = $a2+$az1;		
$b2 = $b2+$bz1;		
$c2 = $c2+$cz1;		
$d2 = $d2+$dz1;		
$y2 = $y2+$yz1;

//3. 3Gleichung A KILLEN 1.Gleichung
$az3 = ($a1*-1)*$a3;
$bz3 = ($b1*-1)*$a3;
$cz3 = ($c1*-1)*$a3;
$dz3 = ($d1*-1)*$a3;
$yz3 = ($y1*-1)*$a3;
$a3 = $a3+$az3;		
$b3 = $b3+$bz3;		
$c3 = $c3+$cz3;		
$d3 = $d3+$dz3;		
$y3 = $y3+$yz3;

//4. 4Gleichung A KILLEN 1.Gleichung
$az4 = ($a1*-1)*$a4;
$bz4 = ($b1*-1)*$a4;
$cz4 = ($c1*-1)*$a4;
$dz4 = ($d1*-1)*$a4;
$yz4 = ($y1*-1)*$a4;
$a4 = $a4+$az4;		
$b4 = $b4+$bz4;		
$c4 = $c4+$cz4;		
$d4 = $d4+$dz4;		
$y4 = $y4+$yz4;

//gugn ob vorzeichen von B in der 2. gleichung positiv is und faktor killen
$bvtest = substr("$b2",0, 1);    
if($bvtest == "-"){
	$b2 = $b2*-1;
	$c2 = $c2*-1;
	$d2 = $d2*-1;
	$y2 = $y2*-1;
	}
	
if($b2 != 1){
	$b2/$b2;
	$c2/$b2;
	$d2/$b2;
	$y2/$b2;
}

//5. 1Gleichung B KILLEN mit 2.Gleichung
$bz1 = ($b2*-1)*$b2;
$cz1 = ($c2*-1)*$b2;
$dz1 = ($d2*-1)*$b2;
$yz1 = ($y2*-1)*$b2;		
$b1 = $b1+$bz1;		
$c1 = $c1+$cz1;		
$d1 = $d1+$dz1;		
$y1 = $y1+$yz1;

//6. 3Gleichung B KILLEN 2.Gleichung
$bz3 = ($b2*-1)*$b3;
$cz3 = ($c2*-1)*$b3;
$dz3 = ($d2*-1)*$b3;
$yz3 = ($y2*-1)*$b3;		
$b3 = $b3+$bz3;		
$c3 = $c3+$cz3;		
$d3 = $d3+$dz3;		
$y3 = $y3+$yz3;

//7. 4Glecihung B KILLEN 2.Gleichung
$bz4 = ($b2*-1)*$b4;
$cz4 = ($c2*-1)*$b4;
$dz4 = ($d2*-1)*$b4;
$yz4 = ($y2*-1)*$b4;		
$b4 = $b4+$bz4;		
$c4 = $c4+$cz4;		
$d4 = $d4+$dz4;		
$y4 = $y4+$yz4;

// c klärn , fakor killn , positiv mach0rn (3Gleichung)
$cvtest = substr($c3,0, 1);    
if($cvtest == "-"){
	$c3 = $c3*-1;
	$d3 = $d3*-1;
	$y3 = $y3*-1;
	}


if($c3 != 1){
	$cz3 = $c3;
	$c3 = $c3/$cz3;
	$d3 = $d3/$cz3;
	$y3 = $y3/$cz3;
}

//8. 1Gleichung C KILLEN mit 3.Gleichung
$cz1 = ($c3*-1)*$c1;
$dz1 = ($d3*-1)*$c1;
$yz1 = ($y3*-1)*$c1;			
$c1 = $c1+$cz1;		
$d1 = $d1+$dz1;		
$y1 = $y1+$yz1;

//9. 2Gleichung C KILLEN mit 3.Gleichung (2.Gleichung wird das $c2*-1fache von der 3gleichung addiert) 
$cz2 = ($c3*-1)*$c2;
$dz2 = ($d3*-1)*$c2;
$yz2 = ($y3*-1)*$c2;			
$c2 = $c2+$cz2;		
$d2 = $d2+$dz2;		
$y2 = $y2+$yz2;

//10. 4Gleichung C KILLEN mit 3.Gleichung 
$cz4 = ($c3*-1)*$c4;
$dz4 = ($d3*-1)*$c4;
$yz4 = ($y3*-1)*$c4;			
$c4 = $c4+$cz4;		
$d4 = $d4+$dz4;		
$y4 = $y4+$yz4;


// d FIXEN 
$y4 = $y4/$d4;
$d4 = $d4/$d4;

//11. mit d Summanden eliminieren

// 1Gleichung D KILLEN mit 4.glecihung
$dz1 = ($d4*-1)*$d1;
$yz1 = ($y4*-1)*$d1;					
$d1 = $d1+$dz1;		
$y1 = $y1+$yz1;

//2Gleichung D KILLEN mit 4. gleichung
$dz2 = ($d4*-1)*$d2;
$yz2 = ($y4*-1)*$d2;					
$d2 = $d2+$dz2;		
$y2 = $y2+$yz2;

//3Gleichung D KILLEN mit 4. gleichung
$dz3 = ($d4*-1)*$d3;
$yz3 = ($y4*-1)*$d3;					
$d3 = $d3+$dz3;		
$y3 = $y3+$yz3;

echo"<br>$a1 $b1 $c1 $d1 = $y1<br>";
echo"<br>$a2 $b2 $c2 $d2 = $y2<br>";
echo"<br>$a3 $b3 $c3 $d3 = $y3<br>";
echo"<br>$a4 $b4 $c4 $d4 = $y4<br>";

echo "<br><br>a= $y1<br>b= $y2<br>c= $y3<br>d= $y4<br><br><br>";
echo "<br><br>f(x)={$y1}x?+{$y2}x?+{$y3}x+{$y4}";
?>


so wär sehr sehr sehr gut wennn jemand rat wüßte :))
 
Original von derdicke
HI leute hab lange nichts mehr gepostet , aber immer mal wieder hier vorbei geschaut ...naja seis drum.

So nun zu meinem problem , ich hab ein php programm geschriebn , das Steckbriefaufgaben lösen soll. Diese aufgabe kann er schon lösen, aber bei anderen aufgaben bekommt das programm probleme! ich gehe davon aus , das dass problem im ersten abschnitt liegt wo die eigenschaften in funktionen verwandelt werden !
ich muss dazu sagen , das, dass mein erstes php programm ist , und deshalb bestimmt ein bisschen umständlich ist! Also wär ich für verbesserungsvrschläge auch nicht böse :)
Die gleichungen werden mit dem eliminations verfahren gelöst , so wie hier.


so jetzt aber ersteinmal der code :
PHP:
<?
//gegeben
$punkt			=	$_POST["punkt"];
$nullstelle	=	$_POST["nullstelle"];
$steigung		=	$_POST["steigung"];
$extrema		=	$_POST["extrema"];
$wendepunkt	=	$_POST["wendepunkt"];

Warum schreibst du hier sowas? Du kannst die variablen direkt mit Post['var'] ansteueren. Brauchst sie also nicht nochmal zwischen speichern

//punkt
$xp	=	$_POST["xp"];
$yp	=	$_POST["yp"];
//nullstelle
$xn	=	$_POST["xn"];
$yn	=	$_POST["yn"];
//steigung
$xs	=	$_POST["xs"];
$ys	=	$_POST["ys"];
//extrema
$xe	=	$_POST["xe"];
$ye	=	$_POST["ye"];
//wendepunkt
$xw	=	$_POST["xw"];
$yw	=	$_POST["yw"];

// das gleiche gilt hierfür

//Freie gleichungen
$g1 = f;
$g2 = f;
$g3 = f;
$g4 = f;

//??? was soll das warum nimmst du nicht einfach immer f anstatt sie in g1... zu speichern?


//FUNKTIONEN BESTIMMEN 

//PUNKT GEG
if($punkt == 1 and $g1 == f){
   //g1 wird immer == f sein weil du es 4 zeilen vorher gleich setzt

$a1 = $xp*$xp*$xp;		 
$b1 = $xp*$xp;		
$c1 = $xp;		
$d1 = 1;		
$y1 = $yp;
$g1 = b;} 

?>


so wär sehr sehr sehr gut wennn jemand rat wüßte :))


Abgesehen davon das da einiges nicht stimmt wie ist denn die Fehlermeldung??Hab in den ersten 20 Zeilen mal 3-4 Kommentare eingefügt
 
fehlermeldung kommen keine , bis auf die wenn durch 0 geteilt wird , aber das ist zuvernachlässigen.

hier mal der html code , dann kasnt du besser sehen was ich meine, nämlcih das er andere aufgaben außer die oben aufgeführte nicht richtig rechnet


Code:
<html>
<head>
<title>lalilu</title>
</head>
<body>
<form action="testa.php" method="POST">
<br><br>
<TABLE cellSpacing=0 width="100%" border=0 cellpaddung="0">
<TBODY>
	
<TR>
<TD width="100"></TD>
<TD width="100">wenn gegeben</TD>
<TD width="100">X</TD>
<TD width="100">Y</TD>
</TR>

<TR>
<TD width="100">Punkt:</TD>
<TD width="100"><input type="checkbox" name="punkt" value="1"></TD>
<TD width="100"><input type="text" name="xp" /></TD>
<TD width="100"><input type="text" name="yp" /></TD>
</TR>

<TR>
<TD width="100">Nullstelle</TD>
<TD width="100"><input type="checkbox" name="nullstelle" value="1"></TD>
<TD width="100"><input type="text" name="xn" /></TD>
<TD width="100"><input type="text" name="yn" /></TD>
</TR>

<TR>
<TD width="100">Steigung</TD>
<TD width="100"><input type="checkbox" name="steigung" value="1"></TD>
<TD width="100"><input type="text" name="xs" /></TD>
<TD width="100"><input type="text" name="ys" /></TD>
</TR>

<TR>
<TD width="100">Extrema</TD>
<TD width="100"><input type="checkbox" name="extrema" value="1"></TD>
<TD width="100"><input type="text" name="xe" /></TD>
<TD width="100"><input type="text" name="ye" /></TD>
</TR>

<TR>
<TD width="100">Wendepunkt</TD>
<TD width="100"><input type="checkbox" name="wendepunkt" value="1"></TD>
<TD width="100"><input type="text" name="xw" /></TD>
<TD width="100"><input type="text" name="yw" /></TD>
</TR>



</TBODY>
</TABLE><br><br>

 
<input type="submit" value="kk" />
</body>
</html>
 
Ich muss ja nun ein wenig off-topic gehen, bevor ich mir das programm nochmal genauer ansehe:

Warum hast du denn nicht nachgefragt, als du noch hier im Büro gesessen hast? Dann hätten wir uns das gemeinsam angesehen und den fehler gemeinsam gefunden!!!

Wenn ich mal ne freie Minute habe, werd ich mir das dingen mal ansehen

Henning Bopp
[netzfactor] gmbh
 
weil ich da noch dachte, das es funktioniert :D habs dann erst zuhasue gemerkt, und wollte nich nochmal extra ne email schrieben
 
Zurück
Oben