Bài 10. Cấu Trúc Lặp - SGK Tin Học 11 - Giải Bài Tập

Giải Bài Tập

Giải Bài Tập, Sách Giải, Giải Toán, Vật Lý, Hóa Học, Sinh Học, Ngữ Văn, Tiếng Anh, Lịch Sử, Địa Lý

  • Home
  • Lớp 1,2,3
    • Lớp 1
    • Giải Toán Lớp 1
    • Tiếng Việt Lớp 1
    • Lớp 2
    • Giải Toán Lớp 2
    • Tiếng Việt Lớp 2
    • Văn Mẫu Lớp 2
    • Lớp 3
    • Giải Toán Lớp 3
    • Tiếng Việt Lớp 3
    • Văn Mẫu Lớp 3
    • Giải Tiếng Anh Lớp 3
  • Lớp 4
    • Giải Toán Lớp 4
    • Tiếng Việt Lớp 4
    • Văn Mẫu Lớp 4
    • Giải Tiếng Anh Lớp 4
  • Lớp 5
    • Giải Toán Lớp 5
    • Tiếng Việt Lớp 5
    • Văn Mẫu Lớp 5
    • Giải Tiếng Anh Lớp 5
  • Lớp 6
    • Soạn Văn 6
    • Giải Toán Lớp 6
    • Giải Vật Lý 6
    • Giải Sinh Học 6
    • Giải Tiếng Anh Lớp 6
    • Giải Lịch Sử 6
    • Giải Địa Lý Lớp 6
    • Giải GDCD Lớp 6
  • Lớp 7
    • Soạn Văn 7
    • Giải Bài Tập Toán Lớp 7
    • Giải Vật Lý 7
    • Giải Sinh Học 7
    • Giải Tiếng Anh Lớp 7
    • Giải Lịch Sử 7
    • Giải Địa Lý Lớp 7
    • Giải GDCD Lớp 7
  • Lớp 8
    • Soạn Văn 8
    • Giải Bài Tập Toán 8
    • Giải Vật Lý 8
    • Giải Bài Tập Hóa 8
    • Giải Sinh Học 8
    • Giải Tiếng Anh Lớp 8
    • Giải Lịch Sử 8
    • Giải Địa Lý Lớp 8
  • Lớp 9
    • Soạn Văn 9
    • Giải Bài Tập Toán 9
    • Giải Vật Lý 9
    • Giải Bài Tập Hóa 9
    • Giải Sinh Học 9
    • Giải Tiếng Anh Lớp 9
    • Giải Lịch Sử 9
    • Giải Địa Lý Lớp 9
  • Lớp 10
    • Soạn Văn 10
    • Giải Bài Tập Toán 10
    • Giải Vật Lý 10
    • Giải Bài Tập Hóa 10
    • Giải Sinh Học 10
    • Giải Tiếng Anh Lớp 10
    • Giải Lịch Sử 10
    • Giải Địa Lý Lớp 10
  • Lớp 11
    • Soạn Văn 11
    • Giải Bài Tập Toán 11
    • Giải Vật Lý 11
    • Giải Bài Tập Hóa 11
    • Giải Sinh Học 11
    • Giải Tiếng Anh Lớp 11
    • Giải Lịch Sử 11
    • Giải Địa Lý Lớp 11
  • Lớp 12
    • Soạn Văn 12
    • Giải Bài Tập Toán 12
    • Giải Vật Lý 12
    • Giải Bài Tập Hóa 12
    • Giải Sinh Học 12
    • Giải Tiếng Anh Lớp 12
    • Giải Lịch Sử 12
    • Giải Địa Lý Lớp 12
Trang ChủLớp 11Giải Bài Tập Tin Học 11SGK Tin Học 11Bài 10. Cấu trúc lặp SGK Tin Học 11 - Bài 10. Cấu trúc lặp
  • Bài 10. Cấu trúc lặp trang 1
  • Bài 10. Cấu trúc lặp trang 2
  • Bài 10. Cấu trúc lặp trang 3
  • Bài 10. Cấu trúc lặp trang 4
  • Bài 10. Cấu trúc lặp trang 5
  • Bài 10. Cấu trúc lặp trang 6
  • Bài 10. Cấu trúc lặp trang 7
§10 . CẤU TRÚC LẶP 1. Lặp Với a là số nguyên và a > 2, xét các bài toán sau đây: Bài toán 1. Tính và đưa kết quả ra màn hình tổng s — H a a + ì a + 2 + ... + ữ + 100 Bài toán 2. Tính và đưa kết quả ra màn hình tổng s = - + a a + I a + 2 1 1.1,1 + —-— + ... + —-— + cho đến Khi ——— < 0,0001. a + N Với cả hai bài toán, dễ thấy cách để tính tổng 5 có nhiều điểm tương tự: • Xuất phát, s được gán giá trị —; a • Tiếp theo, cộng vào tổng s một giá trị ——— với N = 1, 2, 3, 4, 5,... a + N Việc cộng này được lặp lại một số lần. Đối với bài toán 1, số lần lặp là 100 và việc cộng vào tổng s sẽ kết thúc khi đã thực hiện việc cộng 100 lần. Đối với bài toán 2, số lần lặp chưa biết trước nhưng việc cộng vào tổng s sẽ kết thúc khi điều kiện ——- < 0,0001 được thoả mãn. a + N Nói chung, trong một số thuật toán có những thao tác phải thực hiện lặp đi lặp lại một số lần. Một trong các đặc trưng của máy tính là có khả năng thực hiện hiệu quả các- thao tác lặp. Cấu trúc lặp mô tả thao tác lặp và có hai dạng là lặp với số lần biết trước và lặp với số lần chưa biết trước. Các ngôn ngữ lập trình đều có các câu lệnh để mô tả cấu trúc lặp. Lặp vỏi số lần biết trưốc và câu lệnh for-do Có hai thuật toán Tong_la và Tong_lb để giải bài toán 1 như sau: Thuật toán Tong_la Bước 1. s <— 1/a; N <— 0; {Khởi tạo s và N} Bước 2. N <^N + 1; Bước 3. Nếu N > 100 thì chuyển đến bước 5; Bước 4. s <—S + l/(a + N) rồi quay lại bước 2; Bước 5. Đưa s ra màn hình, rồi kết thúc. Thuật toán Tong_lb Bước 1. s <— 1/a; N <— 101; {Khởi tạo s và N} Bước 2. N <r-N - 1; Bước 3. Nếu N < 1 thì chuyển đến bước 5; Bước 4. s <- s + l/(ứ + N) rồi quay lại bước 2; Bước 5. Đưa s ra màn hình rồi kết thúc. Lưu ý, số lần lặp của cả hai thuật toán trên là biết trước và như nhau (100 lần). Trong thuật toán Tong_la, giá trị N khi bắt đầu tham gia vòng lặp là 1 và sau mỗi lần lặp N tăng lên 1 cho đến khi N > 100 (2V = 101) thì kết thúc lặp (thực hiện đủ 100 lần). Trong thuật toán Tong_lb, giá trị 7V bắt đầu tham gia vòng lặp là 100 và sau mỗi lần lặp N giảm đi 1 cho đến khi N < 1 (N = 0) thì kết thúc lặp (thực hiện đủ 100 lần). Ta nói cách lặp trong thuật toán Tong_la là dạng tiến và trong thuật toán Tong_lb là dạng lùi. Để mô tả cấu trúc lặp với số lần biết trước, Pascal dùng câu lệnh lặp for-do với hai dạng tiến và lùi như sau: Dạng lặp tiến: for := to do ỉ Dạng lặp lùi: for := downto do ; trong đó: Biến đếm là biến đơn, thường có kiểu nguyên. Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm và giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối. Nếu giá trị đầu lớn hơn giá trị cuối thì vòng lặp không được thực hiện. Hoạt động của lệnh for-do: ở dạng lặp tiến, câu lệnh viết sau từ khoá do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối. ở dạng lặp lùi, câu lệnh viết sau từ khoá do được thực hiện tuần tự, với biến đếm lần lượt nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu. Chú ý: Giá trị của biến đếm được điều chỉnh tự động, vì vậy câu lệnh viết sau do không được thay đổi giá trị biến đếm. Ví dụ 1. Sau đây là hai chương trình cài đặt các thuật toán Tong_la và Tong_lb. program Tong_la; uses crt; var S: real; a, N: integer; begin clrscr; write('Hay nhap gia tri a vao!'); readln(a) ; S:=1.0/a; for N:= 1 to 100 do {Buoc 1} (Buoc (Buoc (Buoc 2, Buoc 3} 4} 5} S: = S.+ 1.0/(a+N) ; : 8 : 4) ; writeln('Tong s readln la: S: end. program Tong lb; uses crt; var S: real; a, N: integer; begin . clrscr; write (‘Hay nhap gia tri a vao!' ); readln(a); {Buoc 1} {Buoc 2 va Buoc 3} {Buoc 4} {Buoc 5} S:=1.0/a; for N:= 100 downto 1 do S:= s+l.0/(a+N); writeln('Tong s la: ', S:8:4); readln end. Ví dụ 2. Chương trình sau thực hiện việc nhập từ bàn phím hai số nguyên dương M và N (M < N), tính và đưa ra màn hình tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ M đến N. program Vi_du_2; uses crt; var M, N, I: integer; T: longint; begin clrscr; writeln ('Nhap so M nho hpn N'); write('M = ');readln(M); write('N = ');readln(N); T: = 0; for I:= M to N do if (I mod 3=0) or (I mod 5=0) then • T:=T+I; writelnt'KET QUA: T); readln end. Lập vói số lần chưa biết trưóc và câu lệnh while-do Có thể xây dựng thuật toán Tong_2 như sau để giải bài toán 2. Thuật toán Tong_2 Bướt 7. s <—1/ữ; N <—0; {Khởi tạo S và 2V} Bước 2. Nếu l/(<2 + N) < 0,0001 thì chuyển đến bước 5; Bước 3. N <- N + 1; Bước 4. s <—S + l/(ơ + N) rồi quay lại bước 2; Bước 5. Đưa s ra màn hình, rồi kết thúc. Như vậy, việc lặp với số lần chưa biết trước sẽ chỉ kết thúc khi một điều kiện cho trước được thoả mãn. Để mô tả cấu trúc lặp như vậy, Pascal dùng câu lệnh whiỉe-do có dạng: while do; trong đó: Điều kiện là biểu thức lôgic; Câu lệnh là một câu lệnh đơn hoặc ghép. Việc thực hiện lệnh while-do được thể hiện trên sơ đồ ở hình 7. Hình 7. Sơ đồ lặp với số lần lặp chưa biết trước Ví dụ 1. Saụ đây là sơ đồ khối và chương trình cài đặt thuật toán Tong_2. Hình 8. Sơ đồ khối của thuật toán Tong 2 program Tong_2; uses crt; var S: real; a, N: integer; begin write ('Hay nhap gia tri a vao!'); readln (a) ; S: = 1.0/a; N; = 0; {Buoc 1} while not (1/(a+N)<0.0001) do {Buoc 2} begin N: = N+Ị; {Buoc 3} S: = s+l.o/(a+N); (Buoc 4} end; writeln('Tong s la: ', S:8:4); {Buoc 5} readln end. Ví dụ 2. Tìm ước chung lớn nhất (ƯCLN) của hai số nguyên dương M và N. Có nhiều thuật toán khác nhau tìm ƯCLN của M và N. Sau đây là một thuật toán tìm ƯCLN. Thuật toán Bước 1. Nhập M, N; Bước 2. Nếu M = N thì lấy giá trị chung này làm ƯCLN rồi chuyển đến bước 5; Bước 3. Nếu M > N ửù M <— M — N ngược lại N <— N - M; Bước 4. Quay lại bước 2; Bước 5. Đưa ra kết quả ƯCLN rồi kết thúc. Hình 9. Sơ đồ khối của thuật toán tìm ước chung lớn nhất Chương trình sau thể hiện thuật toán tìm ước chung lớn nhất. program UCLN; uses crt; var M,N:integer; begin clrscr; write('M, N = '); readln(M,N); while M N do if M > N then M:= M-N else N;= N-M; writeln('UCLN = ', M) ; readln end. Chú ý: Các câu lệnh trong vòng lặp thường được lặp lại nhiều lẩn, vì vậy để tăng hiệu quả của chương trình thì những thao tác không cần lặp lại nên đưa ra ngoài vòng lặp. TÓM TẮT Các ngôn ngữ lập trình đều có câu lệnh thể hiện cấu trúc rẽ nhánh và câu trúc lặp. Câu lệnh rẽ nhánh có hai dạng: o Dạng thiếu; o Dạng đủ. Có thể gộp dãy câu lệnh thành câu lệnh ghép. Các câu lệnh mô tả cấu trúc lặp: o Lặp với số lần biết trước; o Lặp với số lần chưa biết trước. Định lí Bohn Jacopini (Bon Ja-co-pi-ni): Mọi quá trình tính toán đều có thể mô tả và thực hiện dựa trên ba câu trúc cơ bản là cấu trúc tuần tự, cẫu trúc rẽ nhánh và cấu trúc lặp.

Các bài học tiếp theo

  • Bài tập và thực hành 2
  • Bài 11. Kiểu mảng
  • Bài tập và thực hành 3
  • Bài tập và thực hành 4
  • Bài 12. Kiểu xâu
  • Bài tập và thực hành 5
  • Bài 13. Kiểu bản ghi
  • Bài 14. Kiểu dữ liệu tệp
  • Bài 15. Thao tác với tệp
  • Bài 16. Ví dụ làm việc với tệp

Các bài học trước

  • Bài 9. Cấu trúc rẽ nhánh
  • Bài tập và thực hành 1
  • Bài 8. Soạn thảo, dịch, thực hiện và hiệu chỉnh chương trình
  • Bài 7. Các thủ tục chuẩn vào/ra đơn giản
  • Bài 6. Phép toán, biểu thức, câu lệnh gán
  • Bài 5. Khai báo biến
  • Bài 4. Một số kiểu dữ liệu chuẩn
  • Bài 3. Cấu trúc chương trình
  • Bài đọc thêm 2. Ngôn ngữ Pascal
  • Bài 2. Các thành phần của ngôn ngữ lập trình

SGK Tin Học 11

  • CHƯƠNG I. MỘT SỐ KHÁI NIỆM VỀ LẬP TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH
  • Bài 1. Khái niệm lập trình và ngôn ngữ lập trình
  • Bài đọc thêm 1. Bạn biết gì về các ngôn ngữ lập trình?
  • Bài 2. Các thành phần của ngôn ngữ lập trình
  • Bài đọc thêm 2. Ngôn ngữ Pascal
  • CHƯƠNG II. CHƯƠNG TRÌNH ĐƠN GIẢN
  • Bài 3. Cấu trúc chương trình
  • Bài 4. Một số kiểu dữ liệu chuẩn
  • Bài 5. Khai báo biến
  • Bài 6. Phép toán, biểu thức, câu lệnh gán
  • Bài 7. Các thủ tục chuẩn vào/ra đơn giản
  • Bài 8. Soạn thảo, dịch, thực hiện và hiệu chỉnh chương trình
  • Bài tập và thực hành 1
  • CHƯƠNG III. CẤU TRÚC RẼ NHÁNH VÀ LẶP
  • Bài 9. Cấu trúc rẽ nhánh
  • Bài 10. Cấu trúc lặp(Đang xem)
  • Bài tập và thực hành 2
  • CHƯƠNG IV. KIỂU DỮ LIỆU CÓ CẤU TRÚC
  • Bài 11. Kiểu mảng
  • Bài tập và thực hành 3
  • Bài tập và thực hành 4
  • Bài 12. Kiểu xâu
  • Bài tập và thực hành 5
  • Bài 13. Kiểu bản ghi
  • CHƯƠNG V. TỆP VÀ THAO TÁC VỚI TỆP
  • Bài 14. Kiểu dữ liệu tệp
  • Bài 15. Thao tác với tệp
  • Bài 16. Ví dụ làm việc với tệp
  • CHƯƠNG VI. CHƯƠNG TRÌNH CON VÀ LẬP TRÌNH CÓ CẤU TRÚC
  • Bài 17. Chương trình con và phân loại
  • Bài 18. Ví dụ về cách viết và sử dụng chương trình con
  • Bài tập và thực hành 6
  • Bài tập và thực hành 7
  • Bài đọc thêm 3. Ai là lập trình viên đầu tiên?
  • Bài 19. Thư viện chương trình con chuẩn
  • Bài tập và thực hành 8
  • Bài đọc thêm 4. Âm thanh
  • PHỤ LỤC A
  • 1. Một số phép toán thường dùng
  • 2. Giá trị phép toán lôgic
  • PHỤ LỤC B
  • 1. Môi trường Turbo Pascal
  • 2. Một số tên dành riêng
  • 3. Một số kiểu dữ liệu chuẩn
  • 4. Một số thủ tục và hàm chuẩn
  • 5. Câu lệnh rẽ nhánh và lặp
  • 6. Câu lệnh with
  • 7. Một số thông báo lỗi
  • PHỤ LỤC C
  • Câu lệnh rẽ nhánh và lặp trong C++

Từ khóa » Tin Học Lớp 11 Bài 10 Cấu Trúc Lặp