Chào các bạn hôm nay mình sẽ viết tiếp loạt bài hướng dẫn lập trình C cơ bản. Hôm trước mình đã nói về 2 hàm cơ bản đó là printf và scanf hôm nay mình sẽ viết về toán tử chứ không phải hàm...
Để bắt đầu bài mình sẽ nhắc lại một số khái niệm về câu lệnh và khối lệnh.
*Nhắc lại khái niệm về câu lệnh và khối lệnh.
1.Câu lệnh
Trong C mỗi câu lệnh có thể viết trên một hoặc nhiều dòng và được kết thúc bằng dấu ; (dấu chấm phẩy).
-Câu lệnh là một tác vụ, biểu thức, hàm, cấu trúc điều khiển…
Ví dụ
x = x + 2;
printf("Day la mot lenh\n");
2.Khối lệnh
-Khối lệnh là một dãy các câu lệnh đặt trong cặp dấu {...} (dấu ngoặc nhọn).
Chú ý: Để 1 bài C trình bày rõ ràng cho người đọc ta cần viết theo nguyên tắc :các lệnh trong khối lệnh phải viết thụt vô 1 tab so với cặp dấu { } 
Ví dụ :
Code:
{  //dau  khoi
      a= 5;
      b = 6; viết thụt vô 1 tab so với cặp { }
      printf("Tong %d + %d = %d", a, b, a+b);
}  //cuoi  khoi 
Lưu ý: Quên dùng cặp dấu { } bao bọc khi sử dụng khối lệnh, hoặc mở dấu { và quên đóng dấu } sẽ dẫn đến chương trình bị sai.
Mẹo: Viết cặp dấu { } trên mỗi dòng trước rồi viết các dòng code bên trong.
I.Toán tử if
if cho phép lựa chọn một trong hai nhánh tùy thuộc vào giá trị của biểu thức luận lý là đúng (true) hay sai (false) hoặc khác không hay bằng không. if có 2 cách viết như sau
**dạng thiếu: Quyết định sẽ thực hiện hay không một khối lệnh.
Cú pháp
Code:
if (biểu thức luận lý)  )
khối lệnh;  )
- từ khóa if phải viết bằng chữ thường
-kết quả của biểu thức luận lý phải là đúng (≠0)hoặcsai (= 0)
[​IMG]
-Nếu biểu thức luận lý đúng thì thực hiện khối lệnh và thoát khỏi if, ngược lại không làm gì cả và thoát khỏi if.
-Nếu khối lệnh bao gồm từ 2 lệnh trở lên thì phải đặt trong dấu { }
-Không đặt dấu chấm phẩy sau câu lệnh if → trình biên dịch không báo lỗi nhưng khối lệnh không được thực hiện cho dù điều kiện đúng hay sai.
Ví dụ: Viết chương trình nhập vào 2 số nguyên a, b. Tìm và in ra số lớn nhất
mô tả bằng sơ đồ khối
[​IMG]
viết chương trình sẽ như sau
Code:
#include <stdio.h>
#include <conio.h>
main()
{
int a, b, max;
printf("Nhap vao so a: ");
scanf("%d", &a);
printf("Nhap vao so b: ");
scanf("%d", &b);
max = a;
if (b>a)
  max = b;
printf("So lon nhat= %d.", max);
getch();
}
**dạng đủ: Quyết định sẽ thực hiện 1 trong 2 khối lệnh cho trước.
*Cú pháp
Code:
if(Biểu thức luận lý)
      khối lệnh 1;
else
      khối lệnh 2;
[​IMG]
-nếu biểu thức luận lý đúng thì thực hiện khối lệnh 1 và thoát khỏi if ngược lại thực hiện khối lệnh 2 và thoát khỏi if.
-Nếu khối lệnh 1, khối lệnh 2 bao gồm từ 2 lệnh trở lên thì phải đặt trong dấu { }
Ví dụ: Viết chương trình nhập vào 2 số nguyên a, b. In ra thông báo "a bằng b" nếu a = b, ngược lại in ra thông báo "a khác b".
-ta có sơ đồ khối
[​IMG]
-Chương trình sẽ viết như sau
Code:
#include <stdio.h>
#include <conio.h>
main()
{
int a, b;
printf("Nhap vao so a: ");
scanf("%d", &a);
printf("Nhap vao so b: ");
scanf("%d", &b);
if (a == b)
printf("a bang b\n");
else
  printf("a khac b\n");
getch();
}
II. Toán tử else if
Quyết định sẽ thực hiện 1 trong n khối lệnh được cho trước.
*Cú pháp
Code:
if (biểu thức luận lý 1)
          khối lệnh 1;
else if (biểu thức luận lý 2)
          khối lệnh 2;
            …
else if (biểu thức luận lý n-1)
            khối lệnh n-1;
else
            khối lệnh n; 
*Mô tả.
-Nếu biểu thức luận lý 1 đúng thì thực hiện khối lệnh 1 và thoát khỏi cấu trúc if Ngược lại Nếu biểu thức luận lý 2 đúng thì thực hiện khối lệnh 2 và thoát khỏi cấu trúc if

-Ngược lại Nếu biểu thức luận lý n-1 đúng thì thực hiện khối lệnh n-1 và thoát khỏi cấu trúc if Ngược lại thì
thực hiện khối lệnh n.
Ví dụ: Viết chương trình nhập vào 2 số nguyên a, b. In ra thông báo "a lớn hơn b" nếu a>b, in ra thông báo "a nhỏ hơn b" nếu a<b, in ra thông báo "a bằng b" nếu a=b.
- bài này sơ đồ khối để giải sẽ như sau
[​IMG]
-Chương trình sẽ được viết là
Code:
#include <stdio.h>
#include <conio.h>
main()
{
int a, b;
printf("Nhap vao so a: ");
scanf("%d", &a);
printf("Nhap vao so b: ");
scanf("%d", &b);
if (a>b)
          printf("a lon hon b.\n");
else if (a<b)
          printf("a nho hon b.\n");
else
          printf("a bang b.\n");
getch();
} 
Chú ý: 
-Cũng như if, không đặt dấu chấm phẩy sau câu lệnh else if→trình biên dịch không báo lỗi nhưng khối lệnh sau else if không được thực hiện.

Bài hôm nay mình sẽ dừng ở đây. Bài sau mình sẽ giới thiệu if lồng và toán tử switch.
Và như thường lệ mình sẽ cho 1 số bài tập cơ bản các bạn làm comment ở dưới. Lưu ý bài làm đưa vào thẻ code.
Bài tập:
1.Viết chương trình nhập vào số nguyên dương, in ra thông báo số chẵn hay lẻ.
2.Viết chương trình giải phương trình bậc 2: ax2 + bx + c = 0, với a, b, c nhập vào từ bàn phím.
0 Comments
G+ Comments
Comments

0 comments:

Post a Comment

 
Top

Nhận xét mới đăng tải!

Loading…
X