đây là bài viết về lệnh lặp nếu các bạn chưa chắc về kiến thức rẽ nhánh thì nên tham khảo lại TẠI ĐÂY . chúc các bạn vui vẻ. Show
sau đây là chi tiết : Giới thiệu - Một trong những điểm mạnh lớn nhất của máy tính là khả năng thực hiện một chuỗi các lệnh lặp đi lặp lại. Điều đó có được là do sử dụng các cấu trúc lặp trong ngôn ngữ lập trình. Trong bài này bạn sẽ tìm hiểu các loại vòng lặp khác nhau C. 1. Vòng lặp - Vòng lặp là một đoạn mã lệnh trong chương trình được thực hiện lặp đi lặp lại cho đến khi thỏa mãn một điều kiện nào đó. Vòng lặp là một khái niệm cơ bản trong lập trình cấu trúc. Trong C có các loại vòng lặp sau (for, while, do...while) - Ta sử dụng các toán tử quan hệ và toán tử logic trong các biểu thức điều kiện để điều khiển sự thực hiện của vòng lặp. 2. Vòng lặp "for" - Cú pháp tổng quát của vòng lặp "for" như sau: sơ đồ khối: cấu trúc vòng lặpfor (khởi tạo giá trị cho biến điều khiển; biểu thức điều kiện; biểu thức thay đổi giá trị của biến điều khiển) { Cậu lệnh (các câu lệnh); } - Khởi tạo giá trị cho biến điều khiển là một câu lệnh gán giá trị ban đầu cho biến điều khiển trước khi thực hiện vòng lặp. Lênh này chỉ được thực hiện duy nhất một lần. Biểu thức điều kiện là một biểu thức quan hệ, xác định điều kiện thoát cho vòng lặp. Biểu thức thay đổi giá trị của biến điều khiển xác định biến điều khiển sẽ bị thaddooior thế nào sau mỗi lần vòng lặp được lặp lại (thường là tăng hoặc giảm giá trị của biến điều khiển). Ba phần trên được phân cách bởi dấu chấm phẩy. Câu lệnh trong than vòng lặp có thể là một lệnh duy nhất (lệnh đơn) hoặc lệnh phức (nhiều lệnh). - Vòng lặp for sẽ tiếp tục được thực hiện chừng nào mà biểu thức điều kiện còn [b]đúng (true)[b]. Khi biểu thức điều kiện là sai (false), chương trình sẽ thoát ra khỏi vòng lặp for - Toán tử "phẩy (comma)": phần biểu thức trong toán tử for có thể được mở rộng để thêm vào các lệnh khởi tạo hay các lệnh thay đổi giá trị của biến. Cú pháp như sau: code: - Các biểu thức trên được phân tách bởi toán tử phẩy ",", và được thực hiên từ trái sang phải. Thứ tự của các biểu thức là quan trọng trong trường hợp giá trị của biểu thức thứ hai phục thuộc vào giá trị của biểu thức thứ nhất. Toán tử này có độ ưu tiên thấp nhất trong các toán tử của C. 3. Vòng lặp "for" lông nhau - Một vòng lặp for được gọi là lông nhau khi nó nằm bên trong một vòng lặp for khác. Nó sẽ có dạng tương tự như sau: sơ đồ khối vòng lặp for lồng nhaucode: for (i=1; i< max1; i ++) { .... .... for (j=1;j< max1;j++) { .... .... } } - Vòng lặp for khi không có bất kỳ thành phần nào sẽ là một vòng lặp vô tận. Tùy nhiên, lệnh break bên trong vòng lặp sẽ cho phép thoát khỏi vòng lặp. 4. Vòng lặp "while" - Cấu trúc lặp thứ hai trong C là vòng lặp while. Cú pháp tổng quát như sau: sơ đồ khối: cấu trúc vòng lặpcode: while (điều_kiện_là_đúng) câu_lệnh; - Trong đó, câu_lệnh có thể là rỗng, hay một lệnh đơn, hay một khối lệnh. Nếu vòng lặp while chứa một tập lệnh thì chúng phải được đặt trong cặp ngoặc xoắn {}. điều_kiện có thể là biểu thức bất kỳ. Vòng lặp sẽ được thực hiện lặp đi lặp lại khi điều kiện trên là đúng (true). Chương trình sẽ chuyển đến thực hiện lệnh tiếp theo sau vòng lặp khi điều kiện trên là sai (false). - Vòng lặp for có thể được sử dụng khi số lần thực hiện vòng lặp đã được xác định trước. Khi số lần lặp không biết trước, vòng lăp while có thể được sử dụng. 5. Vòng lặp "do...while" - Vòng lặp do ... while còn được gọi là vòng lặp do trong C. Không giống như vòng lặp for và while, vòng lặp này kiểm tra điều kiện tại cuối vòng lặp. Điều này có nghĩa là vòng lặpdo...while sẽ được thực hiện ít nhất một lần, ngay cả khi điều kiện la sai (false) ở lần chạy đầu tiên. Cú pháp tổng quát của vòng lặp do...while viết như sau: sơ đồ khối cấu trúc vòng lặp do-whilecode: do { câu_lệnh } while(điều_kiện); - Cặp dấu ngoặc "{}" là không cần thiết khi chỉ có một câu lệnh hiện diện trong vòng lặp, nhưng việc sử dụng dấu ngoặc "{}" là một thói quen tốt. Vòng lặp do...while lặp đến khi điều_kiện mang giá trị false. Trong vòng lặp do...while, câu_lệnh (khối các câu lệnh) sẽ được thực thi trước, và sau đó điều_kiện được kiểm tra. Nếu điều_kiện là true, chương trình sẽ quay lại thực hiện lệnh do. Nếu điều kiện là false, chương trình chuyển đến thực hiện lệnh nằm sau vòng lặp. Tương tự như vòng lặp for, các vòng lặp while và do...while cũng có thể lồng vào nhau. 6. Các lệnh nhẩy
- Lệnh return dùng để quay lại vị trí gọi hàm sau khi các lệnh trong hàm đó được thực thi xong. Trong lệnh return có thể có một giá trị gắn với nó, giá trị đó sẽ được trả về cho chương trình. Cú pháp tổng quát của cậu lệnh return như sau: code - Biểu thức là một tùy chọn (không bắt buộc). Có thể có hơn một lệnh return được sử dụng trong một hàm. Tuy nhiên, hàm sẽ quay trở về vị trí gọi hàm khi gặp lệnh return đầu tiên.
code: goto lebel; - Trong đó label là một định danh phải xuất hiện như tiền tố (prefix) của một câu lệnh khác trong cùng một hàm. Dấu chấm phẩy ";" sau label đánh dấu sự kết thúc của lệnh goto
code: - Ở đó mã_trả_về là một tùy chọn. Số 0 thường được dùng như một mã_trả_về để xác định sự kết thúc chương trình một cách bình thường. Những giá trị khác xác định một vài loại lỗi. bài làm luyện tập: Bài 1. Declare a variable which has the age of the person. Print the user’s name as many times as his age 1. Khai báo một biến có độ tuổi của con người. In tên nhiều lần của người dùng như tuổi tác của mình sơ đồ khối: in tên số lần tuổicode vòng lặp while; include <stdio.h>include <stdlib.h>/ run this program using the console pauser or add your own getch, system("pause") or input loop / int main(int argc, char *argv[]) { char a[20]; int i,j; printf("Ten: "); scanf("%s",a); printf("Tuoi: "); scanf("%d",&i); j=1; printf("\n\n\n"); while (j<=i) { }
printf("\n\n\n");
system("pause");
return 0;
}code: vòng lặp for; include <stdio.h>include <stdlib.h>/ run this program using the console pauser or add your own getch, system("pause") or input loop / int main(int argc, char *argv[]) { char a[20]; int i,j; printf("Ten: "); scanf("%s",a); printf("Tuoi: "); scanf("%d",&i); j=1; printf("\n\n\n"); for (j=1;j<=i;j++) { }
printf("\n\n\n");
system("pause");
return 0;
}code vòng lặp do - while: include <stdio.h>include <stdlib.h>/ run this program using the console pauser or add your own getch, system("pause") or input loop / int main(int argc, char *argv[]) { char a[20]; int i,j; printf("Ten: "); scanf("%s",a); printf("Tuoi: "); scanf("%d",&i); j=1; printf("\n\n\n"); do { }
while (j<=i);
printf("\n\n\n");
system("pause");
return 0;
}kết quả ra màn hình: in tên với số tuổiBài 2. The program displays even numbers from 1 to 30.2. Chương trình sẽ hiển thị ngay cả con số 1-30. sơ đồ khối: in số từ 1-30code: vòng lặp while include <stdio.h>include <stdlib.h>/ run this program using the console pauser or add your own getch, system("pause") or input loop / int main(int argc, char *argv[]) { int i; i=1; while (i<=30){ }
printf("\n\n\n");
system("pause");
return 0;
}code vòng lặp for include <stdio.h>include <stdlib.h>/ run this program using the console pauser or add your own getch, system("pause") or input loop / int main(int argc, char *argv[]) { int i; i=1; for(i=1;i<=30;i=i+2){ }
printf("\n\n\n");
system("pause");
return 0;
}code: vòng lặp do-while for (i=1; i< max1; i ++) { .... .... for (j=1;j< max1;j++) { .... .... } } 0 kết quả in ra màn hình in các số từ 1-30Bài: 3. The program displays numbers from 10 to 0 in the reverse order3. Những con số hiển thị chương trình 10-0 trong thứ tự đảo ngược sờ đồ khối : in từ 10-1code vòng lặp while: for (i=1; i< max1; i ++) { .... .... for (j=1;j< max1;j++) { .... .... } } 1 code vòng lặp for: for (i=1; i< max1; i ++) { .... .... for (j=1;j< max1;j++) { .... .... } } 2 code vòng lặp do-while for (i=1; i< max1; i ++) { .... .... for (j=1;j< max1;j++) { .... .... } } 3 kết quả ra màn hình: in từ 10-1Bài: 4. The program will accept integers and display them until zero (0) is entered4. Chương trình sẽ chấp nhận số nguyên và hiển thị chúng cho đến khi bằng không (0) được nhập sơ đồ khối: hiển thị 1 số cho tới 0code: vòng lặp while: for (i=1; i< max1; i ++) { .... .... for (j=1;j< max1;j++) { .... .... } } 4 code vòng lặp for: for (i=1; i< max1; i ++) { .... .... for (j=1;j< max1;j++) { .... .... } } 5 code vòng lặp do while: for (i=1; i< max1; i ++) { .... .... for (j=1;j< max1;j++) { .... .... } } 6 kết quả in ra màn hình in số giảm dầnBài 5. Find the factorial of a number.Hint: Get the number. To begin, set the factorial of the number to be one. While the number is greater than one Set the factorial to be the factorial multiplied by the number. Decrement the number. Print out the factorial 5. Tìm các giai thừa của một số. gợi ý: Lấy tổng số. Để bắt đầu, thiết lập giai thừa của các số được một. Trong khi con số này lớn hơn một Đặt thừa là thừa nhân với số. Giảm các số. In ra các thừa sơ đồ khối Tìm giai thừacode vòng lặp while: for (i=1; i< max1; i ++) { .... .... for (j=1;j< max1;j++) { .... .... } } 7 code vòng lặp for: for (i=1; i< max1; i ++) { .... .... for (j=1;j< max1;j++) { .... .... } } 8 code vòng lặp do-while: for (i=1; i< max1; i ++) { .... .... for (j=1;j< max1;j++) { .... .... } } 9 hiện ra màn hình: tìm giai thừaBài 6. Write a program to print the series 100, 95 , 90, 85,………., 5.6. Viết chương trình in ra hàng loạt 100, 95, 90, 85, .........., 5. sơ đồ khối: in ra bội số của 5code vòng lặp while: while (điều_kiện_là_đúng) câu_lệnh; 0 code vòng lặp for: while (điều_kiện_là_đúng) câu_lệnh; 1 code vòng lặp do while: while (điều_kiện_là_đúng) câu_lệnh; 2 in ra màn hình: in bội số của 5Bài: 7. Accept two numbers num1 and num2. Find the sum of all odd numbers between the two numbers entered .7. Chấp nhận hai số num1 và num2. Tìm tổng của tất cả các số lẻ giữa hai số nhập vào. sơ đồ khối: tổng các số lẻ trong khoảng biết trướccode vòng lặp while: while (điều_kiện_là_đúng) câu_lệnh; 3 code vòng lặp for: while (điều_kiện_là_đúng) câu_lệnh; 4 code vòng lặp do-while: while (điều_kiện_là_đúng) câu_lệnh; 5 in ra màn hình in tổng các số lẻ trong khoảng biết trước8. Write a program to generate the Fibonacci series. (1,1,2,3,5,8,13,………)8. Viết chương trình để tạo ra các loạt Fibonacci. (1,1,2,3,5,8,13, .........) sờ đồ khối: fibonaccicode vòng lặp while: while (điều_kiện_là_đúng) câu_lệnh; 6 code vòng lặp for: while (điều_kiện_là_đúng) câu_lệnh; 7 code vòng lặp do-while: while (điều_kiện_là_đúng) câu_lệnh; 8 in ra màn hình: fibonacciTrên đây là toàn bộ kiến thức về vòng lặp... mong rằng bài viết của mình sẽ khiến các bạn hiểu về phần này... chúc các bạn vui vẻ... |