I./ Mụcđích yêu cầu:
-Về kiến thức:
+ Hs biết được khái niệm mảng
+ Hs hiểu được thuật toán tìm số lớn nhất của dãy
+ Hs hiểu được thuật toán tìm nhỏ nhất của dãy
-Về kỹ năng:Hs biết cách khai báo mảng, nhập, in, truy cập các phần tử của mảng
-Về thái độ: tích cực tìm hiểu cách làm việc với dãy, cẩn thận khi viết chương trình.
II./ Phương pháp,phương tiện:
-Phương pháp đàm thoại, so sánh, phân tích, trực quan, thực nghiệm và nêu vấn đề.
III./ Lưu ý sư phạm:
Tuần 55,56 Ngày soạn: Tiết 28 Ngày dạy: Baøi 9: Laøm vieäc vôùi daõy soá I./ Mụcđích yêu cầu: -Về kiến thức: + Hs biết được khái niệm mảng + Hs hiểu được thuật toán tìm số lớn nhất của dãy + Hs hiểu được thuật toán tìm nhỏ nhất của dãy -Về kỹ năng:Hs biết cách khai báo mảng, nhập, in, truy cập các phần tử của mảng -Về thái độ: tích cực tìm hiểu cách làm việc với dãy, cẩn thận khi viết chương trình. II./ Phương pháp,phương tiện: -Phương pháp đàm thoại, so sánh, phân tích, trực quan, thực nghiệm và nêu vấn đề. III./ Lưu ý sư phạm: IV./ Hoạt động dạy học: Hoạt động của giáo viên Hoạt động của HS Nội dung bài học HĐ1:Kiểm tra bài cũ (5 phút) -GV yêu cầu hs lên bảng viết lại câu lệnh While do. -GV cho ví dụ và giải thích ? HĐ2 : Dãy số và biến mảng -GV nhận xét : “Khai báo và nhập dữ liệu mỗi câu lệnh tương ứng với điểm của một HS” Var Diem_1, Diem_2, Diem_3, : real; Read (Diem_1) ; Read (Diem_2) ; Read (Diem_3) ; -GV: 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: + Với i = 1 đến 100: Hãy nhập Diem_i; + Với i = 1 đến 100: Hãy so sánh Max với Diem_i; - GV nhận xét : + Cách khai báo biến mảng trong các ngôn ngữ lập trình có thể khác nhau, nhưng luôn cần chỉ rõ: tên biến mảng, số lượng phần tử, kiểu dữ liệu chung của các phần tử. + Dựng một câu lệnh lặp, có thể thay rất nhiều câu lệnh nhập và in dữ liệu ra màn hình + Để so sánh điểm của mỗi HS với một giá trị nào đó, ta cũng chỉ cần một câu lệnh lặp + Để xử lí đồng thời các loai điểm của từng môn học, ta có thể khai báo nhiều mảng + Khi một mảng đó được khai báo, có thể làm việc với các phần tử của nó như: gán giá trị, đọc giá trị và thực hiện các tính toán với các giá trị đó. -GV hướng dẫn hs tìm hiểu lại thuật toán tìm giá trị lớn nhất, nhỏ nhất của dãy số nguyên(học ở Bài 5 ). -GV giải thích về thuật toán tìm giá trị lớn nhất của dãy số nguyên Sau đó cho HS nhắc lại. +Cho HS thảo luận, chỉnh sửa thuật toán trên để tỡm ra số nhỏ nhất. -GV cho HS đọc ví dụ 3: + Để nhập các số nguyên sẽ được nhập vào, trước hết phải làm gì ? +Sau khi khai báo N, biến lưu các số được nhập vào như là các phần tử của một biến mảng A. Ngoài ra, cần khai báo thêm các biến nào nữa ? -GV:Trình bày phần khai báo chương trỡnh - HS đọc ví dụ 3. + HS: trước hết ta khai báo biến N. + Cần khai báo thờm biến i làm biến đếm cho các lệnh lặp, biến Max và Min để lưu số lớn nhất, nhỏ nhất. - HS theo dừi - GV cho HS đọc phần ghi nhớ. 1. Dãy số và biến mảng: Ví dụ 1: (SGK)/ Tr 75 * 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 xếp thứ tự thực hiện bằng cách gán cho mỗi phần tử một chỉ số: + Biến mảng: Là khi khai báo một biến cú kiểu dữ liệu là kiểu mảng. + Giá trị của biến mảng là một mảng. (tức là một dãy số: nguyên - thực có thứ tự) 2. Ví dụ về biến mảng: Vớ dụ: (SGK)/ Tr 76 * Cách khai báo mảng trong Pascal: Tờn mảng : array [..] of ; Trong đó: + Chỉ số đầu và chỉ số cuối: là 2 số nguyên hoặc biểu thức nguyên (Chỉ số đầu £ chỉ số cuối ); + Kiểu dữ liệu: integer hoặc real * Ví dụ 2: (SGK)/ Tr 76. - Khai bỏo biến mảng Diem như sau: Var Diem : array [1..50] of real; - Dựng một câu lệnh lặp For i:= 1 to 50 do readln ( Diem [ i ] ); - Để so sánh điểm của mỗi HS với một giá trị nào đó For i:= 1 to 50 do If Diem [ i ] > 8.0 then writeln ( ‘ Gioi ‘ ); - Để xử lí đồng thời các loai điểm => khai báo nhiều mảng: Var DiemToan : array [1..50] of real; Var DiemVan : array [1..50] of real; Var DiemLi : array [1..50] of real; hoặc: Var DiemToan, DiemVan, DiemLi : array [1..50] of real; - Khi một mảng đó được khai báo, có thể : gán giá trị, đọc giá trị và thực hiện các tính toán với các giá trị đó. A[ 1 ]:= 5; A[ 2 ]:= 8; hoặc nhập dữ liệu từ bàn phím bằng câu lệnh: For i:= 1 to 5 do readln ( A [ i ] ); 3. Tìm giá trị lớn nhất và nhỏ nhất của dãy số: Tìm giá trị lớn nhất ( Max ) của dãy số nguyên nhập từ bàn phớm Thuật toán Bước 1: Nhập N và dóy A1, , An; Bước 2: Max ¬ A1; Bước 3: Với i từ 2 đến N thực hiện: Nếu Max < A1 thỡ Max ¬ Ai; Bước 4: Đưa ra màn hình giá trị Max rồi kết thỳc Ví dụ 3: (SGK)/ Tr 78. Chương trình minh họa: Program MaxMin; Uses crt; Var i, n, Max, Min : integer; A : array [1..100] of integer; {Phần thân chương trỡnh sẽ tương tự dưới đây:} Begin Clrscr; Write(‘Hay nhap do dai cua day so,N = ‘); readln (n); Writeln(‘Nhap cac pt cua day so: m’); For i:= 1 to n do Begin Write ( ‘ a[‘ , i ,’ ] = ‘); readln (a[i] ); end; Max:= a[1]; Min:= a[1]; For i:= 2 to n do Begin if Max < a[i] then Max:= a[ i ]; if Min < a[ i ] then Min:= a[ i ]; end; Write ( ‘ So lon nhat la Max = ‘ Max); Write ( ‘ So nho nhat la Min = ‘ Min); readln (n); End. GHI NHỚ: (SGK)/ Tr 79. IV.Củng cố, dặn dò: Củng cố - Lưu ý: Sử dụng cấu trỳc For do phù hợp, dễ hiểu hơn cấu trúc Whiledo vỡ biết trước số lần lặp. - Nhận xét rút kinh nghiệm giờ học Về nhà - Học sinh về nhà học bài - Làm cỏc Cõu hỏi và BTcòn lại: sgk/ Tr 79; IV./ Rút kinh nghiệm tiết dạy
Tài liệu đính kèm: