intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Kỹ thuật lập trình C/C++-Chương: Câulệnh

Chia sẻ: Nguyễn Kim Thành | Ngày: | Loại File: PDF | Số trang:21

84
lượt xem
14
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Để lập trình giải một bài toán nào đó, chúng ta phải sử dụng các câu lệnh sau: Lệnh gán: được sử dụng để đặt một giá trị vào một biến nào đó. Lệnh rẽ nhánh: Được sử dụng để xác định xem chương trình sẽ thực hiện công việc gì trong điều kiện ra sao Lệnh lặp: Cho phép chương trình của bạn tự động lặp lại các thao tác nào đó Quá trình xây dựng các bước để thực hiện một bài toán nào đó, gọi là quá trình xây dựng giải thuật....

Chủ đề:
Lưu

Nội dung Text: Kỹ thuật lập trình C/C++-Chương: Câulệnh

  1. Câu lệnh (statements) EE3490: Kỹ thuật lập trình – HK1 2011/2012 1 Đào Trung Kiên – ĐH Bách khoa Hà Nội
  2. Khái niệm Câu lệnh được dùng để thực hiện một nhiệm vụ  trong chương trình: gán, tính toán, đọc/ghi dữ liệu, gọi hàm,… Phân loại:  Câu lệnh đơn  printf("Xin chao!");  x = PI*R*R;  Khối lệnh trong dấu { … }  Các lệnh rẽ nhánh và điều kiện: for, if, while, switch,…  Đặc biệt: câu lệnh trống, câu lệnh biểu thức, tạo nhãn,  return,… EE3490: Kỹ thuật lập trình – HK1 2011/2012 2 Đào Trung Kiên – ĐH Bách khoa Hà Nội
  3. Câu lệnh if Rẽ nhánh theo điều kiện  Cú pháp:  if ()  [else ] Ví dụ:  if (x != 0.)  printf("Nghich dao = %f",1/x); else printf("Khong co gia tri nghich dao"); if (score > current_record)  NewRecord(score); EE3490: Kỹ thuật lập trình – HK1 2011/2012 3 Đào Trung Kiên – ĐH Bách khoa Hà Nội
  4. Câu lệnh if lồng nhau Câu lệnh if thường được dùng lồng nhau để kiểm tra  nhiều điều kiện khác nhau Ví dụ:  if (diem >= 8.)  printf("Xep loai gioi"); else if (diem >= 7.) printf("Xep loai kha"); else if (diem >= 5.) printf("Xep loai trung binh"); else printf("Khong dat"); EE3490: Kỹ thuật lập trình – HK1 2011/2012 4 Đào Trung Kiên – ĐH Bách khoa Hà Nội
  5. Biểu thức logic Là biểu thức chứa các toán tử logic, biến/hằng logic  Trả về kết quả 1 (true) hoặc 0 (false)  Trong C, kiểu int có thể được ngầm hiểu là kiểu logic với  việc chuyển đổi: 0  false, khác 0  true Hệ quả: so sánh một số với 0 có thể bỏ qua trong trong các biểu  thức logic: if (x != 0) …  if (x) …  Ví dụ:  8*4 >= 10  x != y  b*b > 4*a*c  (a>2) && ((b4)))  2-3 /* được ngầm chuyển thành true */  EE3490: Kỹ thuật lập trình – HK1 2011/2012 5 Đào Trung Kiên – ĐH Bách khoa Hà Nội
  6. Câu lệnh switch Rẽ nhiều nhánh theo điều kiện  Cú pháp:  switch () {  case : case : ... [default: ] } Tuỳ giá trị của biểu thức phân nhánh bằng giá trị của trường hợp  nào, sẽ nhảy tới chạy các câu lệnh ở trường hợp đó default là trường hợp còn lại nếu không trường hợp nào thoả mãn  Các câu lệnh thực hiện xong sẽ chạy tiếp case tiếp theo  dùng  break để ngắt nếu không muốn Chỉ dùng điều kiện được với các kiểu tương đương số nguyên (char,  int, enum,…) và các giá trị phải là hằng EE3490: Kỹ thuật lập trình – HK1 2011/2012 6 Đào Trung Kiên – ĐH Bách khoa Hà Nội
  7. Câu lệnh switch (tiếp) switch (x) {  case 0: printf("x is 0"); break; case 1: printf("x is 1"); break; default: printf("x is something else"); } switch (day) {  case Thu7: case ChuNhat: printf("Duoc nghi"); break; default: printf("Di lam"); } EE3490: Kỹ thuật lập trình – HK1 2011/2012 7 Đào Trung Kiên – ĐH Bách khoa Hà Nội
  8. Vòng lặp do và while Lặp đi lặp lại việc thực hiện một câu lệnh  Cú pháp:  while()  Kiểm tra điều kiện trước khi thực hiện mỗi lần lặp do while();  Kiểm tra điều kiện sau khi thực hiện mỗi lần lặp Ví dụ:  x = 0;  do printf("%d ", x++); while (x < 10); x = 0;  while (x < 10) printf("%d ", x++); Kết quả chạy: 0123456789 EE3490: Kỹ thuật lập trình – HK1 2011/2012 8 Đào Trung Kiên – ĐH Bách khoa Hà Nội
  9. Vòng lặp for Rất phổ biến trong C vì cú pháp ngắn gọn và linh hoạt  Cú pháp:  for (; ; )  Mỗi câu lệnh đều có thể được để trống nếu không dùng  Điều kiện được kiểm tra trước  Ví dụ:  for (x = 0; x < 10; x++)  printf("%d ", x++); Kết quả chạy: 0123456789 for (i = 0; i < N; i++)  for (j = 0; j < M; j++) a[i,j] = i + j; EE3490: Kỹ thuật lập trình – HK1 2011/2012 9 Đào Trung Kiên – ĐH Bách khoa Hà Nội
  10. break và continue break dùng để ngắt giữa chừng một vòng lặp mà  không cần kiểm tra điều kiện for (x = 1; x
  11. Khối lệnh Gộp các lệnh đơn lại bằng { … }  Thường được dùng với các câu lệnh rẽ nhánh  Ví dụ:  if (delta > 0) {  d = sqrt(delta); x1 = (-b+d)/2.; x2 = (-b-d)/2.; printf("x1 = %.3f, x2 = %.3f", x1, x2); } tong_le = 0;  tong_chan = 0; for (i = 0; i < N; i++) { if (i%2 == 1) tong_le += a[i]; else tong_chan += a[i]; } EE3490: Kỹ thuật lập trình – HK1 2011/2012 11 Đào Trung Kiên – ĐH Bách khoa Hà Nội
  12. Câu lệnh rỗng (null statement) Không có gì, chỉ dùng “;” để kết thúc  Câu lệnh rỗng không thực hiện gì, không gây ra hiệu  ứng gì và không mất thời gian chạy của máy Đôi khi cần dùng để kết thúc câu lệnh một cách hợp  lệ Ví dụ:  for (i=0; i
  13. Câu lệnh goto và nhãn Nhãn: dùng để đánh dấu một vị trí trong mã nguồn  Câu lệnh goto: nhảy tới vị trí của nhãn và chạy tiếp  printf("Nhap ngay: ");  scanf("%d", &ngay); if (ngay31) goto error; printf("Nhap thang: "); scanf("%d", &thang); if (thang12) goto error; /* … */ error: printf("Loi nhap du lieu!"); Sau nhãn phải có ít nhất một câu lệnh (có thể dùng câu lệnh rỗng  nếu cần) Lệnh goto phá vỡ tính cấu trúc, nên hạn chế sử dụng  EE3490: Kỹ thuật lập trình – HK1 2011/2012 13 Đào Trung Kiên – ĐH Bách khoa Hà Nội
  14. Biểu thức (expressions) EE3490: Kỹ thuật lập trình – HK1 2011/2012 14 Đào Trung Kiên – ĐH Bách khoa Hà Nội
  15. Khái niệm Một biểu thức có chứa ít nhất một toán hạng và 0 hoặc nhiều toán tử  Toán hạng có thể là: giá trị hằng, hằng, biến, kết quả của một hàm  hay biểu thức con Các toán tử có độ ưu tiên khác nhau, nhưng có thể bị thay đổi bằng  cách dùng ngoặc ( … ) Các toán tử có cùng độ ưu tiên được thực hiện tử trái sang phải:  sin(x) + cos(x)  hàm sin(x) được gọi trước cos(x) Ví dụ:  47  x++  sin(x+2)  ( 2 * log( ( 3 + 10 ) - ( 2 * 6 ) ) )  EE3490: Kỹ thuật lập trình – HK1 2011/2012 15 Đào Trung Kiên – ĐH Bách khoa Hà Nội
  16. Toán tử số học Cơ bản: a+b a-b a*b a/b  Nhân/chia ưu tiên cao hơn cộng/trừ: 2+3*4+1  Phép toán giữa 2 số nguyên  kết quả là số nguyên  Phép toán có ít nhất 1 số thực  kết quả là số thực  Modulo (chia lấy số dư): a%b  Tăng, giảm 1 đơn vị: a++ a-- ++a ++b  Toán hạng phải là một biến kiểu số nguyên  a++ và a-- thực hiện phép tính với giá trị của a rồi mới  tăng/giảm giá trị của a, trong khi ++a và --a thì ngược lại  a++ * 2  ++a * 2  a++ + a++ EE3490: Kỹ thuật lập trình – HK1 2011/2012 16 Đào Trung Kiên – ĐH Bách khoa Hà Nội
  17. Toán tử logic và so sánh Logic:  and: A && B  or: A || B  xor: !A  So sánh:  x == y  x != y  x >y  x = y  x
  18. Toán tử bit Bao gồm:  and: a & b  or: a | b  xor: a ^ b  not: ~a  Dịch trái, phải: ab  Chỉ áp dụng với kiểu số nguyên  Chú ý tránh nhầm lẫn với các toán tử logic  EE3490: Kỹ thuật lập trình – HK1 2011/2012 18 Đào Trung Kiên – ĐH Bách khoa Hà Nội
  19. Toán tử gán Cơ bản: a = b  Các toán tử gộp:  Toán tử gán Tương đương Toán tử gán Tương đương a += b a=a+b a &= b a=a&b a -= b a=a–b a |= b a=a|b a *= b a=a*b a ^= b a=a^b a /= b a=a/b a b a %= b a=a%b a >>= b a = a
  20. Các toán tử đặc biệt khác Cộng, trừ đơn hạng: +a, -a  sizeof: trả về kích thước của kiểu/biến/hằng  Toán tử phảy “,”: không làm gì, chỉ bỏ qua kết quả  x++, y = x*2;  for (i=2, j=3, x=1; ituoi  Ép kiểu: (int)a  Gọi hàm (): sin(x), pow(x, 3)  Điều kiện: ? :  biggest = a > b ? a : b;  EE3490: Kỹ thuật lập trình – HK1 2011/2012 20 Đào Trung Kiên – ĐH Bách khoa Hà Nội
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2