Chuyển đổi kiểu giá trị:Việc chuyển đổi kiểu giá trị thường diễn ra một cách tự động trong hai trường hợp: - Khi biểu thức gồm các toán hạng khác kiểu - Khi gán một giá trị kiểu này cho
Trang 1CHƯƠNG IV
BIỂU THỨC
I Phép toán số học:
Các phép toán hai ngôi số học là:
+
-* /
%
Cộng Trừ Nhân Chia Lấy phần dư
a+b a-b a*b a/b a%b
Trang 2II Phép toán quan hệ và Logic
>
>=
<
<=
= =
!=
Lớn hơn Lớn hơn hoặc bằng
Nhỏ hơn Nhỏ hơn hoặc bằng
Bằng Khác
a>b a>=b a<b a<=b a= =b a!=b
Bốn phép toán quan hệ đầu có độ ưu tiên như nhau, hai phép sau có cùng số thứ tự ưu tiên nhưng lại thấp hơn 4 phép đầu Tuy nhiên các phép quan hệ có độ
ưu tiên thấp hơn các phép toán số học.
Trang 3Phép toán logic:
Trong C sử dụng ba phép toán logic:
- Phép phủ định một ngôi !
- Phép toán và &&
- Phép toán hoặc ||
Tức là:
Khác không Bằng không
0 1
Trang 4Ví dụ:
3>7 có giá trị là 0
7>3 có giá trị là 1
3 && 7 Có giá trị 1
Các phép quan hệ có độ ưu tiên nhỏ hơn !, nhưng lớn hơn so với && và ||, cho nên các biểu thức như:
(a>b) && (d<c)
Thì có thể viết gọn lại:
a>b && d<c
Khác không
Khác không
Bằng không
Bằng không
Khác không Bằng không Khác không Bằng không
1 0 0 0
1 1 1 0
Trang 5III Chuyển đổi kiểu giá trị:
Việc chuyển đổi kiểu giá trị thường diễn ra một cách tự động trong hai trường hợp:
- Khi biểu thức gồm các toán hạng khác kiểu
- Khi gán một giá trị kiểu này cho một biến (hoặc
phần tử của mảng) kiểu kia, như việc truyền gia
strị trong toán tử gán, việc truyền giá trị các tham số cho các đối, việc gán giá trị của biểu thức trong câu lệnh return cho hàm.
Ngoài ra ta có thể chuyển từ một kiểu giá trị sang một kiểu bất kỳ ma ta muốn, theo cú pháp sau:
(type) Biểu thức
Ví dụ:
(int) a Cho tột giá trị kiểu int
Trang 61 Chuyển đổi kiểu trong biểu thức:
Khi hai toán hạng trong một phép toán có kiểu khác nhau thì kiểu thấp hơn sẽ nâng thành kiểu cao hơn trước khi thực hiện phép toán Kết quả thu được là một giá trị có kiểu cao hơn.
Như:
- int và long thì int chuyển thành long
- int và float thì int chuyển thành float
- float và double thì float chuyển thành double.
2 Các phép chuyển đổi kiểu cũng được thực hiện thông qua
phép gán.
Giá trị của vế phải được chuyển sang kiểu của vế trái đó là kiểu của kết quả Kiểu int có thể chuyển thành float, kiểu float chuyển thành int khi bó phần thập phân,kiểu double chuyển thành float bằng cách làm tròn.
Trang 7IV Phép toán tăng giảm
C đưa ra hai phép toán một ngôi để tăng và giảm các biến
Toán tử tăng ++ sẽ cộng 1 vào toán hạng đó
Toán tử giảm sẽ trừ đi 1 Và cách đặt các phép toán tăng và giảm ở trước hay ở sau toán hạng tuy thuộc vào hoàn cảnh khi chay chương trình
Nếu phép tăng hoặc giảm đứng trước toán hạng thì có nghĩa là: Toán hạng sẽ tang hoặc giảm trước khi nó sử dụng, Nếu phép tăng hoặc giảm đứng sau toán hạng thì có nghĩa là: Toán hạng sẽ tang hoặc giảm sau khi nó sử dụng
Trang 8V Lênh gán và biểu thức:
1 Các câu lệnh gán như:
<biến>= <biến><Phép toán hai ngôi><giá trị/biểu thức>
Thì có thể chuyển thành:
<biến><phép toán hai ngôi>=<giá trị/biểu thúc>
Ví dụ:
a=a+2
=> a+=2
2 Biểu thức gán là biểu thức có dạng:
<Biến> = <Biểu thức>
Có thể sử dụng lệnh gán để gán nhiều biến trong cùng một lúc
Trang 9VI Biểu thức điều kiện
Cú pháp:
E1? E2:E3 Chức năng:
Nếu biểu thức E1đúng thì lấy giá trị E2 và ngược lại thì lấy gia trị E3
Trong đó E1, E2 và E3 là các biểu thức.
Ví dụ:
#include "stdio.h"
void main()
{
int a=6,b=10;
printf("Gia tri la %6d",a>b?a:b);
getch();
Trang 10Vê duû:
#include "stdio.h"
void main()
{
int a=6,b=10;
printf("\nKhi a= %4d b = %4d",a,b);
printf("\n a++* b = %10d",a++* b);
printf("\n ++a+ b = %10d",++a+ b);
printf("\n a++ -b = %10d",a - b);
printf("\n a+++++b = %10d",a++ + ++b); getch();
}
Trang 11Bài tập:
1 Viết chương trình giải phương trình bậc hai
ax2 + bx +c =0 Với a, b, c nhập từ bàn phím.
2 Viết chương trình tìm số lớn nhất và nhỏ nhất
của bốn số thực nhập vào từ bàn phím
3 Lập chương trình để:
- Nhập số nguyên n từ bàn phím
- Xét xem n có phải là số nguyên tố hay
không và in ra màn hình kết luận tương ứng