Bài 1: MÁY TÍNH VÀ CHƯƠNG TRÌNH MÁY TÍNH
I. MỤC TIÊU
1. Kiến thức:
- Biết con người chỉ dẫn cho máy tính thực hiện công việc thông qua lệnh
- Biết chương trình là cách để con người chỉ dẫn cho máy tính thực hiện nhiều công việc liên tiếp.
2. Kĩ năng:
- Biết đưa ra quy trình các câu lệnh để thực hiện một công việc nào đó.
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Ị
1. Giaó viên: Sách giáo khoa, giáo án.
2. Học sinh: sgk, đồ dùng học tập
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 HS: Suy nghĩ và trả lời HS: Hoạt động theo nhóm đại diện một nhóm trả lời và các nhóm khác bổ sung. Hs: Lắng nghe và ghi nhớ HS: Làm việc theo nhóm, đại diện một nhóm lên nêu ý nghĩa còn các nhóm khác nhận xét và bổ sung HS : Nếu chạy chương trình này ta sẽ nhận được n = 45 và tổng đầu tiên lớn hơn 1000 là 1034 HS: Đọc và nêu yêu cầu HS: Đều cho một kết quả HS: Hoạt động theo nhóm Hs:Chú ý lắng nghe và ghi nhớ kiến thức. Hs: Kết quả giống nhau 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 Ví dụ 3: (SGK) Ví dụ 4. Chương trình Pascal dưới đây thể hiện thuật toán tính số n trong ví dụ 2: var S,n: integer; begin S:=0; n:=1; while S<=1000 do begin n:=n+1; S:=S+n; end; writeln('So n nho nhat de tong > 1000 la ',n); writeln('Tong dau tien > 1000 la ',S); end. Ví dụ 5. Viết chương trình tính tổng Giải : Để viết chương trình tính tổng ta có thể sử dụng lệnh lặp với số lần lặp biết trước fordo: T:=0; for i:=1 to 100 do T:=T+1/i; writeln(T); Nếu sử dụng lệnh lặp whiledo, đoạn chương trình dưới đây cũng cho cùng một kết quả: T:=0; i:=1; while i<=100 do begin T:=T+1/i; i:=i+1 end; writeln(T); * Nhận xét : Ví dụ này cho thấy rằng chúng ta có thể sử dụng câu lệnh whiledo thay cho câu lệnh fordo. Hoạt động 2: Lặp vô hạn – lỗi lập trình cần tránh(5’) Tìm hiểu lặp vô hạn và những lỗi lập trình cần tránh. Gv: 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. Gv: 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. Hs: Lắng nghe và ghi nhớ kiến thức 2. 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ố (3’) - Nhắc lại kiến thức cần lưu ý của tiết học. 5. Dặn dò (1’) - Về nhà học bài, kết hợp SGK IV. RÚT KINH NGHIỆM - BỔ SUNG -------------------------------- & ---------------------------------- Tuần: 26 Ngày soạn : 09/03/2014 Tiết: 50 Ngày dạy : 11/03/2014 Bài thực hành số 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Ị Giáo viên: - Phòng máy, giáo án Học sinh: chuẩn bị bài III.HOẠT ĐỘNG LÊN LỚP Ổn định lớp (1’) Kiểm tra bài cũ: trong quá trình thực hành Bài mới Hoạt động của GV Hoạt động của HS Nội dung Hoạt động 1: Ôn lại kiến thức(8’) Gv: Yêu cầu hs ổn định chổ ngồi Gv: Cho Hs nhắc lại cấu trúc của câu lệnh và nêu hoạt động của câu lệnh? Gv: Nhận xét và cho điểm Hs: Thực hiện theo yêu câu của Hs và trả lời câu hỏi Hoạt động 2: Thực hành(32’) Gv: Cho HS đọc nội dung của bài tập Gv: Em hãy nêu ý tưởng để giải bài tập này? Gv: Yêu cầu hs 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? Gv: Nhận xét và chốt lại kiến thức Gv: Yêu cầu Hs gõ chương trình: - 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. Gv: kiểm tra Hs thực hành Gv: Yêu cầu Hs sử dụng for..do thay cho câu lệnh While..do. Hs hoạt động theo nhóm và viết chương trình trên máy tính của mình luôn. Gv: Quan sát, hỗ trợ và nhận xét. Hs: Đọc nội dung Hs: + 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ố. Hs: Làm theo nhóm và đại diện nhóm trả lời Hs: Chú ý lắng nghe và ghi nhớ kiến thức. Hs: Độ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. Hs: thực hiện theo yêu cầu của giáo viên. Hs: Hoạt động theo nhóm và viết chương trình trên máy chiếu cho cả lớp quan sát và sửa lỗi. Bài tập 1: 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. Chương trình Program tinh_trung_binh; Var n, dem: integer; X, tb: real; Begin Dem:=0; tb:=0; Writeln(‘nhap cac so can tinh n =’); Readln(n); While dem < n do Begin Dem:= dem + 1; Writeln(‘nha 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. 4. Củng cố(3’) - Nhắc lại những kiến thức của tiết học - Nhận xét tiết thực hành. 5. Dặn dò: - Tiết sau thực hành: “ Bài thực hành số 6 (tt) IV. RÚT KINH NGHIỆM - BỔ SUNG -------------------------------- & ---------------------------------- Tuần: 27 Ngày soạn : 15/03/2014 Tiết: 51 Ngày dạy : 17/03/2014 Bài thực hành số 6 SỬ DỤNG LỆNH LẶP WHILE...DO (tt) . 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Ị Giáo viên: - Phòng máy, giáo án Học sinh: chuẩn bị bài III.HOẠT ĐỘNG LÊN LỚP 1. Ổn định lớp (1’) 2. Kiểm tra bài cũ: trong quá trình thực hành 3. Bài mới Hoạt động của GV Hoạt động của HS Nội dung Hoạt động 1: Thực hành(40’) Gv: Cho Hs khởi động máy và tìm hiểu bài tập 2 - 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). GV: Đọc và tìm hiểu ý nghĩa của từng câu lệnh trong ? Gõ chương trình vào máy, chạy chương trình và kiểm tra kết quả. Gv: Gợi ý và cho Hs thực hành trên máy tính. Gv: Quan sát và hỗ trợ Gv: Nhận xét 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. Hs Học sinh tìm hiểu ý tưởng theo sự hướng dẫn của giáo viên. Hs:Đọ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. Hs:Độ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. Hs: Viết chương trình, chay và sửa lỗi 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. 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. Bài tập: Viết chương trình tính tổng S=1+1/2+1/3+..+1/100 4. Củng cố (3’) - Nhắc lại những kiến thức cần lưu ý của tiết học 5. Dặn dò - Ôn lại kiến thức để làm bài tập cho tiết học sau IV. RÚT KINH NGHIỆM - BỔ SUNG -------------------------------- & ---------------------------------- Tuần: 27 Ngày soạn : 16/03/2014 Tiết: 52 Ngày dạy : 18/03/2014 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 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. HOẠT ĐỘNG DẠY HOC 1.Ổn định tổ chức lớp(1 phút) 2.Kiểm tra bài cũ ( Kiểm tra trong qua trình học). 3.Bài mới Hoạt động của GV Hoạt động của HS Nội dung Hoạt động 1: Ôn tập câu lệnh lặp xác định While...do(40’) Gv: Hãy nêu cấu trúc của câu lênh lắp với số lần chưa biết trước và nêu hoạt động của câu lệnh? Gv: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? Gv: Cho HS hoạt động theo nhóm. Gv: Nhận xét và đưa ra câu trả lời Bài tập(bài3, SGK, trang 71) Gv: Cho Hs nghiên cứu bài tập trong SGK Gv:Nhận xét và đưa ra câu trả lời Bài tập 4 sgk trang 71 Gv: Cho Hs nghiên cứu bài tập trong SGK Gv:Nhận xét và đưa ra câu trả lời Bài tập 5 sgk trang 71 Gv: Cho Hs nghiên cứu bài tập trong SGK Gv:Nhận xét và đưa ra câu trả lời Hs: Suy nghĩ và trả lời Hs: Hoạt động theo nhóm và trả lơi Hs: Nhóm khác nhận xét và bổ sung Hs: Lắng nghe và ghi nhớ Hs: Nghiên cứu SGK Hs: Hoạt động theo nhóm và trả lời. Đại diện nhóm trả lời, nhóm khác bổ sung. Hs: Lắng nghe và ghi nhớ Hs: Nghiên cứu SGK Hs: Hoạt động theo nhóm và trả lời. Đại diện nhóm trả lời, nhóm khác bổ sung. Hs: Lắng nghe và ghi nhớ Hs: Nghiên cứu SGK Hs: Hoạt động độc lập và trả lời Hs: Lắng nghe và ghi nhớ Ôn lại lý thuyết: Whiledo Hoạt động: B1: Kiểm tra điều kiện B2: Nếu điều kiện sai, câu lệnh bỏ qua và 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. 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. Bài tâp3: 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: 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 Bài 4: a) Chương trình thực hiện 5 vòng lặp. b) Vòng lặp trong chương trình được thực hiện vô tận vì sau câu lệnh n:=n+1; câu lệnh lặp kết thúc nên điều kiện S=0 luôn luôn được thỏa mãn. Nhận xét: Trong câu lệnh thực hiện, điều kiện cần phải được thay đổi để sớm hay muộn chuyển sang trạng thái không thỏa mãn. Khi đó vòng lặp mới được kết thúc sau hữu hạn bước. Để làm được điều này, câu lệnh trong câu lệnh lặp while..do thường là câu lệnh ghép. Bài 5 a) Thừa dấu hai chấm trong điều kiện; b) Thiếu dấu hai chấm trong câu lệnh gán; c) Thiếu các từ khóa begin và end trước và sau các lệnh n:=n+1; S:=S+n, do đó vòng lặp trở thành vô tận. 4. Củng cố(3’) - Nhắc lại những kiến thức cần nhớ của tiết học - Viết chương trình tính s=1+2+3+..+n bằng vòng lắp While ..do 5. Dặn dò(1’) - Học lại toàn bộ lý thuyết - Tiết học tuần sau kiêm tra 1tiết IV. RÚT KINH NGHIỆM - BỔ SUNG -------------------------------- & ---------------------------------- Tuần: 28 Ngày soạn : 22/03/2014 Tiết: 53 Ngày dạy : 24/03/2014 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. HOẠT ĐỘNG DẠY HOC 1.Ổn định tổ chức lớp(1 phút) 2.Kiểm tra bài cũ ( Kiểm tra trong qua trình học). 3.Bài mới Hoạt động của Gv Hoạt động của Hs Nội dung Hoạt động: Bài tập(40’) Gv: Yêu cầu hs viết chương trình tính s=1+2+3+..+n bằng vòng lắp While ..do Gv: Cho Hs hoạt động theo nhóm. Gv: Yêu cầu một nhóm lên viết chương trình, nhóm khác bổ sung. Gv: Nhận xét và bổ sung . Gv: Hãy viết chương trình tính tổng dưới đây bằng vòng lặp While..do A = Gv: Cho Hs hoạt động theo nhóm. Gv: Yêu cầu một nhóm lên viết chương trình, nhóm khác bổ sung. Gv: Nhận xét và bổ sung Gv: Hãy viết chương trình tính tổng dưới đây bằng vòng lặp While..do Gv: Cho Hs hoạt động theo nhóm. Gv: Yêu cầu một nhóm lên viết chương trình, nhóm khác bổ sung. Gv: Nhận xét và bổ sung Hs: Tạo nhóm Hs: Lên viết chương trình Hs: Nhận xét Hs: Quan sát, lắng nghe và ghi nhớ Hs: Tạo nhóm Hs: Lên viết chương trình Hs: Nhận xét Hs: Quan sát, lắng nghe và ghi nhớ Bài tập 1: Program tinh_tong; Uese crt; Var n,i,s: integer; Begin Write(‘nhap n=’) readln(n); s:=0; i:=1; While i<=n do Begin S:= a+i; i:=i+1; end; Write(‘ tong s la’,s); Readln End. Bài tập 2: Program tinh_tong; Uese crt; Var n,i: integer; A: real; Begin Write(‘nhap n=’) readln(n); A:=0; i:=1; While i<=n do Begin A:= A+1/i*(i+1) ; I:=i+1; end; Write(‘ tong A la’,A:2:1); Readln End. Bài tập 3: Program tinh_tong; Uese crt; Var n,i: integer; s: real; Begin Write(‘nhap n=’) readln(n); S:=0; i:=1; While i<=n do Begin S:= s+1/i*(i+1)*(i+2) ; I:=i+1; end; Write(‘ tong A la’,s:2:1); Readln End. 4. Củng cố(3’) - Nhắc lại những kiến thức cần nhớ của tiết học 5. Dặn dò(1’) - Học lại toàn bộ lý thuyết - Tiết học sau kiêm tra 1tiết IV. RÚT KINH NGHIỆM - BỔ SUNG -------------------------------- & ---------------------------------- Tuần: 28 Ngày soạn : 22/03/2014 Tiết: 54 Ngày dạy : 25/03/2014 KIỂM TRA 1 TIẾT I.MỤC TIÊU 1. Kiến thức - Biết vận dụng kiến tthức đã học để làm bài kiểm tra - Qua bài kiểm tra biết được kiến thức học sinh nắm được 2. Kỹ năng. - Bổ sung kỹ năng viết chương trình và nhận ra lỗi chương trình 3. Thái độ - Nghiêm túc làm bài II. PHƯƠNG PHÁP -Kiểm tra viết III.CHUẨN BỊ 1. Giáo viên: Bài kiểm tra. 2. Học sinh Đồ dùng học tập. IV.TIẾN TRÌNH TIẾT DẠY Ổn định tổ chức Phát đề thi Trường THCS Đăk Nang Họ và tên:. Kiểm tra 45 phút Lớp: 8. Môn: Tin học Ma trận đề Nội dung Mức độ Bài 7. Câu lệnh lăp For do Bài 8: Lặp với số lần chưa biết trước While do Tổng (điểm) Biết I1, I5, I8, 1.25 I6,II1 2.5 2,75 Hiểu I2, I3, I4, II2 2,75 I7, I12 0.5 3,25 Vận dụng II3 4 4 I. Trắc nghiệm (2điểm) Câu 1: chạy chương trình trong pascal ta dùng tổ hợp phím : a/ Ctrl + F7 b/ Ctrl + F8 c/ Ctrl + F9 d/ Ctrl + F10 Câu 2: Cho S và i là nguyên. Khi chạy đoạn chương trình : s:=0; for i:=1 to 10 do s := s+i; writeln(s); Kết quả in lên màn hình là : a/ s = 11 b/ s = 55 c/ s = 101 d/ s = 10 Câu 3: Cho S và i là nguyên. Khi chạy đoạn chương trình : s:=0; for i:=1 to 8 do s := s+2*i; writeln(s); Kết quả in lên màn hình là : a/ s = 72 b/ s = 100 c/ s = 101 d/ s = 55 Cậu 4:Các câu lệnh Pascal nào sau hợp lệ : a/ for i:=100 to 1 do writeln(‘A’) b/ for i:= 1.5 to 10.5 do writeln(‘A’) c/ for i:= 1 to 10 do writeln(‘A’) d/ for i:=1 to 10 do writeln(‘A’); Câu 5: Cấu trúc của vòng lặp FOR – DO là : a/ For := to do ; b/ For := to do ; c/ For := downto do ; d/ For := downto do ; Câu 6: trúc của vòng lặp WHILE - DO có dạng: a/ While do ; b/ While do ; c/ While do ; d/ While do ; Câu 7: Trong Pascal kết quả của phép toán : (7 Mod 2) bằng: a/ 4 b/ 2 c/ 3 d/ 1 Câu 8: Khi viết câu lệnh lặp dạng Fordo. a/ Giá trị đầu lớn hơn giá trị cuối c/ Giá trị cuối lớn hơn giá trị đầu c/ Giá trị đầu bằng giá trị cuối d/ Tất cả đều sai II. Tự luận (7 điểm) Câu 1: Khi nào xảy ra “lặp vô hạn” viết một đoạn chương trình (2 điểm) Câu 2: Sau khi thực hiện xong đoạn chương trình sau, thì chương trình thực hiện bao nhiêu vòng lặp với giá trị của biến bằng bao nhiêu (2 điểm) M:=0; For i:=1 to 5 do M:=M+2; Câu 3: Viết chương trình tính tổng S=1+1/2+1/3+...+1/n.(4điểm) (Lưu ý: Sử dụng lệnh lặp Whiledo) Đáp án I. Trắc nghiệm (2điểm) Câu 1 Câu 2 Câu 3 Câu 4 Câu 5 Câu 6 Câu 7 Câu 8 c b a d a b d c II. Tự luận (8điểm) Câu 1 (2điểm) Để xảy ra trường hợp “lặp vô hạn” thì điều kiện luôn luôn đúng và không xảy ra điều kiện sai. Đoạn chương trình Var a: integer; Begin a:=5; while a<6 do writeln(‘a’); end. Câu 2(2 đ): Với đoạn chương trình đó thì máy tính thực hiện 5 vòng lặp, mỗi lần M tăng thêm 2 đơn vị, kết thúc vòng lặp M có 10 giá trị. Câu 3(4đ): Program Tinh_tong; Uses crt Var I,S: real; N: integer; Begin Write(‘nhap n=’); Readln(n); S:=0; I:=1; While I<=N do Begin S:=S+1/I; I:=I+1; End; Writeln(‘Tong la’,S:6:2); Readln End. Tuần: 29 Ngày soạn : 29/03/2014 Tiết: 55 Ngày dạy : 31/03/2014 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Ị 1. GV:Sách giáo khoa, giáo án. 2. HS: Đọc bài trước ở nhà. III. TỔ CHỨC HOẠT ĐỘNG DẠY VÀ HỌC Ổn định lớp(1’) Kiểm tra bài cũ: không kiểm tra Bài mới Hoạt động của GV Hoạt động của HS Nội dung Hoạt động 1: Dãy số và biến mảng(15’) GV: Em thường nhìn thấy việc sắp xếp hàng để mua vé, xếp hàng trước khi vào lớp. vậy, em hãy cho biết công việc sắp xếp có lợi ích gì? GV: Trong lập trình cũng vậy nếu biết bố trí dữ liệu, việc khai báo và xử lí dữ liệu trở nên đơn giản rất nhiều. Thay vì phải viết rất nhiều câu lệnh giống nhau, ta có thể dùng vài câu lệnh lặp và nhường lại phần lớn công việc cho máy tính. GV: Nêu ví dụ trong SGK. Cho HS nhận xét GV: Dẫn dắt vấn đề và đi đên giới thiệu kiểu mảng GV: Đưa ví dụ 1 SGK để giới thiệu cho học sinh cách sử dụng biến mảng như thế nào? Ví dụ 1. 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: Var Diem_1, Diem_2, Diem_3, : real; Read(Diem_1); Read(Diem_2), Read(Diem_3); GV: Phân tích bài toán để học sinh hiểu rõ hơn vấn đề Nếu số học sinh trong lớp càng nhiều thì đoạn khai báo và đọc dữ liệu trong chương trình càng dài. Giả sử chúng ta có thể lưu nhiều dữ liệu có liên quan với nhau (như Diem_1, Diem_2, Diem_3,... ở trên) bằng một biến duy nhất và đánh "số thứ tự" cho các giá trị đó, ta có thể sử dụng quy luật tăng hay giảm của "số thứ tự" và một vài câu lệnh lặp để xử lí dữ liệu một cách đơn giản hơn, chẳng hạn: Với i = 1 đến 50: hãy nhập Diem_i; Với i = 1 đến 50: hãy so sánh Max với Diem_i; GV: Để giải quyết các vấn đề trên chúng ta cần có dữ liệu gì? GV: Dữ liệu kiểu mảng là gì? GV: Việc sắp xếp thứ tự như thế nào? GV: Giá trị của mảng như thế nào? HS: ..làm cho hoạt động diễn ra một cách trật tự và nhanh chóng. Hs : lắng nghe và ghi nhớ HS:..mất thời gian và dễ nhầm lẫn. HS: Chú ý lắng nghe HS lắng nghe và tiếp thu. HS: Dữ liệu kiểu mảng HS: 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 HS: Bằng cách gán cho mỗi phần tử 1 chỉ số HS: Là một biến nguyên 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ử. - Khi khai báo một biến có kiểu dữ liệu là kiểu mảng, biến đó được gọi là biến mảng. - 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. Hoạt động 2: Ví dụ về biến mạng(20’) Gv: Để làm việc với dãy số ta khai bảo biến mảng có kiểu số tương ứng trong phần khai báo. - Khi khai báo biến mảng cần chỉ rõ: tên biến mảng, số lượng, kiểu dữ liệu của phần tử. GV: Đưa ra ví dụ về biến mảng Ví dụ, 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ới câu lệnh thứ nhất, ta đã khai báo một biến có tên Chieucao gồm 50 phần tử, mỗi phần tử là biến có kiểu số thực. Với câu lệnh khai báo thứ hai, ta có biến Tuoi gồm 60 phần tử (từ 21 đến 80) có kiểu số nguyên. GV: Cho HS nhận xét ví dụ và đưa ra cú pháp về biến mảng. GV: Nhận xét và đưa ra cách khai bái biến mảng trong Pascal GV: Đưa ví dụ 2 Ví dụ 2. Tiếp tục với ví dụ 1, thay vì khai báo các biến Diem_1, Diem_2, Diem_3,... để lưu điểm số của các học sinh, ta khai báo biến mảng Diem như sau: var Diem: array[1..50] of real; GV: Hướng dẫn học sinh cách sử dụng biến mảng GV giảng bài: Trước hết, có thể thay rất nhiều câu lệnh nhập và in dữ liệu ra màn hình bằng một câu lệnh lặp. Chẳng hạn, ta có thể viết: For i:=1 to 50 do readln(Diem[i]); để nhập điểm của các học sinh. Để so sánh điểm của mỗi học sinh với một giá trị nào đó, ta cũng chỉ cần một câu lệnh lặp, chẳng hạn: For i:=1 to 50 do if Diem[i]>8.0 then writeln('Gioi'); GV: Cách khai báo biến có ích lợi gì? GV giảng bài tiếp: Hơn nữa, mỗi học sinh có thể có nhiều điểm theo từng môn học: điểm Toán, điểm Văn, điểm Lí,... Để xử lí đồng thời các loại điểm này, ta có thể khai báo nhiều biến mảng: var DiemToan: array[1..50] of real; var DiemVan: array[1..50] of real; var DiemLi: array[1..50] of real; hay var DiemToan, DiemVan, DiemLi: array[1..50] of real; Khi đó, ta cũng có thể xử lí điểm thi của một học sinh cụ thể GV: Qua ví dụ 2 cũng cho thấy rằng, chúng ta gán giá trị, đọc 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 điều gì? Gv: Nhận xét và cho ví dụ Chẳng hạn, trong câu lệnh trên Diem[i] là phần tử thứ i của biến mảng Diem. Ta có thể gán giá trị cho các phần tử của mảng bằng câu lệnh gán: A[1]:=5; A[2]:=8; hoặc nhập dữ liệu từ bàn phím bằng câu lệnh lặp: for i := 1 to 5 do readln(a[i]);; Hs: Lắng nghe HS: Chú ý ví dụ HS: Đưa ra câu trả lời. HS: Chú ý và ghi vở HS
Tài liệu đính kèm: