If Else Trong PHP

Xin chào các bạn độc giả của khóa học lập trình PHP, bài học Câu lệnh if else trong PHP này là bài đầu tiên trong chương Cấu trúc điều khiển và rẽ nhánh. Cấu trúc if else là thành phần được sử dụng gần như trong mọi chương trình phần mềm. Do đó, bạn cần nắm chắc kiến thức về lệnh if else để có thể học tốt các bài tập tiếp theo. Bắt đầu từ bài này thì các bạn sẽ được thực hành nhiều để luyện tập kỹ năng lập trình.

I. If Else Trong PHP Dùng Làm Gì

Mệnh đề if-else trong PHP được sử dụng để kiểm tra một biểu thức điều kiện nào đó có đúng hay không, nếu đúng thì thực thi những câu lệnh bên trong khối lệnh if và ngược lại nếu sai thì nó sẽ bỏ qua những câu lệnh đó. Có ba dạng của câu lệnh if trong PHP.

+ Mệnh đề if.

+ Mệnh đề if-else.

+ Mệnh đề if-elseif-else.

Trong đó:

– Câu lệnh if ( không có else ): Khối lệnh sau if được thực thi nếu giá trị của điều kiện là True

– Câu lệnh if … else: Mệnh đề if được sử dụng để kiểm tra giá trị dạng boolean của điều kiện. Khối lệnh sau if được thực thi nếu giá trị của điều kiện là True, nếu là False thì chỉ có khối lệnh sau else được thực hiện

– Câu lệnh if … elseif … else: Mệnh đề if-elseif-else cũng kiểm tra giá trị dạng boolean của điều kiện. Nếu giá trị điều kiện if là True thì chỉ có khối lệnh sau if sẽ được thực hiện. Nếu giá trị điều kiện else if nào là True thì chỉ có khối lệnh sau if else đó sẽ được thực hiện… Nếu tất cả điều kiện của if và if else là False thì chỉ có khối lệnh sau else sẽ được thực hiện

II. Câu lệnh IF

– Sử dụng câu lệnh if khi thực hiện một số mã khi và chỉ khi điều kiện qui định của nó đúng với mã được qui định

Cú pháp câu if :

If ( điều kiện ) sẽ được thực hiện nếu điều kiện đúng . 

Ví dụ sau đây sẽ đưa ra “Have a nice weekend!” nếu ngày hiện nay là thứ Sáu:

<html>
<body>
<?php
$d=date("D");
if ($d=="Fri") echo "Have a nice weekend!";
?>
</body>
</html>

Chú ý rằng đoạn mã trên không có else . vì vậy mã này được thực thi khi nó chỉ đúng với điều kiện .

III. Câu lệnh IF ELSE

Sử dụng câu lệnh if … else để thực hiện đoạn mã nếu điều kiện nó là đúng hoặc sai .
Cú pháp :

if (điều kiện)
 {
 Mã lệnh sẽ được thực hiện nếu điều kiện đúng;
 }
else
 {
 Mã lệnh sẽ được thực hiện nếu điều kiện sai;
 }

Ví dụ sau đây sẽ đưa ra “Have a nice weekend!” nếu ngày hiện nay là thứ Sáu, nếu không phải nó sẽ trả kết quả khác là “Have a nice day!”

<html>
<body>
<?php
$d=date("D");
if ($d=="Fri")
 {
 echo "Have a nice weekend!";
 }
else
 {
 echo "Have a nice day!";
 }
?>
</body>
</html> 

IV. Câu lệnh IF ELSEIF ELSE

Sử dụng câu lệnh if …. elseif … else để lựa chọn một trong nhiều khối mã sẽ được thực hiện.

Cú pháp

if (Điều kiện 1)
 {
 code sẽ được thực hiện nếu điều kiện 1 đúng;
 }
elseif (Điều kiện 2)
 {
 code sẽ được thực hiện nếu điều kiên 2 đúng;
 }
else
 {
 code sẽ được thực hiện nếu mấy cái điều kiện trên sai;
 }

Ví dụ sau đây sẽ đưa ra “Have a nice weekend!”nếu ngày hiện nay là thứ Sáu, và “Have a nice Sunday!” nếu ngày hiện nay là chủ nhật. Nếu không, nó sẽ ra “Have a nice day!”

<html>
<body>
<?php
$d=date("D");
if ($d=="Fri")
 {
 echo "Have a nice weekend!";
 }
elseif ($d=="Sun")
 {
 echo "Have a nice Sunday!";
 }
else
 {
 echo "Have a nice day!";
 }
?>
</body>
</html> 

V. Biểu thức điều kiện if else rút gọn trong Php

Biểu thức điều kiện if else rút gọn giúp chúng ta viết câu lệnh điều kiện trong Php một cách ngắn gọn dễ hiểu.

Cú pháp viết if else rút gọn

$var = BTĐK?Giá trị 1: Giá trị 2

Trong đó

+ $var: biến nhận giá trị biểu thức

+ BTKĐ: biểu thức điều kiện

Hoạt động

+ Nếu BTĐK trả về TRUE thì $var = Giá trị 1

+ Ngược lại $var = Giá trị 2

$n = 26;
$check_even = $n%2==0?true:false;
echo $check_even;

Khi chạy chương trình trên kết quả nhận được là true. Thay vì viết if else dài dòng thì mọi thứ giờ đây ngắn gọn hơn nhiều.

VI. Bài tập IF Else trong PHP

Bài 1: Viết chương trình C++ để nhập tuổi và in ra kết quả nếu tuổi học sinh đó không đủ điều kiện vào học lớp 10. Biết tuổi vào lớp 10 của học sinh là 16.

Bài 2: Viết chương trình C++ để nhập một số nguyên bất kỳ từ bàn phím và in kết quả ra màn hình để thông báo cho người dùng biết số đó lớn hay nhỏ hơn 100.

Bài 3: 

Viết một chương trình C++ để nhập lương nhân viên, tính thuế thu nhập và lương ròng (số tiền lương thực sự mà nhân viên đó nhận được). Với các thông số giả sử như sau (không theo luật lương, chỉ là con số giả sử để dễ tính toán):

+ 30% thuế thu nhập nếu lương là 15 triệu.
+ 20% thuế thu nhập nếu lương từ 7 đến 15 triệu.
+ 10% thuế thu nhập nếu lương dưới 7 triệu.

 

The post If Else Trong PHP first appeared on Techacademy.

source https://techacademy.edu.vn/if-else-trong-php/

Chuỗi Trong PHP

I. String trong php là gì

Chuỗi biến được sử dụng sử dụng cho các giá trị có chứa ký tự . Trong chương trình này, chúng ta sẽ nhìn vào chức năng phổ biến nhất được sử dụng để thao tác các chuỗi trong PHP.

Sau khi chúng tôi tạo ra một chuỗi, chúng ta có thể thao tác nó . Một chuỗi có thể được sử dụng trực tiếp trong một hàm hoặc nó có thể được lưu trữ trong một biến .

Dưới đây, các tập lệnh PHP gán văn bản “Hello World” vào một chuỗi biến gọi là $ txt:

<?php
$txt="Hello World";
echo $txt;
?> 

Khi thực thi code trên thì sẽ ra kết quả trả về là “Hello World”
Nào , bây giờ chúng ta thử 1 số chức năng và các chức năng khác nhau để xử lý 1 chuỗi

<?php
$txt1="Hello World!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2;
?>

Kết quả trả về sẽ là

Hello World ! What a nice day!

Nếu chúng ta nhìn vào đoạn mã trên, bạn thấy rằng chúng ta sử dụng toán tử nối hai lần. Điều này là bởi vì chúng tôi đã để chèn một chuỗi thứ ba, để phân cách hai chuỗi.

II. Xử lý chuỗi trong php

Việc xử lý chuỗi trong PHP rất là quan trọng vì dữ liệu hiển thị trên trang web luôn luôn ở dạng chuỗi, vì thế nếu bạn nắm vững và xử lý nhuần nhuyễn thì sẽ giúp bạn ít tốn công sức và thời gian hơn mà web chạy lại nhanh nữa.

Bên dưới đây Techacademy sẽ liệt kê các hàm xử lý chuỗi trong php thông dụng hay sử dụng nhất, tuy nhiên chúng ta cần hiểu một số quy tắc trong chuỗi trước đã.

2.1 Độ dài chuỗi trong PHP

Hàm strlen () được sử dụng để trả lại chiều dài của một chuỗi.
Hãy tìm chiều dài của một chuỗi:

<?php
echo strlen("Hello world!");
?>

Kết quả trả về là

12

Chiều dài của một chuỗi thường được sử dụng trong vòng lặp hoặc các chức năng khác, điều quan trọng là để biết khi nào kết thúc chuỗi. (tức là trong một vòng lặp, chúng tôi muốn ngừng vòng lặp sau khi ký tự cuối cùng trong chuỗi).

2.2 Tìm kiếm vị trí đầu tiên của kí tự hoặc chuỗi con xuất hiện trong chuỗi nguôn

Hàm strpos () được sử dụng để tìm kiếm một nhân vật / văn bản trong một chuỗi.

Nếu kết hợp được tìm thấy, chức năng này sẽ trở lại với vị trí nhân vật của trận đấu đầu tiên. Nếu không phù hợp được tìm thấy, nó sẽ trả về FALSE

Hãy xem nếu chúng ta có thể tìm thấy chuỗi “thế giới” trong chuỗi ký tự của chúng tôi:

<?php
echo strpos("Hello world!","world");
?> 

Kết quả trả về là

6

Vị trí từ “world” trong ví dụ trên là 6. Lý do mà nó là 6 (và không phải 7), là vị trí của ký tự đầu tiên trong chuỗi là 0, và không phải 1.
Thông tin về 1 số chức năng của các hàm khác ( có thể là không đầy đủ nhưng cũng nên đọc qua cho biết )

2.3 Nối chuỗi trong PHP

Để nối 2 chuỗi chúng ta sử dụng toán tử (.)

<?php
    $string_1 = "Hello";
    $string_2 = "world!";
    echo $string_1. " " .$string_2."<br>";
?>

2.4 Cắt chuỗi trong PHP

substr – Cắt chuỗi, trả về một phần của chuỗi

string substr ( string $string , int $start [, int $length ] )

Trả về một phần của chuỗi được cắt bởi 2 tham số: $start và $length

string

Chuỗi ký tự đầu vào. Cần phải có ít nhất 1 ký tự.

start

Nếu $start là một số không âm, chuỗi trả về sẽ bắt đầu từ vị trí thứ $start trong chuỗi, ký tự đầu tiên được tính là vị trí số 0. Ví dụ, trong chuỗi ‘abcdef’, ký tự ở vị trí số 0 là ‘a’, ký tự ở vị trí số 2 là ‘c’.

Nếu $start là một số âm, chuỗi trả về sẽ bắt đầu từ vị trí thứ $start nhưng tính từ cuối chuỗi trở lại.

Nếu độ dài của chuỗi nhỏ hơn giá trị $start, giá trị trả về sẽ là FALSE.

length

Nếu tham số $length được sử dụng và là một số dương, chuỗi trả về sẽ bao gồm $length ký tự, tính từ vị trí thứ $start (tùy thuộc vào độ dài của chuỗi).

Nếu tham số $length được sử dụng và là một số âm, chuỗi trả về được tính từ vị trí $start đến vị trí $length (trong đó vị trí $length được tính từ cuối chuỗi trở lại). Nếu vị trí $start nằm giữa vị trí $length đến cuối chuỗi, giá trị trả về sẽ là FALSE.

Nếu tham số $length được sử dụng và là có giá trị là 0, FALSE hoặc NULL, giá trị trả về sẽ là một chuỗi rỗng.

Nếu tham số $length không được sử dụng, chuỗi trả về sẽ bắt đầu từ vị trí $start cho đến hết chuỗi.

Ví dụ:

<!DOCTYPE html>
<html>
<body>

<?php
// Positive numbers:
echo substr("Hello world",10)."<br>";
echo substr("Hello world",1)."<br>";
echo substr("Hello world",3)."<br>";
echo substr("Hello world",7)."<br>";
echo "<br>";

// Negative numbers:
echo substr("Hello world",-1)."<br>";
echo substr("Hello world",-10)."<br>";
echo substr("Hello world",-8)."<br>";
echo substr("Hello world",-4)."<br>";
?>

</body>
</html>

Kết quả:

d
ello world
lo world
orld

d
ello world
lo world
orld

2.5 Tách chuỗi trong PHP

– Hàm explode() dùng để tách chuỗi ra thành một mảng.

Để sử dụng hàm explode() thì ta dùng cú pháp như sau:

explode(separator, string, limit)

Trong Đó:

separator (bắt buộc)

– Chỉ định nơi dùng để tách chuỗi.

– Lưu ý: Giá trị của tham số separator không được là một chuỗi rỗng.

string (băt buộc)

– Chuỗi được dùng để xử lý.

limit (Không bắt buộc)

– Chỉ định số lượng phần tử mảng được trả về.

– Dưới đây là các giá trị có thể dùng cho tham số limit:

0 : Trả về mảng chỉ có một phần tử duy nhất.

Lớn hơn 0 : Trả về mảng có số lượng phần tử không vượt quá giá trị của tham số limit.

Nhỏ hơn 0 : Trả về mảng có số lượng phần tử bằng với số lượng phần tử có thể tách được từ chuỗi trừ đi giá trị của tham số limit.

Lưu ý: Nếu bỏ qua tham số này thì hàm sẽ trả về một mảng có số lượng phần tử bằng với số lượng phần tử có thể tách được từ chuỗi.

Ví Dụ:

<!DOCTYPE html>
<html>
<body>

<?php
$str = "Hello world. It's a beautiful day.";
print_r (explode(" ",$str));
?> 

</body>
</html>

Kết Quả:

Array ( [0] => Hello [1] => world. [2] => It's [3] => a [4] => beautiful [5] => day. )

2.6 So sánh chuỗi trong PHP

Hàm strcmp() sẽ so sánh hai chuỗi phân biệt chữ hoa chữ thường, hàm trả về số âm nếu chuỗi thứ nhất nhỏ hơn chuỗi thứ 2, trả về 0 nếu hai chuỗi bằng nhau và trả về số dương nếu chuỗi thứ nhất lớn hơn chuỗi thứ 2.

Cú pháp:

strcmp( $str1, $str2);

Trong đó:

$str1, $str2 là hai chuỗi cần so sánh.

Ví dụ:

<!DOCTYPE html>
<html>
<body>

<?php
echo strcmp("Hello world!","Hello world!");
?>

<p>If this function returns 0, the two strings are equal.</p>

</body>
</html>

Kết quả:

0
If this function returns 0, the two strings are equal.

2.7 Thay thế chuỗi trong PHP

Cú pháp:

str_replace($search, $replace, $subject);

$search là kí tự, chuỗi kí tự hoặc mảng các chuỗi ký tự cần tìm kiếm để thay thế.

$replace là kí tự, chuỗi kí tự hoặc mảng các chuỗi ký để thay thế cho kí tự, chuỗi kí tự hoặc mảng các chuỗi ký $sreach.

$subject là chuỗi ký tự hoặc mảng các chuỗi ký tự gốc cần được chỉnh sửa.

Hàm str_replace() sẽ thay thế tất cả các ký tự $strSearch nằm trong $subject bằng ký tự $strReplace.

Ví Dụ:

<!DOCTYPE html>
<html>
<body>

<p>Search the string "Hello World!", find the value "world" and replace it with "Peter":</p>

<?php
echo str_replace("world","Peter","Hello world!");
?>

</body>
</html>

Kết quả:

Search the string "Hello World!", find the value "world" and replace it with "Peter":

Hello Peter!

 

 

The post Chuỗi Trong PHP first appeared on Techacademy.

source https://techacademy.edu.vn/chuoi-trong-php/

Biến Trong PHP

Khái niệm về biến trong PHP là kiến thức nền tảng trong lập trình PHP mà hầu như lập trình viên nào cũng phải học đầu tiên. Trong bài này chúng ta sẽ đi tìm hiểu khái niệm thế nào là biến.

I. Biến trong php để làm gì

Bạn còn nhớ môn Đại Số ở Trường Không ?

Dạng như , x = 1 , y = 2 , z =3
Bạn còn nhớ với mỗi từ ta có thể gán 1 giá trị (vd : x = 2 , y = 123 , z = 52 v.v ) và bạn sẽ dùng mấy thông tin đó để tính 1 giá trị nào đó của d chẳng hạn .

Tất cả những cái trên được gọi là Biến PHP , và biến được dùng để giữ 1 giá trị nhất định (x=2) hoặc là các bài toán như ( d = a+b+c ) trong đó a,b,c là các hằng số có giá trị bất kỳ ( vd : a = 1 , b = 2 , c = 3 thì d = a + b + c = 6 )

Ví dụ:

<!DOCTYPE html>
<html>
<body>
<?php
//Đây là chú thích 1 dòng
/*
Đây là chú thích
Nhiều
Dòng
*/
?>
</body>
</html>

Biến PHP

Với đại số, các biến PHP được sử dụng để giữ các giá trị hoặc biểu thức.

Một biến có thể có một tên ngắn, như x, hoặc một cái tên dài hơn, như họ và tên chúng ta vậy.

Quy tắc cho tên biến PHP :

  • Các biến trong PHP bắt đầu với một kí hiệu $, tiếp theo là tên của biến
  • Tên biến phải bắt đầu với một ký tự hoặc ký tự gạch dưới
  • Một tên biến chỉ có thể chứa các ký tự chữ-số và gạch dưới (A-z, 0-9, và _)
  • Một tên biến không nên chứa không gian ( gọi là khoảng cách ý vd : $a b biến này là sai , $ba thế này mới đúng )
  • Tên biến là trường hợp nhạy cảm và quan trọng nên nó phân biệt cả hoa và thường (y và Y là hai biến khác nhau)
Phạm vi biến PHP
Phạm vi biến PHP

Creating (Declaring) PHP Variables

PHP không có lệnh để khai báo một biến.

Một biến được tạo ra thời điểm lần đầu tiên bạn chỉ định một giá trị cho nó: ( lúc mới bắt đầu file php )

Ví dụ về 1 biến:

$siverdragon12=”Hacker”;

Sau khi thực hiện biến trên thì biến siverdragon12 sẽ giữ giá trị là “Hacker”

Mẹo : Nếu bạn tạo một biến mà không để bất kỳ giá trị nào thì bạn nên để đặt giá trị đó là “null”

Ví Dụ :

$siverdragon12=null; 

Nào , bây giờ ta sẽ tạo ra 1 biến có chứa ký tự ( chữ từ a -> z ) và 1 biến có chứa số ( 0 -> 9 )

<?php
$txt="Hello World!";
$x=16;
?>

Chú ý : đối với chữ ( ký tự ) thì bạn phải để dấu ngoặc kép như trên , còn đối với số thì không cần .

PHP là một ngôn ngữ lỏng lẻo

Trong PHP, một biến không cần phải được khai báo trước khi thêm một giá trị cho nó.

Trong ví dụ trên, nhận thấy rằng chúng tôi không phải nói với PHP kiểu dữ liệu biến.

PHP sẽ tự động chuyển biến cho đúng kiểu dữ liệu, tùy thuộc vào giá trị của nó.

Trong một ngôn ngữ lập trình mạnh mẽ, bạn phải khai báo (xác định) các loại và tên của
biến trước khi sử dụng nó

II. Phạm Vi Biến Trong PHP

Phạm vi của một biến là một phần của kịch bản, trong đó biến có thể được tham chiếu.

PHP có bốn phạm vi biến khác nhau:

  • local
  • global
  • static
  • parameter

2.1 Biến Local

Một biến khai báo trong một hàm PHP là địa phương và chỉ có thể được truy cập trong phạm vi chức năng đó. (Biến có phạm vi local): Ví dụ .

<?php
$a = 5; // phạm vi local
function myTest()
{
    echo $a; // phạm vi local
    
}
myTest();
?>

Các kịch bản trên sẽ không sản xuất bất kỳ sản lượng vì echo tuyên bố đề cập đến biến phạm vi địa phương biến $a, mà đã không được chỉ định một giá trị trong phạm vi này.

Bạn có thể có các biến địa phương có cùng tên trong các chức năng khác nhau, bởi vì các biến địa phương chỉ được công nhận bởi các chức năng mà chúng được khai báo.

Các biến địa phương sẽ bị xóa ngay sau khi chức năng, nhiệm vụ được hoàn thành.

2.2 Biến Global

Phạm vi toàn cầu đề cập đến bất kỳ biến được định nghĩa bên ngoài của bất kỳ chức năng.

Biến toàn cầu có thể được truy cập từ bất kỳ một phần của kịch bản đó không phải là bên trong một hàm.

Để truy cập vào một biến toàn cầu từ bên trong một chức năng, sử dụng global từ khóa:

Ví dụ :

<?php
$a = 5;
$b = 10;
function myTest()
{
    global $a, $b;
    $b = $a + $b;
}
myTest();
echo $b;
?>

PHP cũng lưu trữ tất cả các biến toàn cầu trong một mảng gọi là $ GLOBALS [ index ]. Chỉ số của nó là tên của biến. Mảng này cũng có thể truy cập từ bên trong chức năng và có thể được sử dụng để cập nhật các biến toàn cầu trực tiếp.

Ví dụ trên có thể được viết lại như thế này:

<?php
$a = 5;
$b = 10;
function myTest()
{
    $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
}
myTest();
echo $b;
?>

2.3 Biến Static

Khi một hàm được hoàn thành, tất cả các biến của nó thường bị xóa. Tuy nhiên, đôi khi bạn muốn biến địa phương để không bị xóa.

Để làm điều này, sử dụng các từ khóa tĩnh khi lần đầu tiên bạn khai báo các biến:

static $rememberMe; 

Sau đó, mỗi khi hàm được gọi, biến đó vẫn sẽ có những thông tin nó có từ thời gian qua các chức năng được gọi.

Lưu ý: biến vẫn là local đến chức năng.

2.4 Parameters

Một tham số là một biến địa phương có giá trị được truyền cho hàm mã gọi.

Các thông số được khai báo trong danh sách tham số như là một phần của việc kê khai hàm functions:

Function myTest($para1,$para2,...)
{
// function code
} 

Các thông số còn được gọi là đối số. Chúng tôi sẽ thảo luận chi tiết hơn khi chúng ta nói về các chức năng.

The post Biến Trong PHP first appeared on Techacademy.

source https://techacademy.edu.vn/bien-php/

Vòng Lặp Trong C

Khi tiến hành lập trình có thể bạn sẽ gặp phải tình huống đó là một khối mã cần được thực thi nhiều lần, khi đó các câu lệnh được thực thi tuần tự: Câu lệnh đầu tiên trong một hàm được thực hiện trước tiên, tiếp theo là câu lệnh thứ hai và tiếp tục như vậy. Vòng lặp trong C nhằm cung cấp các loại vòng lặp sau đây để xử lý các yêu cầu lặp:

vòng lặp trong c
vòng lặp trong c
  • Vòng lập while trong C
  • Vòng lặp for
  • Vòng lặp do…while
  • Vòng lặp nested

Một câu lệnh vòng lặp cho phép chúng ta thực hiện một câu lệnh hoặc một nhóm các câu lệnh nhiều lần. Dưới đây là hình thức chung của một vòng lặp trong hầu hết các ngôn ngữ lập trình:

vòng lặp trong c (2)
vòng lặp trong c (2)

1. Vòng Lặp While Trong C

Vòng lặp while thường được sử dụng để lặp đi lặp lại một khối lệnh không biết trước số lần lặp. Dưới đây là cú pháp của vòng lặp while:

while(condition) {

statement(s);

}

Ở đây, (các) câu lệnh có thể là một câu lệnh đơn hoặc một khối câu lệnh. Điều kiện có thể là bất kỳ biểu thức nào và là bất kỳ giá trị nào khác. Vòng lặp lại khi điều kiện là đúng. Khi điều kiện sai, chương trình sẽ thoát khỏi vòng lặp và chuyển đến dòng ngay sau vòng lặp.

Bài tập thực hành:

In ra các số lẻ <= 10

Lời Giải:

#include <stdio.h>
 
int main(){
    /*
        In ra các số lẻ <= 10.
     */
 
    int number = 1;
    while (number <= 10){
        if(number % 2 == 1){
            printf("%d\t", number);
        }
        number++;
    }
}

Kết Quả:

PS G:\c_cources\day_19> g++ .\WhileLoop.cpp -o .\WhileLoop
PS G:\c_cources\day_19> .\WhileLoop.exe
1       3       5       7       9

 

2. Vòng Lặp For Trong C

Vòng lặp For là một cấu trúc điều khiển lặp lại cho phép bạn viết một cách hiệu quả một vòng lặp mà cần phải thực hiện một số cụ thể.

Cú pháp của vòng lặp for trong ngôn ngữ lập trình C là:

for ( init; condition; increment ) {

statement(s);

}
  • Bước init được thực thi đầu tiên, và chỉ một lần. Bước này cho phép bạn khai báo và khởi tạo bất kỳ biến điều khiển vòng lặp nào.
  • Tiếp theo, điều kiện được đánh giá. Nếu nó là đúng, phần thân của vòng lặp được thực thi. Nếu nó sai, phần thân của vòng lặp không thực thi và luồng điều khiển nhảy đến câu lệnh kế tiếp ngay sau vòng lặp for.
  • Sau khi vòng lặp for thực hiện, luồng điều khiển nhảy ngược lại câu lệnh tăng dần. Câu lệnh này cho phép bạn cập nhật bất kỳ biến điều khiển vòng lặp nào. Câu lệnh này có thể để trống, miễn là dấu chấm phẩy xuất hiện sau điều kiện.
  • Điều kiện hiện được đánh giá lại. Nếu nó là true, vòng lặp thực hiện và quá trình lặp lại chính nó và nếu điều kiện sai, vòng lặp for chấm dứt.

Vòng lặp For là thường được sử dụng trong khóa học lập trình C

Bài Tập:

In ra 3 dòng chữ “Hoc C ba dao tai Lap trinh khong kho!”

Lời Giải:

/*
    In ra 3 dòng chữ "Hoc C ba dao tai Lap trinh khong kho!"
 */
 
 
#include <stdio.h>
 
int main(){
    for(int i = 0; i < 3; i++){
        printf("Hoc C ba dao tai Lap trinh khong kho!\n");
    }
    // Continue ...
    printf("Ket thuc vong lap!\n");
}
 
/*
    Giải thích:
    B1. Gán biến lặp i = 0
    B2. Kiểm tra điều kiện (i = 0) < 3 => Đúng
    B3. Do kiểm tra điều kiện đúng => Thực hiện thân vòng lặp for
    B4. Gọi tới (i++) => tăng i lên 1 đơn vị => i = 1
    B5. Kiểm tra điều kiện (i = 1) < 3 => Đúng
    B6. Do kiểm tra điều kiện đúng => Thực hiện thân vòng lặp for
    B7. Gọi tới (i++) => tăng i lên 1 đơn vị => i = 2
    B8. Kiểm tra điều kiện (i = 2) < 3 => Đúng
    B9. Do kiểm tra điều kiện đúng => Thực hiện thân vòng lặp for
    B10. Gọi tới (i++) => tăng i lên 1 đơn vị => i = 3
    B11. Kiểm tra điều kiện (i = 3) < 3 => Sai => Kết thúc vòng lặp
 */

Kết Quả:

Hoc C ba dao tai Lap trinh khong kho!
Hoc C ba dao tai Lap trinh khong kho!
Hoc C ba dao tai Lap trinh khong kho!
Ket thuc vong lap!

3. Vòng Lặp Do While

Không giống như vòng lặp for và while tiến hành kiểm tra điều kiện lặp ở đầu vòng lặp, do … while trong lập trình C kiểm tra điều kiện ở dưới cùng của vòng lặp.

Vòng lặp do … while tương tự như một vòng lặp while, tuy nhiên do … while luôn được thực hiện ít nhất một lần.

Cú pháp của vòng lặp do … while trong ngôn ngữ lập trình C là:

do {

statement(s);

} while( condition );

 

Lưu ý rằng biểu thức điều kiện xuất hiện ở cuối vòng lặp, do đó (các) câu lệnh trong vòng lặp thực hiện một lần trước khi điều kiện được kiểm tra.

Nếu điều kiện là đúng, luồng điều khiển nhảy trở lại để làm, và (các) câu lệnh trong vòng lặp thực hiện lại. Quá trình này lặp lại cho đến khi điều kiện đã cho trở thành sai.

Ví Dụ:

#include <stdio.h>
  
int main () {
    int a = 10;
 
    do {
        printf("Gia tri cua a: %d\n", a);
        a++;
    } while( a < 20 );
  
    return 0;
}

Kết Quả:

Gia tri cua a: 10
Gia tri cua a: 11
Gia tri cua a: 12
Gia tri cua a: 13
Gia tri cua a: 14
Gia tri cua a: 15
Gia tri cua a: 16
Gia tri cua a: 17
Gia tri cua a: 18
Gia tri cua a: 19

 

4. Vòng lặp nested

Lập trình C cho phép sử dụng vòng lặp nested (vòng lặp bên trong vòng lặp khác). Phần sau đây cho thấy một vài ví dụ để minh họa:

  • Cú pháp cho câu lệnh vòng lặp nested với vòng lặp for trong C như sau:

f

or ( init; condition; increment ) {

for ( init; condition; increment ) {

statement(s);

}

statement(s);

}

 

  • Cú pháp cho câu lệnh vòng lặp nested với vòng lặp while trong ngôn ngữ lập trình C như sau:
while(condition) {

while(condition) {

statement(s);

}

statement(s);

}

 

  • Cú pháp cho câu lệnh lồng nhau do … while trong ngôn ngữ lập trình C như sau:
do {

statement(s);

do {

statement(s);

}while( condition );

}while( condition );

 

Lưu ý cuối cùng về việc lồng vòng lặp là bạn có thể đặt bất kỳ loại vòng lặp nào bên trong loại vòng lặp khác.

5. Câu lệnh điều khiển vòng lặp

C hỗ trợ các câu lệnh điều khiển sau:

  • Chấm dứt vòng lặp hoặc switch tuyên bố và chuyển thực hiện để báo cáo kết quả ngay sau khi vòng lặp hoặc switch.
  • Làm cho vòng lặp bỏ qua phần còn lại của chương trình và ngay lập tức kiểm tra lại tình trạng của nó trước khi lặp lại.
  • Chuyển quyền kiểm soát vào câu lệnh được dán nhãn.

6. Vòng lặp vô hạn

Một vòng lặp trở thành một vòng lặp vô hạn nếu một điều kiện không bao giờ trở thành sai. Các vòng lặp theo truyền thống được sử dụng cho mục đích này, vì không có biểu thức nào trong số ba biểu thức tạo thành vòng lặp for là bắt buộc, bạn có thể tạo vòng lặp vô tận bằng cách để trống biểu thức điều kiện.

#include

int main () {

for( ; ; ) {

printf("This loop will run forever.\n");

}

return 0;

}

Khi biểu thức điều kiện để trống, nó được giả định là đúng. Bạn có thể có một biểu thức khởi tạo và gia tăng, nhưng các lập trình viên C thường sử dụng cấu trúc for (;;) để biểu thị một vòng lặp vô hạn. Bạn có thể chấm dứt vòng lặp vô hạn bằng cách nhấn các phím Ctrl + C.

7. Một số bài tập về vòng lặp trong C

Bài 1:

Viết chương trình nhập số nguyên dương n. Tính S(n)= 1 + (1+2)/2! + (1+2+3)/3! + … + (1+2+3+…+n)/n! (n>0)

Lời giải:

// Tính S(n)= 1 + (1+2)/2! + (1+2+3)/3! + ... + (1+2+3+..+n)/n! (n>0)

===========================================================================


#include <iostream>
using namespace std;

int Nhap()
{
   int x;
   do
   {
      cin >> x;
      if (x < 0)
         cout << "Nhap sai, yeu cau nhap lai!";
   } while (x < 0);
   return x;
}

double Tinh(int n)
{
   float s = 0, t = 0;
   long p = 1;
   for (int i = 1; i <= n; i++)
   {
      t = t + i;
      p = p * i;
      s = s + (double)t / p;
   }
   return s;
}

int main()
{
   int n; 

   cout << "Nhap so nguyen n: ";
   n = Nhap();
   cout << "Ket qua la: "<< Tinh(n) << endl;

   return 0;
}

Bài 2:

Viết chương trình nhập số nguyên dương n. Tính S(n) = 1-2+3-4+5+…+((-1)^(n+1))*n (n>0)

Ví dụ:

Input: 5

Output: 3

Lời Giải:

// Tinh P(n) = 1-2+3-4+5+...+((-1)^(n+1))*n (n>0)

===========================================================================


#include <iostream>
using namespace std;

int Nhap()
{
   int x;
   do
   {
      cin >> x;
      if (x < 0)
         cout << "Nhap sai, yeu cau nhap lai!";
   } while (x < 0);
   return x;
}

long Tinh(int n)
{
   long p = 0;
long tmp = 1;
   for (int i = 1; i <= n; i++)
{
      p += tmp*i;
      tmp *= -1;
}
   return p;
}

int main()
{
   int n; 

   cout << "Nhap so nguyen n: ";
   n = Nhap();
   cout << "Ket qua la: "<< Tinh(n) << endl;

   return 0;
}

 

The post Vòng Lặp Trong C first appeared on Techacademy.

source https://techacademy.edu.vn/vong-lap-trong-c/

Mảng Trong PHP

Mảng là một cấu trúc dữ liệu lưu trữ một hoặc nhiều loại giá trị tương tự trong một giá trị duy nhất. Ví dụ: nếu bạn muốn lưu trữ 100 số thì thay vì xác định 100 biến dễ dàng để xác định một mảng có độ dài 100. Tìm hiểu về Mảng (Array) trong PHP được sử dụng để tạo một mảng. Mảng là một trong những nội dung cơ bản rất quan trọng trong khóa học lập trình PHP, vì thế học viên nên nắm bắt thật chắc về mảng.

mảng php
mảng php

Trong PHP, có ba loại mảng:

  • Mảng được lập chỉ mục – Mảng có chỉ mục số
  • Mảng kết hợp – Mảng với các phím được đặt tên
  • Mảng đa chiều – Mảng chứa một hoặc nhiều mảng

1. Mảng được lập chỉ mục – Mảng có chỉ mục số

Các mảng này có thể lưu trữ số, chuỗi và bất kỳ đối tượng nào nhưng chỉ mục của chúng sẽ được biểu diễn bằng số. Theo chỉ mục mảng mặc định bắt đầu từ số không.

Thí dụ

Sau đây là ví dụ cho thấy cách tạo và truy cập mảng số.

Ở đây chúng ta đã sử dụng hàm array () để tạo mảng. Hàm này được giải thích trong tham chiếu hàm.

 

/* First method to create array. */

$numbers = array( 1, 2, 3, 4, 5);

foreach( $numbers as $value ) {

echo "Value is $value
";

}

/* Second method to create array. */

$numbers[0] = "one";

$numbers[1] = "two";

$numbers[2] = "three";

$numbers[3] = "four";

$numbers[4] = "five";

foreach( $numbers as $value ) {

echo "Value is $value
";

}

?>

 

Điều này sẽ tạo ra kết quả sau:

Mảng được lập chỉ mục - Mảng có chỉ mục số
Mảng được lập chỉ mục – Mảng có chỉ mục số

2. Mảng kết hợp – Mảng với các khóa được đặt tên

Các mảng kết hợp rất giống với mảng số về mặt chức năng nhưng chúng khác nhau về chỉ mục của chúng. Mảng kết hợp sẽ có chỉ mục của chúng dưới dạng chuỗi để bạn có thể thiết lập mối liên kết chặt chẽ giữa khóa và giá trị.

Để lưu trữ tiền lương của nhân viên trong một mảng, một mảng được lập chỉ mục bằng số sẽ không phải là lựa chọn tốt nhất. Thay vào đó, chúng tôi có thể sử dụng tên nhân viên làm khóa trong mảng kết hợp của chúng tôi và giá trị sẽ là mức lương tương ứng của họ.

LƯU Ý – Không giữ mảng kết hợp bên trong báo giá kép trong khi in nếu không nó sẽ không trả về bất kỳ giá trị nào.

Thí dụ:

 

/* First method to associate create array. */

$salaries = array("mohammad" => 2000, "qadir" => 1000, "zara" => 500);

echo "Salary of mohammad is ". $salaries['mohammad'] . "
";

echo "Salary of qadir is ". $salaries['qadir']. "
";

echo "Salary of zara is ". $salaries['zara']. "
";

/* Second method to create array. */

$salaries['mohammad'] = "high";

$salaries['qadir'] = "medium";

$salaries['zara'] = "low";

echo "Salary of mohammad is ". $salaries['mohammad'] . "
";

echo "Salary of qadir is ". $salaries['qadir']. "
";

echo "Salary of zara is ". $salaries['zara']. "
";

?>

 

Điều này sẽ tạo ra kết quả sau:

Mảng kết hợp - Mảng với các phím được đặt tên
Mảng kết hợp – Mảng với các phím được đặt tên

3. Mảng đa chiều – Mảng chứa một hoặc nhiều mảng

Mảng đa chiều - Mảng chứa một hoặc nhiều mảng
Mảng đa chiều – Mảng chứa một hoặc nhiều mảng

Mảng đa chiều mỗi phần tử trong mảng chính cũng có thể là một mảng. Và mỗi phần tử trong mảng phụ có thể là một mảng, v.v. Giá trị trong mảng đa chiều được truy cập bằng nhiều chỉ mục.

Thí dụ:

Trong ví dụ này, chúng ta tạo một mảng hai chiều để lưu trữ các dấu hiệu của ba học sinh trong ba môn học.

Ví dụ này là một mảng kết hợp, bạn có thể tạo mảng số theo cùng một kiểu.

 

$marks = array(

"mohammad" => array (

"physics" => 35,

"maths" => 30,

"chemistry" => 39

),

"qadir" => array (

"physics" => 30,

"maths" => 32,

"chemistry" => 29

),

"zara" => array (

"physics" => 31,

"maths" => 22,

"chemistry" => 39

)

);

/* Accessing multi-dimensional array values */

echo "Marks for mohammad in physics : " ;

echo $marks['mohammad']['physics'] . "
";

echo "Marks for qadir in maths : ";

echo $marks['qadir']['maths'] . "
";

echo "Marks for zara in chemistry : " ;

echo $marks['zara']['chemistry'] . "
";

?>

 

Điều này sẽ tạo ra kết quả sau:

Mảng đa chiều - Mảng chứa một hoặc nhiều mảng (2)
Mảng đa chiều – Mảng chứa một hoặc nhiều mảng (2)

4. Danh sách hàm dùng để xử lý Mảng (Array) trong PHP

Cột PHP chỉ phiên bản PHP sớm nhất mà hỗ trợ hàm đó.

Hàm Miêu tả PHP
Hàm array() Tạo một mảng 3
Hàm array_change_key_case() Trả về một mảng với tất cả key trong dạng chữ hoa hoặc chữ thường 4
Hàm array_chunk() Chia một mảng thành một mảng các mảng 4
Hàm array_combine() Tạo một mảng bởi sử dụng một mảng cho key và mảng khác cho value 5
Hàm array_count_values() Trả về một mảng với số lần xuất hiện mỗi value 4
Hàm array_diff() So sánh các value của mảng, và trả về các sự khác nhau 4
Hàm array_diff_assoc() So sánh key và value của mảng, và trả về sự khác nhau 4
Hàm array_diff_key() So sánh các key của mảng, và trả về các sự khác nhau 5
Hàm array_diff_uassoc() So sánh key và value của mảng, với một hàm kiểm tra bổ sung do người dùng tạo, và trả về các sự khác nhau 5
Hàm array_diff_ukey() So sánh key của mảng, với một hàm kiểm tra bổ sung do người dùng tạo, và trả về các sự khác nhau 5
Hàm array_fill() Điền value vào một mảng 4
Hàm array_fill_keys() Điền value vào một mảng, chỉ rõ các key 5
Hàm array_filter() Lọc các phần tử của một mảng bởi sử dụng một hàm do người dùng tạo 4
Hàm array_flip() Trao đổi tất cả key với value được liên hợp với chúng trong một mảng 4
Hàm array_intersect() So sánh các value trong mảng và trả về các so khớp 4
Hàm array_intersect_assoc() So sánh các key và value trong mảng và trả về các so khớp 4
Hàm array_intersect_key() So sánh các key trong mảng và trả về các so khớp 5
Hàm array_intersect_uassoc() So sánh các key và value trong mảng, với một hàm kiểm tra bổ sung do người dùng tạo và trả về các so khớp 5
Hàm array_intersect_ukey() So sánh các key trong mảng, với một hàm kiểm tra bổ sung do người dùng tạo và trả về các so khớp 5
Hàm array_key_exists() Kiểm tra xem key đã cho có tồn tại trong mảng không 4
Hàm array_keys() Trả về tất cả key của một mảng 4
Hàm array_map() Gửi mỗi value của một mảng tới một hàm do người dùng tạo, mà trả về các value mới 4
Hàm array_merge() Sáp nhập một hoặc nhiều mảng thành một mảng 4
Hàm array_merge_recursive() Sáp nhập một hoặc nhiều mảng thành một mảng 4
Hàm array_multisort() Sắp xếp các mảng đa chiều 4
Hàm array_pad() Chèn số lượng item đã xác định với một value đã xác định vào một mảng 4
Hàm array_pop() Xóa phần tử cuối cùng của một mảng 4
Hàm array_product() Tính toán tích các value trong một mảng 5
Hàm array_push() Chèn một hoặc nhiều phần tử vào phần cuối của một mảng 4
Hàm array_rand() Trả về một hoặc nhiều key ngẫu nhiên từ một mảng 4
Hàm array_reduce() Trả về một mảng ở dạng string, sử dụng hàm do người dùng tạo 4
Hàm array_reverse() Trả về một mảng với thứ tự bị đảo ngược 4
Hàm array_search() Tìm kiếm một mảng cho một value đã cho và trả về key 4
Hàm array_shift() Gỡ bỏ phần tử đầu tiên từ một mảng, và trả về value của phần tử bị gỡ bỏ 4
Hàm array_slice() Trả về các phần đã chọn của một mảng 4
Hàm array_splice() Gỡ bỏ và thay thế các phần tử đã xác định của một mảng 4
Hàm array_sum() Trả về tổng các value trong một mảng 4
Hàm array_udiff() So sánh các value của mảng trong một hàm do người dùng tạo và trả về một mảng 5
Hàm array_udiff_assoc() So sánh các key của mảng, và so sánh các value của mảng trong một hàm do người dùng tạo, và trả về một mảng 5
Hàm array_udiff_uassoc() So sánh các key và value của mảng trong một hàm do người dùng tạo, và trả về một mảng 5
Hàm array_uintersect() So sánh các value của mảng trong một hàm do người dùng tạo, và trả về một mảng 5
Hàm array_uintersect_assoc() So sánh các key của mảng, và so sánh các value của mảng trong một hàm do người dùng tạo, và trả về một mảng 5
Hàm array_uintersect_uassoc() So sánh các value của mảng trong một hàm do người dùng tạo, và trả về một mảng 5
Hàm array_unique() Gỡ bỏ bản sao các value từ một mảng 4
Hàm array_unshift() Thêm một hoặc nhiều phần tử tới phần đầu của mảng 4
Hàm array_values() Trả về tất cả value của một mảng 4
Hàm array_walk() Áp dụng một hàm do người dùng tạo tới mỗi thành viên của một mảng 3
Hàm array_walk_recursive() Áp dụng một hàm một cách đệ qui do người dùng tạo tới mỗi thành viên của một mảng 5
Hàm arsort() Sắp xếp một mảng với thứ tự đảo ngược và duy trì liên kết chỉ mục 3
Hàm asort() Sắp xếp một mảng và duy trì liên kết chỉ mục 3
Hàm compact() Tạo một mảng chứa các biến và các value của chúng 4
Hàm count() Đếm các phần tử trong một mảng, hoặc các thuộc tính trong một đối tượng 3
Hàm current() Trả về phần tử hiện tại trong một mảng 3
Hàm each() Trả về cặp key và value hiện tại từ một mảng 3
Hàm end() Thiết lập con trỏ nội bộ của một mảng tới phần tử cuối cùng của nó 3
Hàm extract() Nhập các biến vào trong bảng biểu tượng hiện tại từ một mảng 3
Hàm in_array() Kiểm tra nếu một value đã xác định là tồn tại trong một mảng 4
Hàm key() Lấy một key từ một mảng 3
Hàm krsort() Sắp xếp một mảng bằng các key theo thứ tự đảo ngược 3
Hàm ksort() Sắp xếp một mảng bằng các key 3
Hàm list() Gán các biến như nếu chúng là một mảng 3
Hàm natcasesort() Sắp xếp một mảng bởi sử dụng một thuật toán “natural order” không phân biệt kiểu chữ 4
Hàm natsort() Sắp xếp một mảng bởi sử dụng một thuật toán “natural order” 4
Hàm next() Tăng con trỏ mảng nội bộ hay trỏ tới phần tử kế tiếp của một mảng 3
Hàm pos() Alias của hàm current() 3
Hàm prev() Giảm con trỏ mảng nội bộ hay trỏ tới phần tử ở trước của một mảng 3
Hàm range() Tạo một mảng chứa một phạm vi phần tử 3
Hàm reset() Thiết lập con trỏ nội bộ của mảng về phần tử đầu tiên của nó 3
Hàm rsort() Sắp xếp một mảng theo thứ tự đảo ngược 3
Hàm shuffle() Xáo trộn một mảng 3
Hàm sizeof() Alias của hàm count() 3
Hàm sort() Sắp xếp một mảng 3
Hàm uasort() Sắp xếp một mảng với một hàm do người dùng tạo và duy trì liên kết chỉ mục 3
Hàm uksort() Sắp xếp một mảng bằng các key bởi sử dụng một hàm do người dùng tạo 3
Hàm usort() Sắp xếp một mảng bằng các value bởi sử dụng một hàm do người dùng tạo 3

5. Thêm Phần Tử Vào Mảng

Thêm phần tử vào cuối mảng

<?php
$list_odd = array(1,3,5,7);
// Thêm phần tử giá trị 9 vào mảng có chỉ số key là số nguyên cao nhất.
$list_odd[] = 9;
?>

Khi thực hiện cấu trúc dấu ngoặc vuông rỗng [] để thêm phần từ thì phần tử được thêm vào mảng có chỉ số lớn nhất cộng thêm một giá trị.

Thêm phần tử bởi một key(chỉ mục) xác định trước

<?php
$student = array(
    '08T1016' => "Phan Văn Cương",
    '08T1013' => "Nguyễn Văn Hoàng",
    '08T1015' => "Bùi Việt Đức",
);
// Thêm phần tử có key xác định vào mảng $student
$student['08T1019']= "Trần Thị Hằng";
?>

6. Cập Nhật Giá Trị Phần Tử Của Mảng

Để cập nhật giá trị của mảng chúng ta cần xác định key của phần tử cần cập nhật và thực hiện thao tác gán lại giá trị.

<?php
$list_color = array('Green', 'Red', 'Blue');
// Cập nhật giá trị Green bằng Back
$list_color[0] = Black;
?>

7. Xóa Một Phần Tử Trong Mảng

Để xóa phần tử của mảng ta sử dụng hàm unset()

<?php
$student = array(
    '08T1016' => "Phan Văn Cương",
    '08T1013' => "Nguyễn Văn Hoàng",
    '08T1015' => "Bùi Việt Đức",
);
// Xóa Bùi Việt Đức ra khỏi mảng $student
unset($student['08T1015']);
print_r($student);
?>

Xóa tất cả các phần tử của mảng

<?php
unset($student);
?>

 

The post Mảng Trong PHP first appeared on Techacademy.

source https://techacademy.edu.vn/mang-trong-php/

Typedef Trong C

Ngôn ngữ lập trình C cung cấp một từ khóa được gọi là typedef, bạn có thể sử dụng để cung cấp kiểu cho một loại tên mới.

Typedef trong c
Typedef trong c

Dưới đây là ví dụ để xác định BYTE cho kiểu dữ liệu unsigned char

typedef unsigned char BYTE;

Sau định nghĩa này, định danh BYTE có thể được sử dụng như một từ viết tắt cho loại unsigned char, ví dụ:

BYTE b1, b2;

Theo quy ước, chữ hoa được sử dụng cho các định nghĩa để nhắc nhở người dùng rằng tên thực sự là một từ viết tắt tượng trưng, ​​nhưng bạn có thể sử dụng chữ thường, như sau:

typedef unsigned char byte;

Bạn có thể sử dụng typedef để đặt tên cho kiểu dữ liệu do người dùng xác định.

Ví dụ, bạn có thể sử dụng typedef với cấu trúc để định nghĩa một kiểu dữ liệu mới và sau đó sử dụng kiểu dữ liệu đó để định nghĩa các biến cấu trúc trực tiếp như sau:

#include

#include

typedef struct Books {

char title[50];

char author[50];

char subject[100];

int book_id;

} Book;

int main( ) {

Book book;

strcpy( book.title, "C Programming");

strcpy( book.author, "Nuha Ali");

strcpy( book.subject, "C Programming Tutorial");

book.book_id = 6495407;

printf( "Book title : %s\n", book.title);

printf( "Book author : %s\n", book.author);

printf( "Book subject : %s\n", book.subject);

printf( "Book book_id : %d\n", book.book_id);

return 0;

}

Khi mã trên được biên dịch và thực hiện, nó tạo ra kết quả sau:

Book title : C Programming

Book author : Nuha Ali

Book subject : C Programming Tutorial

Book book_id : 6495407

1. Typedef và  #define trong C

#define là chỉ thị C cũng được sử dụng để xác định bí danh cho các loại dữ liệu khác nhau tương tự typedef nhưng với những khác biệt sau đây:

typedef được giới hạn chỉ cung cấp các tên viết tắt cho các kiểu, trong khi đó #define có thể được sử dụng để định nghĩa tên hiệu cho cả các giá trị, như bạn có thể định nghĩa 1 là ONE, ….

Typedef được thực hiện bởi trình biên dịch trong khi các câu lệnh #define được xử lý bởi bộ xử lý trước.

Ví dụ sau cho thấy cách sử dụng #define trong một chương trình:

#include

#define TRUE 1

#define FALSE 0

int main( ) {

printf( "Value of TRUE : %d\n", TRUE);

printf( "Value of FALSE : %d\n", FALSE);

return 0;

}

Khi mã trên được biên dịch và thực hiện, nó tạo ra kết quả sau:

Value of TRUE : 1

Value of FALSE : 0

The post Typedef Trong C first appeared on Techacademy.

source https://techacademy.edu.vn/typedef-trong-c/

Kiểm Tra Số Nguyên Tố Trong C

Trong chương trình sau, chúng tôi đang kiểm tra xem số nguyên đầu vào là dương hay âm nó được gọi là kiểm tra số nguyên tố trong C. Nếu số đầu vào lớn hơn không thì số dương của nó sẽ là số âm. Nếu con số bằng không thì nó không phải là số dương hay âm. Cùng một logic chúng ta xét trong chương trình C dưới đây.

1.Chương trình C để tìm kiểm tra số đã nhập có phải là số nguyên tố

#include <iostream>
using namespace std;

int main() {
    int i, n;
    bool isPrime = true;

    cout << "Enter a positive integer: ";
    cin >> n;

    // 0 and 1 are not prime numbers
    if (n == 0 || n == 1) {
        isPrime = false;
    }
    else {
        for (i = 2; i <= n / 2; ++i) {
            if (n % i == 0) {
                isPrime = false;
                break;
            }
        }
    }
    if (isPrime)
        cout << n << " is a prime number";
    else
        cout << n << " is not a prime number";

    return 0;
}

Biên dịch và chạy chương trình C trên sẽ cho kết quả:

Enter a positive integer: 29
29 is a prime number.

2. Chương Trình Đếm Số Chữ Số Trong Một Số Nguyên

#include

int main()

{

long long n;

int count = 0;

printf("Enter an integer: ");

scanf("%lld", &n);

while(n != 0)

{

// n = n/10

n /= 10;

++count;

}

printf("Number of digits: %d", count);

}

 

Đầu ra

Nhập số nguyên: 3452

Số chữ số: 4

Số nguyên được nhập bởi người dùng được lưu trữ trong biến n . Sau đó vòng lặp while được lặp lại cho đến khi biểu thức kiểm tra n != 0được đánh giá là 0 (false).

Sau lần lặp đầu tiên, giá trị của n sẽ là 345 và số đếm được tăng lên 1.

Sau lần lặp thứ hai, giá trị của n sẽ là 34 và số đếm được tăng lên 2.

Sau lần lặp thứ ba, giá trị của n sẽ là 3 và số đếm được tăng lên 3.

Sau lần lặp thứ tư, giá trị của n sẽ là 0 và số đếm được tăng lên đến 4.

Sau đó, biểu thức kiểm tra được đánh giá là false và vòng lặp kết thúc.

3. Chương Trình C Kiểm Tra Số Nguyên Dương Hay Âm

Trong chương trình sau, chúng tôi đang kiểm tra xem số nguyên đầu vào là dương hay âm. Nếu số đầu vào lớn hơn 0 thì số dương của nó sẽ là số âm. Nếu con số bằng không thì nó không phải là số dương hay âm.

* / #include

void main () { int num ;

printf ( "Nhập số: \ n" );

scanf ( "% d" , & num ); if ( num > 0 )

printf ( "% d là số dương \ n" , num ); else if ( num < 0 )

printf ( "% d là số âm \ n" , num ); else

printf ( "0 không dương và âm" ); }

Đầu ra 1:

Nhập một số : 0 là không âm và dương

Đầu ra 2:

Nhập một số : – 3 là số âm

Đầu ra 3:

Nhập một số : 100 là số dương

The post Kiểm Tra Số Nguyên Tố Trong C first appeared on Techacademy.

source https://techacademy.edu.vn/kiem-tra-so-nguyen-to-trong-c/

Tính giai thừa trong c

Làm thế nào để bạn thực hiện cách tính giai thừa trong C? Trong lập trinh C ta có thể thực hiên tính giai thừa trong c theo hai cách chính sau: sử dụng vòng lặp và sử dụng hàm đệ qui và tạo hàm. Hãy cùng tìm hiểu nội dung của từng cách được đề cập đến trong bài viết dưới đây nhé!

tính giai thừa trong c (1)
tính giai thừa trong c (1)

1. Giai thừa là gì?

Chương trình giai thừa trong ngôn ngữ lập trình C: Ba phương pháp để tìm giai thừa, sử dụng vòng lặp for, sử dụng đệ quy và bằng cách tạo hàm. Như các bạn đã biết, trong toán học giai thừa được biểu diễn bằng cách sử dụng kí hiệu: ‘!’. Ví dụ vậy năm giai thừa sẽ được viết là (5!), N giai thừa là (n!). Ngoài ra, n! = n * (n-1) * (n-2) * (n-3) … 3.2.1 và giai thừa 0 được định nghĩa là một ví dụ, 0! = 1.

Giai thừa của một số ‘n’ là sản phẩm của tất cả các số từ 1 đến số ‘n’

nó được ký hiệu bằng n !. Ví dụ n = 5 thì giai thừa 5 sẽ là 1 * 2 * 3 * 4 * 5 = 120. 5! = 120

2. Các cách tính giai thừa trong lập trình C

Bài tập: Viết một chương trình C để tính giai thừa của một số bất kỳ được nhập từ người dùng

Để tính giai thừa trong C có một trong 3 phương pháp sau:

2.1 Tính giai thừa trong C sử dụng vòng lặp for

Ví dụ:

#include

int main()

{

   int c, n, fact = 1;

   printf("nhap so de tinh giai thua\n");

   scanf("%d", &n);

   for (c = 1; c <= n; c++) fact = fact * c;      

   printf("giai thua cua %d = %d\n", n, fact);

   return 0;
}

Kết quả hiển thị:

Nhap so de tinh giai thua 6

Giai thua cua 6 = 720

2.2 Viết hàm tính giai thừa sử dụng hàm đệ quy

Các bước thực hiện:

Khai báo nguyên mẫu cho hàm có tên rec () được sử dụng để tính toán giá trị giai thừa.

Khai báo hai số nguyên a và thực tế.

Nhắc thông báo để nhập bất kỳ số nào để tính giai thừa.

Cho phép người dùng nhập số bằng scanf ().

Sử dụng hàm rec () để tính giá trị giai thừa bằng phương thức đệ quy và trả về giá trị đó.

In giá trị trả về cho màn hình bằng lệnh printf ().

Ví dụ:

#include

long tinhGiaithua(int n) {

   if (n > 0) {

      return n * tinhGiaithua(n - 1);

   }
   else {

      return 1;

   }

}

/**

* Ham main

*/

int main() {

   int a = 5;

   int b = 0;

   int c = 10;

   printf("Giai thua cua %d la: %d \n", a, tinhGiaithua(a));

   printf("Giai thua cua %d la: %d \n", b, tinhGiaithua(b));

   printf("Giai thua cua %d la: %d", c, tinhGiaithua(c));

}

Kết quả hiển thị:

tính giai thừa trong c (2)
tính giai thừa trong c (2)

Phép đệ quy là một kỹ thuật trong đó một hàm gọi chính nó, ví dụ, trong hàm giai thừa trên mã đang gọi chính nó. Để giải quyết vấn đề bằng cách sử dụng đệ quy, trước tiên bạn phải thể hiện giải pháp của nó ở dạng đệ quy.

2.3 Viết hàm tính giai thừa không sử dụng đệ quy

Các bước thực hiện:

Khai báo nguyên mẫu cho hàm có tên factorial () được sử dụng để tính toán giá trị giai thừa.

Khai báo hai số nguyên a và thực tế.

Nhắc thông báo để nhập bất kỳ số nào để tính giai thừa.

Cho phép người dùng nhập số bằng scanf ().

Sử dụng hàm factorial () để tính giá trị giai thừa và trả về giá trị đó.

In giá trị trả về cho màn hình bằng lệnh printf ().

Ví dụ: chương trình tính giai thừa trong C không sử dụng phương pháp đệ quy:

#include

long tinhGiaithua(int n) {

   int i;

   long giai_thua = 1;

   if (n == 0 || n == 1) {

      return giai_thua;

   }
   else {

      for (i = 2; i <= n; i++) {

         giai_thua *= i;

      }

      return giai_thua;

   }

}

/**

* Ham main

*/

int main() {

   int a = 5;

   int b = 0;

   int c = 10;

   printf("Giai thua cua %d la: %d \n", a, tinhGiaithua(a));

   printf("Giai thua cua %d la: %d \n", b, tinhGiaithua(b));

   printf("Giai thua cua %d la: %d", c, tinhGiaithua(c));

}

 

Kết quả:

tính giai thừa trong c (3)
tính giai thừa trong c (3)

The post Tính giai thừa trong c first appeared on Techacademy.

source https://techacademy.edu.vn/tinh-giai-thua-trong-c/

Hàm Explode Trong PHP

Explode là một hàm dựng sẵn trong PHP được sử dụng để tách một chuỗi sang một mảng. Hàm explode tách một chuỗi dựa trên một chuỗi phân cách, tức là nó tách chuỗi ở bất cứ nơi nào ký tự delimeter xảy ra. Hàm này trả về một mảng chứa các chuỗi được tạo thành bằng cách tách chuỗi gốc. Bài viết dưới đây sẽ hướng dẫn sử dụng hàm Explode trong PHP.

hàm explode trong php 1
hàm explode trong php 1

1. Giới thiệu về hàm explode trong PHP

Hàm explode trong PHP cho phép bạn chuyển một chuỗi sang một mảng dựa trên các ký tự phân cách. Trong thực tế, xử lý chuỗi là rất cần thiết và sử dụng khá thường xuyên, ví dụ khi bạn muốn tách họ và tên của một người dùng, tách từng từ khóa trong một danh sách từ khóa có phân cách bằng một ký tự nào đó…

Cú pháp của hàm explode:

explode(separator,string,limit)

Trong đó:

separator: là chuỗi ranh giới bao gồm ký tự hoặc chuỗi ký tự phân cách sử dụng để phân biệt các phần tử trong chuỗi.

string: Chuỗi đầu vào, chuỗi cần tách thành mảng.

limit: xác định số phần tử của mảng đầu ra.

Giá trị trả về: Mảng kí tự

Nếu limit là số dương, mảng sẽ trả về tối đa limit phần tử

Nếu limit tham số là số âm, mảng trả về tất cả các thành phần ngoại trừ tham số cuối cùng.

Nếu limit tham số bằng không, mảng trả về 1 phần tử

Chú ý: Hàm explode được giới thiệu từ phiên bản PHP 4, tham số limit được thêm vào từ PHP 4.1 và hỗ trợ giá trị âm từ PHP 5.1.0.

2. Các ví dụ thực tế sử dụng hàm explode

Dưới đây là một số ví dụ sử dụng hàm explode

Ví dụ 1:

Sử dụng tham số giới hạn để trả về một số phần tử mảng:

$str = 'one,two,three,four';

// zero limit

print_r(explode(',',$str,0));

print "
";

// positive limit

print_r(explode(',',$str,2));

print "
";

// negative limit

print_r(explode(',',$str,-1));

?>

 

Kết quả:

ham-explode-trong-php-2
ham-explode-trong-php-2

Ví dụ 2:

/*

A string that doesn’t contain the delimiter will simply

return a one-length array of the original string.

*/

$input1 = "hello";

$input2 = "hello,there";

$input3 = ',';

var_dump( explode( ',', $input1 ) );

var_dump( explode( ',', $input2 ) );

var_dump( explode( ',', $input3 ) );

?>

 

Kết quả:

ham-explode-trong-php-3
ham-explode-trong-php-3

Ví dụ 3:

// original string

$OriginalString = "Hello, How can we help you?";

// Without optional parameter NoOfElements

print_r(explode(" ",$OriginalString));

// with positive NoOfElements

print_r(explode(" ",$OriginalString,3));

// with negative NoOfElements

print_r(explode(" ",$OriginalString,-1));

?>

 

Kết quả:

ham-explode-trong-php-4
ham-explode-trong-php-4

Qua bài viết hướng dẫn sử dụng hàm Explode trong PHP bạn đã nắm được cách áp dụng explode một cách thành thục khi lập trình PHP. Sử dụng explode giúp giảm thời gian viết code, các xử lý chuỗi cũng đơn giản hơn khi kết hợp với các vòng lặp trong PHP.

The post Hàm Explode Trong PHP first appeared on Techacademy.

source https://techacademy.edu.vn/ham-explode-trong-php/

Nhân 2 Ma Trận C++, Viết Chương Trình Như Thế Nào ?

Phép nhân ma trận trong C++:

Viết một chương trình C để nhập hai ma trận và tính tích của hai ma trận đó được người dùng nhập vào. Người dùng sẽ nhập thứ tự của một ma trận và sau đó là các phần tử của nó và tương tự nhập vào ma trận thứ hai. Nếu các thứ tự của ma trận được thực hiện đúng như vậy mà chúng không thể được nhân với nhau, thì sau đó một thông báo lỗi được hiển thị.

nhân 2 ma trận c++
nhân 2 ma trận c++

1. Nhân ma trận trong C++ là gì?

Một trong những chương trình rất phổ biến trong lập trình C là phép nhân ma trận. Phương pháp thủ công của phép nhân ma trận trong C liên quan đến một số lượng lớn các phép tính đặc biệt khi nói đến bậc cao hơn của ma trận, trong khi một chương trình trong C có thể thực hiện các phép toán với các mã ngắn, đơn giản và dễ hiểu.

Phép nhân ma trận trong C có thể được thực hiện theo hai cách: không sử dụng hàm và bằng cách truyền ma trận vào các hàm. Trong bài này, chúng ta sẽ thảo luận về mã nguồn cho cả hai phương thức này với các kết quả đầu ra mẫu cho mỗi phương thức.

Các mã nguồn của hai chương trình này cho phép nhân ma trận trong lập trình C sẽ được biên dịch trong Code :: Blocks . Chạy chúng trên Turbo C và các nền tảng khác có thể yêu cầu một vài sửa đổi đối với mã.

Nhân 2 ma trận là một trong những nội dung căn bản trong khóa học lập trình C/C++ mà học viên cần nắm kiến thức thật vững.

2. Giới thiệu về nhân 2 ma trận c++

Dưới đây tôi đã trình bày ba hình ảnh cho thấy cách nhân ma trận diễn ra. Ý tưởng tương tự như thể hiện trong những hình ảnh này đã được theo sau theo thứ tự trong mã nguồn chương trình cho phép nhân ma trận trong C.

Xem xét hai ma trận A và B của đơn hàng 3 × 3 như hình dưới đây. Hãy biểu thị các phần tử của ma trận A bằng aij và các phần tử của ma trận B bằng bij như hình dưới đây. Các aij và bij này được yêu cầu làm đầu vào dưới dạng mảng trong chương trình C cho phép nhân Ma trận.

Giới thiệu về phép nhân ma trận (1)
Giới thiệu về phép nhân ma trận (1)

Phép nhân ma trận trong C – hai ma trận A & B

Hãy để ma trận kết quả khi nhân của A và B là X với các phần tử biểu thị bằng x ij như được hiển thị.

Giới thiệu về phép nhân ma trận (2)
Giới thiệu về phép nhân ma trận (2)

Phép nhân ma trận trong ma trận kết quả C X

Phép nhân ma trận diễn ra như hình dưới đây, và thủ tục tương tự này được sử dụng cho phép nhân các ma trận sử dụng C.

Giới thiệu về phép nhân ma trận (3)
Giới thiệu về phép nhân ma trận (3)

Phép nhân ma trận trong phép nhân C – AxB

Giải quyết thủ tục sẽ yêu cầu chín phép tính riêng biệt để thu được từng phần tử của ma trận cuối cùng X. Chín phép tính riêng biệt này đã được thực hiện bằng cách sử dụng rất ít dòng mã liên quan đến vòng lặp và chức năng trong chương trình C này cho phép nhân ma trận.

3. Lập trình nhân 2 ma trận trong C++

Đề nhân 2 ma trận trong C++ có thể thực hiện bằng 2 cách: không sử dụng và truyền các mảng tới hàm. Dưới đây là 2 cách lập trình nhân 2 ma trận trong C++

Cách 1: Nhân 2 ma trận C++ mà không sử dụng hàm

#include<stdio.h>
 
int main()
{
    int a[10][10],b[10][10],result[10][10],m,n,p,q,i,j,k;
    
    //get the nuumber of rows/columns of first matrix
    printf("Enter rows and columns of first matrix:");
    scanf("%d%d",&m,&n);
    
    //get the nuumber of rows/columns of second matrix
    printf("Enter rows and columns of second matrix:");
    scanf("%d%d",&p,&q);
    
    //check if rows of A qual to columns of B
    if(n==p)
    {
        printf("\nEnter first matrix:\n");
        
        //fetch the first matrix data from user and save in array a[10][10] declared above
        for(i=0;i<m;++i)
        {
            for(j=0;j<n;++j)
            {
                scanf("%d",&a[i][j]);
            }
        }
        
        printf("\nEnter second matrix:\n");
        
        //fetch the second matrix data from user and save in array b[10][10] 
        for(i=0;i<p;++i)
        {
            for(j=0;j<q;++j)
            {
                scanf("%d",&b[i][j]);
                
            }
        }
        
        printf("\nThe multiplied matrix result is:\n");
        
        //multiply the matrix and save it in result[][] array & print it
        for(i=0;i<m;++i)
        {
            for(j=0;j<q;++j)
            {
                 result[i][j]=0;
                for(k=0;k<n;++k)
                    result[i][j]=result[i][j]+(a[i][k]*b[k][j]);
                        printf("%d ",result[i][j]);
                       
            }
            
            printf("\n");
        }
    }
    else
    {
        printf("\n Matrix multiplication can't be done for these rows/columns");
    }
 
    return 0;
}

Chạy chương trình C++ trên sẽ cho kết quả như hình sau:

Enter rows and columns of first matrix:3                                                                                      
3                                                                                                                             
Enter rows and columns of second matrix:3                                                                                     
3                                                                                                                             
                                                                                                                              
Enter first matrix:                                                                                                           
11                                                                                                                            
22  
33                                                                                                                            
44                                                                                                                            
55                                                                                                                            
66                                                                                                                            
77                                                                                                                            
88                                                                                                                            
99                                                                                                                            
                                                                                                                              
Enter second matrix:                                                                                                          
11                                                                                                                            
22                                                                                                                            
33                                                                                                                            
44                                                                                                                            
55                                                                                                                            
66                                                                                                                            
77                                                                                                                            
88                                                                                                                            
99                                                                                                                            
                                                                                                                              
The multiplied matrix result is:                                                                                              
3630 4356 5082                                                                                                                
7986 9801 11616                                                                                                               
12342 15246 18150

 

Cách 2: Nhân 2 ma trận C++ bằng cách dùng con trỏ và hàm

#include<stdio.h>

#define ROW 3
#define COL 3

int main()
{
    int First[3][3],Second[3][3],Result[3][3];
    
    int m1,n1,m2,n2,i,j;
   

    printf("Enter no of row and column for 1st matrix\n");
    scanf("%d%d",&m1,&n1);

    printf("Enter no of row and column for 2nd matrix\n");
    scanf("%d%d",&m2,&n2);
     
     //check if multiplication is possible, 1st matrix rows must be equal to 
     //Second matrix columns
    if(n1==m2)
    {
        printf("Enter First matrix\n");
        matrixInput(First);
       
        printf("\nEnter Second matrix\n");
        matrixInput(Second);

         
        matrixMultiply(First,Second,Result);

        printf("Product of entered matrices :-\n");

        //print the resultant matrices
        for(i=0;i<m1;i++)
        {
            for(j=0;j<n2;j++)
                printf("%d\t",*(*(Result + i) + j));
            printf("\n");
        }


    }
    else
    {
       printf("Sorry ! Multiplication is not possible");
    }
    return 0;
}

//Get matrix data 
void matrixInput(int mat[][COL])
{
    int row, col;

    for (row = 0; row < ROW; row++)
    {
        for (col = 0; col < COL; col++)
        {
            scanf("%d", (*(mat + row) + col));
        }
    }
}


//Function to multiply Matrices mat1 * mat2 = res
void matrixMultiply(int mat1[][COL], int mat2[][COL], int res[][COL])
{
    int row, col, i;
    int sum;


    for (row = 0; row < ROW; row++)
    {
        for (col = 0; col < COL; col++)
        {
            sum = 0;
            // find the sum of product of each elements of row for first matirx 
            // and columsn of second
            for (i = 0; i < COL; i++)
            {
                sum += (*(*(mat1 + row) + i)) * (*(*(mat2 + i) + col));
            }


           //save sum in resultant matrix 
            *(*(res + row) + col) = sum;
        }
    }
}

Chạy chương trình C++ trên sẽ cho kết quả như hình sau:

Enter no of row and column for 1st matrix  
3 3                                                
Enter no of row and column for 2nd matrix                    
3 3                                                 
Enter First matrix                                                                                                
10 20 30                                                                     
40 50 60                                                      
70 80 90                                                                    
                                                                                        
Enter Second matrix                                                  
10 20 30                                                                                   
40 50 60                                                                    
70 80 90                                                                                         
Product of entered matrices :                                                                              
3000    3600    4200                                
6600    8100    9600                                           
10200   12600   15000

Các hoạt động liên quan đến vòng lặp và tính toán trong chương trình này là tương tự như cách nhân 2 ma trận không sử dụng hàm. Sự khác biệt duy nhất là chương trình phép nhân ma trận này trong C sử dụng các hàm để truyền các mảng ma trận. Có ba hàm do người dùng định nghĩa riêng biệt trong chương trình này để đọc dữ liệu, thao tác nhân ma trận phôi và hiển thị ma trận kết quả.

Cả hai mã nguồn này đều không có lỗi và đã được thử nghiệm trên Code :: Blocks với các đầu vào như được hiển thị trong màn hình đầu ra. Các bạn nên lập trình nhân 2 ma trận sử dụng các hàm và con trỏ.

The post Nhân 2 Ma Trận C++, Viết Chương Trình Như Thế Nào ? first appeared on Techacademy.

source https://techacademy.edu.vn/nhan-2-ma-tran-c/