Bài giảng Lập trình cơ bản - Bài 7: Các cấu trúc điều khiển

Câu lệnh điều kiện

Các câu lệnh điều kiện cho phép chúng ta thay đổi hướng thực hiện của chương trình

Một câu lệnh điều kiện trả về giá trị đúng hoặc sai

Ví dụ: Để xác định một số là số chẵn hay số lẻ chúng ta tiến hành như sau :

Nhập vào một số

Chia số đó cho 2 để xác định số dư

Nếu số dư là 0, số đó là “SỐ CHẴN”

Ngược lại số dư không bằng 0, số đó là “SỐ LẺ”

 

ppt 44 trang kimcuc 7400
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình cơ bản - Bài 7: Các cấu trúc điều khiển", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Lập trình cơ bản - Bài 7: Các cấu trúc điều khiển

Bài giảng Lập trình cơ bản - Bài 7: Các cấu trúc điều khiển
Bài 7: Các cấu trúc điều khiển 
Bài giảng LẬP TRÌNH CƠ BẢN 
KHOA CÔNG NGHỆ THÔNG TIN 
 BỘ MÔN CÔNG NGHỆ PHẦN MỀM 
Nội dung 
Các cấu trúc điều khiển 
Tìm hiểu về cấu trúc lựa chọn 
Lệnh if 
Lệnh if – else 
Lệnh nhiều if 
Lệnh if lồng nhau 
 Lệnh switch 
2 
Các cấu trúc điều khiển 
3 
Tìm hiểu về vòng lặp ‘for’ trong C 
Làm việc với toán tử dấu phẩy ( , ) 
Tìm hiểu về các vòng lặp lồng nhau 
Tìm hiểu về vòng lặp ‘while’ và ‘do-while’ 
Làm việc với các lệnh break và continue 
Tìm hiểu về hàm exit() 
Nội dung 
Câu lệnh điều kiện 
Các cấu trúc điều khiển 
Các câu lệnh điều kiện cho phép chúng ta thay đổi hướng thực hiện của chương trình 
Một câu lệnh điều kiện trả về giá trị đúng hoặc sai 
Ví dụ: Để xác định một số là số chẵn hay số lẻ chúng ta tiến hành như sau : 
Nhập vào một số 
Chia số đó cho 2 để xác định số dư 
Nếu số dư là 0, số đó là “SỐ CHẴN” 
Ngược lại số dư không bằng 0, số đó là “SỐ LẺ” 
4 
Các cấu trúc lựa chọn 
Các cấu trúc điều khiển 
C cung cấp hai dạng câu lệnh lựa chọn 
Lệnh if 
Lệnh switch 
5 
Lệnh if 
Các cấu trúc điều khiển 
Cú pháp: 
	 if (expression) 
	statement; 
Nếu biểu thức của lệnh if có giá trị đúng (true), khối lệnh theo sau lệnh if được thực thi 
6 
Lệnh if (tt.) 
Các cấu trúc điều khiển 
Chương trình hiển thị các giá trị dựa vào một điều kiện . 
#include 
void main(){ 
	int x, y; 
	char a = ‘y’; 	 
	x = y = 0; 
	if (a == ‘y’){ 
	x += 5; 
	printf(“The numbers are %d and \t%d”,x,y); 
	} 
} 
Ví dụ 
7 
Lệnh if – else 
Các cấu trúc điều khiển 
 	 if (expression) 
	statement; 
	else 
	statement; 
8 
Lệnh if – else (tt.) 
Các cấu trúc điều khiển 
Nếu biểu thức của if trả về giá trị true , khối lệnh theo sau lệnh if được thực thi 
Nếu biểu thức của if không trả về giá trị true thì các lệnh theo sau else được thực thi 
Lệnh else là một tùy chọn. Lệnh else được dùng để thực thi các lệnh khi biểu thức trong if trả về giá trị false 
9 
Lệnh if – else (tt.) 
Các cấu trúc điều khiển 
Chương trình xác định một số là số chẵn hay lẻ 
#include 
void main(){ 
	int num ,res ; 	 
	printf(“Enter a number :”); 
	scanf(“%d”,&num); 
	res = num % 2; 
	if (res == 0) 
	printf(“Then number is Even”); 
	else 
	printf(“The number is Odd”); 
} 
Ví dụ 
10 
Lệnh if–else–if 
Cú pháp: 	 
	if (expression) 
	statement; 
	else if (expression) 
	statement; 
	else if (expression) 
	statement; 
	else statement; 
Các cấu trúc điều khiển 
Lệnh if–else–if (tt.) 
Các cấu trúc điều khiển 
Lệnh if - else - if còn được gọi là lệnh if-else-if bậc thang 
Các biểu thức được xác định giá trị theo hướng từ trên xuống 
12 
Lệnh if–else–if (tt.) 
Các cấu trúc điều khiển 
Chương trình hiển thị thông báo dựa vào một giá trị : 
#include 
#include 
	main() { 
	int x; 	 
	x = 0; 
	clrscr (); 
	printf(“Enter Choice (1 - 3) : “); 
	scanf(“%d”, &x); 
	if (x == 1) 
	printf (“\nChoice is 1”); 
	else if ( x == 2) 
	printf (“\nChoice is 2”); 
	else if ( x == 3) 
	printf (“\nChoice is 3”); 
	else printf (“\nInvalid Choice “); 
	} 
Ví dụ 
13 
Lệnh if lồng nhau 
Các cấu trúc điều khiển 
Lệnh if lồng nhau là một lệnh if được đặt trong một lệnh if hoặc else khác 
Trong C, một lệnh else luôn kết hợp với một lệnh if gần nhất cùng khối lệnh nếu lệnh else đó chưa được kết hợp với một lệnh if nào khác 
14 
Lệnh if lồng nhau (tt.) 
Lệnh else bên trong được kết hợp với if(exp3) 
Theo chuẩn ANSI, một trình biên dịch hỗ trợ ít nhất là 15 mức lồng nhau 
Các cấu trúc điều khiển 
Cú pháp: 
Lệnh if lồng nhau (tt.) 
Các cấu trúc điều khiển 
#include 
#include 
	void main (){ 
	int x, y; 
	x = y = 0; 
	clrscr (); 
	printf (“Enter Choice (1 - 3) : “); 
	scanf (“%d”, &x); 
	if (x == 1){ 
	 printf(“\nEnter value for y (1 - 5) : “); 
	 scanf (“%d”, &y); 
	 if (y <= 5) 
	 printf(“\nThe value for y is : %d”, y); 
	else 
	printf(“\nThe value of y exceeds 5 “); 
	} 
	else	printf (“\nChoice entered was not 1”); 
	} 
Ví dụ 
16 
Lệnh switch 
Các cấu trúc điều khiển 
Lệnh switch là một bộ lựa chọn đa hướng, nó so sánh giá trị của một biểu thức với một danh sách các hằng số nguyên hoặc hằng ký tự 
Khi gặp một sự so sánh khớp, các lệnh kết hợp với hằng đó được thực thi 
17 
Lệnh switch (tt.) 
Cú pháp: 
Các cấu trúc điều khiển 
Lệnh switch (tt.) 
Các cấu trúc điều khiển 
Chương trình kiểm tra một ký tự thường được nhập vào là một nguyên âm, là ký tự ‘z’ hay là một phụ âm 
#include 
#include 
	main (){ 
	char ch; 
	clrscr (); 
	printf (“\nEnter a lower cased 	alphabet (a - z) : “); 
	scanf(“%c”, &ch); 
	còn tiếp  
Ví dụ 
19 
Lệnh switch (tt.) 
Các cấu trúc điều khiển 
if (ch ‘z’) 
	printf(“\nCharacter not a lower cased alphabet”); 
else 
	switch (ch) { 
	case ‘a’ : 
	case ‘e’ : 
	case ‘i’ : 
	case ‘o’ : 
	case ‘u’ : 
	printf(“\nCharacter is a vowel”); 
	break; 
	case ‘z’ : 
	printf (“\nLast Alphabet (z) was entered”); 
	break; 
	default : 
	printf(“\nCharacter is a consonant”); 
	break; 
	} 
} 
20 
Vòng lặp là gì? 
Các cấu trúc điều khiển 
Một đoạn mã lệnh trong chương trình thực hiện lặp đi lặp lại cho đến khi một điều kiện xác định được thỏa mãn 
21 
3 kiểu cấu trúc vòng lặp 
Các cấu trúc điều khiển 
Vòng lặp for 
Vòng lặp while 
Vòng lặp do.while 
22 
Vòng lặp for 
Cú pháp: 
for (initialize counter; conditional test; re-evaluation parameter){ 
	 statement 
} 
 initialize counter là một lệnh gán để khởi tạo biến điều khiển của vòng lặp trước khi đi vào vòng lặp 
 conditional test là một biểu thức quan hệ để chỉ định khi nào vòng lặp sẽ kết thúc 
re-evaluation parameter định nghĩa cách thức thay đổi của biến điều khiển vòng lặp mỗi khi vòng lặp được thực thi 
Các cấu trúc điều khiển 
Vòng lặp for (tt.) 
Các cấu trúc điều khiển 
Ba phần của vòng lặp for phải được phân cách bởi dấu chấm phẩy( ; ) 
Phần lệnh tạo nên thân vòng lặp có thể là một lệnh đơn hoặc một lệnh ghép (một tập nhiều lệnh) 
Vòng lặp for tiếp tục được thực thi khi biểu thức kiểm tra điều kiện vẫn có giá trị true . Khi điều kiện trở thành false , chương trình thực hiện lệnh theo sau vòng lặp for 
24 
Vòng lặp for - Ví dụ 
Các cấu trúc điều khiển 
/*This program demonstrates 
the for loop in a C program*/ 
	 #include 
	main()	{ 
	int count; 
	printf(“\tThis is a \n”); 
	for(count = 1;count <=6;count++) 
	printf(“\n\t\t nice”); 
	printf(“\n\t\t world. \n”); 
	} 
25 
Toán tử dấu phẩy 
Các cấu trúc điều khiển 
 Vòng lặp for có thể được mở rộng bằng cách chứa nhiều giá trị khởi tạo và nhiều biểu thức tăng trị trong đặc tả của vòng lặp for 
	 Cú pháp : 	 exprn1 , exprn2 ; 
#include 
	main() 	{ 
	int i, j , max; 
	printf(“Please enter the maximum value \n”); 
	printf(“for which a table can be printed:“); 
	scanf(“%d”, &max);	 
	 for(i = 0 , j = max ; i <=max ; i++, j--) 
	printf(”\n%d + %d = %d”,i, j, i + j); 
	} 
26 
Vòng lặp for lồng nhau 
Các cấu trúc điều khiển 
Các vòng lặp for lồng nhau khi nó có dạng như sau 
for (i = 1; i<max1; i++)	{ 
	for (j = 0; j < = max2; j++){ 
	} 
} 
27 
Các cấu trúc điều khiển 
#include 
	main() { 
	int i, j, k; 
	i = 0; 
	printf("Enter no. of rows :"); 
	scanf("%d", &i); 
	printf("\n"); 
	for (j = 0; j < i ; j++){ 
	printf("\n"); 
	for (k = 0; k <= j; k++) /*inner for loop*/ 
	printf("*"); 
	} 
	} 
Vòng lặp for lồng nhau - Ví dụ 
28 
Các cấu trúc điều khiển 
	 while (condition is true) 
	statement ; 
Vòng lặp while lặp lại các lệnh trong khi một biểu thức điều kiện mang giá trị True 
Vòng lặp while 
Cú pháp 
29 
Các cấu trúc điều khiển 
/*A simple program using the while loop*/ 
	#include 
	main() { 
	int count = 1; 
	while( count <= 10) { 
	 printf(“\n This is iteration 	%d\n”,count); 
	 count++; 
	} 
	printf(“\n The loop is completed.\n”); 
 } 
Vòng lặp while - Ví dụ 
30 
Các cấu trúc điều khiển 
Vòng lặp dowhile 
 Trong vòng lặp do while phần thân của vòng lặp được thực thi trước khi biểu thức điều kiện được kiểm tra 
 Khi điều kiện mang giá trị False, vòng lặp do while sẽ được kết thúc, và điều khiển chuyển đến lệnh xuất hiện ngay sau lệnh while 
Cú pháp 
do{ 
 statement; 
 } while (condition); 
31 
Các cấu trúc điều khiển 
#include 
 main (){ 
	int num1, num2; 
 num2 = 0; 
	do	{ 
	 printf( "\nEnter a number : "); 
	 scanf(“%d”,&num1); 
	 printf( " No. is %d",num1); 
	 num2++; 
	} while (num1 != 0); 
	printf ("\nThe total numbers entered were 	%d",--num2); 
/*num2 is decremented before printing because count for last integer (0) is not to be considered */ 
	} 
Vòng lặp dowhile - Ví dụ 
32 
Các cấu trúc điều khiển 
Các lệnh chuyển điều khiển 
return 
expression 
Lệnh return được sử dụng để trở về từ một hàm 
Thực hiện lệnh return để trở về vị trí mà tại đó hàm được gọi 
Lệnh return có thể có một giá trị đi cùng, giá trị này được trả về cho chương trình gọi 
33 
Các cấu trúc điều khiển 
goto 
label 
Lệnh goto chuyển điều khiển đến một câu lệnh bất kỳ khác bên trong cùng một hàm trong một chương trình C 
Điều này thật ra vi phạm đến qui luật của một ngôn ngữ lập trình cấu trúc. 
Chúng làm giảm độ tin cậy của chương trình và chương trình khó bảo trì. 
Các lệnh chuyển điều khiển (tt.) 
34 
Các cấu trúc điều khiển 
break 
statement 
Lệnh break được sử dụng để kết thúc một mệnh đề case trong câu lệnh switch 
Nó cũng có thể được sử dụng để kết thúc ngang giữa vòng lặp 
Khi gặp lệnh break, vòng lặp sẽ kết thúc ngay và điều khiển được chuyển đến lệnh kế tiếp bên ngoài vòng lặp 
Các lệnh chuyển điều khiển (tt.) 
35 
Các cấu trúc điều khiển 
Lệnh break – Ví dụ 
#include 
	main (){ 
	int count1, count2; 
	for(count1 = 1, count2 = 0; 	 count1 <=100; count1++) { 
	printf("Enter %d count2: ",count1); 
	 scanf("%d", &count2); 
	if(count2==100) break; 
	} 
	} 
36 
Các cấu trúc điều khiển 
continue 
statement 
Lệnh continue dùng để bắt đầu thực hiện lần lặp kế tiếp của vòng lặp 
Khi gặp lệnh continue , các câu lệnh còn lại trong thân vòng lặp bị bỏ qua và điều khiển được chuyển đến lần lặp kế tiếp 
Các lệnh chuyển điều khiển (tt.) 
37 
Các cấu trúc điều khiển 
Lệnh continue – Ví dụ 
#include 
	main ()	{ 
	int num; 
	for(num = 1;num<=100; num++){ 
	if(num % 9 == 0) 
	continue; 
	printf("%d\t",num); 
	} 
	} 
38 
Các cấu trúc điều khiển 
exit() 
hàm 
Hàm exit() được sử dụng để thoát khỏi chương trình 
Sử dụng hàm này sẽ kết thúc ngay chương trình và điều khiển được chuyển về cho hệ điều hành 
Các lệnh chuyển điều khiển (tt) 
39 
Tóm tắt nội dung 
Các cấu trúc điều khiển 
Cấu trúc tuần tự 
Cấu trúc rẽ nhánh (if, switch) 
Cấu trúc lặp 
for 
while 
do while 
40 
Thảo luận 
Các cấu trúc điều khiển 
41 
So sánh các vòng lặp 
Ý nghĩa sử dụng của từng loại vòng lặp 
Hạn chế khi sử dụng break 
CÂU HỎI VÀ BÀI TẬP 
Các cấu trúc điều khiển 
42 
Bài 6 -Viết chương trình nhập số n, tìm và in các số nguyên tố thuộc 2..n 
Bài 7: Kiểm tra số fibonaxi 
Bài 8: Kiểm tra số hoàn chỉnh 
Bài 9: Tính sin(x) theo công thức khai triển Taylor với độ chính xác cho trước 
Bài 10: Nhập dãy có n số thực, hãy xác định trật tự của dãy đó (tăng, giảm, điều hay không có thứ tự) 
Bài 11: Nhập n, in n số fibonaxi đầu tiên 
Bài 12: Nhập số n, in các số nguyên tố 2..n 
Bài 13: Viết chương trình nhập dãy các số nguyên dương từ bàn phím, cho tới khi nhập số âm thì kết thúc nhập, tìm giá trị lớn nhất và số phần tử bằng giá trị lớn 
Các cấu trúc điều khiển 
43 
- C1: tính cos(x) theo công thức khai triển Taylor 
- C2: Tính tổng 1/(i!) với i: 1÷n 
- C3: Tìm n số nguyên tố đầu tiên 
- C4: Nhập n số thực, tìm và in giá trị lớn nhất, nhỏ nhất 
- C5: Viết chương trình nhập dãy các số nguyên dương từ bàn phím, cho tới khi nhập số âm thì kết thúc nhập, tìm giá trị lớn nhất và số phần tử bằng giá trị lớn nhất đó 
- C6: Viết chương trình chọn ngẫu nhiên một kí tự c nào đó, cho phép lặp nhập một kí tự từ bàn phím, nếu trùng với c thì thông báo chọn đúng và kết thúc 
- C7: Viết chương in bảng cửu chương ra màn hình 
- C8: Tính đại lượng với n cho trước S= 
CÂU HỎI VÀ BÀI TẬP 
HỎI VÀ ĐÁP 
Máy tính điện tử và xử lý thông tin 

File đính kèm:

  • pptbai_giang_lap_trinh_co_ban_bai_7_cac_cau_truc_dieu_khien.ppt