Tài nguyên dạy học

Hỗ trợ trực tuyến

  • (Nguyễn Lương Hùng)
  • (Trương Hoàng Anh)

Thống kê

  • truy cập   (chi tiết)
    trong hôm nay
  • lượt xem
    trong hôm nay
  • thành viên
  • Thành viên trực tuyến

    1 khách và 0 thành viên

    Chào mừng quý vị đến với Thư viện tài nguyên dạy học tỉnh Quảng Ninh.

    Quý vị chưa đăng nhập hoặc chưa đăng ký làm thành viên, vì vậy chưa thể tải được các tư liệu của Thư viện về máy tính của mình.
    Nếu đã đăng ký rồi, quý vị có thể đăng nhập ở ngay ô bên phải.

    Bài 8

    Wait
    • Begin_button
    • Prev_button
    • Play_button
    • Stop_button
    • Next_button
    • End_button
    • 0 / 0
    • Loading_status
    Tham khảo cùng nội dung: Bài giảng, Giáo án, E-learning, Bài mẫu, Sách giáo khoa, ...
    Nhấn vào đây để tải về
    Báo tài liệu có sai sót
    Nhắn tin cho tác giả
    (Tài liệu chưa được thẩm định)
    Nguồn:
    Người gửi: Thcs Phương Đông
    Ngày gửi: 14h:53' 21-04-2012
    Dung lượng: 2.3 MB
    Số lượt tải: 136
    Số lượt thích: 0 người
    BÀI 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
    KIỂM TRA BÀI CŨ
    Cú pháp:
    For := to do
    ;
    VD1: Viết chương trình tính tổng các số tự nhiên từ 1 đến 100
    S = 1 + 2 + 3 + . . .+100
    Lặp 100 lần
    Hãy quan sát
    VD2: Viết chương trình nhập vào các số cho đến khi gặp 0 thì dừng lại. Tính tổng các số vừa nhập.
    Chua bi?t l?p m?y l?n
    Lặp với số lần biết trước, sử dụng câu lệnh lặp For…Do để viết chương trình
    Lặp với số lần chưa biết trước, sử dụng câu lệnh gì để viết chương trình?
    Baøi 8:
    LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
     Nam làm bài tập cho đến khi làm xong.
     Cô ấy phải đi bộ như vậy cho đến khi về tới nhà.
    Các em hãy cho thêm những ví dụ về hoạt động lặp với số lần chưa biết trước?
    1. Các hoạt động lặp với số lần chưa biết trước:
     Tôi phải nhập dữ liệu vào máy tính cho đến khi nhập xong.
    Baøi 8:
    LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
    VD1(Sgk):
    Long sẽ lặp lại hoạt động gọi điện mấy lần?
    1. Các hoạt động lặp với số lần chưa biết trước:
    Chưa thể biết trước được. Điều kiện để kết thúc hoạt động lặp đó là có người nhấc máy.
    Một ngày khác, Long quyết định cứ 10 phút gọi điện một lần cho Trang cho đến khi nào có người nhấc máy.
    Baøi 8:
    LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
    T1 = 1
    T2 = 1 + 2
    T3 = 1 + 2 + 3
    ....
    Cần cộng bao nhiêu số tự nhiên để ta nhận được tổng Tn nhỏ nhất lớn hơn 1000?
    VD2(Sgk):
    1. Các hoạt động lặp với số lần chưa biết trước:
    Điều kiện như thế nào thì kết thúc hoạt động lặp?
    Điều kiện: Khi tổng Tn nhỏ nhất lớn hơn 1000 thì kết thúc hoạt động lặp
    tăng dần
    Baøi 8:
    LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
    1. Các hoạt động lặp với số lần chưa biết trước:
    1
    T1 = 1
    Đúng
    2
    T2 = 1 + 2
    Đúng
    Đúng



    ?
    Tn = 1 + 2 + 3 + … +? (Sao cho Tn nhỏ nhất lớn hơn 1000)
    Sai, kết thúc việc tính tổng
    3
    T3 = 1 + 2 + 3
    Phân tích bài toán:
    Baøi 8:
    LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
    Bước 1:
    Bước 2:
    Bước 3:
    Bước 4:
    S  0, n  0.
    Nếu S≤1000, n  n+1; Ngược lại, chuyển tới bước 4.
    S  S + n và quay lại bước 2.
    In kết quả: S và n là số tự nhiên nhỏ nhất sao cho S>1000. Kết thúc thuật toán.
    1. Các hoạt động lặp với số lần chưa biết trước:
    Kí hiệu S là tổng cần tìm và ta có thuật toán như sau:
    Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào cái gì và chỉ dừng lại khi nào?
    * Có thể diễn tả bài toán trên bằng sơ đồ như sau:
    Baøi 8:
    LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
    1. Các hoạt động lặp với số lần chưa biết trước:
    Quan sát sơ đồ khối sau:
    Để chỉ dẫn máy tính thực hiện các hoạt động lặp trên, ta có thể sử dụng câu lệnh có dạng: Lặp với số lần chưa biết trước
    Baøi 8:
    LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
    2. Ví dụ về lệnh lặp với số lần chưa biết trước:
    VD1: While a<=b do a:=a+1;
    VD2: While S<=10 do
    Begin n:=n-1; S:=S+n End;
    Trong đó : Câu lệnh là a:=a+1 (câu lệnh đơn).
    Trong đó : Câu lệnh là câu lệnh ghép
    VD3: While i<=100 do
    Begin T:=T+1/i; i:=i+1 End;
    Baøi 8:
    LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
    2. Ví dụ về lệnh lặp với số lần chưa biết trước:
    Hãy nêu cấu trúc lặp với câu lệnh while - do?
    Điều kiện: thường là một phép so sánh.
    Câu lệnh: là môt câu lệnh trong Pascal (có thể là câu lệnh đơn hay câu lệnh ghép)
    While <điều kiện> do ;
    Baøi 8:
    LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
    VD 4: Dùng câu lệnh lặp While … Do để viết chương trình thể hiện thuật toán trong Ví dụ 2 (Sgk)
    2. Ví dụ về lệnh lặp với số lần chưa biết trước:
    Begin
    begin
    end;
    End.
    Baøi 8:
    LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
    VD 5:
    Để viết chương trình tính tổng:
    2. Ví dụ về lệnh lặp với số lần chưa biết trước:
    Begin
    begin
    end;
    End.
    Baøi 8:
    LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
    LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
    Baøi 8:
    sử dụng for…do:
    sử dụng while…do
    T:=0;
    for i:=1 to 100 do T:=T+1/i;
    writeln(T);
    T:=0;
    i:=1;
    while i<=100 do
    begin T:=T+1/i; i:=i+1 end;
    writeln(T);
    Baøi 8:
    LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
    Baøi 8:
    LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
    Biến đếm là i;
    Giá trị đầu là 1, giá trị cuối là 100
    Baøi 8:
    LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
    3. Lặp vô hạn - lỗi lập trình cần tránh:
    Ví dụ :
    Var
    a:integer ;
    Begin
    a:=5;
    While a< 6 do
    Write(` Chuong trinh chay mai khong thoat duoc`);
    End.
    Lưu ý: Khi viết chương trình với câu lệnh lặp, điều kiện phải được thay đổi để chương trình không gặp lỗi lặp vô hạn.
    Học sinh thảo luận
    BÀI TẬP
    Câu 1
    Câu 2
    Câu 3
    Câu 4
    30
    29
    28
    27
    26
    25
    24
    23
    22
    21
    20
    19
    18
    17
    16
    15
    14
    13
    12
    11
    10
    9
    8
    7
    6
    5
    4
    3
    2
    1
    0
    Câu 1: Trong các hoạt động dưới đây, hoạt động nào là hoạt động lặp với số lần chưa biết trước?
    a) X:= 10; while X:= 10 do X:= X + 5;
    b) X:= 10; while X = 10 do X = X + 5;
    c) S:= 0; n:=0; while S <= 10 do n:= n + 1; S:= S + n ;

    Cu 2: Hy ch? ra l?i trong cc cu l?nh sau dy?
    30
    29
    28
    27
    26
    25
    24
    23
    22
    21
    20
    19
    18
    17
    16
    15
    14
    13
    12
    11
    10
    9
    8
    7
    6
    5
    4
    3
    2
    1
    0

    In ra cc s? t? 1 d?n 9

    In ra cc s? t? 1 d?n 10

    In ra cc s? 1

    Khơng phuong n no dng.
    Câu 3: Đoạn lệnh sau cho kết quả là gì?

    S:=1; While s < 10 do
    Begin writeln(s); s:=s+1; end;
    30
    29
    28
    27
    26
    25
    24
    23
    22
    21
    20
    19
    18
    17
    16
    15
    14
    13
    12
    11
    10
    9
    8
    7
    6
    5
    4
    3
    2
    1
    0
    B. 10 vòng lặp, S=5

    D. 12 vịng l?p, S=4
    B. 10 vịng l?p, S=5
    A. 9 vịng l?p, S=5.5
    C. 11 vịng l?p, S=4.5
    SAI RỒI!
    SAI RỒI!
    SAI R?I!
    35
    Câu 4: Thuật toán sau thực hiện bao nhiêu vòng lặp? Khi kết thúc giá trị của S bằng bao nhiêu?

    - Bước 1: S  10, x  0.5.
    - Bước 2: Nếu S  5.2 chuyển tới bước 4.
    - Bước 3: S  S –x và quay lại bước 2.
    - Bước 4: Thông báo S và kết thúc thuật toán
    30
    29
    28
    27
    26
    25
    24
    23
    22
    21
    20
    19
    18
    17
    16
    15
    14
    13
    12
    11
    10
    9
    8
    7
    6
    5
    4
    3
    2
    1
    0
    Bài tập vận dụng
    Bài 1: Viết đoạn chương trình hiển thị ra màn hình 5 chữ số tự nhiên đầu tiên.


    Giải
    n:=0;
    While (n<5) Do
    Begin
    Write(n:2);
    n:= n+1;
    End;
    Mô tả
    Bài tập vận dụng
    Bài 2:
    Viết chương trình tính giá trị của biểu thức sau (n là 1 số nguyên nhập từ bàn phím)
    A = 1 + 1/2 + 1/3 + ... + 1/n


    Chương Trình tính giá trị của Biểu Thức: A = 1 + 1/2 + 1/3 + ... + 1/n

    Program Tinh_GTBT;
    Uses CRT;
    Var i,n: integer; A: Real;
    BEGIN clrscr;
    Writeln(` Chuong trinh tinh gia tri bieu thuc`);
    Write(` Nhap n = `); Readln(n);
    A:=0 ; i:=1;
    While (i <= n) Do
    Begin
    A:= A + 1/i;
    i:= i + 1;
    End;
    Writeln(` Gia tri cua bieu thuc la A = `,A:0:2);
    Readln;
    END.
    Baøi 8:
    LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
    - Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào một điều kiện cụ thể và chỉ dừng lại khi điều kiện đó sai.
    GHI NHỚ
    - Trong Pascal câu lệnh lặp với số lần chưa biết trước có dạng:
    While <điều kiện> do ;
    Baøi 8:
    LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
    DẶN DÒ
    - Tìm thm m?t vi ví d? v? ho?t d?ng l?p v?i s? l?n chua bi?t tru?c
    - V? nh h?c bi v lm cc bi t?p SGK/71
    Mô phỏng thuật toán: In 5 số tự nhiên đầu tiên ra màn hình
    Bắt đầu
    n := 0
    0 < 5?
    Viết 0 ra màn hình
    n:= 1
    0
    1
    2
    3
    4
    1 < 5?
    Viết 1 ra màn hình
    n:= 2
    2 < 5?
    Viết 2 ra màn hình
    n:= 3
    3 < 5?
    Viết 3 ra màn hình
    n:= 4
    Sai
    Đúng
    4 < 5?
    Viết 4 ra màn hình
    n:= 5
    5 < 5?
    Kết thúc
    Kết quả
     
    Gửi ý kiến