ngữ lập trình có thể khác nhau, nhưng luôn - HS: Nghiªn cøu SGK tr¶ lêi cần chỉ rõ: tên biến mảng, số lượng phần tử, - GV: Cho HS đọc ví dụ, rồi hướng dẫn cách kiểu dữ liệu chung của các[r]
(1)Gi¸o ¸n Tin häc Trường THCS Thị Trấn Bát Xát Ngµy so¹n: 03/05/09 Ngµy gi¶ng: Líp 8A: 06/01/09 8B: 07/01/09 8C: 08/01/09 TiÕt 39 – 40: Bµi Lµm viÖc víi d·y sè I Môc tiªu bµi häc: KiÕn thøc : BiÕt kh¸i niÖm m¶ng mét chiÒu, biÕt cÊu tróc chung cña c©u lÖnh khai b¸o m¶ng mét chiÒu KÜ n¨ng: - ViÕt ®îc cÊu tróc m¶ng mét chiÒu vµ lÊy ®îc vÝ dô minh häa - Đọc và tìm hiểu ý nghĩa số chương trình đơn giản Thái đô: Tích cực các hoạt động, tuân thủ các quy tắc chung câu lệnh II ChuÈn bÞ: Gi¸o viªn: PhÊn mµu, SGK, bµi tËp minh ho¹ Học sinh: Vở viết, SGK, đọc trước bài nhà III TiÕn tr×nh lªn líp æn ®inh tæ chøc KiÓm tra: Kh«ng kiÓm tra Néi dung bµi míi: Hoạt động GV và HS Néi dung bµi häc Hoạt động 1:Dãy số và biến mảng - G: Giới thiệu dãy số và biến mảng liên Dãy số và biến mảng: quan đến hai nội dung quan trọng: Nhu cầu biến mảng ngôn ngữ lập trình và thuật toán tìm số lớn dãy số Như các em đã biết “thuật toán tìm số lớn dãy số” đã tìm hiểu bài (ví dụ 6) Vì vậy, ta không đề cập đến việc giải nhiệm vụ này ntn Mục tiêu là Gv dẫn đến nhu cầu cần có biến mảng thông qua ví dụ 1: Viết chương trình nhập điểm kiểm tra các HS lớp và sau đó in màn hình - HS: Nghe giảng và đọc ví dụ - G: Vì biến có thể lưu giá trị nhất, để có thể nhập điểm và so sánh Ví dụ 1: (SGK)/ Tr 75 chúng, ta cần sử dụng nhiều biến, biến 35 Lop8.net (2) Gi¸o ¸n Tin häc Trường THCS Thị Trấn Bát Xát cho HS Trong Pascal ta cần nhiều câu lệnh khai báo và nhập liệu như: Mỗi câu lệnh tương ứng với điểm HS - HS: Nghe giảng - G: Nếu số HS lớp càng nhiều thì đoạn khai báo và đọc liệu chương trình càng dài … khó tránh khỏi nhầm lẫn, sai sót - G: Vậy, ta 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 ntn ? Để giải các vấn đề trên, hầu hết các ngôn ngữ lập trình có kiểu liệu gọi là kiểu mảng + Dữ liệu kiểu mảng là gì ? - HS: Trả lời : Dữ liệu kiểu mảng là tập hợp các phần tử có thứ tự, phần tử có cùng kiều liệu - 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) ; … - Ta 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; * 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ử * Nhấn mạnh: Trong bài này, ta xét các Việc xếp thứ tự thực cách mảng có các phần tử kiểu số nguyên số gán cho phần tử số: thực - GV: Giới thiệu các khái niệm biến mảng và giá trị biến mảng - HS: Ghi bà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ự) Hoạt động 2: Ví dụ biến mảng - GV: Cách khai báo biến mảng các Ví dụ biến mảng: ngôn ngữ lập trình có thể khác nhau, - Cách khai báo biến mảng các ngôn luôn cần rõ gì ? ngữ lập trình có thể khác nhau, luôn - HS: Nghiªn cøu SGK tr¶ lêi cần rõ: tên biến mảng, số lượng phần tử, - GV: Cho HS đọc ví dụ, hướng dẫn cách kiểu liệu chung các phần tử Ví dụ: (SGK)/ Tr 76 khai báo ngôn ngữ Pascal: * Cách khai báo mảng Pascal: Var Chieucao : array [1 50] of real; 36 Lop8.net (3) Gi¸o ¸n Tin häc Trường THCS Thị Trấn Bát Xát Var Tuoi : array [21 80] of integer; => Cách khai báo mảng Pascal ntn ? - HS: Thực theo hướng dẫn GV 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ố cuối ); + Kiểu liệu: integer real - Từ ví dụ 1, GV dẫn dắt HS cách khai báo * Ví dụ 2: (SGK)/ Tr 76 biến mảng: - Khai báo biến mảng Diem sau: Var Diem : array [1 50] of real; Var Diem : array [1 50] of real; + Biến mảng có 50 phần tử đánh từ đến 50 Các phần tử “đặt tên” ntn ? => Cách khai báo và sử dụng biến mảng trên có lợi gì ? - GV: Để thay nhiều câu lệnh nhập và in liệu màn hình, ta dùng câu lệnh nào ? ( For …do ) - GV: Để viết giá trị các phần tử màn hình người ta kết hợp For …do với lệnh nào ? - 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, như: For i:= to 50 readln ( Diem [ i ] ); - Để so sánh điểm HS với giá trị nào đó, ta cần câu lệnh lặp, như: For i:= to 50 If Diem [ i ] > 8.0 then writeln ( ‘ Gioi ‘ ); - GV: Để giúp tiết kiệm nhiều thời gian và công sức viết chương trình, thay vì phải viết 50 câu lệnh khai báo và 50 câu lệnh nhập, ta cần viết câu lệnh là đủ và kết đạt Đưa cách khai báo cho HS rõ => HS tự khai báo nhiều biến mảng cho các - Để xử lí đồng thời các laọi điểm môn học ntn ? môn học, ta có thể khai báo nhiều mảng: - HS : làm theo hướng dẫn GV 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 - GV: Sau mảng đã khai báo, [1 50] of real; chúng ta có thể làm việc với các phần tử - Khi mảng đã khai báo, chúng ta nó làm việc với biến thông có thể làm việc với các phần tử nó như: thường Vậy làm việc với biến thông gán giá trị, đọc giá trị và thực các tính thường ntn ? toán với các giá trị đó Ví dụ như: - HS: gán giá trị, đọc giá trị và thực A[ ]:= 5; 38 Lop8.net (4) Gi¸o ¸n Tin häc Trường THCS Thị Trấn Bát Xát các tính toán với các giá trị đó A[ ]:= 8; nhập liệu từ bàn phím câu * Lưu ý HS: Sử dụng cấu trúc For … lệnh: For i:= to readln ( A [ i ] ); phù hợp, dễ hiểu cấu trúc While…do vì biết trước số lần lặp * Củng cố:Làm BT 1, 2/ SGK/ Tr 79 Hoạt động 3: 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 và nhỏ tìm giá trị lớn nhất, nhỏ dãy số dãy số: nguyên ( đã học Bài ) * Thuật toán tìm giá trị lớn ( Max ) + GV : giải thích thuật toán tìm giá trị dãy số nguyên nhập từ bàn phím: lớn dãy số nguyên … Sau đó cho Bước 1: Nhập N và dãy A1, … , An; HS nhắc lại Bước 2: Max A1; - HS nghe và nhắc lại Tham gia chỉnh sửa Bước 3: Với i từ đến N thực hiện: Nếu thuật toán trên để tìm số nhỏ Max < A1 thì Max Ai; Bước 4: Đưa màn hình giá trị Max +GV: Cho HS thảo luận, chỉnh sửa thuật kết thúc toán trên để tìm số nhỏ - GV cho HS đọc ví dụ 3: - HS đọc ví dụ ? Để nhập các số nguyên nhập vào, trước hết ta phải làm gì ? + HS: …trước hết ta khai báo biến N Ví dụ 3: (SGK)/ Tr 78 ? 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 ? + HS: 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ỏ * Phần khai báo chương trình có thể sau: 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 - GV: Trình bày phần khai báo chương trình = ‘); readln (n); … Writeln ( Nhap cac phan tu cua day so: m’); For i:= to n Begin - HS theo dõi 39 Lop8.net (5) Gi¸o ¸n Tin häc Trường THCS Thị Trấn Bát Xát Write ( ‘ a[ , i , ] = ‘); readln (a[ i ] ); - GV cho HS đọc phần ghi nhớ - HS: Đọc ghi nhớ 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 ** GHI NHỚ: (SGK)/ Tr 79 4- Dặn dò: - Về nhà học bài; - Làm các Câu hỏi và BTcòn lại: sgk/ Tr 79; - Chuẩn bị tiết sau: Bài thực hành 35 Lop8.net (6)