Giáo án mẫu các bài học “Chương 4: Kiểu dữ liệu có cấu trúc”

Một phần của tài liệu Xây dựng và thiết kế Ebook hỗ trợ dạy và học môn Tin học lớp 11 (Trang 51 - 59)

7. Những đóng góp mới của đề tài nghiên cứu

2.5Giáo án mẫu các bài học “Chương 4: Kiểu dữ liệu có cấu trúc”

GIÁO ÁN TIN HỌC LỚP 11

Bài 11 – KIỂU MẢNG (TIẾT 1) I. MỤC TIÊU:

1. Kiến thức:

-Biết được một kiểu dữ liệu mới là kiểu mảng một chiều và biết được một loại biến có chỉ số.

SVTH: Trần Thị Lành 52

2. Kỹ năng:

- Tạo được kiểu mảng một chiều.

- Sử dụng biến mảng một chiều cài đặt một số thuật toán giải quyết một số bài toán đơn giản với kiểu dữ liệu mảng một chiều.

3. Thái độ:

- Nghiêm túc, hăng hái phát biểu xây dựng bài và làm bài tập. - Tích cực, tự giác và chủ động tự tìm hiểu, khám phá.

II. PHƯƠNG PHÁP GIẢNG DẠY:

- Lấy HS làm trung tâm, lấy các ví dụ cụ thể để học sinh nắm vững bài học. - Thuyết trình, diễn giải, hỏi đáp.

III. CHUẨN BỊ:

1. Chuẩn bị của GV: Giáo án, SGK tin học lớp 11.

2. Chuẩn bị của HS: SGK tin học lớp 11, vở ghi bài, đọc trước nội dung SGK.

IV. HOẠT ĐỘNG DẠY HỌC: 1. Ổn định tình hình lớp: (2’) 2. Đặt vấn đề: (12’)

Câu hỏi 1: Ở những bài trước, chúng ta đã học các kiểu dữ liệu nào rồi? HS trả lời: Kiểu số nguyên, kiểu số thực, kiểu logic, kiểu kí tự.

Câu hỏi 2: Với các kiểu dữ liệu đó thì chúng ta có thể giải quyết được tất cả các bài toán hay chưa? Cho ví dụ?

HS trả lời: Chưa. Ví dụ: bài toán sắp xếp, bài toán nhập số lượng phần tử lớn. Nhập vào nhiệt độ trung bình của mỗi ngày trong tuần. Tính và in ra màn hình nhiệt độ trung bình của tuần và số lượng ngày trong tuần có nhiệt độ cao hơn nhiệt độ TB của tuần.

Em nào cho thầy biết nếu không sử dụng mảng một chiều thì để giải bài toán này ta làm thế nào? => Sử dụng câu lệnh IF – THEN.

- Chương trình minh hoạ:

Progam nhietdotuan;

Var t1,t2,t3,t4,t5,t6,t7,tb: real; Dem: integer;

SVTH: Trần Thị Lành 53 Begin

Write(‘ nhap vao nhiet do cua 7 ngay:’); readln(t1,t2,t3,t4,t5,t6,t7); 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:’,tb:4:1);

Writeln(‘so ngay nhiet do cao hon nhiet do trung binh trong tuan:’,dem:2); Readln;

End.

=> Như vậy nếu sử dụng câu lệnh IF – THEN thì trong trường hợp tính số lượng ngày trong năm có nhiệt độ lớn hơn nhiệt độ trung bình ta làm thế nào? => Phải sử dụng nhiều câu lệnh IF – THEN, bài toán trở nên phức tạp và khó khăn hơn. Để giải quyết vấn đề này người ta đã đưa ra một kiểu dữ liệu để lưu các giá trị này, đó là kiểu dữ liệu có cấu trúc - Kiểu dữ liệu mảng. Kiểu dữ liệu mảng cho phép ta có thể truy xuất tới bất kỳ một phần tử nào có giá trị. Các thao tác trên các biến trở nên dễ dàng hơn. Vậy kiểu mảng là gì ta sang bài học mới.

3. Giảng bài mới:

4.1. Hoạt động 1: Tìm hiểu kiểu mảng một chiều. a) Mục tiêu:

- Biết được ý nghĩa và sự cần thiết của kiểu mảng một chiều trong việc giải quyết một số bài toán;

SVTH: Trần Thị Lành 54

b) Các bước tiến hành:

T/g Nội dung ghi bài Hoạt động của GV Hoạt động của HS

10’

BÀI 11: KIỂU MẢNG

1. Kiểu mảng 1 chiều

Khái niệm: Là một dãy

hữu hạn bao gồm các phần tử cùng kiểu, được đặt tên mỗi pt có chỉ số nhất định và có chiều dài nhất định. VD1: Mảng nhiệt độ: + Xây dựng kiểu mảng: • Tên kiểu mảng; • Số lượng phần tử; • Kiểu dữ liệu của phần tử;

• Khai báo các biến cho mảng;

• Cách tham chiếu đến phần tử;

- Giáo viên viết đề bài: - Em nào có thể nêu khái niệm về mảng một chiều? => Mảng là một dãy hữu hạn các phần tử cùng kiểu, nó có tên, chỉ số phần tử và chiều dài nhất định - VD mảng nhiệt độ có 7 phần tử, mỗi phần tử là nhiệt độ của ngày trong tuần. Chỉ số i là vị trí thứ i của phần tử trong mảng. Do đó để lưu nhiệt độ của các ngày trong tuần người ta sử dụng cấu trúc mảng như trên.

- Em nào cho thầy biết khi xây dựng kiểu mảng một chiều thì ngôn ngữ lập trình cung cấp cho người lập trình những quy tắc cho phép xây dựng mảng một chiều những vấn đề gì? + Học sinh trả lời: Mảng là một dãy hữu hạn các phần tử cùng kiểu, nó có tên, chỉ số phần tử và chiều dài nhất định. + Học sinh trả lời: • Tên kiểu mảng; • Số lượng phần tử; • Kiểu dữ liệu của phần tử;

• Khai báo các biến cho mảng;

• Cách tham chiếu đến phần tử;

SVTH: Trần Thị Lành 55

4.2. Hoạt động 2: Tìm hiểu cách tạo kiểu mảng một chiều và cách khai báo biến mảng một chiều.

a) Mục tiêu:

- Học sinh biết được cách tạo kiểu dữ liệu mảng một chiều trong ngôn ngữ lập trình Pascal;

- Biết cách khai báo biến và tham chiếu đến từng phần tử của mảng một chiều;

b) Các bước tiến hành:

T/g Nội dung ghi bài Hoạt động của GV Hoạt động của HS 15’ a. Khai báo:

C1: Khai báo trực tiếp

Var <tên mảng> : array

[kiểu chỉ số] of <kiểu phần tử>;

VD2: Khai báo mảng nhiệt độ.

Var Nhietdo : array [1..7] of real;

C2: 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 mảng> : <tên kiểu mảng>;

- Bất kỳ bài toán nào có sử dụng biến cũng cần phải khai báo, vậy khi dùng biến mảng một chiều thì ta cần phải khai báo. Có mấy cách khai báo?

- Cú pháp khai báo trực tiếp như thế nào?

- Em nào có thể khai báo mảng nhiệt độ đã cho ở trên? - Trong trường hợp ta cần nhiều mảng có cùng kiểu mảng thì làm thế nào? Có phải cần khai báo nhiều lần như khai báo trực tiếp không?

+ Học sinh trả lời: Có 2 cách khai báo: khai báo trực tiếp và khai báo gián tiếp.

+ Học sinh trả lời:

Var Nhietdo : array [1..7] of real;

+ Học sinh trả lời: Khai báo gián tiếp. Không cần khai báo nhiều lần như khai báo trực tiếp.

SVTH: Trần Thị Lành 56

VD3: Khai báo mảng nhiệt độ.

Type Mangnhietdo = array [1..7] of real; Var Nhietdo:Mangnhietdo; * Chú ý: - Kiểu chỉ số là một đoạn số nguyên liên tục n1..n2. (n1≤ n2). Cho biết số phần tử có trong mảng.

- Kiểu phần tử là kiểu của các phần tử trong mảng.

Var Nhietdo : array [1..7] of real; Nhietdo2 : array [1..7] of real; Nhietdo3 : array [1..7] of real; Ta có cách khai báo gián tiếp nhằm hạn chế việc khai báo dài dòng như trên mà vẫn đảm bảo như bài toán yêu cầu.

- Em nào có thể khai báo gián tiếp cho biến mảng nhiệt độ ở trên.

- Bây giờ em nào có thể khai báo một biến mảng cho bài toán sau theo 2 cách: Khai báo một biến mảng số nguyên bất kỳ.

VD4: Khai báo biến mảng nguyên.

C1: Khai báo trực tiếp

+ Học sinh trả lời: Type Mangnhietdo = array [1..7] of real; Var Nhietdo:Mangnhietdo; + Học sinh trả lời:

Khai báo biến mảng nguyên.

C1: Khai báo trực tiếp Var m_nguyen : array[1..n] of integer; C2: Khai báo gián tiếp Type mang = array [1..n] of integer;

SVTH: Trần Thị Lành 57 VD: Type ArrayReal = array[- 100..100] of real; ArrayBoolean = array[- n+1..n+1] of boolean; - Cách nhập và truy xuất (tham chiếu) tới các phần tử trong mảng:

+ Tham chiếu tới các phần tử của mảng được xác định bởi tên mảng cùng với chỉ số được viết trong cặp dấu ngoặc [ và ].

VD: Giá trị của phần tử thứ 5 trong mảng nhiệt độ là nhietdo[5] = 41.6

VD: Cho mảng

+ Tên biến mảng: nhietdo; + Số phần tử: 7;

+ Kiểu dữ liệu: số nguyên; + Tham chiếu tới phần tử thứ i: nhietdo[i]

nhietdo[6] = 45

Var m_nguyen : array[1..n] of integer; C2: Khai báo gián tiếp Type mang = array [1..n] of integer;

Var mang_nguyen : mang;

- Em nào có thể cho thầy biết là để đưa ra giá trị nhiệt độ của ngày thứ 5 trong mảng nhiệt độ ở trên ta làm thế nào? - Ta có thể truy xuất bất kỳ nhiệt độ của từng phần tử trong mảng được không? - Cho mảng Em hãy xác định tên biến mảng, số phần tử, kiểu dữ liệu, tham chiếu tới phần tử thứ i đối với mảng trên?

Var mang_nguyen : mang;

+ Học sinh trả lời: Truy xuất đến phần tử thứ 5 trong mảng nhiệt độ.

+ Học sinh trả lời: Được.

+ Học sinh trả lời: + Tên biến mảng: nhietdo; + Số phần tử: 7; + Kiểu dữ liệu: số nguyên;

+ Tham chiếu tới phần tử thứ i: nhietdo[i]

SVTH: Trần Thị Lành 58

VI. CỦNG CỐ:

1. Bài tập củng cố: (3’)

• Câu 1(Vận dụng): Cho mảng: Var arrayInt: array[-100..0] of integer; Khai báo mảng trên có bao nhiêu phần tử?

A. 99 B. 100 C. 101 D.102

• Câu 2(Vận dụng): Cho mảng: A = [1 3 5 7 9 2 4 6 8 10] Phần tử thứ 8 trong mảng là:

A. 2 B. 4 C. 6 D. 10

• Câu 3(Hiểu): Chọn từ thích hợp điền vào chỗ trống: Mảng một chiều là…………. các phần tử cùng kiểu. A. Tập hợp các phần tử

B. Dãy C.Dãy hữu hạn

2. Dặn dò học sinh chuẩn bị cho tiết học sau: (3’)

Dặn dò:

- Xem trước 2 ví dụ 1 và 2 trong SGK trang 56,57.

BTVN: Viết chương trình nhập n phần tử là các số nguyên cho mảng 1 chiều và thực hiện các công việc sau:

a. Hiển thị tất cả các số nguyên trong mảng. b. Đếm xem có bao nhiêu số lẻ trong mảng.

VII. RÚT KINH NGHIỆM VÀ BỔ SUNG

... ... ...

Ý kiến nhận xét của giáo viên hướng dẫn

... ... ... ...

Đà Nẵng, ngày tháng năm 2018

SVTH: Trần Thị Lành 59

Một phần của tài liệu Xây dựng và thiết kế Ebook hỗ trợ dạy và học môn Tin học lớp 11 (Trang 51 - 59)