Microsoft PowerPoint IP 04 Control Flow in C CấuCấu trúctrúc điềuđiều khiểnkhiển GV GV NguyễnNguyễn Minh Minh HuyHuy CấuCấu trúctrúc điềuđiều khiểnkhiển 1Nhập môn lập trình GV Nguyễn Minh Huy NộiNội d[.]
Trang 2Biểu Biểu thức thức và và toán toán tử tử trong trong C C.
Cấu Cấu trúc trúc rẽ rẽ nhánh nhánh
Cấu Cấu trúc trúc lặp lặp
Trang 3Biểu Biểu thức thức và và toán toán tử tử trong trong C C.
Cấu Cấu trúc trúc rẽ rẽ nhánh nhánh
Cấu Cấu trúc trúc lặp lặp
Trang 4Biểu thức thức và và toán toán tử tử trong trong C C
Biểu Biểu thức thức trong trong C: C:
Là Là một một dãy dãy hữu hữu hạn hạn các các toán toán hạng hạng và và toán toán tử tử
a + b
a + b – – d * c / e d * c / e ((x >> (p + 1 x >> (p + 1 n)) & ~(~0 << n) n)) & ~(~0 << n)
Toán Toán hạng hạng: : biến biến, , hằng hằng
Toán Toán tử tử::
Toán Toán tử tử::
Toán Toán tử tử một một ngôi ngôi: : < <phép phép toán toán> a > a ~a, !b, ++c ~a, !b, ++c.
Toán Toán tử tử hai hai ngôi ngôi: : a < a <phép phép toán toán> b > b a + b, x / y a + b, x / y.
Toán Toán tử tử ba ba ngôi ngôi: : toán toán tử tử điều điều kiện kiện ( ) ? : ( ) ? :
Kết Kết quả quả biểu biểu thức thức: : một một giá giá trị trị số số
Trang 5Biểu thức thức và và toán toán tử tử trong trong C C
Toán Toán tử tử số số học học::
Ký Ký hiệu hiệu: +, : +, , *, /, % , *, /, %.
% % chỉ chỉ dùng dùng với với số số nguyên nguyên
/ / kết kết quả quả phụ phụ thuộc thuộc toán toán hạng hạng
Toán Toán tử tử so so sánh sánh::
int a = 5 a = 5 % % 3; // 3; // ĐúngĐúngfloat x = 5
float x = 5 % % 3.0 3.0; // ; // SaiSai
int b = 5 b = 5 // 3; // 3; // ChiaChia nguyênnguyênfloat y =
float y = 5.0 5.0 // 3; // 3; // ChiaChia thựcthực
Ký Ký hiệu hiệu: >, <, >=, <=, ==, != : >, <, >=, <=, ==, !=.
Kết Kết quả quả: 1 (true), 0 (false) : 1 (true), 0 (false).
intint a = 5 a = 5 > > 3;3; // 1 (true)int
int b = 5 b = 5 == == 3;3; // 0 (false)int
int c = 5 c = 5 != != 3;3; // 1 (true)
Trang 6Biểu thức thức và và toán toán tử tử trong trong C C
Toán Toán tử tử logic: logic:
Ký Ký hiệu hiệu::
! (not), && (and), || (or).
Kết Kết nối nối biểu biểu thức thức so so sánh sánh
Kết Kết quả quả: 1 (true), 0 (false) : 1 (true), 0 (false).
intint a = (5 > 3) a = (5 > 3) && && (4 > 7); // 0 (false)(4 > 7); // 0 (false)int
int b = (5 > 3) b = (5 > 3) || || (4 > 7); // 1 (true)(4 > 7); // 1 (true)int
>> ( >> (dịch dịch phải phải), << ( ), << (dịch dịch trái trái) ).
Thao Thao tác tác trên trên bit bit dữ dữ liệu liệu
short a = 5
short a = 5 & & 6;6; // 0101 and 0110// 0101 and 0110short b = 5
short b = 5 || 6;6; // 0101 or 0110unsigned short c =
unsigned short c = ~ ~1; // not 00011; // not 0001short d = a
short d = a >> >> 1;1;
Trang 7Biểu thức thức và và toán toán tử tử trong trong C C
Toán Toán tử tử tăng tăng, , giảm giảm::
Ký Ký hiệu hiệu: ++, : ++,
Tăng Tăng//giảm giảm 1 1 đơn đơn vị vị trên trên biến biến
Tiền Tiền tố tố: : tính tính trước trước biểu biểu thức thức
Hậu Hậu tố tố: : tính tính sau sau biểu biểu thức thức
Toán
intint a = 5a = 5++ ++;; // // SaiSaiint
int a = 5;a = 5;
intint b = b = ++ ++a * 4;a * 4; // b = 24int
intint b, c, d;b, c, d;
d
d = = c c = = b b = = a; // b = aa; // b = a
// c = b// d = cint
int e e += += a; // e = e + aa; // e = e + aint
int f f *= *= a + 1; // f = f * (a + 1)a + 1; // f = f * (a + 1)
Trang 8Biểu thức thức và và toán toán tử tử trong trong C C
Độ Độ ưu ưu tiên tiên toán toán tử tử::
Trang 9Biểu Biểu thức thức và và toán toán tử tử trong trong C C.
Cấu Cấu trúc trúc rẽ rẽ nhánh nhánh
Cấu Cấu trúc trúc lặp lặp
Trang 10LệnhLệnh 11[[NgượcNgược lạilại
LệnhLệnh 2]2]
Trang 11Giá Giá trị trị 0: false 0: false.
if if else else là là câu câu lệnh lệnh phức phức
Không Không có có ;; sau sau if if hoặc hoặc else else
if if else else có có thể thể lồng lồng nhau nhau
Trang 12Cấu trúc trúc rẽ rẽ nhánh nhánh
Câu Câu lệnh lệnh if if else: else:
if if else else lồng lồng nhau nhau, , kiểm kiểm tra tra điều điều kiện kiện trên trên cùng cùng 1 1 biến biến::
loailoai = “= “KhaKha”;”;
if
if ((dtb dtb >= 6.5)>= 6.5)
loailoai = “= “KhaKha”;”;
else
if
if ((dtb dtb >= 5)>= 5)
loailoai = “= “TrungTrung binhbinh”;”;
else
loailoai = “= “YeuYeu”;”;
loai
loai = “= “KhaKha”;”;
else else if if ((dtb dtb >= 5)>= 5)
loai
loai = “= “TrungTrung binhbinh”;”;
else
loailoai = “= “YeuYeu”; ”;
Trang 13<LệnhLệnh 2>;2>;
break;
case case <<giágiá trịtrị 2>:2>:
<
<LệnhLệnh N>; N>;
Trang 14case case 2:2:
printf
printf(“Thu (“Thu haihai”); ”); break; break;
case case 3:3:
case case 3:3:
printf
printf(“Thu (“Thu baba”); ”); break; break;
case case 4:4:
printf
printf(“Thu (“Thu tutu”); ”); break; break;
case case 5:5:
printfprintf(“Thu (“Thu namnam”); ”); break; break;
case
case 6:6:
printfprintf(“Thu (“Thu sausau”); ”); break; break;
case
case 7:7:
printfprintf(“Thu bay”); (“Thu bay”); break; break;
Trang 15Cấu trúc trúc rẽ rẽ nhánh nhánh
Câu Câu lệnh lệnh switch switch case: case:
Lưu Lưu ý: ý:
Biểu Biểu thức thức phải phải đặt đặt giữa giữa ( ) ( ).
Giá Giá trị trị ở ở mệnh mệnh đề đề case case::
Không Không là là miền miền giá giá trị trị
Câu Câu lệnh lệnh break break::
Trang 16case case 4:4:
case
case 5:5:
case case 6:6:
case case 6:6:
printf
printf(“(“NgayNgay lam lam viecviec”); ”); break; break;
case case 1:1:
case
case 7:7:
printfprintf(“(“NgayNgay nghinghi”); ”); break; break;
default:
printfprintf(“(“NgayNgay khongkhong ton tai”);ton tai”);
}}
Trang 17Biểu Biểu thức thức và và toán toán tử tử trong trong C C.
Cấu Cấu trúc trúc rẽ rẽ nhánh nhánh
Cấu Cấu trúc trúc lặp lặp
Trang 18Cấu trúc trúc lặp lặp
Xét Xét chương chương trình trình xuất xuất số số::
Xuất Xuất các các số số nguyên nguyên từ từ 1 1 đến đến 10 10.
Thực Thực hiện hiện 10 10 lần lần lệnh lệnh xuất xuất
Xuất Xuất các các số số nguyên nguyên từ từ 1 1 đến đến 100 100.
Thực Thực hiện hiện 100 100 lần lần lệnh lệnh xuất xuất!! !!
Dùng Dùng lệnh lệnh lặp lặp
Dùng Dùng lệnh lệnh lặp lặp
Trang 20printfprintf(“%d”, (“%d”, ii););
ii++;++;
} while ( } while (ii <= n <= n); );
Trang 23scanfscanf(“%d”, &n);(“%d”, &n);
//
// Bỏ Bỏ khởi khởi tạo tạo
ii = 1;= 1;
printfprintf(“(“NhapNhap vaovao n = “);n = “);scanf
scanf(“%d”, &n);(“%d”, &n);
ii = 1;= 1;
for ( for ( ; ; ii <= n; <= n; ii++++))
printfprintf(“%d”, (“%d”, ii););
ii = 1;= 1;
for ( for ( ; ; ii <= n; <= n; ))
{{
printfprintf(“%d”, (“%d”, ii););
ii++;++;
}}
Trang 24Cấu trúc trúc lặp lặp
Lệnh Lệnh break break và và continue: continue:
Lệnh Lệnh break: break:
Thoát Thoát khỏi khỏi vòng vòng lặp lặp
Dùng Dùng kết kết hợp hợp với với if if else else
Lệnh Lệnh continue: continue:
Bỏ
Bỏ qua qua một một lần lần lặp lặp
printfprintf(“(“NhapNhap vaovao n = “);n = “);
scanfscanf(“%d”, &n);(“%d”, &n);
for ( for (ii = 1; ; = 1; ; ii++++))
}}
Trang 25Biểu Biểu thức thức và và toán toán tử tử trong trong C: C:
Biểu Biểu thức thức: : một một dãy dãy hữu hữu hạn hạn toán toán tử tử và và toán toán hạng hạng
Toán Toán tử tử số số học học: +, : +, , *, /, % , *, /, %.
Toán Toán tử tử so so sánh sánh: >, <, >=, <=, ==, != : >, <, >=, <=, ==, !=.
Toán Toán tử tử logic: !, &&, || logic: !, &&, ||.
Toán Toán tử tử trên trên bit: ~, &, |, ^, >>, << bit: ~, &, |, ^, >>, <<.
Toán Toán tử tử tăng tăng, , giảm giảm: ++, : ++,
Toán Toán tử tử gán gán: =, < : =, <phép phép toán toán>= >=.
Trang 26Cấu Cấu trúc trúc rẽ rẽ nhánh nhánh::
Câu Câu lệnh lệnh if if else else.
Câu Câu lệnh lệnh switch switch case case.
Cấu Cấu trúc trúc lặp lặp::
Câu Câu lệnh lệnh while: while: kiểm kiểm tra tra điều điều kiện kiện lặp lặp trước trước
Câu Câu lệnh lệnh while: while: kiểm kiểm tra tra điều điều kiện kiện lặp lặp trước trước
Câu Câu lệnh lệnh do do while: while: kiểm kiểm tra tra điều điều kiện kiện lặp lặp sau sau
Câu Câu lệnh lệnh for: for:
Khởi Khởi tạo tạo biến biến đếm đếm
Kiểm Kiểm tra tra điều điều kiện kiện lặp lặp
Thực Thực hiện hiện lệnh lệnh
Thay Thay đổi đổi biến biến đếm đếm
Trang 27Bài tập tập
Bài Bài tập tập 4.1: 4.1:
Viết
Viết chương chương trình trình C C mô mô phỏng phỏng máy máy tính tính tay tay như như sau sau::
Nhập Nhập vào vào 2 2 số số nguyên nguyên a, b a, b.
Nhập Nhập vào vào phép phép tính tính (+, (+, , *, /, %) , *, /, %).
Thực Thực hiện hiện phép phép tính tính vừa vừa nhập nhập trên trên 2 2 số số nguyên nguyên và và xuất xuất kết kết quả quả
Trang 29Bài tập tập
Bài Bài tập tập 4.3: 4.3:
Viết
Viết chương chương trình trình C C tính tính số số ngày ngày trong trong tháng tháng như như sau sau::
Nhập Nhập vào vào tháng tháng và và năm năm
Tính Tính số số ngày ngày trong trong tháng tháng và và xuất xuất kết kết quả quả như như sau sau::
Thang
Thang < <thang thang> > nam nam < <nam nam> > co co < <ngay ngay> > ngay ngay
Trang 30Bài tập tập
Bài Bài tập tập 4.4: 4.4:
Viết
Viết chương chương trình trình C C như như sau sau::
Nhập Nhập vào vào số số nguyên nguyên dương dương N N.
Tính Tính và và xuất xuất kết kết quả quả::
a) S = 1 a) S = 1 1/2 + 1/3 1/2 + 1/3 y 1/N y 1/N b) S = 1 * 2 * y * N = N!
c) S = 1! + 2! + yN!
d) S = a1 + a2 + y + y a ak ( { ( { a aii } } là là tập tập số số chính chính phương phương <= N) <= N)
Trang 31Bài tập tập
Bài Bài tập tập 4.5: 4.5:
Viết
Viết chương chương trình trình C C tìm tìm và và đếm đếm những những số số có có tính tính chất chất sau sau::
Số Số nguyên nguyên dương dương có có 3 3 chữ chữ số số
Chữ Chữ số số hàng hàng chục chục = = chữ chữ số số hàng hàng trăm trăm + + chữ chữ số số hàng hàng đơn đơn vị vị