Ngày soạn: 04/10/2009 Ngày giảng:06/10/2009 Tiết theo PPCT: 19 Chương IV - KIỂU DỮ LIỆU CÓ CẤU TRÚC §11. Kiểu Mảng I - Mục tiêu bài học 1. Kiến thức - Biết được một số kiểu dữ liệu mới là kiểu mảng một chiều, biết được loại biến có chỉ số. - Biết cấu trúc tạo kiểu mảng một chiều, và cách khai báo biến kiểu mảng một chiều. 2. Kỹ năng - Tạo được kiểu mảng một chiều và sử dụng biến mảng một chiều trong ngôn ngữ lập trình Pascal để giải quyết một số bài toán cụ thể. II – Phương pháp, phương tiện dậy học - Phương pháp: Thuyết trình, vấn đáp, hội thoại… - Phương tiện: sgk, giáo án… III- Tiến trình bài giảng 1. Ổn định tổ chức lớp: - Lớp: - Sĩ số: - Lí do vắng: 2. Kiểm tra bài cũ 3. Nội dung bài mới Hoạt động của giáo viên và học sinh Nội dung Với những kiểu dữ liệu như đã biết thì làm thế nào để: - Lưu trữ và xử lí một dãy số… - Lưu trữ và xử lí họ tên 1 người… - Lưu trữ và xử lí bảng kết quả thi… Các ngôn ngữ lập trình thường cung cấp một số kiểu dữ liệu xây dựng từ những kiểu dữ liệu chuẩn gọi là kiểu dữ liệu có cấu trúc. Chương này chúng ta sẽ tìm hiểu thêm một số kiểu dữ liệu trong Pascal: kiểu mảng, kiểu sâu, kiểu bản ghi… Làm thế nào để lưu trữ và xử lí một dãy số nguyên trong khi lập trình? Xét ví dụ 1. Kiểu mảng một chiều VD: Nhập vào nhiệt độ (trung bình) mỗi ngày trong tuần.Tính và đưa ra màn hình nhiệt độ trung bình của tuần và số lượng Phân tích bài toán: ? Bài toán cho biết gì, và yêu cầu thực hiện công việc gì? - Nhiệt độ các ngày trong tuần - Tính nhiệt độ trung bình của tuần và số ngày có nhiệt độ cao hơn nhiệt độ trung bình. ? Làm thế nào để tính được nhiệt độ trung bình của tuần? - Cộng nhiệt độ các ngày trong tuần chia cho 7 ? Làm thế nào để biết được trong tuần có bao nhiêu ngày có nhiệt độ cao hơn nhiệt độ trung bình của tuần? - So sánh nhiệt độ từng ngày với nhiệt độ trung bình của tuần. ? Bài toán này sử dụng những biến nào? - Biến nhiệt độ các ngày trong tuần, nhiệt độ trung bình tuần, đếm số lượng ngày có nhiệt độ cao hơn nhiệt độ trung bình. ? Với những kiểu dữ liệu đã học ta giải bài toán này thế nào? - Đưa ra chương trình trong Pascal. ngày có nhiệt độ cao hơn nhiệt độ trung bình của tuần. Program nhietdo_tuan; Uses crt; Var t1,t2,t3,t4,t5,t6,t7,tb:real; dem :integer; Begin clrscr; Writeln(‘nhap vao nhiet do 7 ngay:’); Readln(n); tb:=(t1+t2+t3+t4+t5+t6+t7)/7; dem:=0; if t1>tb then dem:=dem + 1; if t2>tb then dem:=dem + 1; if t3>tb then dem:=dem + 1; if t4>tb then dem:=dem + 1; if t5>tb then dem:=dem + 1; if t6>tb then dem:=dem + 1; if t7>tb then dem:=dem + 1; writeln(‘nhiet do trung binh tuan la:’,tb); writeln(‘so ngay co nhiet do cao hon trung binh la:’,dem); Readln End. ? Khi giải bài toán trên với n ngày thì n lớn chương trình sẽ có những hạn chế gì? - Phải khai báo nhiều biến, chương trình phải viết rất dài. Để khắc phục những hạn chế trên người ta thường ghép chung các biến đó lại và đặt cho chúng 1 cái tên, đánh cho mỗi tên 1 chỉ số và dãy có các biến đó được gọi là mảng một chiều. ? Vậy mảng một chiều là gì? ? Để mô tả mảng 1 chiều cần xác định những yếu tố nào? ? Cách khai báo mảng 1 chiều? Khái niệm: Mảng một chiều là một dãy hữu hạn các phẩn tử có cùng kiểu dữ liệu. Các phần tử trong mảng có cùng chung 1 tên và phân biệt với nhau bởi chỉ số. Để mô tả mảng 1 chiều cần xác định những yếu tố nào? - Kiểu của các phần tử - Cách đánh số các phần tử Các ngôn ngữ lập trình có quy tắc, cách th ức cho phép xác định - Tên kiểu mảng 1 chiều - Số lượng phần tử - Kiểu dữ liệu của phần tử - Cách khai báo biến mảng - Cách tham chiếu đến phần tử a, Khai báo * Khai báo trực tiếp Var <tên biến mảng> : array [kiểu chỉ số ] of <kiểu phần tử>; * Khai b áo gi án ti ếp Type <tên kiểu mảng> = array [kiểu chỉ số ] of <kiểu phần tử>; Var <tên biến mảng> :<tên kiểu mảng>; Trong đó: - Kiểu chỉ số: thường là 1 đoạn số nguyên liên tục có dạng n1 n2, với n1 là chỉ số đầu, n2 là chỉ số cuối. - Kiểu phần tử: là kiểu của các phần tử mảng. - Type: là từ khoá dùng để khai báo biến ? Ý nghĩa của câu lệnh là gì? - Tạo 1 kiểu dữ liệu mới có tên là mmc, gồm 100 phần tử, có kiểu số nguyên. - Array: là từ khoá dùng để khai báo mảng *Tham chiếu đến các phần tử của mảng <tên biến mảng>[chỉ số] VD1:Type mmc=array[1 100] of integer; VD2: Cho 1 số khai báo sau, khai báo nào đúng? 1, Type Arrayr = array[1 100] of integer; Var A: Arrayr; 2, Var Arrayr : array[real] of integer; 3, Type Arrayr = array[-100 0] of integer; Var A: Arrayr; Khai báo 1, 3 đúng IV - C ủng c ố - Cách khai báo mảng 1 chiều - Cách tham chiếu đến phần tử mảng . array [kiểu chỉ số ] of < ;kiểu phần tử>; * Khai b áo gi án ti ếp Type <tên kiểu mảng& gt; = array [kiểu chỉ số ] of < ;kiểu phần tử>; Var <tên biến mảng& gt; :<tên kiểu mảng& gt;; Trong. một số kiểu dữ liệu xây dựng từ những kiểu dữ liệu chuẩn gọi là kiểu dữ liệu có cấu trúc. Chương này chúng ta sẽ tìm hiểu thêm một số kiểu dữ liệu trong Pascal: kiểu mảng, kiểu sâu, kiểu bản. - KIỂU DỮ LIỆU CÓ CẤU TRÚC §11. Kiểu Mảng I - Mục tiêu bài học 1. Kiến thức - Biết được một số kiểu dữ liệu mới là kiểu mảng một chiều, biết được loại biến có chỉ số. - Biết cấu trúc tạo kiểu