Bài 7. CÂU LỆNH LẶP
I. Mục tiêu:
1. Kiến thức:
- Biết nhu cầu cần có cấu trúc lặp trong ngôn ngữ lập trình.
- Biết ngôn ngữ lập trình dùng cấu trúc lặp để chỉ dẫn máy tính thực hiện lặp đi lặp lại công việc nào đó một số lần.
2. Kĩ năng:
- Rèn luyện kỹ năng vận dụng câu lệnh lặp
3. Thái độ:
- Thái độ học tập nghiêm túc, yêu thích môn học
II. Chuẩn bị:
Sách giáo khoa, máy tính điện tử
III Phương Pháp
Thuyết trình vấn đáp,nêu câu hỏi
IV. Tiến trình bài dạy:
1. Ổn định Lớp
2. Kiểm tra bài cũ( Kết hợp trong quá trình học)
ái độ học tập nghiêm túc, yêu thích môn học. II. Chuẩn bị: Sách giáo khoa, máy tính điện tử. III Phương Pháp Thuyết trình vấn đáp,nêu câu hỏi, thực hành IVTiến trình bài dạy: 1Ổn định lớp 2 Kiểm tra bài cũ: ( Kết hợp trong quá trình làm bài) 3Bài mới: Hoạt động của thầy Hoạt động của trò Nội dung + Hoạt động 1: Ôn tập câu lệnh lặp xác định For..do. ? Nêu cú pháp của vòng lặp xác định. ? Nêu hoạt động của vòng lặp. + Hoạt động 2: Bài tập. Viết chương trình in ra các số lẻ nhỏ hơn hoặc bằng n ( Với n được nhập). Sao cho 15 số lẻ được in trên một dòng. a. Hướng dẫn: - Cho j =0. - Cho biến i chạy từ 1 đến n. - Nếu i chẵn ( i chia 2 dư 0) thì in ra số n và tăng dem lên 1 - Nếu dem chia hết cho 15 thì thực hiện xuống dòng (Dùng Writeln). Bài tập 2: Viết chương trình in ra tổng các số lẻ nhỏ hơn hoặc bằng n ( Với n được nhập). Hướng dẫn: - Cho S = 0. - Cho biến i chạy từ 1 đến n. - Nếu i chẵn ( i chia 2 dư 0) thì cộng thêm i vào S. - In ra S. Cấu trúc vòng lặp For: for := to do ; Dạng khác của vòng lặp for (giảm dần biến đếm của vòng lặp for): for := downto 1 do ; Program In_So_Le; Uses crt; var Dem,i,n: integer; Begin Clrscr; Write('Nhap so n ='); readln(n); Dem:= 0; For i:=1 to n do if i mod 2 =1 then Begin Write(i:3,','); Dem:= Dem + 1; if Dem mod 15 = 0 then Writeln; end; readln end. Program In_So_Le; Uses crt; var S,i,n: integer; Begin Clrscr; Write('Nhap so n ='); readln(n); S:= 0; For i:=1 to n do if i mod 2 =1 then S:= S+i; Writeln('Tong cac so le nho hon ',n,' la: ',S); readln end. 4.củng cố (5 phút) - Giáo viên nhận xét và đánh giá tiết thực hành. 5. Dặn dò: (2 phút) - Về nhà học bài kết hợp sách giáo khoa, tiết sau học bài mới. ----------------------------------------------------------------------------------------------- Ngày soạn:29/1/2017 Tiết 47 Bài 8. LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC I. Mục tiêu: 1. Kiến thức: - Hiểu nhu cầu cần có cấu trúc lặp với số lần chưa biết trước trong ngôn ngữ lập trình; - Hiểu ngôn ngữ lập trình dùng cấu trúc lặp với số lần chưa biết trước để chỉ dẫn máy tính thực hiện lặp đi lặp lại công việc đến khi một điều kiện nào đó được thoả mãn; 2. Kĩ năng: - Rèn luyện kĩ năng sử dụng các câu lệnh trong Pascal 3. Thái độ: - Thái độ học tập nghiêm túc, yêu thích môn học. II. Chuẩn bị: Sách giáo khoa, máy tính điện tử. III Phương Pháp Thuyết trình vấn đáp,nêu câu hỏi, thực hành IV. Tiến trình bài dạy: 1Ổn định lớp 2 Kiểm tra bài cũ: nêu cú pháp và hoạt động của câu lệnh lặp với số lần xác định? 3Bài mới: Hoạt động của thầy Hoạt động của trò Nội dung + Hoạt động 1: Tìm hiểu ví dụ 1. - Một ngày chủ nhật Long gọi điện cho Trang. Không có ai nhấc máy. Long quyết định gọi lại thêm 1 lần nữa. Như vậy Long đã biết trước là mình sẽ lặp lại gọi điện thêm 2 lần. 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 có người bắt máy. ? Lần này Long sẽ lặp lại việc gọi điện mấy lần. ? Điều kiện để kết thúc hoạt động lặp đó là gì? + Hoạt động 2: Tìm hiểu ví dụ 2. - Nếu cộng lần lượt n số tự nhiên đầu tiên (n = 1, 2, 3,...), Cần cộng bao nhiêu số tự nhiên đầu tiên để ta nhận được tổng Tn nhỏ nhất lớn hơn 1000? ? Tìm hiểu các bước của thuật toán trong ví dụ này. - Yêu cầu học sinh gõ chương trình vào máy. - Dịch và chạy chương trình? - Ta có sơ đồ khối Nhận xét? + Học sinh chú ý lắng nghe => ghi nhớ kiến thức. + Chưa thể biết trước được, có thể một lần, có thể hai lần hoặc nhiều hơn nữa. + Điều kiện để kết thúc hoạt động lặp đó là có người nhấc máy. + Đọc kĩ đề bài + Kí hiệu S là tổng cần tìm và ta có thuật toán như sau: - Bước 1. S ¬ 0, n ¬ 0. - Bước 2. Nếu S ≤ 1000, n ¬ n + 1; ngược lại chuyển tới bước 4. -Bước 3. S ¬ S + n và quay lại bước 2. - Bước 4. 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. * Nhận xét : Để viết chương trình chỉ dẫn máy tính thực hiện các hoạt động lặp như trong các ví dụ 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 1. Các hoạt động lặp với số lần chưa biết trước. + Ví dụ 1: + Ví dụ 2: - Nếu cộng lần lượt n số tự nhiên đầu tiên (n = 1, 2, 3,...), Cần cộng bao nhiêu số tự nhiên đầu tiên để ta nhận được tổng Tn nhỏ nhất lớn hơn 1000? 4. Củng cố (2 phút) - Hãy nêu một số ví dụ trong cuộc sống mà các công việc lặp lại với số lần không biết trước. 5. Dặn dò (5 phút) - Về nhà học bài, kết hợp SGK ---------------------------------------------------------------------------------------------- Ngày soạn:2/2/2017 Tiết 48 Bài 8. LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC (tt) I. Mục tiêu: 1. Kiến thức: - Biết được cú pháp và hoạt động của câu lệnh lặp với số lần không biết trước. - Biết được một số lỗi lập trình cần tránh. 2. Kĩ năng: - Rèn luyện kĩ năng sử dụng các câu lệnh lặp không xác định trong Pascal 3. Thái độ: - Thái độ học tập nghiêm túc, yêu thích môn học. II. Chuẩn bị: Sách giáo khoa, máy tính điện tử. III Phương Pháp Thuyết trình vấn đáp,nêu câu hỏi, thực hành IVTiến trình bài dạy: 1Ổn định lớp 2 Kiểm tra bài cũ: ( Kết hợp trong quá trình học bài) 3Bài mới: Hoạt động của thầy Hoạt động của trò Nội dung + Hoạt động 1: Tìm hiểu ví dụ về lệnh lặp với số lần không biết trước. - Câu lệnh lặp không biết trước trong Pascal có dạng: * Cú pháp: While do ; - Trong đó: Điều kiện? Câu lệnh? ? Yêu cầu học sinh nghiên cứu SGK => hoạt động của câu lệnh - Ví dụ. Chương trình Pascal dưới đây thực hiện thuật toán tính tổng n. - Yêu cầu học sinh tìm hiểu chương trình ở SGK. ? Hãy cho biết kết quả nhận được sau khi chạy chương trình. + Hoạt động 2: Tìm hiểu lặp vô hạn và những lỗi lập trình cần tránh. - Khi viết chương trình sử dụng cấu trúc lặp cần chú ý tránh tạo nên vòng lặp không bao giờ kết thúc. - Chẳng hạn, chương trình dưới đây sẽ lặp lại vô tận: var a:integer; begin a:=5; while a<6 do writeln('A'); end. + Học sinh chú ý lắng nghe => ghi nhớ kiến thức. + Đ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. + Học sinh nghiên cứu SGK => hoạt động: - B1. Kiểm tra điều kiện. - B2. Nếu điều kiện sai, câu lệnh sẽ bị bỏ qua và việc thực hiện câu 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 B1 + Nghiên cứu chương trình ở SGK theo yêu cầu của giáo viên. + Kết quả nhận được sau khi chạy chương trình là n = 45 và tổng tiên lớn hơn 1000 là 1034. + Học sinh chú ý lắng nghe => ghi nhớ kiến thức. 2. Ví dụ về lần lặp với số lần chưa biết trước. + Cú pháp: While do ; + Hoạt động: - B1. Kiểm tra điều kiện. - B2. Nếu điều kiện sai, câu lệnh sẽ bị bỏ qua và việc thực hiện câu 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 B1 3. Lặp vô hạn – Lỗi lập trình cần tránh. - Khi viết chương trình sử dụng cấu trúc lặp cần chú ý tránh tạo nên vòng lặp không bao giờ kết thúc. 4. Củng cố (2 phút) - Hãy nêu cú pháp và hoạt động của vòng lặp While ..do 5. Dặn dò (5 phút) - Về nhà học bài, kết hợp SGK --------------------------------------------------------------------------------------------- Ngày soạn:4/2/2017 Tiết 49 Bài thực hành 6. SỬ DỤNG LỆNH LẶP WHILE...DO I. Mục tiêu: 1. Kiến thức: - Viết chương trình Pascal sử dụng câu lệnh lặp với số lần chưa biết trước. 2. Kĩ năng: - Rèn luyện kĩ năng đọc chương trình, tìm hiểu tác dụng của các câu lệnh. 3. Thái độ: - Thái độ học tập nghiêm túc, yêu thích viết chương trình để thực hiện một số công việc. II. Chuẩn bị: Nội dung bài thực hành, máy tính điện tử. III Phương Pháp Thuyết trình vấn đáp,nêu câu hỏi, thực hành IV. Tiến trình thực hành: 1Ổn định lớp 2 Kiểm tra bài cũ: ( Kết hợp trong quá trình thực hành) 3Bài mới: Hoạt động của thầy Hoạt động của trò Nội dung + Hoạt động 1: Làm bài tập 1. Viết chương trình sử dụng lệnh lặp While do để tính n số thực x1,x2,x3xn. Các số n và x1,x2,x3, xn được nhập từ bàn phím. - Ý tưởng? - Mô tả thuật toán của chương trình, các biến dự định sẽ sử dụng và kiểu của chúng - Gõ chương trình sau đây: Program tinh_trung_binh; Var n, dem: integer; X, tb: real; Begin Clrscr; Dem:=0; tb:=0; Writeln(‘Nhap cac so can tinh n =’); Readln(n); While dem < n do Begin Dem:= dem + 1; Writeln(‘Nhap so thu’, dem,’=’); Readln(x); Tb:= tb + x; End; Tb:=tb/n; Witeln(‘Trung binh của’,n,’so là =’, tb:10:3); Readln; End. - Lưu chương trình với tên tinh_tb. - Đọc hiểu và tìm hiểu ý nghĩa của từng câu lệnh. Dịch chương trình và sửa lỗi, nếu có. Chạy chương trình với các bộ dữ liệu được gõ từ bàn phím và kiểm tra kết quả nhận được. + Sử dụng một biến đếm và lệnh lặp Whiledo để nhập và cộng dần các số vào một biến kiểu số thực cho đến khi nhập đủ n số. + Chú ý lắng nghe => ghi nhớ kiến thức. + Học sinh độc lập gõ chương trình vào máy. + Học sinh lưu chương trình theo yêu cầu của giáo viên. + Học sinh thực hiện theo yêu cầu của giáo viên. 4. Củng cố (5 phút) Giáo viên nhận xét và đánh giá tiết thực hành. 5. Dặn dò: (2 phút) - Tiết sau thực hành: “ Bài thực hành số 6 (tt) ----------------------------------------------------------------------------------------------- Ngày soạn:5/2/2017 Tiết 50 Bài thực hành 6. SỬ DỤNG LỆNH LẶP WHILE...DO (tt) I. Mục tiêu: 1. Kiến thức: - Viết chương trình Pascal sử dụng câu lệnh lặp với số lần chưa biết trước. 2. Kĩ năng: - Rèn luyện kĩ năng đọc chương trình, tìm hiểu tác dụng của các câu lệnh. 3. Thái độ: - Thái độ học tập nghiêm túc, yêu thích viết chương trình để thực hiện một số công việc. II. Chuẩn bị: Nội dung bài thực hành, máy tính điện tử. III Phương Pháp Thuyết trình vấn đáp,nêu câu hỏi, thực hành IVTiến trình thực hành: 1Ổn định lớp 2 Kiểm tra bài cũ: ( Kết hợp trong quá trình thực hành) 3Bài mới: Hoạt động của thầy Hoạt động của trò Nội dung + Hoạt động 1: Làm bài tập 2 ở SGK - Gọi học sinh đọc đề bài ở sách giáo khoa. - Ý tưởng? - Giáo viên đưa ra ý tưởng để học sinh tìm hiều. Ý tưởng: Kiểm tra lần lượt N có chia hết cho các số tự nhiên 2 ≤ i ≤ N hay không. Kiểm tra tính chia hết bằng phép chia lấy phần dư (mod). ? Đọc và tìm hiểu ý nghĩa của từng câu lệnh trong chương trình sau đây: Uses Crt; Var n,i:integer; Begin clrscr; write('Nhap vao mot so nguyen: '); readln(n); If n<=1 then writeln('N khong la so nguyen to') else begin i:=2; while (n mod i0) do i:=i+1; if i=n then writeln(n,' la so nguyen to!') else writeln(n,' khong phai la so nguyen to!'); end; readln; end. + Hoạt động 2: Gõ chương trình vào máy, chạy chương trình và kiểm tra kết quả. Bài 2. Tìm hiểu chương trình nhận biết một số tự nhiên N được nhập vào từ bàn phím có phải là số nguyên tố hay không. - Học sinh tìm hiểu ý tưởng theo sự hướng dẫn của giáo viên. + Học sinh đọc chương trình và tìm hiểu ý nghĩa của từng câu lệnh theo sự hướng dẫn của giáo viên. + Học sinh độc lập gõ chương trình vào máy. + Nhấn Ctrl + F9 để chạy và kiểm tra chương trình. 4. Củng cố (5 phút) Giáo viên nhận xét và đánh giá tiết thực hành. 5. Dặn dò: (2 phút) - Tiết sau thực hành: “ Bài thực hành số 6 (tt) --------------------------------------------------------------------------------------------------- Ngày soạn:13/2/2017 Tiết 51 BÀI TẬP I. Mục tiêu: 1. Kiến thức: - Viết chương trình Pascal sử dụng câu lệnh lặp với số lần biết trước 2. Kĩ năng: - Rèn luyện khả năng đọc chương trình, tìm hiểu tác dụng và kết hợp các câu lệnh. 3. Thái độ: - Thái độ học tập nghiêm túc, yêu thích môn học. II. Chuẩn bị: Sách giáo khoa, máy tính điện tử. III Phương Pháp Thuyết trình vấn đáp,nêu câu hỏi, thực hành IV. Tiến trình bài dạy: 1Ổn định lớp 2 Kiểm tra bài cũ: ( Kết hợp trong quá trình thực hành) 3Bài mới: Hoạt động của thầy Hoạt động của trò Nội dung + Hoạt động 1: Ôn tập câu lệnh lặp xác định For..do. ? Nêu cú pháp của vòng lặp xác định. ? Nêu hoạt động của vòng lặp. + Hoạt động 2: Bài tập. 1. Các câu lệnh Pascal sau có hợp lệ không, vì sao? for i:=100 to 1 do writeln('A'); for i:=1.5 to 10.5 do writeln('A'); for i=1 to 10 do writeln('A'); for i:=1 to 10 do; writeln('A'); var x: real; begin for x:=1 to 10 do writeln('A'); end. 2. Hãy mô tả thuật toán để tính tổng sau đây: A = . + Cú pháp: For := to do ; + Hoạt động của vòng lặp: - B1: biến đếm nhận giá trị đầu - B2: Chương trình kiểm tra biểu thức điều kiện, nếu biểu thức điều kiện đúng thì thực hiện câu lệnh. - B3: Biến đếm tự động tăng lên 1 đơn vị và quay lại B2. - B4: Nếu biểu thức điều kiện nhận giá trị sai thì thoát ra khỏi vòng lặp. + Trừ câu d), tất cả các câu lệnh đều không hợp lệ: a) Giá trị đầu phải nhỏ hơn giá trị cuối; b) Các giá trị đầu và giá trị cuối phải là số nguyên; c) Thiếu dấu hai chấm khi gán giá trị đầu; d) Thừa dấu chấm phẩy thứ nhất, nếu như ta muốn lặp lại câu lệnh writeln('A') mười lần, ngược lại câu lệnh là hợp lệ; e) Biến x đã được khai báo như là biến có dữ liệu kiểu số thực và vì thế không thể dùng để xác định giá trị đầu và giá trị cuối trong câu lệnh lặp. * Thuật toán tính tổng: A = Bước 1. Gán A ¬ 0, i ¬ 1. Bước 2. A ¬ . Bước 3. i ¬ i + 1. Bước 4. Nếu i £ n, quay lại bước 2. Bước 5. Ghi kết quả A và kết thúc thuật toán. 1. Các câu lệnh Pascal sau có hợp lệ không, vì sao? for i:=100 to 1 do writeln('A'); for i:=1.5 to 10.5 do writeln('A'); for i=1 to 10 do writeln('A'); for i:=1 to 10 do; writeln('A'); var x: real; begin for x:=1 to 10 do writeln('A'); end. 2. Hãy mô tả thuật toán để tính tổng sau đây: A = . 4. Củng cố (5 phút) - Giáo viên nhận xét và đánh giá tiết thực hành. 5. Dặn dò: (2 phút) - Về nhà học bài kết hợp sách giáo khoa, tiết sau học bài làm bài tập (tt) ---------------------------------------------------------------------------------------------- Ngày soạn:20/2/2017 Tiết 52 BÀI TẬP (tt) I. Mục tiêu: 1. Kiến thức: - Viết chương trình Pascal sử dụng câu lệnh lặp với số lần chưa biết trước. 2. Kĩ năng: - Rèn luyện khả năng đọc chương trình, tìm hiểu tác dụng và kết hợp các câu lệnh. 3. Thái độ: - Thái độ học tập nghiêm túc, yêu thích môn học. II. Chuẩn bị: Sách giáo khoa, máy tính điện tử. III Phương Pháp Thuyết trình vấn đáp,nêu câu hỏi, thực hành IV. Tiến trình bài dạy: 1Ổn định lớp 2 Kiểm tra bài cũ: ( Kết hợp trong quá trình làm bài) 3Bài mới: Hoạt động của thầy Hoạt động của trò Nội dung + Hoạt động 1: Nêu sự khác biệt giữa câu lệnh xác định và câu lệnh không xác định . + Hoạt động 2: Bài tập. ? Hãy tìm hiểu các thuật toán sau đây và cho biết khi thực hiện thuật toán, máy tính sẽ 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? Viết chương trình Pascal thể hiện các thuật toán đó. a) Thuật toán 1 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. b) Thuật toán 2 Bước 1. S ¬ 10, n ¬ 0. Bước 2. Nếu S ≥ 10, chuyển tới bước 4. Bước 3. n ¬ n + 3, S ¬ S - n quay lại bước 2. Bước 4. Thông báo S và kết thúc thuật toán. Sự khác biệt: a) Câu lệnh lặp với số lần lặp cho trước chỉ thị cho máy tính thực hiện một lệnh hoặc một nhóm lệnh với số lần đã được xác định từ trước, còn với câu lệnh lặp với số lần lặp chưa biết trước thì số lần lặp chưa được xác định trước. b) Lệnh lặp với số lần cho trước, điều kiện là giá trị của một biến đếm có giá trị nguyên đã đạt được giá trị lớn nhất hay chưa, còn trong câu lệnh lặp với số lần lặp chưa biết trước, điều kiện tổng quát hơn nhiều, có thể là kiểm tra một giá trị của một số thực c) Lệnh lặp với số lần cho trước, câu lệnh được thực hiện ít nhất một lần, sau đó kiểm tra điều kiện. Lệnh lặp với số lần chưa xác định trước, trước hết điều kiện được kiểm tra. Nếu điều kiện được thoả mãn, câu lệnh mới được thực hiện. a) Thuật toán 1: 10 vòng lặp được thực hiện. Khi kết thúc thuật toán S = 5.0. Đoạn chương trình Pascal tương ứng: S:=10; x:=0.5; while S>5.2 do S:=S-x; writeln(S); b) Thuật toán 2: Không vòng lặp nào được thực hiện vì ngay từ đầu điều kiện đã không được thỏa mãn nên các bước 2 và 3 bị bỏ qua. S = 10 khi kết thúc thuật toán. Đoạn chương trình Pascal tương ứng: S:=10; n:=0; while S<10 do begin n:=n+3; S:=S-n end; writeln(S); 4. Củng cố (5 phút) - Giáo viên nhận xét và đánh giá tiết thực hành. 5. Dặn dò: (2 phút) - Về nhà học bài tiết sau kiểm tra 1 tiết (LT) Ngày soạn:22/2/2017 Tiết 53 KIỂM TRA 1 TIẾT ( LT) I. Mục tiêu: - Hệ thống lại một số kiến thức đã học. - Biết sử dụng vòng lặp xác định và vòng lặp không xác định để viết chương trình. MA TRẬN ĐỀ KIỂM TRA Nội dung-Chủ đề Nhận biết Thông hiểu Vận dụng Tổng điểm TN TL TN TL TN TL TN TL Phần mềm tin học Câu lệnh For do CI1 0.5 CI2 1 đ CII1 4 đ 3 5,5 đ Câu lệnh whiledo CI3 0.5 CI4 1 đ CII2 3 đ 3 4,5 đ TỔNG 2 1 đ 2 2 đ 2 7 đ 6 10đ Chú thích: Đề được thiết kế với tỉ lệ: 10% nhận biết + 20% thông hiểu + 70% vận dụng (1). Trong đó 30% trắc nghiệm và 70% tự luận. Cấu trúc bài: 6 câu Cấu trúc câu hỏi: 6. II Đề Bài I/ TRẮC NGHIỆM (3 điểm) (Khoanh tròn vào đáp án đúng) Câu 1: Cú pháp của câu lệnh For . do là: a. for := to do; b. for := to do; c. for = to do; d. for = to; do; Câu 2: Cho đoạn chương trình: S:=0; For i:=1 to 5 do S:=S+2; * Sau khi thực hiện đoạn chương trình trên S có kết quả là : A. 20 B. 15 C. 10 D. 0 * Sau khi thực hiện đoạn chương trình trên i có kết quả là : A. 2 B. 3 C. 4 D. 5 Câu 3: Câu lệnh viết đúng cú pháp trong ngôn ngữ lập trình Pascal là: a. While to ; b. While do ; c. While to do ; d. While ; do ; Câu 4: Cho đoạn chương trình: S: =0 ; n:= 0; While S < = 6 do begin n:= n+1; S:= S+ n ; End; * Sau khi thực hiện đoạn chương trình trên S có kết quả là A. 6 B. 10 C. 15 D. 21 * Sau khi thực hiện đoạn chương trình trên n có kết quả là A. 2 B. 3 C. 4 D. 5 II/ TỰ LUẬN (6 điểm) Câu 1. Các câu lệnh sau trong Pascal sau có hợp lệ không? NÕu kh«ng h·y söa l¹i cho hîp lÖ? (4 ®) a) For i:= 100 to 1 do writeln(‘A’); b) For i:= 1.5 to 10.5 do Writeln(‘A’); c) X: = 10; while X: =10 do X: = X + 5; d) X: = 10; while X =10 do X = X + 5; Câu 2. (3 ®) - Viết chương trình tính 1 + 2 + 3+ ...+ t với t là một số tùy ý do người sử dụng nhập vào. ĐÁP ÁN VÀ BIỂU ĐIỂM I/ TRẮC NGHIỆM (3Đ) Mçi c©u tr¶ lêi ®óng ®¹t 0,5 ® C©u 1 2 3 4 §¸p ¸n A C, D B B, C II/ Tù luËn: Bµi 1: TÊt c¶ c¸c c©u ®Òu kh«ng hîp lÖ (1 ®) Söa l¹i a) For i:= 1 to 100 do writeln(‘A’); b) For i:= 1 to 10 do Writeln(‘A’); c) X: = 10; while X =10 do X: = X + 5; d) X: = 10; while X =10 do X: = X + 5; ( Mçi c©u ®óng 0,75®) Bµi 2: Program tinh_tong; Uses crt; Var i, t: Integer; Tong : Longint; Begin Clrscr; Writeln(‘ Moi ban nhap vao mot so tuy y lon hon 0’); Readln(t); For i:= 1 to t do Tong:= Tong + i; Wirteln(‘ 1 + 2 + ...’, t, ‘ =’, Tong : 10); Readln; End. (3®) -------------------------------------------------------------------------------------------------- Ngày soạn:25/2/2017 Tiết 54 Bài 9. LÀM VIỆC VỚI DÃY SỐ I. Mục tiêu: 1. Kiến thức: - Làm quen với việc khai báo và sử dụng các biến mảng. - Tìm hiểu một số ví dụ về biến mảng. 2. Kĩ năng: - Việc gán giá trị, nhập giá trị và tính toán với các giá trị của một phần tử trong biến mảng được thực hiện thông qua chỉ số tương ứng của phần tử đó. 3. Thái độ: - Thái độ học tập nghiêm túc, yêu thích môn học. II. Chuẩn bị: Sách giáo khoa, máy tính điện tử. III Phương Pháp Thuyết trình vấn đáp,nêu câu hỏi, thực hành IV. Tiến trình bài dạy: 1Ổn định lớp 2 Kiểm tra bài cũ: Viết cú pháp của câu lệnh lặp với số lần xác định? 3Bài mới Hoạt động của thầy Hoạt động của trò Nội dung + Hoạt động 1: Tìm hiểu dãy số và biến mảng - Yêu cầu HS đọc ví dụ 1 - Ví dụ như trong Pascal ta cần nhiều câu lệnh khai báo và nhập dữ liệu dạng sau đây, mỗi câu lệnh tương ứng với điểm của một học sinh ? Dữ liệu mảng là gì. + Hoạt động 2: Ví dụ về biến mảng. - Để làm việc với các dãy số nguyên hay số thực, chúng ta phải khai báo biến mảng có kiểu tương ứng trong phần khai báo của chương trình. - Yêu cầu học sinh nghiên cứu SGK => Nêu cách khai báo biến mảng. - Cách khai báo đơn giản một biến mảng trong ngôn ngữ Pascal như sau: var Chieucao: array[1..50] of real; var Tuoi: array[21..80] of integer; +: Ví dụ 1. Giả sử chúng ta cần viết chương trình nhập điểm kiểm tra của các học sinh trong một lớp và sau đó in ra màn hình điểm số cao nhất. Vì mỗi biến chỉ có thể lưu một giá trị duy nhất, để có thể nhập điểm và so sánh chúng, ta cần sử dụng nhiều biến, mỗi biến cho một học sinh. Dữ liệu kiểu mảng là một tập hợp hữu hạn các phần tử có thứ tự, mọi phần tử đều có cùng một kiểu dữ liệu, gọi là kiểu của phần tử. Việc sắp thứ tự được thực hiện bằng cách gán cho mỗi phần tử một chỉ số: Giá trị của biến mảng là một mảng, tức một dãy số (số nguyên, hoặc số thực) có thứ tự, mỗi số là giá trị của biến thành phần tương ứng. + Học sinh chú ý lắng nghe => ghi nhớ kiến thức + Cách khai báo mảng trong Pascal như sau: Tên mảng : array[.. ] of ; - Trong đó chỉ số đầu và chỉ số cuối là hai số nguyên hoặc biểu thức nguyên thoả mãn chỉ số đầu ≤ chỉ số cuối và kiểu dữ liệu có thể là integer hoặc real. 1. Dãy số và biến mảng: Dữ liệu kiểu mảng là một tập hợp hữu hạn các phần tử có thứ tự, mọi phần tử đều có cùng một kiểu dữ liệu, gọi là kiểu của phần tử. 2. Ví dụ về biến mảng: Cách khai báo mảng trong Pascal như sau: Tên mảng : array[.. ] of ; 4. Củng cố (2 phút) - Hãy nêu cách khai báo biến mảng, cho một vài ví dụ về khai báo biến mảng. 5. Dặn dò (5 phút) - Về nhà học bài, kết hợp SGK ------------------------------------------------------------------------------------------ Ngày soạn:26/2/2017 Tiết 55 Bài 9. LÀM VIỆC VỚI DÃY SỐ (tt) I. Mục tiêu: 1. Kiến thức: - Làm quen với việc khai báo và sử dụng các biến mảng. - Biết cách tìm giá trị lớn nhất và giá trị nhỏ nhất của dãy số 2. Kĩ năn
Tài liệu đính kèm: