简体   繁体   中英

Trinomial equation solver in PHP

I have a lab project that requires to solve a simple polynomial equation (a x^2+b x+c) with a,b,c given in a form. I implemented this code, but it seems that even the html script is not working. I really need your help because I spent almost a day trying to find the mistake, but I can't find anything wrong.

<!DOCTYPE html>
<html>
    <meta charset="utf-8"/>
    <head>
        <title>
            Exercise 2
        </title>
    </head>
    <body>
    <? if ((!isset($_POST['submit']))) 
    {?> 
        <h2>Please fill the trinomial coefficients a*x^2+b*x+c=0</h2> <br>
        <form method="post">
        a= <input type="text" name="a" /> <br>
        b= <input type="text" name="b" /> <br>
        c= <input type="text" name="c" /> <br>
        <input type="submit" value="Solve the equation" />
        </form>
        <?php
    }
    else
    {
        $a=$_POST["a"];
        $b=$_POST["b"];
        $c=$_POST["c"];
        if ($a!=0)
        {
            $d=pow($b,2)-(4*a*c);
            if ($d>=0)
            {
                $d=sqrt($d);
                x1=(-$b-$d)/(2*$a);
                x2=(-$b+$d)/(2*$a);
                if (x1=x2)
                {
                    echo ("1 solution: ". $x1);
                }
                else
                {
                    echo ("Solutions x1 and x2 " .$x1. ", ". $x2);
                }
            }
            else 
            {
                $d=sqrt(-$d);
                x1=-b/(2*$a);
                x2=-$d;
                x3=$d;
                echo ("The trinomial has two complex solutions x1 and x2, which are: x1=". x1. " + ". x2. "*i and x2=". x1. " + ". x3. "*i"); 
            }
        }
        else
        {
            echo ("This is not a trinomial");
        }
    }
    ?>
    </body>
</html>

This works:

<!DOCTYPE html>
<html>
    <meta charset="utf-8"/>
    <head>
        <title>
            Exercise 2
        </title>
    </head>
    <body>
    <?php if ((!isset($_POST['submit']))) 
    {?> 
        <h2>Please fill the trinomial coefficients a*x^2+b*x+c=0</h2> <br>
        <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
        a= <input type="text" name="a" /> <br>
        b= <input type="text" name="b" /> <br>
        c= <input type="text" name="c" /> <br>
        <input type="submit" name="submit" value="Solve the equation" />
        </form>
        <?php
    }
    else
    {

        $a=$_POST["a"];
        $b=$_POST["b"];
        $c=$_POST["c"];
        if ($a!=0)
        {
            $d=pow($b,2)-(4*$a*$c);
            if ($d>=0)
            {
                $d=sqrt($d);
                $x1=(-$b-$d)/(2*$a);
                $x2=(-$b+$d)/(2*$a);
                if ($x1==$x2)
                {
                    echo ("1 solution: ". $x1);
                }
                else
                {
                    echo ("Solutions x1 and x2 " .$x1. ", ". $x2);
                }
            }
            else 
            {
                $d=sqrt(-$d);
                $x1=-$b/(2*$a);
                $x2=-$d;
                $x3=$d;
                echo ("The trinomial has two complex solutions x1 and x2, which are: x1=". $x1. " + ". $x2. "*i and x2=". $x1. " + ". $x3. "*i"); 
            }
        }
        else
        {
            echo ("This is not a trinomial");
        }
    }
    ?>
    </body>
</html>

Fixed some code made a comment on one thing that should be noted also cleaned code.

<?php
    if(isset($_POST['submit'])){ // had a syntax error with an extra ( before isset also instead of checking if its not set just check if it is set makes it faster
    //Submit has been pressed
    $a=$_POST["a"];
    $b=$_POST["b"];
    $c=$_POST["c"];
        if ($a!=0){
        $d=pow($b,2)-(4*a*c);
            if ($d>=0){
                $d=sqrt($d);
                $x1=(-$b-$d)/(2*$a);
                $x2=(-$b+$d)/(2*$a);
                if ($x1=$x2){ 
                    echo ("1 solution: ". $x1);
                } else {
                    echo ("Solutions x1 and x2 " .$x1. ", ". $x2);
                }
            } else {
                $d=sqrt(-$d);
                $x1=-$b/(2*$a);
                $x2=-$d;
                $x3=$d;
                echo ("The trinomial has two complex solutions x1 and x2, which are: x1=". x1. " + ". x2. "*i and x2=". x1. " + ". x3. "*i"); 
            }
        }
    } else {
    //Submit has not been pressed yet
    }
?>
<html>
    <meta charset="utf-8"/>
    <head>
        <title>
            Exercise 2
        </title>
    </head>
    <body>
        <h2>Please fill the trinomial coefficients a*x^2+b*x+c=0</h2> <br>
        <form method="post">
        a= <input type="text" name="a" /> <br>
        b= <input type="text" name="b" /> <br>
        c= <input type="text" name="c" /> <br>
        <input type="submit" value="Solve the equation" />
        </form>
    </body>
</html>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM