+ 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í đồ[r]
(1)Trường THCS Đoàn Giỏi GV: Phạm Tấn Phát Tuần 55,56 Ngày soạn: Tiết 28 Ngày dạy: Bài 9: Làm việc với dãy số I./ Mụcđích yêu cầu: -Về kiến thức: + Hs biết khái niệm mảng + Hs hiểu thuật toán tìm số lớn dãy + Hs hiểu thuật toán tìm nhỏ 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ử 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 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 giáo viên Hoạt động HS 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 : Nội dung bài học Dãy số và biến mảng: Ví dụ 1: (SGK)/ Tr 75 * Dữ liệu kiểu mảng:Là tập hợp hữu hạn các phần tử có thứ tự + Mọi phần tử có cùng kiểu liệu gọi là kiểu phần tử Việc xếp thứ tự thực cách gán cho phần tử số: “Khai báo và nhập liệu câu lệnh tương ứng với điểm 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 “số thứ tự” và vài câu lệnh lặp để xử lí liệu cách đơn giản: + Với i = đến 100: Hãy nhập Diem_i; + Với i = đến 100: Hãy so sánh Max với Diem_i; + Biến mảng: Là khai báo biến cú kiểu liệu là kiểu mảng + Giá trị biến mảng là mảng (tức là dãy số: nguyên - thực có thứ tự) Ví dụ biến mảng: Vớ dụ: (SGK)/ Tr 76 * Cách khai báo mảng Pascal: Tờn mảng : array [<chỉ số đầu> <chỉ số cuối>] of <kiểu liệu >; Trong đó: + Chỉ số đầu và số cuối: là số nguyên biểu thức nguyên (Chỉ số đầu số Trang Lop8.net (2) Trường THCS Đoàn Giỏi GV: Phạm Tấn Phát - GV nhận xét : + Cách khai báo biến mảng các ngôn ngữ lập trình có thể khác nhau, luôn cần rõ: tên biến mảng, số lượng phần tử, kiểu liệu chung các phần tử cuối ); + Kiểu liệu: integer real * Ví dụ 2: (SGK)/ Tr 76 - Khai bỏo biến mảng Diem sau: Var Diem : array [1 50] of real; - Dựng câu lệnh lặp For i:= to 50 readln ( Diem [ i ] ); - Để so sánh điểm HS với giá trị nào đó For i:= to 50 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ảng đó khai báo, có thể : gán giá trị, đọc giá trị và thực các tính toán với các giá trị đó A[ ]:= 5; A[ ]:= 8; nhập liệu từ bàn phím câu lệnh: For i:= to readln ( A [ i ] ); + Dựng câu lệnh lặp, có thể thay nhiều câu lệnh nhập và in liệu màn hình + Để so sánh điểm HS với giá trị nào đó, ta cần câu lệnh lặp + Để xử lí đồng thời các loai điểm môn học, ta có thể khai báo nhiều mảng + Khi mảng đó khai báo, có thể làm việc với các phần tử nó như: gán giá trị, đọc giá trị và thực các tính toán với các giá trị đó Tìm giá trị lớn và nhỏ dãy số: -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ỏ dãy số nguyên(học Bài ) -GV giải thích thuật toán tìm giá trị lớn 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 số nhỏ -GV cho HS đọc ví dụ 3: + Để nhập các số nguyên nhập vào, trước hết phải làm gì ? Tìm giá trị lớn ( Max ) 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ừ đến N thực hiện: Nếu Max < A1 thỡ Max Ai; Bước 4: Đưa màn hình giá trị Max kết thỳc +Sau khai báo N, biến lưu các số nhập vào là các phần tử biến mảng A Ngoài ra, cần khai báo thêm các biến nào ? Ví dụ 3: (SGK)/ Tr 78 Chương trình minh họa: Trang Lop8.net (3) Trường THCS Đoàn Giỏi GV: Phạm Tấn Phát -GV:Trình bày phần khai báo chương trỡnh … Program MaxMin; Uses crt; Var i, n, Max, Min : integer; A : array [1 100] of integer; {Phần thân chương trỡnh tương tự đây:} Begin Clrscr; Write(‘Hay nhap dai cua day so,N = ‘); readln (n); Writeln(‘Nhap cac pt cua day so: m’); For i:= to n Begin Write ( ‘ a[‘ , i ,’ ] = ‘); readln (a[i] ); end; Max:= a[1]; Min:= a[1]; For i:= to n 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 - HS đọc ví dụ + 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ỏ - HS theo dừi - GV cho HS đọc phần ghi nhớ 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 … phù hợp, dễ hiểu cấu trúc While…do vỡ biết trước số lần lặp - Nhận xét rút kinh nghiệm học Về nhà - Học sinh 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 Trang Lop8.net (4)