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

Điều tra ý kiến

Quý vị thích nội dung nào trên web của chúng tôi?
Tin tức - Sự kiện
Sóc Trăng quê tôi
Bài viết
Công nghệ thông tin
Cần thêm lĩnh vực mới

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

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

    Chào mừng quý vị đến với Câu lạc bộ thành viên ViOLET Sóc Trăng.

    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. Lặp với số lần chưa biết trước

    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: Dương Phước Giàu (trang riêng)
    Ngày gửi: 20h:52' 16-05-2017
    Dung lượng: 3.4 MB
    Số lượt tải: 334
    Số lượt thích: 0 người
    Tin Học 8
    Nhắc lại kiến thức
    KIỂM TRA BÀI CŨ
    Cú pháp:
    For := to do ;
    Khi sử dụng lệnh lặp For… to…do. Số lần lặp sẽ được tính như thế nào?
    Số lần lặp = - +1
    KIỂM TRA BÀI CŨ
    Ví dụ:
    For i:= 1 To 4 Do
    Writeln(‘Day la so lan lap thu’ ,i);
    Số lần lặp = 4- 1+1= 4
    Day la so lan lap thu 1
    Day la so lan lap thu 2
    Day la so lan lap thu 3
    Day la so lan lap thu 4

    Các em hãy quan sát
    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 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
    VD2: Viết chương trình tính tổng n số tự nhiên đầu tiên để ta nhận được tổng Tn nhỏ nhất lớn hơn 1000?
    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?
    Theo em phép cộng trên có biết trước số lần lặp không? Có sử dụng lệnh lặp for…to…do được không?
    Không thể biết trước số lần lặp và không sử dụng được lệnh for…to…do .
    Theo em khi sử dụng lệnh lặp for…to…do để viết chương trình trên thì phép cộng được lặp lại mấy lần?
    Lặp 100 lần
    For i:=1 to 100 do s:=s+i;
    Tiết 51 - BÀI 8:
    LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
    LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
     Nam học cho đến khi thuộc bài.
     Cô ấy phải đi bộ như vậy cho đến khi về tới nhà.
     Tôi phải nhập dữ liệu vào máy tính cho đến khi nhập xong.
    Tiết 51- Bài 8
    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:
    Ví dụ 1:
    Một ngày, 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 thì thôi.
    Hoạt động lặp là gì ?
    Khi nào thì kết thúc vòng lặp?
    Hoạt động lặp: Gọi điện
    Kết thúc vòng lặp: Có người nhấc máy thì thôi.
    Số lần lặp đã biết chưa?
    Tiết 51- Bài 8
    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:
    Ví dụ 2:
    Nếu cộng lần lượt n số tự nhiên đầu tiên (n=1,2,3,…). Ta sẽ được kết quả:
    Đ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
    Tiết 51- Bài 8
    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:
    Ví dụ 2:
    Phân tích bài toán:
    T0:=0; n:=0;
    1
    T1 = 1
    Đúng
    2
    T2 = 1 + 2
    Đúng
    3
    T3 = 1 + 2 + 3
    Đúng



    n
    Tn = 1 + 2 + 3 + … +n (Sao cho Tn nhỏ nhất lớn hơn 1000)
    Sai, kết thúc việc tính tổng
    Tiết 51- Bài 8
    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:
    Ví dụ 2:
    Ta có thuật toán như sau:
    Kí hiệu S là tổng cần tìm
    Bước 1:
    S  0, n  0.
    Bước 2:
    Nếu S≤1000, thì: n  n+1; S  S + n và quay lại bước 2.
    Ngược lại, chuyển tới bước 3.
    In kết quả: n là số tự nhiên để tổng S nhỏ nhất sao cho S>1000. Kết thúc thuật toán.
    * Có thể diễn tả bài toán trên bằng sơ đồ như sau:
    Bước 3:
    Tiết 51- Bài 8
    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:
    Tiết 51- Bài 8
    Việc lặp lại một nhóm hoạt động với số lần chưa xác định trước phụ thuộc vào một điều kiện cụ thể được thỏa mãn và chỉ dừng lại khi điều kiện không thỏa mãn
    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?
    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:
    Để 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
    SƠ ĐỒ KHỐI
    Tiết 51- Bài 8
    LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
    2. Ví dụ về lệnh lặp với số lần chưa biết trước
    while
    do
    Cú pháp:
    While <điều kiện> do ;
    Trong đó:
     While, do: là các từ khóa.
     Điều kiện: thường là một phép so sánh
     Câu lệnh: có thể là câu lệnh đơn giản hay câu lệnh ghép.
    Tiết 51- Bài 8
    LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
    2. Ví dụ về lệnh lặp với số lần chưa biết trước
    Quan sát sơ đồ khối, hãy cho biết cách thực hiện câu lệnh lặp?
    Bước 1 : Kiểm tra điều kiện.
    Bước 2 : - Nếu điều kiện sai, câu lệnh sẽ bị bỏ qua và việc thực hiện lệnh lặp kết thúc.
    - Nếu điều kiện đúng, thực hiện câu lệnh và quay lại bước 1.
    Tiết 51- Bài 8
    Chừng nào điều kiện còn đúng thì câu lệnh còn thực hiện
    LẶP VỚI SỐ LẦN CHƯA BIẾ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;
     While, do là các từ khóa.
     Điều kiện là a<=b (chứa phép so sánh).
     Câu lệnh là a:=a+1 (câu lệnh đơn).
    VD2: While a>b do
    Begin
    write(‘a>b’);
    a:=a-1;
    End;
     While, do là các từ khóa.
     Điều kiện là a>b (chứa phép so sánh).
     Câu lệnh là Write(‘a>b’) và a:=a-1 (câu lệnh ghép).
    Tiết 51- Bài 8
    LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
    2. Ví dụ về lệnh lặp với số lần chưa biết trước
    Viết câu lệnh in ra 5 số tự nhiên liên tiếp bắt đầu bằng số 1.
    Sử dụng lệnh lặp với số lần lặp chưa biết trước while…do
    Hướng dẫn:
    Gán n
    Đặt điều kiện
    begin
    in ra n;
    n tăng 1 đơn vị;
    end;
    Tiết 51- Bài 8
    n:=1
    while n<=5 do
    begin
    writeln(n);
    n:=n+1;
    end;
    Mô phỏng thuật toán:
    Bắt đầu
    n := 1
    1 <= 5?
    Viết 1 ra màn hình
    n:= 1+1=2
    1
    2
    3
    4
    5
    2 <= 5?
    Viết 2 ra màn hình
    n:= 2+1=3
    3 <= 5?
    Viết 3 ra màn hình
    n:= 3+1=4
    4<= 5?
    Viết 4 ra màn hình
    n:= 4+1=5
    Sai
    Đúng
    5<= 5?
    Viết 5 ra màn hình
    n:= 5+1=6
    6 <= 5?
    Kết thúc
    Kết quả
    n:=1
    while n<=5 do
    begin
    writeln(n);
    n:=n+1;
    end;
    BÀI TẬP VẬN DỤNG
    21
    * Câu 1: Hoạt động nào sau đây là không phải là lặp với số lần biết trước?
    22
    * Câu 2: Cú pháp của câu lệnh lặp với số lần chưa biêt trước là?
    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 ;
    Thiếu dấu :
    Thiếu Begin
    Thiếu End

    Câu 2: Hãy chỉ ra lỗi trong các câu lệnh sau đây?
    Thừa dấu:
    VỀ NHÀ
    Về nhà học thuộc bài.
    Làm bài tập 1,2,3a SGK.
    Đọc trước phần còn lại của bài.
    Tin Học 8
    Nhắc lại kiến thức
    LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
    Bước 1:
    S  0, n  0.
    Bước 2:
    Nếu S≤1000, thì: n  n+1; S  S + n và quay lại bước 2.
    Ngược lại, chuyển tới bước 3.
    In kết quả: n là số tự nhiên để tổng S nhỏ nhất sao cho S>1000. Kết thúc thuật toán.
    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)
    Bước 3:
    Tiết 52- Bài 8
    2. Ví dụ về lệnh lặp với số lần chưa biết trước
    LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
    2. Ví dụ về lệnh lặp với số lần chưa biế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)
    var S,n: integer;
    Begin
    S:=0; n:=0;
    while S<=1000 do
    begin
    n:=n+1;
    S:=S+n ;
    end;
    writeln(‘So tu nhien n de tong >1000 la ’, n);
    writeln(‘Tong dau tien >1000 la’, S);
    Readln;
    End.
    Tiết 52- Bài 8
    Baøi 8:
    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.
    LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
    Baøi 8:
    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:
    LẶP VỚI SỐ LẦN CHƯA BIẾ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);
    LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
    Baøi 8:
    LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
    Baøi 8:
    Biến đếm là i;
    Giá trị đầu là 1, giá trị cuối là 100
    LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
    Baøi 8:
    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.
    LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
    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);
    n:= n+1;
    End;
    Baøi 8:
    - 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 ;
    LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
     
    Gửi ý kiến