retour sujet TP2

Licence Physique et Applications

Parcours Ingénierie (L3S6 / UE62)

correction TP n° 2

Ci-dessous, le source du fichier php (pour toutes les questions). Pour la dernière question, il y a un second fichier à créer (voir plus bas). Si vous voulez tester le programme, cliquez ici (sauf si j'ai désactivé le PHP sur le serveur).


<?php
$duree=4*3600;
$alea=mt_rand(1,100);
setcookie('reponse',$alea,time()+$duree);
?>


<HTML>	

 <HEAD>
	<TITLE>proposition correction TP2 </TITLE>
	<META NAME="generator" content="Kwrite">
	<META NAME="author" content="P. TRAU">
	<META NAME="Description" content="correction TP2 LPA3 : programmation PHP">
	<META NAME="Keywords" content="php, html, variables, boucle, test">
 </HEAD>
 <BODY BGCOLOR="#ffffbc">
	<img src="http://pat.trau.fr/yahoo24.jpg" align="right">
 
	<H1 Align="center">BIENVENUE</H1>
	
	<P>Ceci est une proposition de correction du TP2.</P>
	<P>Bon, je ne vais pas me pr&eacute;senter, vous me connaissez tous. 
	Je mets quand m&ecirc;me une petite photo sur le c&ocirc;t&eacute; et
	<A HREF="http://pat.trau.fr/">un lien vers mon site</A>.</P>
	
<!-- pour la question 1 il fallait refermer body et html
 </body>
 </HTML>
 -->	
 
<H2>Question 2</H2>
	<?php
		$a=$_GET["a"];
		$b=$_GET["b"];
		$c=$_GET["c"];
		$x=$_GET["x"];
		$d=$_GET["d"];

		$Z=$a*$x*$x+$b*$x+$c;
		echo "<P>ax<sup>2</sup>+bx+c = $Z</P>" ;
	?>
 
<H2>Question 3</H2>
	<?php
	if($a==0)
	   {
		if($b!=0) 
		     {
			$x=-$c/$b;
			echo "<P>une racine : $x</P>";
		     }
		else echo "<P>pas de solution</P>";
	   }
	else
	   {
		$delta=$b*$b-4*$a*$c;
		if($delta>0)
		   {
			$v=sqrt($delta);
			$X1=(-$b-$v)/(2*$a);
			$X2=(-$b+$v)/(2*$a);
			echo "<P>Deux solutions : $X1 et $X2</P>"; 
		   }
		elseif($v==0)
		   {
			$X=(-$b)/(2*$a);
			echo "<P>L'unique solution est $X</P>";
		   }
		else
		   {
			echo "<P>Pas de solution r&eacute;elle</P>";
		   }
	   }	
	?>
 
<H2>Question 4</H2>
	<?php
		
	$x=0;
	do {
		$x++;
		$sol=$a*$x*$x*$x+$b*$x*$x+$c*$x+$d;
	   } while($sol*$d>0 && $x<=10000);
	if($t>=10000)
	   {
		echo"<P>introuvable dans [0,10000[ </P>";
	   }		
	else
	   {
		$xmin=$x-1;
		$xmax=$x;
		echo"<P>La 1&egrave;re racine positive de ax^3+bx^2+cx+d=0 est entre $xmin et $xmax</P>";
	//c'est parti pour la dichotomie
		do {
			$x=($xmin+$xmax)/2.0; //milieu
			$sol=$a*$x*$x*$x+$b*$x*$x+$c*$x+$d;
			if($sol*$d>0) $xmin=$x; else $xmax=$x;
		   } while($xmax-$xmin >1E-4);
		echo "<P>La premiere racine positive est proche de $x</P>";
	   }	
		
	?>
 
<H2>Question 5</H2>
	<P>entrez un nombre entre 1 et 100 : </P>
	<FORM ACTION="jeu.php" METHOD="GET">
		<INPUT NAME="prop" TYPE="text" SIZE="3">
		<INPUT TYPE="submit" VALUE="Jouer">
	</FORM>

 </BODY>
</HTML>

ci-dessous le fichier jeu.php


<?php
$sol=$_COOKIE['reponse'];
// le cookie doit avoir ete cree par la premiere page
?>
<HTML>
<HEAD>
	<TITLE>Travail informatique TP2 : petit jeu</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffba">
	<FORM METHOD="GET" ACTION="jeu.php">
		<INPUT NAME="prop" TYPE="text" SIZE="3" MAXLENGTH="3"><br>
		<?php
		$prop=$_GET["prop"];
			if($prop==$sol)
			{
				echo "<FONT COLOR=#ff0000 SIZE=+4>GAGNE<br></FONT>";
			}
			elseif($prop<$sol)
			{
				echo "trop petit<br>";
			}
			else
			{
				echo "trop grand<br>";
			}
		?>
		<INPUT TYPE="submit" VALUE="nouvel essai">
		</FORM>

	</BODY>
</HTML>

retour sujet

P. TRAU, ULP-IPST, 2006