Bài Tập PHP Có Lời Giải - Học Lập Trình PHP Online - VietTuts

Delete dữ liệu từ MySQL trong PHP Vẽ tam giác trong PHP

Nội dung chính

  • Các cấp độ bài tập PHP
  • Bài tập PHP cơ bản
  • Bài tập xử lý chuỗi

Các cấp độ bài tập PHP

Bài này cung cấp cho bạn danh sách các bài tập PHP có lời giải ở các cấp độ như sau:

  1. Bài tập PHP cơ bản.
  2. Bài tập xử lý chuỗi.
  3. Bài tập mảng.
  4. Bài tập biểu thức chính quy (Regular Expression).
  5. Bài tập Datetime.
  6. Bài tập Webservice.
  7. Bài tập nâng cao quản lý bán hàng.

Bài tập PHP cơ bản

Bài 01: Sử dụng dấu * để vẽ tam giác trong PHP, đây là một trong những bài cơ bản nhất giúp bạn thực hành cách sử dụng các vòng lặp trong PHP.

Gợi ý:

  • Sử dụng vòng lặp for
  • Sử dụng vòng lặp do-while
  • Sử dụng vòng lặp while

Code mẫu: sử dụng vòng lặp for

// sử dụng vòng lặp for - vẽ tam giác trong PHP, // mỗi dấu * là một đơn vị <?php for($i = 0; $i < 20; $i ++) { for($j = (20 - $i); $j < 20; $j ++) { echo "*"; } echo "<br>"; } ?>

Kết quả:

// sử dụng vòng lặp for - vẽ tam giác trong PHP, // mỗi dấu * là một đơn vị * ** *** **** ***** ****** ******* ******** ********* ********** *********** ************ ************* ************** *************** **************** ***************** ****************** *******************

Bài 02: Sử dụng dấu * để vẽ hình chữ nhật trong PHP, đây là một trong những bài cơ bản nhất giúp bạn thực hành cách sử dụng các vòng lặp trong PHP.

Gợi ý:

  • Sử dụng vòng lặp for
  • Sử dụng vòng lặp do-while
  • Sử dụng vòng lặp while

Code mẫu: sử dụng vòng lặp for

// sử dụng vòng lặp for - vẽ hình chữ nhật trong PHP, // mỗi dấu * là một đơn vị <?php for($i = 0; $i < 10; $i ++) { echo "<br>"; for($j = 0; $j < 20; $j ++) { echo "*"; } } ?>

Kết quả:

// sử dụng vòng lặp for - vẽ hình chữ nhật trong PHP, // mỗi dấu * là một đơn vị ******************** ******************** ******************** ******************** ******************** ******************** ******************** ******************** ******************** ********************

Bài 03: Viết một chương trình để in ra các số từ 1 đến 100. Nhưng đối với các số chia hết cho 3 thì in ra chữ “Fizz” thay vì hiển thị số đó và đối với các số chia hết cho 5 thì in ra chữ “Buzz”. Đối với các số vừa chia hết cho 3 và 5 thì in ra chữ “FizzBuzz”.

Gợi ý:

  1. Lặp i từ 1 đến 100.
  2. Kiểm tra nếu i chia hết cho 3 và 5 thì in ra "FizzBuzz".
  3. Kiểm tra nếu i chia hêt cho 3 thì in ra "Fizz".
  4. Kiểm tra nếu i chia hêt cho 5 thì in ra "Buzz".

Code mẫu:

<?php for($i = 1; $i <= 100; $i ++) { if ($i % 3 == 0 && $i % 5 == 0) { echo "FizzBuzz $i" . "<br>"; } else if ($i % 3 == 0) { echo "Fizz $i" . "<br>"; } else if ($i % 5 == 0) { echo "Buzz $i" . "<br>"; } } ?>

Kết quả:

Fizz 3 Buzz 5 Fizz 6 Fizz 9 Buzz 10 Fizz 12 FizzBuzz 15 Fizz 18 ... FizzBuzz 75 Fizz 78 Buzz 80 Fizz 81 Fizz 84 Buzz 85 Fizz 87 FizzBuzz 90 Fizz 93 Buzz 95 Fizz 96 Fizz 99 Buzz 100

Bài 04: Viết chương trình để in ra bảng cửu chương trong PHP.

Code mẫu:

<table border="1px"> <tr> <?php for($i = 1; $i < 10; $i ++) { echo "<td>"; for($j = 1; $j <= 10; $j ++) { echo "$i x $j = " . ($i * $j); echo "<br>"; } echo "</td>"; } ?> </tr> </table>

Kết quả:

Bài 05: Viết chương trình giải phương trình bậc 2: ax2 + bx + c = 0.

Code mẫu:

<?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 if (is_numeric ( $GLOBALS ['heso_a'] ) && is_numeric ( $GLOBALS ['heso_b'] ) && is_numeric ( $GLOBALS ['heso_c'] )) { giaiPTB2 ( $GLOBALS ['heso_a'], $GLOBALS ['heso_b'], $GLOBALS ['heso_c'] ); } else { echo ("Giá trị input không hợp lệ!"); } ?>

Kết quả:

Chú ý: Trong ví dụ trên hàm is_numeric() được sử dụng về xác thực giá trị đầu vào phải là một số thực.

Bài 06: Viết chương trình tính giai thừa của n. Giai thừa của 1 số là tích các số liên tiếp từ 1 đến số đó. Trường hợp đặc biệt, giai thừa của 0 và 1 là 1.

Ví dụ: giai thừa của 5 là 1*2*3*4*5 = 120

Gợi ý:

  • Tính giai thừa không sử dụng đệ quy.
  • Tính giai thừ có sử dụng đệ quy.

Code mẫu: Tính giai thừa không sử dụng đệ quy

<?php $a = 5; $b = 0; $c = 10; /** * tinh giai thua * * @author viettuts.vn * @param n: so nguyen duong */ function tinhGiaithua($n) { $giai_thua = 1; if ($n == 0 || $n == 1) { return $giai_thua; } else { for($i = 2; $i <= $n; $i ++) { $giai_thua *= $i; } return $giai_thua; } } // tính giai thừa echo ("Giai thừa của " . $a . " là: " . tinhGiaithua ( $a ) . "<br>"); echo ("Giai thừa của " . $b . " là: " . tinhGiaithua ( $b ) . "<br>"); echo ("Giai thừa của " . $c . " là: " . tinhGiaithua ( $c ) . "<br>"); ?>

Kết quả:

Giai thừa của 5 là: 120 Giai thừa của 0 là: 1 Giai thừa của 10 là: 3628800

Bài 07: Tính dãy số Fibonacci trong PHP.

Gợi ý:

  • Tính dãy số Fibonacci không dùng phương pháp đệ quy.
  • Tính dãy số Fibonacci sử dụng phương pháp đệ quy.

Code mẫu: Tính dãy số Fibonacci không dùng phương pháp đệ quy

<?php /** * Tính số fibonacci thứ n * * @author: viettuts.vn * @param n: chỉ số của số fibonacci tính từ 0 * vd: F0 = 0, F1 = 1, F2 = 1, F3 = 2 * @return integer */ function fibonacci($n) { $f0 = 0; $f1 = 1; $fn = 1; if ($n < 0) { return - 1; } else if ($n == 0 || $n == 1) { return $n; } else { for($i = 2; $i < $n; $i ++) { $f0 = $f1; $f1 = $fn; $fn = $f0 + $f1; } } return $fn; } echo ("10 số đầu tiên của dãy số fibonacci: "); for($i = 0; $i < 10; $i ++) { echo (fibonacci ( $i ) . " "); } ?>

Kết quả:

10 số đầu tiên của dãy số fibonacci: 0 1 1 2 3 5 8 13 21 34

Bài 08: Kiểm tra số nguyên tố trong PHP.

Định nghĩa: số nguyên tố là số lớn hơn 1 và chỉ chia hết cho 1 và chính nó.

Ví dụ: 2, 3, 5, 7, 11, 13, 17, … là những số nguyên tố.

Code mẫu:

<?php /** * check so nguyen to * * @author viettuts.vn * @param n: so nguyen duong * @return boolean */ function isPrimeNumber($n) { // so nguyen n < 2 khong phai la so nguyen to if ($n < 2) { return false; } // check so nguyen to khi n >= 2 $squareRoot = sqrt ( $n ); for($i = 2; $i <= $squareRoot; $i ++) { if ($n % $i == 0) { return false; } } return true; } echo ("Các số nguyên tố nhỏ hơn 100 là: <br>"); for($i = 0; $i < 100; $i ++) { if (isPrimeNumber ( $i )) { echo ($i . " "); } } ?>

Kết quả:

Các số nguyên tố nhỏ hơn 100 là: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

Bài 09: Viết chương trình chuyển đổi một số tự nhiên ở hệ số 10 thành một số ở hệ cơ số B (1

Từ khóa » Câu Lệnh Nhập Dữ Liệu Từ Bàn Phím Trong Php