15/09/2018, 16:48
Giải phương trình bậc 2 trong PHP
PHP Đề bài Viết chương trình giải phương trình bậc 2 trong PHP. Phương trình bậc 2 có dạng: Lời giải Bài này được viết trên eclipse, bạn có thể tham khảo bài debug PHP project trong Eclipse. Các kiến thức được sử dụng trong ví dụ này: Biến toàn cầu ...
PHP
Đề bài
Viết chương trình giải phương trình bậc 2 trong PHP. Phương trình bậc 2 có dạng:
Lời giải
Bài này được viết trên eclipse, bạn có thể tham khảo bài debug PHP project trong Eclipse.
Các kiến thức được sử dụng trong ví dụ này:
- Biến toàn cầu $GLOBALS trong PHP, tham khảo bài Biến siêu toàn cầu trong PHP.
- Sử dụng method POST, tham khảo bài Xử lý Form trong PHP.
- Hàm tính căn bậc 2 của một số sqrt($n).
File: phuongtrinhbac2.php
<?php // khai báo các biến toàn cầu $heso_a = ""; $heso_b = ""; $heso_c = ""; // đọc các hệ số từ FORM if (isset ( $_POST ['heso_a'] )) { $heso_a = $_POST ['heso_a']; } if (isset ( $_POST ['heso_b'] )) { $heso_b = $_POST ['heso_b']; } if (isset ( $_POST ['heso_c'] )) { $heso_c = $_POST ['heso_c']; } /** * giải phương trình bậc 2 trong PHP * * @author: viettuts.vn * @param he so bac 2 $a * @param he so bac 1 $b * @param he so tu do $c */ function giaiPTB2($a, $b, $c) { // kiểm tra biến đầu vào if ($a == "") $a = 0; if ($b == "") $b = 0; if ($c == "") $c = 0; // in phương trình ra màn hình echo "Phương trình: " . $a . "x2 + " . $b . "x + " . $c . " = 0"; echo "<br>"; // kiểm tra các hệ số if ($a == 0) { if ($b == 0) { echo ("Phương trình vô nghiệm!"); } else { echo ("Phương trình có một nghiệm: " . "x = " . (-$c / $b)); } return; } // tính delta $delta = $b*$b - 4*$a*$c; $x1 = ""; $x2 = ""; // tính nghiệm if ($delta > 0) { $x1 = (-$b + sqrt($delta)) / (2*$a); $x2 = (-$b - sqrt($delta)) / (2*$a); echo ("Phương trình có 2 nghiệm là: " . "x1 = " . $x1 . " và x2 = " . $x2); } else if ($delta == 0) { $x1 = (-$b / (2 * $a)); echo ("Phương trình có nghiệm kép: x1 = x2 = " . $x1); } else { echo ("Phương trình vô nghiệm!"); } } ?> <form action="#" method="post"> <table> <tr> <td>Hệ số bậc 2, a</td> <td><input type="text" name="heso_a" value="<?=$heso_a?>" /></td> </tr> <tr> <td>Hệ số bậc 1, b</td> <td><input type="text" name="heso_b" value="<?=$heso_b?>" /></td> </tr> <tr> <td>Hệ số tự do, c</td> <td><input type="text" name="heso_c" value="<?=$heso_c?>" /></td> </tr> <tr> <td></td> <td><input type="submit" value="Kết quả"></td> </tr> </table> </form> <br> <?php // gọi hàm giải phương trình bậc 2 Sử dụng từ kháo $GLOBALS để đọc các biến toàn cầu và truyền vào hàm giaiPTB2 ( $GLOBALS ['heso_a'], $GLOBALS ['heso_b'], $GLOBALS ['heso_c'] ); ?>
Kết quả:
Chú ý: Lời giải trên chưa có hàm xác thực giá trị của các hệ số đầu vào sao cho chúng phải là một số. Bạn hãy viết thêm hàm này để trau dồi kỹ năng cho bản thân.
PHP