8
T r
n H o à i N a m
K 5
6
A
C N T T
Đ H S P H N
Page
1
Giáo án s 2:
BÀI THC HÀNH S 3
Giáo viên hướng dn: Thy Trn DoãnVinh
Sinh viên thc hin: Trn Hoài Nam
A. Mục đích yêu cầu.
I. Mục đích
- Cng c cho hc sinh nhng hiu biết v kiu d liu mng ;
- T chc nhng hot động trong phòng máy để hc sinh được các
kĩ năng cơ bn làm vic vi kiu mng trong lp trình, c th:
.Khai báo d liu mng;
.Nhp d liu cho mảng, đưa ra màn hình ch s giá tr
các phn t ca mng;
.Duyt qua tt c các phn t ca mảng đ x tng phn
t.
II.u cu
- Góp phn hình thành n luyn tư duy lp trình, tác phong ca
người lp trình.
- Gii thiu hàm random(N) cho hc sinh thy th dùng lệnh đ
máy ly ngu nhiên mt s nguyên trong khong t 0 đến N-1, gii
hn N do người lp trình đưa ra.
B. Phương pháp, phương tin:
I. Phương pháp:
- Phòng máy vi tính, máy chiếu để minh ha.
- Vấn đáp, thuyết minh, chy th cơng trình.
II. Phương tin:
- Sách giáo khoa lp 11.
- Sách tham kho (nếu có).
C. Tiến trình lên lp ni dung:
I. Ổn định lp(1’):
- Yêu cu lớp trưởng báo cáo sĩ số.
- Ổn đnh trt t lp.
II. Kim tra bài cũ và gi đng cơ(7’):
1.u định nghĩa mảng mt chiu, mng hai chiu?
2.Emy trình bày cácch khai báo biến mng mt chiu, mng hai
chiu?
8
T r
n H o à i N a m
K 5
6
A
C N T T
Đ H S P H N
Page
2
3. Nếu em mun m vic vi mt dãy các s ngu nhiên vi máy tính
thì em phải làm như thế nào? (Dùng th tc để sinh ra s ngu
nhiên)
4. Đưa ra khai báo biến mng vi mng nhiu chiu?
III. Ni dung(30’):
Như vậy qua bài cũ (một s bn va tr li) ta biết được vic
khai báo biến mảng trong TP như thế nào rồi đúng kng? Hôm nay
chúng ta sm hiu sâu hơn nữa v mng mt chiu trong TP và mt
s thuật toán cơ bản khi làm vic vi d liu kiu mng thông qua các
bài toán sau:
Bài 1 (15’): To mng A gm n (n<=100) s nguyên, mi s
tr tuyệt đối không vượt quá 300. Tính tng các phn t ca mng là
bi s ca mt s nguyên dương k cho trước.
a) Hãy tìm hiu và chy th chương trình sau đây:
program Bài_1;
uses crt;
const nmax=100;
type mang = array[1..nmax] of integer;
var A:mang;
s,n,i,p,q,k:integer;
begin
clrscr;
randomize;
write(' Nhap so phan tu n= ');
readln(n);{Tao ngau nhien mang gom n so nguyen}
for i:=1 to n do A[i]:= random(300) - random(300);
for i:=1 to n do write(A[i]:8); writeln;
write('nhap k= ');
readln(k);
S:=0;
for i:=1 to n do if A[i] mod k=0 then s:=s+A[i];
writeln('Tong can tim la: ’ , s);
readln;
end.
8
T r
n H o à i N a m
K 5
6
A
C N T T
Đ H S P H N
Page
3
b) y đưa c u lệnh sau đây vào những v trí cn thiết nhm sửa đổi
chương trình trong u a) để được chương trình đưa ra s các s
dương và s các s âm trong mng.
duong, am: interger;
duong: = 0; am: = 0;
if A[i] >0 then duong := duong +1 else if A[i] <0 then am:=am +1;
writeln('Phan tu duong la: ‘,duong:3);
writeln(‘ Phan tu am la: ‘,am:4);
Giáo viên hi cho hc sinh tr li. Gợi ý đáp án nếu hc sinh không tr
lời được.
Các em cho cô biết:
Câu hi 1: mang là tên kiu d liu hay tên mt biến?
Hc sinh tr li: …
Gi ý: mang là tên kiu d liu
Câu hi 2: Nhng ng lnh nào nhm to ra mng A?
Hc sinh tr li: …
Gi ý: Lnh khai báo kiu và khai báo biến
Câu hi 3: Lnh gán: A[i]:= random(300) - random(300); có ý nghĩa gì?
Hc sinh tr li: …
Gi ý: Đây là dòng lnh sinh ngu nhiên giá tr cho mng A
t -299 đến 299.
Câu hi 4: Lnh for i:=1 to n do write(A[i]:8); có ý nghĩa gì?
Hc sinh tr li: ...
Gi ý: In ra màn hình giá tr ca tng phn t trong mng A.
Câu hi 5: Lnh for i:=1 to n do cui thc hin nhim v gì?
Hc sinh tr li:
Gi ý: Cng các phn t chia hết cho k.
Câu hi 6: Lnh s:=s+A[i]; thc hin bao nhiêu ln?
Hc sinh tr li:
Gi ý: Có s ln đúng bằng s phn t A[i] chia hết k.
8
T r
n H o à i N a m
K 5
6
A
C N T T
Đ H S P H N
Page
4
Ta có màn hình Pascal khi đánh chương trình vào như sau:
Thc hin chương trình ta thu được kết qu như sau: (VD: vi n=6
k=3 ta được kết qu như hình sau )
Câu hi 7: Quan sát ta thy biến duong, am có ý nghĩa gì? duong: = 0;
am: = 0; đểm gì?
Hc sinh tr li: …
Gi ý : Hai biến duong, am dùng để lưu s lượng đếm được ca các s
dương âm. Biến duong:=0, am:=0 dùng để khi to hai biến duong, am
ban đầu là rng.
Câu hi 8: if A[i] >0 then duong := duong +1
else if A[i] <0 then am:=am +1; nêu chức năng ca câu lnh này?
Hc sinh tr li: …
Gi ý: Đếm s dương và s âm lưu vào biến duong, am.
Các em hãy gõ li ni dung lưu li vi tên Câu1_b.pas. Thc hin chương
trình và báo cáo kết qu.
8
T r
n H o à i N a m
K 5
6
A
C N T T
Đ H S P H N
Page
5
Hi kết qu ca học sinh đưa ra kết qu ca mình để so sánh ch ra ch
sai ca hc sinh và nhn xét bài ca các em .
Kết qu sau khi sửa câu a ta được u b như sau:
Màn hình d liu là:
Màn hình kết qu nhp là: (ng vi: n=7 ta thu được kết qu như hình dưới)
Bài 2: (15’) Viết chương trình m phn t có giá tr ln nht ca mng
đưa ra n hình ch sgiá tr ca phn t tìm được. Nếu có nhiu phn t
có cùng giá tr ln nht thì đưa ra phần t có ch s nh nht.
a) Hãy tìm hiu chương trình sau:
program Bài_2;
uses crt;
const nmax =100;
type mang = array[1..nmax] of integer;
var A:mang; n,i,j,max : integer;