Lập trình C: Phép toán số học


Đăng ký nhận thông báo về những video mới nhất

Ngôn ngữ lập trình C cung cấp cho ta bốn loại phép toán cơ bản, những loại phép toán này gồm Số học (Arithmetic), Quan hệ (Relational) hay còn gọi là phép toán so sánh, Luận lý (Logical), và phép toán Luận lý nhị phân (Bitwise).

Phép toán số học

Các phép toán số học kết hợp với các số và ký tự sẽ tạo lên biểu thức số học. C hỗ trợ các phép toán số học được trình bày sau đây.

1. Cộng (+)

Phép Cộng (Addition) dùng để cộng hai số với nhau. Đây là phép toán hai ngôi, tức là để thực hiện phép cộng phải có sự tham gia của hai toán hạng. Ví dụ:

4+5 (kết quả là 9)

2. Trừ (-)

Phép Trừ (Subtraction) dùng để trừ hai số với nhau. Phép Trừ cũng là phép toán hai ngôi. Ví dụ:

4-5 (kết quả là -1)

3. Nhân (*)

Phép Nhân (Multiplication) dùng để nhân hai số với nhau. Phép Nhân là phép toán hai ngôi. Ví dụ:

4*5 (kết quả là 20)

4. Chia nguyên (/)

Phép Chia nguyên (Division) dùng để chia hai số cho nhau. Phép / là phép toán hai ngôi. Nếu tử số và mẫu số đều là số nguyên thì kết quả của phép chia là phần nguyên của phép chia (vì vậy nên gọi là phép chia nguyên). Ví dụ:

4/5 cho kết quả là 0, vì 4 và 5 là số nguyên, mà phần nguyên của 4 chia cho 5 là 0 (dư 4).
Nhưng nếu 4.0/5 hoặc 4/5.0 hoặc 4.0/5.0 thì kết quả lại là 0.8, vì lúc này 4.0 và 5.0 được hiểu là các số thực.

Lưu ý: Nếu mẫu số bằng 0 thì chương trình sẽ phát sinh cảnh báo khi biên dịch.

5. Chia dư (%)

Phép Chia dư (Divided surplus) dùng để lấy phần dư của phép chia hai số cho nhau. Phép % là phép toán hai ngôi. Lưu ý rằng tử và mẫu số bắt buộc phải là số nguyên, nếu không trình dịch sẽ báo lỗi. Ví dụ:

4%5 cho kết quả là 4 (4 chia 5 được 0 dư 4).

6. Tăng (++)

Phép Tăng (Increase) dùng để tăng giá trị lưu trong một biến số lên 1 đơn vị. Phép ++ là phép toán một ngôi. Nếu đặt phép ++ trước tên biến thì giá trị lưu trong biến đó sẽ tăng lên ngay lập tức. Nhưng nếu đặt phép ++ sau tên biến thì giá trị lưu trong biến đó sẽ tăng lên sau khi kết thúc câu lệnh chứa tên biến. Ví dụ:

int n=5, m=5;
printf("n=%d",++n); //sẽ in ra: n=6
printf("m=%d",m++); //sẽ in ra: m=5, kết thúc câu lệnh thì giá trị lưu trong biến m=6

7. Giảm (--)

Phép Giảm (Decrease) dùng để giảm giá trị lưu trong một biến số đi 1 đơn vị. Phép -- là phép toán một ngôi. Nếu đặt phép -- trước tên biến thì giá trị lưu trong biến đó sẽ giảm đi ngay lập tức. Nhưng nếu đặt phép -- sau tên biến thì giá trị lưu trong biến đó sẽ giảm đi sau khi kết thúc câu lệnh chứa tên biến. Ví dụ:

int n=5, m=5;
printf("n=%d",--n); //sẽ in ra: n=4
printf("m=%d",m--); //sẽ in ra: m=5, kết thúc câu lệnh thì giá trị lưu trong biến m=4

8. Đảo dấu (-)

Phép Đảo dấu dùng để chuyển dấu giá trị của môt số từ dương (+) sang âm (-) hoặc ngược lại. Phép Đảo dấu là phép toán một ngôi. Ví dụ:

int n=-5;
int m=-n;
printf("m=%d",m); //sẽ in ra: m=5

9. Gán (Assignment)

Ký hiệu: =

Phép toán này dùng để gán giá trị cho một biến. Ðây là toán tử thông dụng nhất cho mọi ngôn ngữ và mọi người đều biết. Trong C, toán tử gán có thể được dùng cho bất kỳ biểu thức C hợp lệ nào.

Bạn cần phải tuần theo quy tắc gán là vế phải được gán cho vế trái. Dạng thức chung cho toán tử gán là:

Tên_biến = Giá_trị;

Giá_trị ở đây có thể là một hằng giá trị, giá trị của một biến, giá trị của một biểu thức hoặc giá trị trả về của một lời gọi hàm. Ví dụ:

int n=5;
float m;
m=10; //gán hằng số nguyên cho biến
m=1.5; //gán hằng số thực cho biến
m=n; //gán giá trị chứa trong biến n cho m (gán được vì n có kiểu thấp hơn m, xem thêm phần Chuyển đổi kiểu)
m=10+5; //gán giá trị của biểu thức cho biến (m sẽ nhận giá trị 15)
m=tinhTong(); //gán giá trị trả về của hàm cho biến

Lưu ý:

+ Giá_trị phải có cùng kiểu hoặc có kiểu thấp hơn Tên_biến.

+ Vế trái phép gán chỉ có thể là một biến.

Gán liên tiếp:

Nhiều biến có thể được gán cùng một giá trị trong một câu lệnh đơn. Việc này thực hiện qua cú pháp gán liên tiếp, ví dụ như nếu ta có câu lệnh a = b = c =10;, thì có nghĩa là gán giá trị 10 cho cả ba biến a, b và c. Tuy nhiên, cần lưu ý là việc này không thể thực hiện khi khai báo biến. Chẳng hạn như nếu bạn thực hiện câu lệnh int a = int b = int c= 0;, thì trình dịch sẽ phát sinh lỗi vì sai cú pháp.

Gán rút gọn:

Giả sử ta có hai biến n=5 và m=10. Khi đó, nếu có phép toán sau xảy ra n = n + m;, thì bạn có thể viết ngắn gọn hơn thành n += m;. Tương tự, ta cũng có:

n -= m;  //n=n-m;
n *= m;  //n=n*m;
n /=m;  //n=n/m;
n %=m;  //n=n%m;
...

Bài tập áp dụng:

Làm Bài tập 2 và 4 của link bài tập sau: https://v1study.com/c-bai-tap-co-ban-a477.html


Nếu bạn có điều thắc mắc, bạn hãy comment cho V1Study để được giải đáp.
Bài viết này được chia sẻ bởi LongDT. Nếu bạn muốn chia sẻ bài viết, bạn hãy Đăng ký làm thành viên!
« Prev
Next »
Copied !!!