Stránka 1 z 1

PHP kvadratická rovnice

Napsal: 13 led 2013 13:23
od drawknife
Dobrý den,
nedávno jsem začal studovat PHP a vytvořil jsem si jednoduchý skript na vypočítání kvadratické rovnice. Ten ovšem nefunguje. Zoobrazuje se mi hlášku o chybě na řádku s elseif.
► Zobrazit spoiler
Mohl by se prosím někdo zdatnější podívat na zdrojový kód, který přikládám a pomoci mi najít chybu? Díky

Kód: Vybrat vše

<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <title>Řešení</title>
  </head>
  <body>
<?php
 $d = ($b * $b - 4 * $a * $c);
 $x1 = ((-$b+sqrt($d))/2 * $a);
 $x2 = ((-$b-sqrt($d))/2 * $a);

if ($d > 0)
   echo("Diskriminant je větší než nula <br>");
  echo("X1 = $x1 <br>");
  echo("X2 = $x2");
 
   elseif ($d=0);
      echo("Rovnice nemá řešení v množině reálných čísel!");
   else ($d<0);
      echo("Kvadratická rovnice má jeden dvojnásobný kořen!");
    echo(X1,2 = $x1);
     
?>
  </body>
</html>

Re: PHP kvadratická rovnice

Napsal: 13 led 2013 13:34
od CZechBoY
doplň otevírací složené závorky ({) za if(elseif, else,..) a konec složených závorek (}) za poslední příkaz, který se má provést v případě splnění podmínky

takto podmínka provede pouze první příkaz

Re: PHP kvadratická rovnice

Napsal: 13 led 2013 14:33
od mederi
A tiež chyba vo výpočte:
drawknife píše: $x1 = ((-$b+sqrt($d))/2 * $a);
$x2 = ((-$b-sqrt($d))/2 * $a);

Kód: Vybrat vše

 $x1 = (-$b+sqrt($d))/(2 * $a);
 $x2 = (-$b-sqrt($d))/(2 * $a);

Re: PHP kvadratická rovnice

Napsal: 13 led 2013 17:52
od drawknife
Díky oběma, nakonec jsem to vyřešil a i té chyby si všimnul

Kód: Vybrat vše

<?php
 $d = ($b * $b - 4 * $a * $c);

echo ("<i>a=$a &nbsp");
echo ("b=$b &nbsp");
echo ("c=$c <br></i>");

echo ("Diskriminant = $d <br>");

if($d > 0)
     {$x1 = ((-$b+sqrt($d))/(2 * $a));
      $x2 = ((-$b-sqrt($d))/(2 * $a));
      echo("<b>Kvadratická rovnice má právě dva kořeny: <br></b>");
      echo("X<sub>1</sub> = $x1 <br>");
      echo("X<sub>2</sub> = $x2");
      }
     
 elseif($d = 0)
     {$xd = (-$b/(2*$a));
      echo("<b>Kvadratická rovnice má jeden dvojnásobný kořen!</b><br>");
      echo("X1,2 = $xd");
     }
 else
     {echo("<b>Rovnice nemá řešení v množině reálných čísel!</b>");
     } 
?>

Re: PHP kvadratická rovnice

Napsal: 13 led 2013 17:56
od CZechBoY
elseif($d == 0) případně $d === 0
- složený závorky se dávají buď hned za závorku podmínky (mezera za závorkou a pak složená) a na nový řádek se píše tělo, složená ukončovací závorka se potom dává na nový řádek pod blok
- nebo se dá složená závorka na nový řádek a na další nový řádek (s odsazením) se dává tělo, složená závorka opět na zvláštní nový řádek
takhle to není moc přehledné
- u příkazu echo/print se nepoužívají závorky, je to taková funkce nefunkce