1. Trang chủ
  2. » Giáo án - Bài giảng

Chương 05: Cấu trúc lặp trong C

38 326 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 38
Dung lượng 407,3 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Câu lệnh forn Rất phù hợp với bài toán cần lặp với số lần lặp xác định số lần này là số nguyên n Rất nhiều bài toán trong kỹ thuật dùng mảng để lưu trữ dữ liệu n Sẽ học mảng trong chương

Trang 1

Chương 05 Cấu trúc lặp

Lê Thành Sách

Trang 4

Ứng dụng của cấu trúc lặp

n Xử lý dữ liệu

n Dữ liệu trong thực tế rất nhiều

n Chương trình để xử lý ít nhất phải chạm đến tất cả các dữ liệu này

n Chạm đến tất cả hay nhóm sinh viên nào đó

n Trong quản lý sinh viên

n Chạm đến tất cả hay nhóm sản phẩm nào đó

n Trong quản lý hàng hoá

n Chạm đến tất cả hay nhóm điểm ảnh nào đó

n Trong xử lý điểm ảnh

Trang 5

Ứng dụng của cấu trúc lặp

n Xử lý dữ liệu

n Thuật toán

n Nhiều thuật toán trong thực tế cần lặp

n Bài toán xấp xỉ các hàm phi tuyến: sin(x), cos(x), v.v

n Bài toán tìm nghiệm của phương trình

Trang 6

Câu lệnh for

n Rất phù hợp với bài toán cần lặp với số lần lặp xác định (số lần này

là số nguyên)

n Rất nhiều bài toán trong kỹ thuật dùng mảng để lưu trữ dữ liệu

n Sẽ học mảng trong chương sau

n Để xử lý dữ liệu trên mảng (duyệt qua các phần tử), cấu trúc for

là phù hợp nhất

n Câu lệnh for, khi kết hợp break, cũng có thể dừng câu lệnh lặp

n for cũng dùng với các kiểu lặp khác

Trang 8

Câu lệnh for

Ý tưởng

n <khởi tạo>

n Công dụng:

n Khai báo biến: dùng trong chỉ câu lệnh lặp

n Khởi tạo các biến điều khiển câu lệnh lặp

n Số lượng:

n Không, một hay nhiều biến được khai báo (cùng kiểu) và khởi động

n Các phép khởi động cách nhau bởi dấu phẩy

Trang 9

Câu lệnh for

Ý tưởng

n Cộng dụng

n Nhằm thay đổi giá trị của biến điều khiển

n Vì thường câu lệnh sẽ dừng khi biểu thức điều kiện được tính trên các giá trị này

n Số lượng

n Không, một, hay nhiều phép thay đổi biến điều khiển

n Các phép cách nhau bằng dấu phẩy

n <Câu lệnh>

n Là câu lệnh đơn hay phức bất kỳ

Trang 10

n (2) Nếu <điều kiện> là true

n Thực hiện câu lệnh <câu lệnh>

n Thực thi các thay đổi trong <thay đổi giá trị>

n Kiểm tra lại điều kiện ở Bước (2) ở trên

n (3) Ngược lại

n Đi đến câu lệnh theo sau câu lệnh lặp này

Trang 11

Trường hợp triển khai cho câu lệnh phức

for (<khởi tạo>; <điều kiện>; <thay đổi giá trị>) {

<câu lệnh 1>

<câu lệnh 2>

<câu lệnh N>

Trang 12

Câu lệnh for

Cú pháp

n Giữa dấu ( và dấu ) của for

n Luôn luôn có đúng 3 dấu chấm phẩy (;) Chia ra 3 phạm vị

n Khởi động

n Biểu thức điều kiện

n Thay đổi giá trị

n Cả ba vùng này có thể trống

for(;;){

//câu lệnh}

Trang 13

Câu lệnh for

Cú pháp

n Biến được khai báo trong for

n Chỉ được dùng trong for

n Không nhìn thấy và không dùng được ở các lệnh theo sau for

n Câu lệnh break;

n Khi câu lệnh for thực thi đến lệnh break; nó sẽ thoát khỏi vòng lặp ngay lập tức Nghĩa là chương trình nhảy đến thực thi lệnh theo sau for

n Câu lệnh continue;

n Khi câu lệnh for thực thi đến lệnh continue; nó không thực thi các lệnh còn lại (theo sau continue) của vòng lặp hiện tại Nó đi đến bước kiểm tra điều kiện để xem có thực thi vòng lặp kế tiếp hay không

Trang 15

printf( "\n\n" );

Cách 1: ngắn gọn

Cách 2: for(;;)

à phải dùng break ;

Trang 16

Câu lệnh for

Ví dụ

for ( int i=0, k= 10; i < k; i++, k ){

printf( "%-4d" , i*k);

} printf( "\n\n" );

for ( int i=0, k= 10, n=0; n < 10; i++, k , n++){

printf( "%-4d" , i*k);

} printf( "\n" );

Hai đoạn chương trình trên in ra gì, vì sao?

Trang 17

Câu lệnh for

Ví dụ

n Nhâp vào số nguyên N > 0

n Chương trình sinh ngẫu nhiên N điểm ( từ 0 đến 10)

n Chương trình in ra điểm và loại tương ứng như hình vẽ

Trang 19

Câu lệnh for

Ví dụ

time_t t;

srand(( unsigned ) time(&t));

for ( int i=0; i<N; i++){

float diem = (( float )rand() / RAND_MAX)*10;

Trang 20

Câu lệnh for lồng nhau

n Được sử dụng khi cần xử lý mảng nhiều chiều

n Khi cần truy cập những dữ liệu có trúc mảng trong mảng

Ví dụ: khi cần truy cập thông tin sinh viên, ta có thể truy cập theo:

- Duyệt qua tất cả các lớp

- Ứng với mỗi lớp, truy cập thông tin của từng sinh viên

n V.v

Trang 22

Câu lệnh while

Ý tưởng

n Chương trình kiểm tra biểu thức điều kiện

n Nếu điều kiện là true

n Thực thi câu lệnh

n Đến kiểm tra điều kiện

n => Câu lệnh phải có phép toán thay đổi biểu thức điều kiện

để chương trình không lặp vô hạn

n Ngược lại, (là false) chương trình đi đến phát biểu theo sau

Trang 24

Câu lệnh while

Cú pháp

n Thông thường các câu lệnh trước (liền trước while) đã thực hiện

phép gán sao cho điều kiện thực hiện được thoả mãn

n Có thể là gán biến điều khiển

n Với các dạng này cần dùng break;

n Ý nghĩa của câu lệnh break và continue như trình bày trong for

Trang 25

system( "pause" );

return 0;

}

Phép khởi động trước vòng lặp là cần thiết và quan trọng

Vòng lặp phải thay đổi biểu thức điều kiện

Trang 26

Câu lệnh while

Ví dụ

n Dùng Taylor Maclaurin

Trang 28

Câu lệnh do while

Ý tưởng

n (1) Chương trình thực thi ngay <câu lệnh>

n Do đó, <câu lệnh> được thực thi ít nhất 01 lần

n Sau khi thực thi xong, chương trình đánh giá biểu thức điều kiện

và kiểm tra

n (2) Nếu điều kiện là true

n Đi đến bước (1) để thực thi <câu lệnh>

n (3) Ngược lại, (false) chương trình đi đến phát biểu theo sau

Trang 29

Câu lệnh do while

Cú pháp

do {

<câu lệnh>

} while <điều kiện>)

Trường hợp triển khai cho câu lệnh phức

Trang 30

Câu lệnh do while

Cú pháp

n Thông thường các câu lệnh trước (liền trước do) đã thực hiện phép gán để xác định điều kiện đầu của bài toán

Trang 31

Câu lệnh do while

Cú pháp

n Câu lệnh while và do while khá tương tự nhau

n while:

n Câu lệnh có thể không được thực thi

n do While:

n Câu lệnh được thực thi ít nhất 01 lần

n Các phép gán trước (liền trước) các câu lệnh while và do while là

rất quan trọng để xác định điều kiện đầu của bài toán

Trang 32

Một số lỗi hay gặp khi xử lý vòng lặp

n Chương trình không “chạm” đến điều kiện dừng

n Chương trình “chạm” đến được nhưng biểu thức điều kiện không

đáp ứng

Trang 33

Một số lỗi hay gặp khi xử lý vòng lặp

cout << j << " ";j++;

}}

cout <<endl;

}

Trang 36

Bài tập 3

n Đầu vào: N ( số dòng của ma trận vuông )

n Đầu ra: ma trận chứa các số theo hình xoắn ốc

Trang 37

Bài tập 4

n Nhập vào số N và xuất ra dãy số chính phương không lớn hơn N

n Nhập vào số N và xuất ra dãy số Fibonaci không lớn hơn N

Ví dụ: với N = 20Dãy số chính phương không lớn hơn 20:

1, 4, 9, 16Dãy số Fibonaci không lớn hơn 20:

1, 1, 2, 3, 5, 8, 13

Trang 38

Tổng kết

Ngày đăng: 29/03/2017, 17:50

TỪ KHÓA LIÊN QUAN

w