Tải bản đầy đủ (.docx) (30 trang)

Bai 11 Kieu mang

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 (249.51 KB, 30 trang )

Tiết 21: KIỂU MẢNG (Tiết 1)
I. Mục đích, yêu cầ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.
- Biết được một loại biến có chỉ số.
- Biết cấu trúc tạo mảng một chiều, cách khai báo biến kiểu mảng một chiều.
2. Kĩ năng
- Biết được các thành phần trong khai báo kiểu mảng một chiều;
- Biết được định danh của một phần tử kiểu mảng một chiều xuất hiện trong
một chương trình.
- Biết cách khai báo mảng đơn giản với chỉ số miền con của kiểu nguyên.
- Biết cách tham chiếu đến các phần tử của mảng một chiều.
3. Thái độ:
- Tự giác, tích cực, chủ động và sáng tạo trong tìm kiếm tri thức.
4. Phát triển năng lực
- Hình thành và phát triển cho học sinh năng lực tự học, năng lực công nghệ
thơng tin, năng lực giải quyết vấn đề.
- Mơ hình hố các tình huống trong thực tiễn bằng cấu trúc mảng một chiều
qua việc khai báo mảng.
II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC
1. Phương pháp: Thuyết trình, vấn đáp.
2. Phương tiện: Máy chiếu, máy tính, phịng máy, bảng.
III. LƯU Ý SƯ PHẠM.
- Bước đầu hình thành khái niệm về cấu trúc mảng .
- Cần xây dựng các bài thực hành và tổ chức thực hiện tại phòng máy để học
sinh đạt được những kĩ năng theo yêu cầu.
IV. TIẾN TRÌNH BÀI DẠY.
1. Ổn định lớp: (Thời lượng:........)
2. Kiểm tra bài cũ, gợi động cơ (Thời lượng...........)
3. Nội dung bài giảng
Hoạt động 1: Tìm hiểu bài tốn mở đầu



Hoạt động của Giáo viên và Học sinh
GV: Nội dung bài toán: Viết chương trình

Nội Dung


nhập từ bàn phím nhiệt độ trung bình của 7
ngày trong tuần. Đưa ra màn hình nhiệt độ trung
bình của cả tuần.
Gv: trong chương trình cần khai báo những
biến nào?
Hs: T1,t2,....t7: lưu nhiệt độ tb của 7 ngày trong
tuần
tb: lưu nhiệt độ tb của cả tuần.
- kiểu dl: số thực
Gv: yêu cầu học sinh lên viết phần khai báo của
ct.
Hs: lên bảng làm bài.

1. Bài tốn đặt vấn đề
Chương trình:
Program nhietdo;

Gv: gọi 1 hs lên bảng viết lệnh nhập nhiệt độ
và tính nhiệt độ tb

var t1,t1,t3,t4,t5,t6,t7,tb: real;
begin
write(‘nhap nhiet do cac ngay trong

tuan:’);
readln(t1,t2,t3,t4,t5,t6,t7);
tb:=(t1+t2+t3+t4+t5+t6+t7)/7;

Gv: Đây là một bài toán khá đơn giản. Nhưng
nếu thay đổi bài tốn u cầu tính nhiệt độ tb
của cả năm ( 365 ngày)?

write(tb);
readln;
end.

Hs: phải khai báo 366 biến do đó: ct dài, dễ
nhầm lẫn,
Cần dùng mảng 1 chiều để lưu trữ

nhiệt độ

20

16.8

ngày

1

2

.......


-> Khái niệm mảng 1 chiều

23.2
365
1. K/n mảng một chiều
Mảng 1 chiều là dãy hữư hạn các phần
tử cùng kiểu, mảng được đặt tên, mỗi phần


tử của mảng có 1 chỉ số.
Hoạt động 2: Khai báo mảng một chiều và tham chiếu đến phần tử của mảng
Hoạt động của Giáo viên và Học sinh

Nội Dung
2. Khai báo (Có hai cách)
Cách 1: 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ử>;
Cách 2: Khai báo gián tiếp

GV:Diễn giải cú pháp
HS: Ghi bài

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à một
đoạn số nguyên liên tục có dạng
n1...n2(n1biểu thức)

+ Kiểu phần tử là kiểu dl của các phần tử
của mảng.
VD1:
c1/ var nhietdo:array[1..365] of real;

VD1: viết khai báo cho bài toán nhiệt độ tb của c2/ type A: array[1..365] of real;
cả năm.
var nhietdo:A;
- tên biến mảng: nhietdo
- chỉ số đầu: 1
- chỉ số cuối: 365
- kiểu dl: real
- số lượng pt: 365

VD2:
Var Nhietdo: array [1..Max] Of real;

=> học sinh lên viết khai báo

Ví dụ 2: Khai báo mảng tối đa 100 số
nguyên (chỉ số đầu tiên là 1)
Ta có các cách sau:


Cách 1:
Var a: Array[1..100] Of Integer;
Cách 2:
Const Nmax = 100;
Var a: Array[1..Nmax] Of integer;
3. Tham chiếu tới phần tử cuả mảng

Tên_biến[chỉ số]
V. ĐÁNH GIÁ CUỐI BÀI, DẶN DÒ
- Câu hỏi, bài tập về nhà:
- Đọc ví dụ 1 và ví dụ 2/ trang 56+57 SGK :
- Xem lại thuật toán tìm phần tử lớn nhất của dãy số nguyên và thuật toán sắp
xếp dãy số nguyên bằng thuật toán hoán đổi.
VI. RÚT KINH NGHIỆM, BỔ SUNG:
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................
..................................................................................................................................................



Tiết 22: KIỂU MẢNG (Tiết 2)
I. Mục đích, yêu cầu
1. Kiến thức:
- Khai báo kiểu, biến mảng một chiều, cách tham chiếu dến các p/tử trong
mảng, các thao tác nhập, in ra các phần tử của mảng.
- Củng cố và làm HS hiểu xâu sắc hơn về những thuật toán tìm kiếm, sắp
xếp cơ bản mà học sinh đã học ở lớp 10.
2. Kĩ năng:
- Hs sử dụng được biến kiểu mảng một chiều để giải quyết một bài toán đơn
giản.
3. Tư duy, thái độ:
- Tự giác, tích cực, chủ động và sáng tạo trong tìm kiếm tri thức
4. Phát triển năng lực
- Hình thành và phát triển cho học sinh năng lực tự học, năng lực công nghệ
thông tin, năng lực giải quyết vấn đề.

- Mơ hình hố các tình huống trong thực tiễn bằng cấu trúc mảng một chiều
qua việc xử lí một số thao tác nhập, hiển thị phần tử mảng, tìm GTLN cho phần
tử của mảng.
II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC
1. Phương pháp: Thuyết trình, vấn đáp.
2. Phương tiện: Máy chiếu, máy tính, phịng máy, bảng.
III. TIẾN TRÌNH BÀI DẠY.
1. Ổn định lớp: (Thời lượng:........)
2. Kiểm tra bài cũ, gợi động cơ (Thời lượng:..........)
HS1. Trình bày các cách khai báo kiểu mảng trong NNLT Pascal?
HS2. Khai báo mảng gồm N số nguyên (N500). (theo 2 cách: trực tiếp và gián
tiếp).
Const N = 500;
C1: Var M : array[1..N] of integer;
C2: Type Mnguyen = array[1..N] of integer;
Var M : Mnguyen;


HOẠT ĐỘNG CỦA GV VÀ HS

NỘI DUNG
4.Các thao tác xử lý mảng 1 chiều:
a. Nhập dữ liệu cho các phần tử của mảng
A:
C1. Dùng vòng for
For i:=0 to 10 do
begin
Write(‘Nhập phần tử thứ ‘ , i , ‘: ‘);
Readln(A[i]);


end;
GV: Nêu ra chú ý: HS nên sử dụng For - do
để nhập xuất dữ liệu cho phần tử của mảng C2. Dùng While :
như vậy câu lệnh sẽ ngắn gọn và dễ hiểu
i:=0;
hơn.
While i<= 10 do
begin
Write(‘Nhap phần tử thứ ‘, i, ‘: ‘);
Readln(A[i]);
i:=i+1;
end;
b. Ðể in các gía trị của mảng A lên màn
hình, ta viết :
For i:=0 to 10 do Write(A[i]:6:2);
5. Một số ví dụ :
GV: Hướng dẫn

VD1: Viết chương trình cho bài tốn tính
HS: Lắng nghe, quan sát chương trình mẫu nhiệt độ trung bình của năm
trong SGK
Ví dụ 2 : Tìm phần tử lớn nhất của một dãy
số nguyên .
Chương trình như sau :
Program timmax ;
Uses crt ;
- Input : Số nguyên dương N và dãy số var a : array[1..250] of integer ;
A1, A2, ….., AN
n,i,max,csmax : Integer ;
- Output : Chỉ số và giá trị của số lớn



nhất trong dãy
- Ý tưởng :

Begin
clrscr ;
Write('Nhap n = ') ;

+ Đặt số A1 là số lớn nhất (max)
+ Cho i lặp từ 2 đến N, nếu A[i]> thì
đổi max = A[i] và lưu lại vị trí i .

Readln(n) ;
For i := 1 to n do
Begin
Write('a[',i,'] = ') ;
readln(a[i]) ;
End ;

GV: Đưa ra ví dụ

max := a[i] ;
csmax := 1 ;

Chỉ số:
dãy A:

5


10

4

For i := 2 to n do
1
2
7If a[i]9 > max then

3

4

5

Begin

Phần tử Max: A[2] = 10

max := a[i] ;

Chỉ số phần tử Max là: 2

csmax :=i ;
End ;
Writeln('Gia tri lon nhat : ',max) ;
Writeln('chi so ptu lon nhat : ',csmax) ;
Readln ;
End .


V. ĐÁNH GIÁ CUỐI BÀI, DẶN DỊ
- Các kiến thức đã học:
- Xem lại thuật tốn tìm phần tử lớn nhất của dãy số nguyên
- Xem trước thuật toán sắp xếp dãy số nguyên bằng thuật toán hoán đổi.
VI. RÚT KINH NGHIỆM, BỔ SUNG:
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................


Tiết 23: KIỂU MẢNG (Tiết 3)
I. Mục đích, yêu cầu
1. Kiến thức:
- Củng cố và làm HS hiểu xâu sắc hơn về những thuật tốn tìm kiếm, sắp
xếp cơ bản mà học sinh đã học ở lớp 10.
2. Kĩ năng:
- Hs sử dụng được biến kiểu mảng một chiều để giải quyết một bài toán đơn
giản.
3. Tư duy, thái độ:
- Tự giác, tích cực, chủ động và sáng tạo trong tìm kiếm tri thức
4. Phát triển năng lực
- Hình thành và phát triển cho học sinh năng lực tự học, năng lực công nghệ
thông tin, năng lực giải quyết vấn đề.
- Mơ hình hố các tình huống trong thực tiễn bằng cấu trúc mảng một chiều
qua việc xử lí bài toán sắp xếp, đếm số lần xuất hiện.
II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC
1. Phương pháp: Thuyết trình, vấn đáp.
2. Phương tiện: Máy chiếu, máy tính, phịng máy, bảng.
III. LƯU Ý SƯ PHẠM.
- HS cần hình dung được cơ bản về hoạt động của mảng 1 chiều.

- Cần xây dựng các bài thực hành và tổ chức thực hiện tại phòng máy để học
sinh đạt được những kĩ năng theo yêu cầu.
IV. TIẾN TRÌNH BÀI DẠY.
1. Ổn định lớp: (Thời lượng:........)
2. Kiểm tra bài cũ, gợi động cơ (Thời lượng:..........)
HOẠT ĐỘNG CỦA GV VÀ HS

NỘI DUNG

GV:Nêu bài toán, y/cầu hs xác định 4. Một số ví dụ :


In/Output của bài toán.
HS: Đọc đề và xác định bài tốn.
In: N (N250), dãy A (A[i]<500).
Out: dãy A khơng giảm

VD4: Số nguyên dương N (N250) và dãy A
gồm N số nguyên dương, mỗi số đều không
vượt quá 500. Hãy sắp xếp dãy A thành dãy
không giảm
Var A: array[1..300] of integer;
N, i, j :integer;

Begin
GV: Y/cầu hs trình bày lại thuật tốn sắp
{tao mang}
xếp tráo đổi. (Đã học ở lớp 10)
Write(‘Nhap n = ’); readln(n);
HS:Thuật toán

B1: Nhập N, dãy A ;

For i:=1 To n Do
begin

B2: jN;

write(‘phan tu thu ’,i,’ =’);

B3: nếu j<2 thì đưa ra dãy đã được sắp xếp,
KT;

readln(A[i]);
end;

B1: jj-1; i1;

{sap xep mang}

B2: Nếu i>j thì Qlại B3;

For j := N Downto 1 Do

B6: Nếu A[i]>A[i+1] thì tráo đổi A[i] và
A[i+1];
B7: Quay lại B2.

for i:=1 to j - 1 do
If a[i] > a[i+1] then
begin

t:=a[i]; a[i]:=a[i+1];
a[i+1] :=t
end;
{dua ra mang da sap xep}
Writeln (‘Mang da duoc sap xep ’);
For i :=1 To N Do write (a[i]:4);
Readln
End.
VD4:

Ta dùng biến Dem kiểu nguyên để đếm số Ðếm số lần xuất hiện của gía trị x trong dãy
lần xuất hiện của x. Ðầu tiên ta gán A1, A2, ..., An .
Dem:=0, sau đó duyệt từng phần tử A1, A2,
..., An, mỗi khi có một phần tử bằng x thì


tăng biến Dem lên một đơn vị. Kết qủa là
Dem:=0;
biến Dem có gía trị đúng bằng số phần tử
For i:=1 to N do If A[i]=x then
bằng x. Hai lệnh chính của thuật tốn là:
Dem:=Dem+1;
VD: Đếm trong dãy số A có bao nhiêu số
0, ta viết:

Dem:=0;

For i:=1 to N do if A[i]=0 then
Nhận xét: Ðẳng thức A[i]=x ( hay Dem:=Dem+1;
A[i]=0 ) là điều kiện để biến Dem được

Writeln(‘ Có ‘, Dem , ‘ số khơng ‘);
tăng thêm 1, vậy bài tốn trên có thể mở
rộng là: hãy đếm số phần tử của mảng A
thỏa mãn một điều kiện cho trước. Trong
lệnh For ở trên, khi thay đẳng thức A[i]=x Dem:=0;
For i:=1 to N do If A[i] thỏa mãn
bằng A[i] thỏa mãn điều kiện , ta được
điều kiện then Dem:=Dem+1;
thuật toán tổng quát hơn :

V. ĐÁNH GIÁ CUỐI BÀI, DẶN DÒ
- Các kiến thức đã học.
- Xem lại thuật toán sắp xếp dãy số ngun bằng thuật tốn hốn đổi, thuật tốn
tìm kiếm.
VI. RÚT KINH NGHIỆM, BỔ SUNG:
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................
...........................................................................................................................................................


Tiết 24: KIỂU MẢNG (Tiết 4)
I. Mục đích, yêu cầu
1. Kiến thức:
- Củng cố và làm HS hiểu xâu sắc hơn về mảng một chiều, cách khai báo,
cách tham chiếu đến một phần tử của mảng, cách nhập dữ liệu cho phần tử
của mảng.
2. Kĩ năng:
- Hs sử dụng được biến kiểu mảng một chiều để giải quyết một bài tốn đơn

giản.
3. Tư duy, thái độ:
- Tự giác, tích cực, chủ động và sáng tạo trong tìm kiếm tri thức.
4. Phát triển năng lực
- Hình thành và phát triển cho học sinh năng lực tự học, năng lực công nghệ
thông tin, năng lực giải quyết vấn đề.
- Mơ hình hố các tình huống trong thực tiễn bằng cấu trúc mảng một chiều
qua việc xử lí bài tốn tính tổng.
II. PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC
1. Phương pháp: Thuyết trình, vấn đáp.
2. Phương tiện: Máy chiếu, máy tính, phịng máy, bảng.
III. TIẾN TRÌNH BÀI DẠY.
1. Ổn định lớp: (Thời lượng:........)
2. Kiểm tra bài cũ, gợi động cơ (Thời lượng:..........)
3. Nội dung bài giảng.
Hoạt động 1: Vận dụng kiểu mảng một chiều
Hoạt động của Giáo viên và Học sinh
1. Nêu đề bài toán (Nội dung)
Y/cầu hs xác định In/Output của bài toán.
HS: In: mảng A, số k
Out: Tổng (S) các p/tử trong mảng A là
bội của k.
2. Ở lớp 10 ta đã xây dựng t/toán cho bài
toán này rồi. Y/cầu hs nhắc lại t/toán.

Nội Dung
Bài 1: Viết CT tạo mảng A gồm N
(N100) số nguyên. Tính tổng các
phần tử của mảng là bội của một số
nguyên dương k cho trước.



3. Y/cầu hs cho biết các việc chính cần
thực hiện trong chtrình là gì?
Var
Trả lời

S, n, k, i : integer;
A: array[1..100] of integer;

+ Cho biết số ptử của mảng A.

Begin

+ Nhập giá trị cho các ptử của mảng A

Write(‘Nhap n = ’); readln(n);

+ Tính tổng.

{tao mang}

4. Y/cầu hs cho biết các biến chính cần sử For i:=1 To n Do
dụng là gì?
begin
TL: mảng A
write(‘phan tu thu ’,i,’ =’);
biến đơn: N, k, S.
- Y/cầu hs khác lên viết phần khai báo các
biến đó?

HS Lên bảng trình bày
Var S, N, k: integer;
A: array[1..100] of integer;
5. Tiếp tục y/cầu hs lên viết phần chtrình
tạo giá trị cho các ptử của mảng A. (lưu ý
nhập số lượng ptử của mảng trước)
Gọi hs khác nhận xét
* Chỉnh sửa đoạn chtrình hs vừa hồn
thành.
6. Để viết tiếp đoạn chtrình cịn lại (tính
tổng) theo thuật tốn ta phải kiểm tra lần
lượt tất cả các ptử của mảng từ A[1] đến
A[n]. vậy ta sử dụng câu lệnh gì ở đây?
TL: Sử dụng cấu trúc lặp For.
- Hỏi: trước khi tính tổng, ngồi mảng A
trong CT cần có thêm gì khơng? (GV bổ
sung)
TL: Giá trị k và Biến S := 0
- Y/cầu hs khác lên viết đoạn chtrình cịn
lại?

readln(A[i]);
end;
write(‘Nhap k = ’); readln(k);
S := 0; {khoi tao S ban dau}
{tinh tong}
For i:=1 To n Do
If A[i] mod k = 0 Then
S := S + A[i];
Writeln(‘Tong can tinh la ’, S);

End.


- 1 hs Lên bảng trình bày
Chạy thử chtrình
N = 8 A: 5, 6, -8, 13, 24, 7, -4, -12 và k
=3
Hoạt động 2: Mở rộng bài tốn có vận dụng mảng một chiều
Hoạt động của Giáo viên và Học sinh

Nội Dung

(Treo bảng) chứa nội dung câu lệnh cần Var
thêm vào chtrình ở bài 1.

n, i : integer;
am, duong : integer;

1. Y/cầu hs n/cứu nội dung các câu lệnh
A : array[1..100] of integer;
và hỏi:
Begin
- Ý nghĩa của biến am, duong?
Write(‘Nhap n = ’); readln(n);
- Chức năng của lệnh (3)?

{tao mang}

- Lệnh (4) đưa ra thơng tin gì?


For i:=1 To n Do

HS N/cứu ý nghĩa các câu lệnh và trả lời:

begin

- Dùng để lưu số lượng đếm được.

write(‘phan tu thu ’,i,’ =’);

- Đếm số dương hoặc đếm số âm.

readln(A[i]);

- Số các số dương, số các số âm.

end;

2. Y/cầu hs tìm vị trí bổ sung các lệnh vào am := 0; duong := 0;
cho phù hợp để chtrình đếm được số
{dem}
dương, số âm.
For i:=1 To n Do
HS Chỉ ra vị trí cần bổ sung và các câu
If A[i] >0 Then
lệnh cần loại bỏ bớt.
duong := duong + 1
3. Y/cầu hs lên
Else if A[i]<0 Then
hồn chỉnh lại chương trình?

am := am + 1;
HS Lên bảng , chỉnh sửa lại chương trình.
Writeln(duong: 4, am:4);
** Chuẩn hố lại chtrình.
End.
* Chạy thử chtrình với 1 bộ giá trị:
Chạy thử chtrình
N = 8 A: 5, 6, -8, 13, 24, 7, -4, -12
A

5

6

Duong 1

- 8 13 24 7

- 4 - 12

2

5

2

3

4


5 5


m

0

0

1

1

1

1

2

3

V. ĐÁNH GIÁ CUỐI BÀI
1. Nội dung đã học
- Tính tổng các phần tử trong mảng thoả mãn một điều kiện.
- Đếm số phần tử trong mảng thoả mãn một điều kiện.
2. Câu hỏi, bài tập về nhà
- Làm các bài 5,6,7
VI. RÚT KINH NGHIỆM, BỔ SUNG:
...........................................................................................................................................................
...........................................................................................................................................................

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


Tiết 25. BÀI TẬP
I. MỤC TIÊU
1. Về kiến thức:
- Củng cố các kiến thức về:
- Các quy tắc kiểu dữ liệu có cấu trúc để thực hiện dữ liệu thực tế.
- Kiểu dữ liệu có cấu trúc được xây dựng từ những kiểu dữ liệu cơ sở theo một
số cách thức tạo kiểu do ngơn ngữ lập trình Pascal quy định.
- Mỗi kiểu dữ liệu có cấu trúc thường hữu ích trong việc giải quyết một số bài
tập.
- Trong ngôn ngữ Pascal dùng mô tả kiểu dữ liệu mới với từ khoá Type.
2. Về kĩ năng:
- Rèn luyện kĩ năng khai báo kiểu dữ liệu có cấu trúc (với Pascal, sử dụng thành
thạo các từ khoá Var, Type).
- Sử dụng thành thạo các thao tác vào/ ra và các phép toán trên các thành phần
cơ sở.
3. Về tư duy và thái độ:
- Thái độ học tập tích cực, ham thích lập trình.
- Tiếp tục hình thành và xây dựng phẩm chất cần thiết của người lập trình.
4. Phát triển năng lực
- Hình thành và phát triển cho học sinh năng lực tự học, năng lực công nghệ
thông tin, năng lực giải quyết vấn đề.
- Diễn đạt cấu trúc mảng một chiều vào bài toán tạo mảng.
II.PHƯƠNG PHÁP, PHƯƠNG TIỆN DẠY HỌC
1. Phương pháp: thuyết trình, vấn đáp, ...
2. Phương tiện

- GV: Computer Nêu vấn đề, Dẫn dắt, gợi ý...
- HS: Chuẩn bị bài tập về nhà.
III. LƯU Ý SƯ PHẠM
- GV cần định hướng cho HS công thức tổng quát để xác định cấp số cộng, dãy
Fibonaci
IV. TIẾN TRÌNH BÀI DẠY
Hoạt đông 1: Củng cố nội dung lý thuyết
Hoạt động của GV và HS

Nội dung

GV: Yêu cầu HS hãy nêu 2 cách để khai 1. Khai báo mảng:
báo mảng?
Có 2 cách:
- Cách 1: 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ử>;
- Cách 2: 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>;

GV: Hãy giải thích các đại lượng?

Trong đó: +Kiểu chỉ số thường là một
đoạn số nguyên liên tục có dạng
n1...n2(n1thức)

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

GV: Cách tham chiếu đến phần tử của
mảng?
GV: Cách nhập dữ liệu?

2. Cách tham chiếu:
Tên_biến[chỉ số]
3. Nhập, xuất dữ liêu
a. Nhập dữ liệu
Có 2 cách
C1. Dùng vịng for
C2. Dùng While :
b. In dữ liệu của mảng

GV: Cách in dữ liệu?

Ðể in các gíá trị của mảng A lên màn
hình, ta viết :
For i:=0 to 10 do Write(A[i]:6:2);

Hoạt động 2: giao nhiệm vụ:
Các em hãy giải quyết các bài toán sau:
Bài 1: Nhập N nguyên (N<=250), dãy A: A1,A2,..., AN nguyên (Ai<=500). Tìm phần
tử nhỏ nhất.
Bài 2: Nhập M nguyên (M<=200), dãy B: B1,B2,..., BM nguyên (Bi<=500). In các
phần tử vừa nhập của dãy B ra màn hình.
Bài 3: Nhập k nguyên (k<=50), dãy c: c1,c2,..., ck nguyên (ci<=500). Cho biết dãy C
có bao nhiêu số âm?



Hoạt động 3: HS tiếp nhận và giải quyết nhiệm vụ
GV: chia bài theo nhóm yêu cầu HS thảo luận và trình bày
HS thảo luận và trình bày
GV cho các nhóm khác quan sát và nhận xét phần trình bày của nhóm
GV nhận xét và cho điểm.
Hoạt động 4: Mở rộng
Mở rộng bài tốn 1 đếm xem có bao nhiêu số có giá trị nhỏ nhất trng dãy A?
Mở rộng bài toán 2: in các phần tử chẵn của mảng B?
GV yêu cầu HS giải quyết trên lớp hoặc về nhà hoàn thiện.
VI. RÚT KINH NGHIỆM, BỔ SUNG:
...........................................................................................................................................................
...........................................................................................................................................................


Ngày soạn:
Tiết ppct : 26-27
Chủ đề: BÀI TẬP VÀ THỰC HÀNH 3
I/ Mục tiêu bài học
1. Kiến thức
- Nâng cao kỹ năng sử dụng một số câu lệnh và một số kiểu dữ liệu thơng
tìm hiểu, chạy thử các chương trình có sẵn;

qua việc

- Biết giải mơt số bài tốn, tìm kiếm đơn giản trên máy tính
2. Kĩ năng
- Nhận biết được các thành phần trong khai báo kiểu mảng một chiều.
- Nhận biết được định danh của một phần tử kiểu mảng một chiều xuất hiện trong một

chương trình.
- Biết cách khai báo mảng đơn giản và chỉ số kiểu miền con của kiểu nguyên.
3.Thái độ
- Tạo sự ham muốn giải các bài tập lập trình, trước mắt thấy được ích lợi của lập trình phục
vụ tính tốn và giải được một số bài toán đã nêu trong nội dung của chương IV.
4. Định hướng phát triển năng lực
- Năng lực giải quyết vấn đề thông qua trao đổi, thảo luận.
- Năng lực tự hoc.
- Năng lực hợp tác.
- Năng lực giao tiếp, sử dụng ngôn ngữ.
II. PHƯƠNG PHÁP, THIẾT BỊ, TÀI LIỆU DẠY - HỌC
1. Giáo viên: Phòng máy tính đã cài sẵn chương trình Turbo Pascal hoặc Free Pascal, các
chương trình mẫu.
2. Học sinh:
- Sách giáo khoa, sách bài tập và bài viết sẵn ở nhà.
- Xem trước nội dung bài thực hành số 3.
- Tìm hiểu trước hàm Random(n), thủ tục randomize.
- Tìm hiểu thêm phần phụ lục B/sgk tr122-127.
3. Phương pháp: Gởi mở thông qua hoạt động tư duy.
- Dạy học theo quan điểm hoạt động.
- Sử dụng máy chiếu, máy tính, cài đặt mơi trường NNLT pascal, SGK để minh họa, bảng
phụ.


III. TIẾN TRÌNH TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP

A. HOẠT ĐỘNG TẠO TÌNH HUỐNG HỌC TẬP
1. Mục tiêu: Củng cố cho học sinh những hiểu biết về kiểu dữ liệu mảng 1 chiều.
2. Phương thức:
# GV giao nhiệm vụ cho HS:

(1) Các cách khai báo mảng 1 chiều.
(2) Cách nhập dữ liệu cho mảng, đưa ra màn hình chỉ số và giá trị các phần tử mảng.
(3) Cách làm việc với từng phần tử mảng.
# Học sinh suy nghĩ, trao đổi thực hiện theo yêu cầu.
- Trong quá trình HS làm việc, GV chú ý đến hoạt động của HS
- Giáo viên nhận xét.
3. Gợi ý sản phẩm: Mỗi HS có thể trình bày sản phẩm với các mức độ khác nhau, GV
lựa chọn một câu trả lời nào đó của HS để làm tình huống kết nối vào bài thực hành.
B. HOẠT ĐỘNG KIẾN THỨC HÌNH THÀNH
1. Hoạt động 1: Tìm hiểu bài tập 1
* Mục tiêu: Học sinh hiểu được chương trình và thấy được kết quả khi chạy chương trình,
qua đó hình thành các kỹ năng cơ bản làm việc với mảng 1 chiều:




Khai báo dữ liệu liên quan tới mảng 1 chiều.
Tính tổng các phần tử thỏa mãn điều kiện nào đó.
Đếm số các phần tử thỏa mãn điều kiện.

Hoạt động 1.1: Tìm hiểu chương trình bài 1-a/sgk-tr63.
Mục tiêu: -Học sinh hiểu chương trình làm việc với mảng 1 chiều có sử dụng bộ sinh số
ngẫu nhiên.
- Hiếu được thuật tốn tính tổng các phẩn tử thỏa mãn điều kiện nào đó.
* Phương thức:
- GV giao nhiệm vụ cho HS:
+ Xác định input và output bài toán 1-a sgk/tr63.
+ Thực hiện phần khai báo cho chương trình.
+ Tìm hiểu hàm random(N), thủ tục Randomize.
+ Cho dãy A: 23 ;4;3;12;9;15 và K= 2. hỏi có tổng các phần tử trong dãy

của K?
+ Yêu cầu học sinh gõ chương trình bài 1-a và chạy thử quan sát kết quả.
+ Lưu lại chương trình câu a.
- Học sinh tiếp nhận nhiệm vụ, trao đổi thực hiện theo yêu cầu.
- Trong quá trình HS làm việc, GV chú ý đến hoạt động của học sinh.

A là bội



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

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