Bài 25 - PHP basic buổi 4 - CÁC BIỂU THỨC ĐIỀU KIỆN & VÒNG LẶP

 

LAB PHP (CB) 4

CÁC BIỂU THỨC ĐIỀU KIỆN & VÒNG LẶP TRONG PHP

A – LÝ THUYẾT

I – CÁC BIỂU THỨC ĐIỀU KIỆN TRONG PHP

1 – Biểu thức IF

Là biểu thức dùng kiểm tra 1 sự kiện. Nếu chúng thỏa điều kiện đó thì sẽ thực thi một hành động

Cú pháp:

if(Điều kiện){

Thực thi hành động;

}



2 – Biểu thức IF…ELSE

Là biểu thức dùng kiểm tra 1 sự kiện. Nếu chúng thỏa điều kiện đó thì sẽ thực thi một hành động. Ngược lại nếu không thì sẽ thực thi một hành động khác

Cú pháp:

if(Điều kiện){

Thực thi hành động 1;

}

else{

Thực thi hành động 2;

}

3 – Biểu thức ELSEIF

Là một dạng của biểu thức IF…ELSE nhiều nhánh, dùng để kiểm tra nhiều sự kiện liên tiếp (Sử lý nhiều IF…ELSE)

Cú pháp:

if(Điều kiện 1){

Thực thi hành động 1;

}

elseif(Điều kiện 2){

Thực thi hành động 2;

}

elseif(Điều kiện 3){

Thực thi hành động 3;

}

else{

Thực thi hành động n;

}

 

 

 

4 – Biểu thức SWITCH…CASE

Là biểu thức sử dụng để giảm thiểu quá trình xử lý dữ liệu nếu có quá nhiều phép toán IF…ELSE (Tương tự như biểu thức ELSEIF)

Cú pháp:

switch(Biến){

case Giá trị 1: Hành động;

break;

 

case Giá trị 2: Hành động;

break;

case Giá trị n: Hành động;

break;

 

default: Hành động;

}

 

 

 

 

II – MỘT SỐ VÒNG LẶP TRONG PHP

1 – Vòng lặp WHILE

Phép lặp này yêu cầu phải thỏa mãn điều kiện thì mới thực thi được vòng lặp

Cú pháp:

while(Điều kiện){

Thực thi hành động;

}

 

 

2 – Vòng lặp DO…WHILE

Phép lặp này sẽ thực thi hành động ít nhất là một lần. Sau đó mới tiến hành kiểm tra điều kiện

Cú pháp:

do{

Thực thi hành động;

}

while(Điều kiện)

 

 

3 – Vòng lặp FOR

Phép lặp này là phép toán gộp các tham số. Giúp người lập trình giảm thiểu thời gian phải khai báo biến và các tham số khi thực thi việc lặp dữ liệu

Cú pháp:

for(Biến khởi tạo; Điều kiện; Tăng hoặc giảm biến khởi tạo){

Thực thi hành động;

}

 

 

 

B – BÀI TẬP

I – BÀI TẬP THỰC HÀNH

Bài 1: Ôn tập về biểu thức điều kiện (Có thể dùng một trong các biểu thức điều kiện IF, IF ELSE, ELSEIF, SWITCH để giải quyết bài toán)

           

Khai báo một biến $a với một kiểu dữ liệu bất kỳ (Integer, Double, String, Boolean, Array, Object). Viết chương trình kiểm tra kiểu dữ liệu của biến $a nếu biến $a có giá trị là dữ liệu

·         Kiểu Integer thì hiển thị thông báo “Biến $a có giá trị là dữ liệu kiểu số nguyên”

·         Kiểu Double thì hiển thị thông báo “Biến $a có giá trị là dữ liệu kiểu số thực”

·         Kiểu String thì hiển thị thông báo “Biến $a có giá trị là dữ liệu kiểu chuỗi”

·         Kiểu Boolean thì hiển thị thông báo “Biến $a có giá trị là dữ liệu kiểu Boolean”

·         Kiểu Array, Object thì hiển thị thông báo “Biến $a có giá trị là dữ liệu kiểu khác”

Thay đổi kiểu dữ liệu của giá trị biến $a để kiểm tra chương trình

 

Bài 2: Ôn tập về vòng lặp (Có thể dùng một trong các vòng lặp WHILE, DO WHILE, FOR để giải quyết bài toán)

Viết chương trình tính tổng từ 1 đến 100 (1 + 2 + 3 +…+ 99 + 100)

           

II – BÀI TẬP VỀ NHÀ

Bài 3:

Viết chương trình tính tổng các số chẵn từ 1 đến 50 (2 + 4 + 6 +…+ 48 + 50) bằng 3 cách

·         Dùng vòng lặp WHILE

·         Dùng vòng lặp DO WHILE

·         Dùng vòng lặp FOR

 

Bài 4:

Viết chương trình tính tổng các số lẻ từ 1 đến 50 (1 + 3 + 5 +…+ 47 + 49) bằng 3 cách

·         Dùng vòng lặp WHILE

·         Dùng vòng lặp DO WHILE

·         Dùng vòng lặp FOR

 

Bài 5:

Viết chương trình tính nghiệm của phương trình bậc nhất 1 ẩn số

·         Ax + B = 0

 

Bài 6:

Viết chương trình tính nghiệm của phương trình bậc 2 một ẩn số

·         Ax2 + Bx + C = 0

 

Bài 7:

Viết chương trình tính giai thừa của một số n bất kỳ bằng 3 cách

·         Dùng vòng lặp WHILE

·         Dùng vòng lặp DO WHILE

·         Dùng vòng lặp FOR

Biết n! (n giai thừa) được tính bằng công thức n! = 1*2*…*(n-1)*n 

Bài 8:

Viết chương trình chuyển đổi các tháng trong năm từ tiếng việt sang tiếng anh. VD: “tháng một” -> “January”, “tháng hai” -> “February”,…, “tháng mười hai” -> “December”. Làm bằng 2 cách

·         Sử dụng biểu thức điều kiện ELSEIF

·         Sử dụng biểu thức SWITCH CASE

Khai báo một biến $thang với giá trị là tên của các tháng bằng tiếng việt, sau đó thay đổi giá trị của biến $thang để kiểm tra chương trình

 

Bài 9:

Viết chương trình tìm số lớn nhất (SLN) và số bé nhất (SBN) trong 5 số bất kỳ (Khai báo 5 biến với giá trị là 5 số tương ứng bất kỳ)

 

Bài 10:

Viết chương trình hiển thị bảng cửu chương như hình dưới đây:


Đáp án

Bài 1:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Untitled Document</title>

</head>

<body>


<?php

$a = "Thay đổi giá trị của biến a để kiểm tra kết quả";

$result = gettype($a);


if($result == "string"){

echo "<b>\"".$a. "\"</b> là dữ liệu kiểu chuỗi";

}

elseif($result == "double"){

echo "<b>\"".$a. "\"</b> là dữ liệu số thực";

}

elseif($result == "integer"){

echo "<b>\"".$a. "\"</b> là dữ liệu số nguyên";

}

elseif($result == "boolean"){

echo "<b>\"".$a. "\"</b> là dữ liệu kiểu Boolean";

}

else{

echo "<b>\"".$a. "\"</b> là kiểu dữ liệu chưa cập nhật";

}

?>


</body>

</html>


Bài 2:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Untitled Document</title>

</head>

<body>


<?php

$tong = 0;

$a = 1;

$b = 100;

for($i=$a; $i<=$b; $i++){

$tong += $i;

}

echo "Tổng từ $a đến $b = <b>".$tong."</b>";

?>


</body>

</html>


Bài 3:
 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Untitled Document</title>

</head>

<body>


<?php

$tong_chan = 0;

$a = 1;

$b = 50;

for($i=$a; $i<=$b; $i++){

$kiem_tra = $i%2;

if($kiem_tra == 0){

$tong_chan += $i;

}

}

echo "Tổng chẵn từ $a đến $b = <b>".$tong_chan."</b>";

?>


</body>

</html>


Bài 4:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Untitled Document</title>

</head>

<body>


<?php

$tong_le = 0;

$a = 1;

$b = 50;

for($i=$a; $i<=$b; $i++){

$kiem_tra = $i%2;

if($kiem_tra == 1){

$tong_le += $i;

}

}

echo "Tổng lẻ từ $a đến $b = <b>".$tong_le."</b>";

?>


</body>

</html>

Bài 5:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Untitled Document</title>

</head>

<body>


<?php

// Giải PT bậc nhất 1 ẩn số

// aX + b = 0


$a = 5;

$b = 6;

if(($a == 0) && ($b == 0)){

echo "Phương trình $a X + $b = 0 có nghiệm với mọi giá trị của X";

}

elseif(($a == 0) && ($b !== 0)){

echo "Phương trình $a X + $b = 0 vô nghiệm với mọi giá trị của X";

}

else{

$nghiem = -$b/$a;

echo "Phương trình $a X + $b = 0 có nghiệm X = $nghiem";

}

?>


</body>

</html>


Bài 6:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>

<?php
// Giải PT bặc 2 một ẩn số
// aX2 + bX + c = 0

$a = 5;
$b = 6;
$c = 1;

if($a == 0){
if(($b == 0) && ($c == 0)){
echo "Phương trình $a X2 + $b X + $c = 0 có nghiệm với mọi giá trị của X";
}
elseif(($b == 0) && ($c !== 0)){
echo "Phương trình $a X2 + $b X + $c = 0 vô nghiệm với mọi giá trị của X";
}
else{
$nghiem = -$c/$b;
echo "Phương trình $a X2 + $b X + $c = 0 có nghiệm X = $nghiem";
}
}
else{
$delta = ($b*$b) - (4*$a*$c);
if($delta < 0){
echo "Phương trình $a X2 + $b X + $c = 0 vô nghiệm với mọi giá trị của X";
}
elseif($delta == 0){
$nghiem_kep = -$b/(2*$a);
echo "Phương trình $a X2 + $b X + $c = 0 có nghiệm kép X1 = X2 = $nghiem_kep";
}
else{
$nghiem1 = (-$b - sqrt($delta))/(2*$a);
$nghiem2 = (-$b + sqrt($delta))/(2*$a);
echo "Phương trình $a X2 + $b X + $c = 0 có 2 nghiệm phân biệt X1 = <b>$nghiem1</b> và X2 = <b>$nghiem2</b>";
}
}
?>

</body>
</html>

Bài 7:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>

<?php
$giai_thua = 1;
$a = 1;
$b = 10;
while($a <= $b){
$giai_thua *= $a;
$a++;
}
echo "Giai thừa của $b = <b> ".$giai_thua."</b>";
?>

</body>
</html>

Bài 8:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>

<?php
$thang = "tháng một";
switch($thang){
case "tháng một": echo "<b>$thang</b> tiếng Anh là <b>January</b>";
break;

case "tháng hai": echo "<b>$thang</b> tiếng Anh là <b>February</b>";
break;

case "tháng ba": echo "<b>$thang</b> tiếng Anh là <b>March</b>";
break;

case "tháng tư": echo "<b>$thang</b> tiếng Anh là <b>April</b>";
break;

case "tháng năm": echo "<b>$thang</b> tiếng Anh là <b>May</b>";
break;

case "tháng sáu": echo "<b>$thang</b> tiếng Anh là <b>June</b>";
break;

case "tháng bẩy": echo "<b>$thang</b> tiếng Anh là <b>July</b>";
break;

case "tháng tám": echo "<b>$thang</b> tiếng Anh là <b>August</b>";
break;

case "tháng chín": echo "<b>$thang</b> tiếng Anh là <b>September</b>";
break;

case "tháng mười": echo "<b>$thang</b> tiếng Anh là <b>October</b>";
break;

case "tháng mười một": echo "<b>$thang</b> tiếng Anh là <b>November</b>";
break;

case "tháng mười hai": echo "<b>$thang</b> tiếng Anh là <b>December</b>";
break;

default: echo "Bạn chưa nhập đúng tên của tháng bằng tiếng Việt";
}
?>

</body>
</html>

Bài 9:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>

<?php
$a = 5;
$b = 2;
$c = 1;
$d = 0;
$e = 3;

// Tìm SLN
$max = $a;
if($max > $b){
$max = $max;
}
else{
$max = $b;
}

if($max > $c){
$max = $max;
}
else{
$max = $c;
}

if($max > $d){
$max = $max;
}
else{
$max = $d;
}

if($max > $e){
$max = $max;
}
else{
$max = $e;
}

echo "Số lớn nhất trong 5 số: $a , $b , $c , $d , $e là <b>$max</b>";
echo "<p></p>";

// Tìm SBN
$min = $a;
if($min < $b){
$min = $min;
}
else{
$min = $b;
}

if($min < $c){
$min = $min;
}
else{
$min = $c;
}

if($min < $d){
$min = $min;
}
else{
$min = $d;
}

if($min < $e){
$min = $min;
}
else{
$min = $e;
}

echo "Số bé nhất trong 5 số: $a , $b , $c , $d , $e là <b>$min</b>";
?>

</body>
</html>

Bài 10:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>

<table align="center" width="800" border="1">
  <tr>
    <td colspan="10" align="center" bgcolor="#0099FF">Bảng Chửu Chương</td>
  </tr>
<?php
for($i=1; $i<=9; $i++){
?>
<tr>
<?php
for($j=1; $j<=10; $j++){
echo "<td>$i x $j = ".$i*$j."</td>";
}
?>
</tr>
<?php    
}
?>
</table>

</body>
</html>


>>Xem bài trước: Bài 24 - PHP basic buổi 3 - TOÁN TỬ TRONG PHP


>>Xem bài tiếp theo: Bài 26 - PHP basic buổi 5 - CÁC PHƯƠNG THỨC TRUYỀN DỮ LIỆU TRONG PHP


No comments:

Post a Comment