2. Khai báo
Cách 1. Khai báo trực tiếp
VAR : array[] of ;
Ví dụ:
VAR A: array[1.10] of real;
Cách 2. Khai báo gián tiếp
TYPE = array[.] of ;
VAR : ;
Ví dụ:
TYPE nhietdo = array[1.365] of real;
VAR a : nhietdo;
6 trang |
Chia sẻ: binhan19 | Lượt xem: 1239 | Lượt tải: 0
Bạn đang xem nội dung tài liệu Giáo án Tin học 11 Bài 11: Kiểu mảng, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Ngày soạn: 15/12/2017 Tiết: 20, 21
Ngày dạy: 1/1-6/1/2018 Tuần: 21
BÀI 11. KIỂU MẢNG
I. MỤC TIÊU
1. Về kiến thức
- Hiểu khái niệm mảng một chiều.
- Hiểu cách khai báo và truy cập đến các phần tử của mảng.
2. Về kĩ năng
- Cài đặt được thuật toán giải một số bài toán đơn giản với kiểu dữa liệu mảng một chiều.
- Thực hiện khai báo mảng, truy cập, tính toán, đếm các phần tử trong mảng.
3. Về thái độ
- Thái độ nghiêm túc trong học tập.
- Chủ động tìm hiểu kiến thức mới.
4. Năng lực hướng tới:
- Khai báo biến dữ liệu hợp lý. Hiểu nguyên lý lưu dữ liệu một cách có cấu trúc.
II. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP
1. Ổn định lớp
2. Kiểm tra bài cũ: Không
3. Tiến trình bài học
3.1. Hoạt động khởi động.
(1) Mục tiêu: Tạo động cơ để học sinh hiểu được cách sử dụng và khai báo được biến mảng.
(2) Phương pháp/kĩ thuật dạy học: Cá nhân, thảo luận nhóm.
(3) Phương tiện dạy học: SGK, Projector, máy tính.
(4) Kết quả: Học sinh có nhu cầu mong muốn được học cách khai báo biến mảng
Nội dung hoạt động
Hoạt động của giáo viên
Hoạt động của học sinh
- Trong thực tế, các kiểu dữ liệu chuẩn không thể đáp ứng đủ biểu diễn của các bài toán lớn. Vì thế, dựa trên các kiểu dữ liệu đó người lập trình có thể tạo ra các kiểu dữ liệu phức tạp hơn để giải quyết các bài toán trong thực tế.
(?) Các em hãy tham khảo bài toán sách giáo khoa trang 53 và cho biết cần nhập thông tin gì? Và dữ liệu đưa ra là gì?
- Nhận xét, như vậy nếu muốn tính nhiệt độ trung bình của n ngày (365 ngày) thì sẽ gặp phải những khó khăn gì?
Để giải quyết vấn đề đó, ta sử dụng kiểu mảng một chiều để mô tả dữ liệu đó
- Hôm nay chúng ta sẽ tìm hiểu khái niệm mảng 1 chiều.
- Nghe giảng.
- Tham khảo sách giáo khoa và trả lời: Input: Nhập vào nhiệt độ trung bình của 7 ngày t1, t2, t3, t4, t5, t6, t7;
Output: Nhiệt độ trung bình của tuần tb, và số ngày vượt mức trung bình dem;
- Trả lời: phải khai báo từ t1...t365.
3.2. Hình thành kiến thức
(1) Mục tiêu: Giúp học sinh biết được khái niệm về mảng một chiều, cách khai báo mảng một chiều, hiểu cách nhập và in mảng một chiều.
(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích.
(3) Hình thức tổ chức hoạt động: Làm việc cá nhân.
(4) Phương tiện dạy học: SGK, Projector, máy tính.
(5) Kết quả: Học sinh nắm được khái niệm về bảng, cách khai báo biến mảng một chiều, hiểu cách nhập và in mảng một chiều, hiểu được một số ví dụ giải bài toán về mảng một chiều.
Nội dung hoạt động
Hoạt động giáo viên
Hoạt động học sinh
Nội dung trình bày
(?) Các em hãy tham khảo sách giáo và cho biết khi làm việc với mảng 1 chiều cần xác định những gì?
- Nhận xét.
- Cho ví dụ để học sinh hiểu
rõ hơn về mảng 1 chiều.
(?) Với mảng một chiều vừa cho ta xác định được gì?
- Nhận xét.
- Tham khảo sách giáo khoa và trả lời.
- Nghe giảng và ghi bài.
- Ghi ví dụ.
- Suy nghĩ trả lời.
- Ghi bài.
Kiểu mảng một chiều
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.
* Khi làm việc với mảng một chiều ta cần xác định được:
+ Tên mảng;
+ Số lượng phần tử;
+ Kiểu dữ liệu;
+ Cách khai báo;
+ Cách tham chiếu đến một phần tử nào đó trong mảng.
Ví du: A
5 8 7 1
Chỉ số 1 2 3 4
+ Tên mảng: A
+ Số lượng phần tử: 4
+ Kiểu dữ liệu: Số nguyên
+ Tham chiếu đến PT thứ 3, ta viết A[3].
- Đối với các biến trong NNLT khi sử dụng thì bắt buộc chúng ta phải khai báo, và đối với biến mảng 1 chiều chúng ta cũng phải khai báo. Cách khai báo thế nào thầy và cả lớp cùng tìm hiều phần 2. Khai báo mảng 1 chiều.
- Đối với mảng một chiều ta có 2 cách khai báo.
- Bên cạnh đó ta có cách khai báo thứ hai.
- Giải thích ví dụ rõ để học sinh phân biệt tên kiểu mảng, tên biến mảng.
- Yêu cầu học sinh cho ví dụ về 2 cách khai báo trên.
- Nhận xét, chỉnh sửa nếu có sai sót.
- Ghi mục bài.
- Nghe giảng và ghi bài.
- Nghe giảng và ghi bài.
- Nghe giảng.
- Thực hiện theo yêu cầu giáo viên.
2. Khai báo
Cách 1. Khai báo trực tiếp
VAR : array[] of ;
Ví dụ:
VAR A: array[1..10] of real;
Cách 2. Khai báo gián tiếp
TYPE = array[..] of ;
VAR : ;
Ví dụ:
TYPE nhietdo = array[1..365] of real;
VAR a : nhietdo;
(?) Khi ta đã khai báo được mảng một chiều, lúc đó ta đã xác định được những gì của mảng đó?
- Nhận xét.
(?) Giá trị của từng phần tử mảng đã xác định được chưa, làm thế nào để có các giá trị đó?
- Nhận xét, để có được giá trị của các phần tử chúng ta phải nhập và thủ tục nhập như thế nào thầy và cả lớp cùng tìm hiểu phần a. Nhập mảng 1 chiều.
- Để làm được điều đó ta cần xác định các thao tác sau:
+ Trước tiên, cần xác định có bao nhiêu phần tử cần dùng;
+ Dùng vòng lặp For - do để nhập giá trị cho từng phần tử A[i].
- Hướng dẫn học sinh cách in các phần tử của mảng 1 chiều.
- Suy nghĩ trả lời: xác định được tên mảng, số lượng phần tử tối đa của mảng, kiểu dữ liệu của mảng.
- Suy nghĩ trả lời.
- Nghe giảng và ghi mục bài.
- Ghi bài.
- Nghe giảng và ghi bài.
3. Các thao tác trên mảng một chiều
a/ Nhập mảng một chiều
Trước tiên, cần xác định có bao nhiêu phần tử cần dùng:
Write(‘nhap so phan tu: ‘);
Readln(n);
Dùng vòng lặp For - do để nhập giá trị cho từng phần tử A[i]:
For i:=1 to n do
Begin
Write(‘Nhap phan tu thu: ’, i);
Readln(A[i]);
End;
b/ In mảng một chiều
Dùng vòng lặp For - do để in các phần tử trong mảng:
For i:= 1 to n do
Write(A[i]:4);
- Yêu cầu học sinh đọc ví dụ trong SGK và xác định input, output.
- Nhận xét.
- Các em chú ý thuật toán trong sách giáo khoa.
- Sau khi hiểu thuật toán có thể giải thích các bước viết chương trình hoàn chỉnh.
- Yêu cầu học sinh về đọc các ví dụ sách giáo khoa.
- Dựa vào SGK suy nghỉ trả lời.
- Chú ý lắng nghe và ghi lại bài.
- Chú ý quan sát.
- Chú ý quan sát cách viết chương trình và viết chương trình vào tập.
4. Một số ví dụ
Ví dụ 1: Tìm phẩn tử lớn nhất của dãy số nguyên.
- Input: Số nguyên dương N và dãy gồm N sô nguyên dương a1, a2, , an.
- Output: Max(a1, a2, , an), chỉ số Max.
Thuật toán:
B1: Nhập N, và dãy a1, a2, , an.
B2: Max ç a1; i ç 2;
B3: Nếu i > N thì đưa ra Max, rồi kết thúc;
B4:
Nếu a1 > Max thì Max ç ai;
i ç i + 1 rồi quay lại B3.
Program Tim_max;
Const Nmax = 250;
Type ArrInt = Array[1..Nmax] of integer;
Var
N, i, Max, csmax: integer;
A: ArrInt;
Begin
Write(‘Nhap so phan tu cua day so, N=’);
Readln(N);
For i:=1 to N do
Begin
Write(‘Phan tu thu ‘, i, ‘ =’);
Readln(A[i]);
End;
Max:=A[1]; csmax:=1;
For i:=2 to N do
If A[i] > Max then
Begin
Max := A[i];
csMax := i;
End;
writeln(‘Gia tri cua p.tu max la:’, max);
writeln(‘Chi so cua p.tu max la:’, max);
Readln;
End.
3.3. Hoạt động luyện tập, vận dụng:
(1) Mục tiêu: Giúp học sinh thực hiện được thao tác tạo khai báo, nhập và in mảng một chiều
(2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh,...
(3) Hình thức tổ chức hoạt động: giải bài tập trên bảng
(4) Phương tiện dạy học:SGK, bảng.
(5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể.
Nội dung hoạt động
GV yêu cầu HS: Viết chương trình nhập dãy N số nguyên (N<=100). In dãy số nguyên vừa nhập.
GV hướng dẫn và kêu một học sinh lên bảng làm bài.
GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng
3.4. Hoạt động tìm tòi mở rộng:
(1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình.
(2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm.
(3) Hình thức tổ chức hoạt động: Ngoài lớp học
(4) Phương tiện dạy học:SGK, Projector, máy tính.
(5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể.
Nội dung hoạt động
- GV: cho bài tập:
Viết chương trình nhập dãy N số nguyên (N<=200). Tính và in ra tổng dãy số nguyên vừa nhập.
- HS: làm bài tập GV yêu cầu.
DUYỆT CỦA BGH GIÁO VIÊN SOẠN
Lê Thị Lịnh
Các file đính kèm theo tài liệu này:
- Bai 11 Kieu mang_12318589.doc