Tải bản đầy đủ (.doc) (10 trang)

GA bai 11 Tin hoc 11

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (105.87 KB, 10 trang )

Tuần : ....................
Tiết : 21+22+23+24
Ngày soạn:....................
Ngày giảng:..................
Bài 11. Kiểu mảng
I. mục tiêu của bài:
1. Kiến thức
- Hiểu khái niệm mảng một chiều và mảng hai chiều.
- Hiểu cách khai báo và truy cập đến các phàn tử trong mảng.
2. Kĩ năng
- Cài đặt một số thuật toán của một số bài toán đơn giản với kiểu dự liệu mảng một
chiều.
- Thực hiện khai báo mảng, truy cập, tính toán các phần tử của mảng.
3. Thái độ
- Tiếp tục khơi gợi lòng ham thích giải toán bằng lập trình trên máy tính.
- Tiếp tục rèn luyện các phẩm chất cần thiết của ngời lập trình.
II. Chuẩn bị của Giáo viên và học sinh:
1. Giáo viên: SGK, giáo án, STK (máy chiếu nếu có).
2. Học sinh: SGK, chuẩn bị trớc bài ở nhà.
III. Phơng pháp giảng dạy
- Thuyết trình, đàm thoại.
IV. Tiến trình bài học và các hoạt động:
1. ổn định tổ chức: 1
2. Kiểm tra bài cũ: (Không kiểm tra bài cũ)
3. Bài mới:
Tiết 21
* Hoạt động 1: Trình bày cho HS biết khái niệm của kiểu mảng một chiều.
Hoạt động của GV và HS Nội dung
- GV: ĐVĐ Với những kiểu dự liệu đã
biết, làm thế nào để lu trữ đợc một dãy số?
- HS: Suy nghĩ và trả lời.


- GV: Các ngôn ngữ lập trinhg thờng cung
cấp một số kiểu dự liệu đợc xây dựng từ
những kiểu dự liệu chuẩn đợc gọi là kiểu
dự liệu có cấu trúc. Bây giờ chúng ta tìm
hiểu kiểu mảng một chiều.
- GV: Đa ra một số ví dụ cần lập trình đa
ra một dãy các số nguyên, hãy tìm cách lu
trữ một dãy số nguyên trong lập trình?
Bằng cách nào lu trữ một dãy các số
nguyên dới dạng bảng?
- HS: Suy nghĩ và trả lời câu hỏi.
- GV: Nhận xét câu trả lời của HS sau đó
đa ra khái niệm mảng một chiều và một số
yếu tố liên quan.
- GV: Em nào hãy xác định Input và
Output của bài toán?
- HS: Đứng tại chỗ trả lời câu hỏi.
- GV: Ghi nháp lên bảng.
- GV: Ghi hai chơng trình lên bảng và
Phân tích rõ hai chơng trình để HS nhận
thấy sự tiện lợi khi sử dụng mảng.
1. Kiểu mảng một chiều.
- KN: 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, mảng đợc đặt tên
và mỗi phần tử mang một chỉ số. Để mô tả
mảng một chiều ta cần xác định kiểu của
các phần tử và cách đánh chỉ số các phần
tử.
- Với mảng một chiều ta cần quan tâm đến:
+ Tên mảng một chiều.

+ Số lợng các phần tử trong mảng.
+ Kiểu dữ liệu của các phần tử.
+ Cách khai báo biến mảng một chiều.
+ Cách truy cập đến từng phần tử trong
mảng.
* Xét hai ví dụ:
+ Ví dụ 1: Nhập vào nhiệt độ (trung bình)
của 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 ngày có nhiệt độ TB cao hơn nhiệt
trung bình trong tuần?
Input: t1, t2, t3,t4, t5, t6, t7.
Output: tb, dem
Program Nhietdotrungbinh;
Uses Crt;
Var t1, t2, t3,t4, t5, t6, t7: Integer;
TB: Real; dem:byte;
Begin
Writeln(Nhap vao nhiet do cua bay
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 la
,TB:6:2);
Writeln(So ngay co nhiet do cao
- HS: Trong khi GV phân tích hai chơng
trình, HS đa ra ý kiến nhậm xét hai chơng
trình.

- GV: Nhận xét ý kiến của HS và đa ra ý
kiến để HS hiểu rõ hơn sự cần thiết của
mảng một chiều trong cài đặt thuật toán.
hon nhiet do trung binh la:,dem);
Readln;
End.
+ Ví dụ 2: Nhập vào nhiệt độ (trung bình)
của mỗi ngày trong năm. Tính và đa ra
màn hình nhiệt độ trung bình của năm và
số lợng ngày có nhiệt độ TB cao hơn nhiệt
trung bình trong năm?
Program Nhietdo_Nngay;
Uses Crt;
Var Nhietdo : Array[1..365] of Integer;
Dem, i, n: Byte; Tong, TB:Real;
Begin
Write(Nhap so ngay n = ); readln(n);
Tong:=0; Dem:=0
For i:=1 to n do
Begin
Write(Nhap nhiet do ngay thu
,i,=); Readln(Nhietdo[i]);
Tong:= Tong+Nhietdo[i];

End;
TB:=tong/n;
For i:=1 to n do
If Nhietdo[i]>TB then dem:=dem+1;
Writeln(Nhiet do trung binh ,n, ngay
la = ,TB:6:2);
Writeln(So ngay co nhiet do cao hon
nhiet do trung binh la: ,dem);
Readln;
End.
- GV: Củng cố.
- Nêu sự khác nhau giữa hai bài
toán và sự cần thiết phải sử dụng mảng
một chiều.
Tiết 22
* Hoạt động 2: Giới thiệu cách hai báo mảng một chiều và Phân tích một số các ví dụ
để HS hiểu và biết cách vận dụng khai báo mảng một chiều trong cài đặt.
Hoạt động của GV và HS Nội dung
* ổn định lớp: (1 phút)
- Kiểm tra bài cũ (lồng trong bài
giảng).
- GV: Đặt vấn đề, và đa ra cách khai báo
mảng một chiều trong ngôn ngữ lập trình
Pascal. Giải thích các từ khoá mới.
- GV: Khai báo bằng cách nào thuận tiện
hơn?
- HS: Suy nghĩ và trả lời.
- GV: Tuỳ vào từng trờng hợp cụ thể
những thờng sử dụng cách 2.
- GV: Lấy ví dụ cụ thể để HS truy vấn đến

các phần tử trong mảng, sau đó lấy một số
ví dụ có sử dụng kiểu mảng trong cài đặt.
- GV: Em nào hãy xác định Input và
Output của bài toán?
- HS: Suy nghĩ và trả lời.
- GV: Ghi lên bảng Input và Output.
- GV: Hãy nêu ý tởng của thuật toán tìm
max?
- HS: Suy nghĩ và trả lời.
- GV: Nhận xét, bổ xung và viết ý tởng
thuật toán lên bảng.
- GV: Viết chơng trình để HS có thể dễ
dàng nhận ra các thao tác phải thực hiện
a. Khai báo mảng một chiều.
* Cách 1: Khai báo gián tiếp.
Type <tên kiểu mảng>=array[<chỉ số
đầu>..<chỉ số cuối>] of <kiểuphần tử>;
Var <ds biến mảng> : <tên kiểu mảng>;
* Ví dụ:
Type nhietdo = array[1..365] of integer;
Var A: nhietdo;
* Cách 2: Khai báo trực tiếp.
Var <Ds biến mảng> : array[<chỉ số
đầu>..<chỉ số cuối>] of <kiểuphần tử>;
* Ví dụ:
Var nhietdo : array[1..365] of integer;
Var A,B : array[1..100] of real;
- Trong đó:
+ Type là từ khoá dùng để khai báo
Kiểu dự liệu. Array là từ khoá dùng để

khai báo mảng.
+ Kiểu chỉ số thờng là đoạn số nguyên
liên tục có n1..n2, với n1 là chỉ số đầu, n2
là chỉ số cuối.
+ Kiểu phần tử là kiểu dự liệu của các
phần tử trong mảng.
+ Để truy cập đến các phần tử trong
mảng, ta làm:
<Tên biến mảng>[chỉ số]
b. Các ví dụ
* Ví dụ 1: Tìm phần tử lớn nhất của dãy
các số nguyên.
- Input: Số nguyên dơng n và dãy
A1,A2,..,An. N<250
- Output: Giá trị của số lớn nhất trong dãy
và vị trí của số đó.
- ý tởng:
+ Đặt A1 là số lớn nhất (Max).
+ Cho i lặp từ 2 đến n, nếu A[i]>Max
thì đổi Max:=A[i] và lu lại vị trí i.
Program Search_Max;
Uses Crt;
khi viết chơng trình.
- GV: Vừa viết chơng trình vừa phân tích
cho HS hiểu rõ cách thực hiện chơng
trình. GV trình bày rõ các thao tác khi viết
chơng trình.
- GV: Phát vấn HS về kiến thức đã học ở
những bài trớc để xây dựng bài toán mới.
- HS: Xem lại toàn bộ kiến thức đã học và

trả lời.
Var A: Array[1..100] of Integer;
N, i, Vt: Byte; Max: Integer;
Begin
Write(Nhap so cac phan tu n = );
Readln(n);
For i:=1 to n do
Begin
Write(A[,i,]= ); readln(a[i]);
End;
Max:=A[i]; Vt:=1;
For i:=2 to n do
If A[i] > Max then
Begin
Max:=A[i]; Vt:=i;
End;
Writeln(Gia tri phan tu max = ,Max);
Writeln(Vi tri phan tu max = ,Vt);
Readln;
End.
* Củng cố
- Nhắc lại cách khai báo mảng một
chiều
Tiết 23
Hoạt động của GV và HS Nội dung
* ổn định lớp: (4 phút)
- Kiểm tra bài cũ: Em hãy viết cách
cú pháp khai báo mảng một chiều và trình
bày chức năng các từ khoá trong cú pháp
khai báo?

b. Các ví dụ (Tiếp)
* Ví dụ 2: Sắp xếp dãy các số nguyên bằng
thuật toán tráo đổi.
- Input: Số nguyên dơng n, và dãy A1,
A2,..,An
- Output: Dãy A đợc sắp xếp theo thứ tự
tăng dần.
- ý tởng:
+ Đổi để đa số lớn nhất về vị trí cuối
cùng.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×