GIáo án Tin học 11 trọn bộ

BÀI THỰC HÀNH SỐ 4

I. Mục tiêu

1. Kiến thức

-Biết nhậ xét , phân tích đề xuất thuật toán giải bài toán sao cho chương trình chạy nhanh hơn.

- Làm quen với dữ liệu có cấu trúc,

2. Kĩ năng

 - Biết chỉnh sữa lỗi trong chương trình.

 - Tự nhập các bộ dữ liệu để hiểu ý nghĩa một số câu lệnh.

3. Thái độ

- Nghiêm túc thực hiện đúng nội quy phòng máy, tự giác trong khi lập trình.

II.Chuẩn bị

- Gv:Bảng phụ viết sẵn chương trình, phòng máy, project.

- Hs: Sgk, CT đã được viết sẵn.

III. Tiến hành dạy học

1 Ổn định tổ chức: Kiểm tra sĩ số lớp.

2 Kiểm tra bài cũ: Lồng trong bài học?

 

doc115 trang | Chia sẻ: dung89st | Lượt xem: 2129 | Lượt tải: 2download
Bạn đang xem trước 20 trang mẫu tài liệu GIáo án Tin học 11 trọn bộ, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
g 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; 
* Tham chiếu tới phần tử cuả mảng
Tên_biến[chỉ số]
Củng cố (7 phút)
Hoạt động của Giáo viên và Học sinh
Nội Dung
(Treo bảng) 
+ Những khai báo nào là đúng? 
+ Trả lời: 
Arrayr=array[1..200] of integer;
Arrayb = array[-100..100]of boolean;
+ Biến a trong khai báo trên chiếm dung lượng bộ nhớ là bao nhiêu?
+ Trả lời: a chiếm 400 byte trong bộ nhớ. 
Type
Arrayr = array[1..200] Of integer;
Arrayr = array[byte] of real;
Arrayb = array[-100..100] of boolean;
Var a : arrayr;
 B : arrayb;
III. ĐÁNH GIÁ CUỐI BÀI, DẶN DÒ (3phút)
1. 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 (lớp 10);
IV. RÚT KINH NGHIỆM, BỔ SUNG: 	
 ..............................................................................................................................................................
 ..............................................................................................................................................................
 ..............................................................................................................................................................
 Ngày soạn : 09/01/2012	
Tiết PPCT : 23	
KIỂU MẢNG (tiết 2/3)
I. MỤC TIÊ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. 
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.
II. CHUẨN BỊ : 
1. Giáo viên: giáo án, bảng phụ, sgk
2. Học sinh: sgk
III. HOẠT ĐỘNG dẠY VÀ HỌC
Ổn định tổ chức: Kiểm tra sĩ số lớp.
Kiểm tra bài cũ: Trình bày các cách khai báo kiểu mảng trong NNLT Pascal?
Giảng bài mới:
Hoạt động 2: (20 phút)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
Nội Dung
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.
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ì?
Trả lời
+ Cho biết số ptử của mảng A.
+ Nhập giá trị cho các ptử của mảng A
+ Tính tổng. 
4. Y/cầu hs cho biết các biến chính cần sử dụng là gì?
TL: mảng A
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 hoàn thành.
6. Để viết tiếp đoạn chtrình còn lại (tính tổng) theo thuật toá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, ngoà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? 
- 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 
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.
Var S, n, k, i : integer;
A: array[1..100] of integer;
Begin
Write(‘Nhap n = ’); readln(n);
{tao mang}
For i:=1 To n Do 
 begin
 write(‘phan tu thu ’,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.
Hoạt động 3: (15 phút) Mở rộng bài toá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 thêm vào chtrình ở bài 1.
1. Y/cầu hs n/cứu nội dung các câu lệnh và hỏi:
- Ý nghĩa của biến am, duong?
- Chức năng của lệnh (3)?
- Lệnh (4) đưa ra thông tin gì?
HS N/cứu ý nghĩa các câu lệnh và trả lời:
- Dùng để lưu số lượng đếm được.
- Đếm số dương hoặc đếm số âm.
- Số các số dương, số các số âm.
2. Y/cầu hs tìm vị trí bổ sung các lệnh vào cho phù hợp để chtrình đếm được số dương, số âm. 
HS Chỉ ra vị trí cần bổ sung và các câu lệnh cần loại bỏ bớt.
3. Y/cầu hs lên 
hoàn chỉnh lại chtrình?
HS Lên bảng , chỉnh sửa lại chtrình.
** Chuẩn hoá lại chtrình. 
* 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 
Var n, i : integer;
am, duong : integer;
A : array[1..100] of integer;
Begin
Write(‘Nhap n = ’); readln(n);
{tao mang}
For i:=1 To n Do 
 begin
 write(‘phan tu thu ’,i,’ =’); 
 readln(A[i]);
 end;
am := 0; duong := 0;
{dem}
For i:=1 To n Do 
 If A[i] >0 Then 
 duong := duong + 1 
 Else if A[i]<0 Then 
 am := am + 1;
Writeln(duong: 4, am:4);
End.
IV. ĐÁNH GIÁ CUỐI BÀI (5phút)
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à
- Cho 2 mảng A, B gồm n (n<=250) số nguyên. Hãy viết chương trình xây dựng mảng C[1..n], trong đó C[i] là tổng của 2 phần tử thứ i thuộc mảng A và mảng B. (tức là: C[i] = A[i] + B[i])
- Xem trước vídụ 2 và ví dụ 3/trang 57, 58 sgk.
V. RÚT KINH NGHIỆM, BỔ SUNG: 	
 ..............................................................................................................................................................
 ..............................................................................................................................................................Ngày soạn : 16/01/2012	
Tiết PPCT : 24	 
KIỂU MẢNG (tiết 3/3)
I. MỤC TIÊU
1. Kiến thức
- Hiểu được khái niệm mảng hai chiều.
- Hiểu cách khai báo và tham chiếu đến các phần tử của mảng hai chiều.
2. Kĩ năng
- Thực hiện được khai báo mảng hai chiều, cách tham chiếu đến một phần tử của mảng hai chiều.
- Thực hiện được việc tính toán các phần tử trong mảng hai chiều.
II. CHUẨN BỊ : 
1. Giáo viên: Bảng phụ chứa chương trình tạo và in mảng hai chiều gồm 5 hàng, 7 cột. Tính và in ra màn hình tổng các phần tử trong mảng.
2. Học sinh: SGK, vở soạn.
III. HOẠT ĐỘNG dẠY VÀ HỌC
Ổn định tổ chức: Kiểm tra sĩ số lớp.
Kiểm tra bài cũ: Viết cấu trúc của tổng quát của mảng một chiều ?
Giảng bài mới: 
Hoạt động 2: (7 phút)Tìm hiểu ý nghĩa của mảng hai chiều.
Hoạt động của Giáo viên và Học sinh
Nội Dung
- GV yêu cầu HS xem bảng nhân ở SGK.
- Với kiến thức về mảng một chiều đã học, em hãy đưa ra cách sử dụng kiểu mảng đó để lưu trữ bảng nhân?
TL: - Sử dụng 9 mảng một chiều, mỗi mảng lưu một hàng của bảng.
- Với cách lưu trữ như vậy, ta phải khai báo bao nhiêu biến mảng?
- TL: Khai báo 9 biến mảng một chiều.
- Khai báo như vậy có những hạn chế nào?
- TL: Phải khai báo nhiều biến, chương trình phải viết nhiều lệnh để tạo và in giá trị của mảng.
- Để khắc phục những hạn chế này, ta có thể mô tả dữ liệu của bảng nhân bằng kiểu dữ liệu mảng hai chiều.
- Nêu khái niệm mảng hai chiều.
- Để mô tả kiểu mảng hai chiều, cần xác định những yếu tố nào?
- HS trả lời.
- Tham khảo SGK và trả lời.
§11. KIỂU MẢNG (tt)
2. Kiểu mảng hai chiều: 
a. Xét bài toán: Bảng nhân (SGK).
* Khái niệm mảng hai chiều: (SGK).
* Các yếu tố cần xác định để mô tả kiểu mảng hai chiều. (SGK)
3. Hoạt động 3:(10’)Tìm hiểu cách khai báo biến mảng hai chiều và cách tạo/in mảng hai chiều.
Hoạt động của Giáo viên và Học sinh
Nội Dung
- GV đưa ra hai cách khai báo biến mảng hai chiều.
- GV giải thích các thành phần trong khai báo.
- Gọi HS nêu cách khai báo gián tiếp biến B để lưu trữ bảng nhân ở SGK.
- Gọi HS nhắc lại cách tham chiếu đến một phần tử của mảng một chiều. 
- TL: Tênbiến[chỉ số]
b. Khai báo:
¨ C1: Trực tiếp:
Var :array [kiểu chỉ số hàng, kiểu chỉ số cột] of ;
¨ C2: Gián tiếp:
Type = array[kiểu chỉ số hàng, kiểu chỉ số cột] of ;
Var :;
c.Tham chiếu đến một phần tử của mảng hai chiều:
Tênbiến[chỉ số hàng,chỉ số cột]
4. Hoạt động 4: (17 phút)Tìm hiểu cách viết chương trình đơn giản.
Hoạt động của Giáo viên và Học sinh
Nội Dung
- GV hướng dẫn HS cách tạo mảng hai chiều có m hàng, n cột.
- GV hướng dẫn HS cách in mảng hai chiều vừa tạo.
- Gọi HS lên bảng sửa lại phần khai báo và các câu lệnh nhập cho phù hợp với bài này.
- HS lên bảng làm.
+ Không khai báo m,n.
+ Khai báo thêm biến T.
+ Viết hai vòng for của lệnh tạo và in mảng là:
for i := 1 to 5 do
 for j := 1 to 7 do
- GV hướng dẫn HS cách tính tổng.
- GV treo bảng phụ viết sẵn chương trình cho HS tham khảo.
- HS Theo dõi chương trình trên bảng phụ.
d. Các ví dụ:
Ví dụ 1: Viết chương trình tạo và in mảng hai chiều gồm m hàng, n cột.
program Tao_in_mang;
var i, j, m, n: integer;
 A: array [1..100,1..100] of integer;
begin
write ('Nhap so hang m = '); readln (m);
write ('Nhap so cot n = ');
readln (n);
{Tạo mảng}
for i := 1 to m do
 for j := 1 to n do
 begin
write('Nhap A[',i, ',' ,j,']=');
 readln (A[i , j]);
 end;
{In mảng}
for i:= 1 to m do
 begin
 for j := 1 to n do 
 write (A[i , j]:4);
 writeln;
 end;
readln
end.
IV. ĐÁNH GIÁ CUỐI BÀI (3phút)
1. Nội dung đã học
- Cách khai báo biến mảng hai chiều.
- Cách tạo mảng hai chiều.
- Cách tính toán các phần tử trong mảng hai chiều.
2. Câu hỏi, bài tập về nhà : Xem các ví dụ còn lại trong SGK.
V. RÚT KINH NGHIỆM, BỔ SUNG: 
Ngày soạn : 18/01/2012	
Tiết PPCT : 25	 
BÀI TẬP 
I. MỤC TIÊ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ủng cố và làm hs hiểu sâu hơn thuật toán sắp xếp đã được 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.
II. ĐỒ DÙNG DẠY HỌC
1. Giáo viên: giáo án, bảng phụ, sgk
2. Học sinh: sgk
III. PHƯƠNG PHÁP 
IV. HOẠT ĐỘNG DẠY HỌC
Hoạt động 1: (10 phút) Kiểm tra bài cũ: 
Gọi 2 Hs lên bảng trình bày bài tập cho về nhà tiết trước.
2. Hoạt động 2:(15 phút) Phân tích bài toán trước khi viết chương trình
a. Nội dung: Sắp xếp dãy số nguyên bằng thuật toán tráo đổi.
b. Các bước tiến hành:
Hoạt động của Giáo viên và Học sinh
Nội Dung
1. Nêu bài toán, y/cầu hs xác định In/Output của bài toán.
TL : 
In: N (N£250), dãy A (A[i]<500).
Out: dãy A không giảm
2. Y/cầu hs trình bày lại thuật toán sắp xếp tráo đổi. (Đã học ở lớp 10)
3. Y/cầu cả lớp n/cứu lại t/toán và trả lời các câu hỏi:
- Biến j sẽ nhận các giá trị trong phạm vi nào? Tương tự với biến i? 
- Có nhận xét gì về 2 biến i,j? 
Trả lời: 
+ 2 £ j £ N, 1 £ i £ j-1
+ i phụ thuộc theo j
(với mỗi giá trị j, i lần lượt nhận các giá trị từ 1 đến j-1)
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.: 
In: N (N£250), dãy A (A[i]<500).
Out: dãy A không giảm
2.Thuật toán
B1: Nhập N, dãy A ;
B2: j!N;
B3: nếu j<2 thì đưa ra dãy đã được sắp xếp, KT;
B4: j!j-1; i!1;
B5: Nếu i>j thì Qlại B3;
B6: Nếu A[i]>A[i+1] thì tráo đổi A[i] và A[i+1];
B7: Quay lại B5. 
3. Hoạt động 3:(15phút)Vận dụng kiểu dữ liệu mảng một chiều để mô tả t/toán trên trong Pascal
Hđ của GV
Nd ghi bảng
1. Y/cầu hs xác định những nội dung chính cần viết trong chtrình.
HD: +Khai báo biến
+Tạo mảng A
+Sắp xếp mảng A tăng dần
+Đưa mảng A đã sắp xếp ra màn hình
* Chốt lại các nội dung chính cần viết.
2. Yêu cầu từng hs lên bảng viết từng nội dung của chương trình.
- Khai báo những biến gì?
-TL: mảng A, biến đơn N, i, j
- Tạo mảng là làm những gì?
-TL: Nhập sl p/tử của mảng và nhập giá trị cho các p/tử trong mảng
- Sắp xếp mảng
Hỏi: Làm thế nào để tráo đổi giá trị 2 biến cho nhau (a[i] và a[i+1])?
Tl: sử dụng thêm biến trung gian t:
t:=a[i];
a[i]:=a[i+1];
a[i+1] :=t
- Đưa mảng ra màn hình
Var A: array[1..300] of integer; 
 N, i, j :integer; 
Begin
{tao mang}
Write(‘Nhap n = ’); readln(n);
For i:=1 To n Do 
 begin
 write(‘phan tu thu ’,i,’ =’); 
 readln(A[i]);
 end;
{sap xep mang}
For j := N Downto 1 Do
 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. 
IV. ĐÁNH GIÁ CUỐI BÀI (5phút)
1. Nội dung đã học
	Cách phân tích và viết chương trình cho một bài toán.
2. Câu hỏi, bài tập về nhà
	Xem lại các bài tập về mảng đã giải ở tiết 20
	Xem trước bài: Bài thực hành số 3
	Bài tập: Cho mảng A gồm N phần tử. hãy viết chương trình tạo ra mảng B cũng gồm N phần tử, trong đó B[i] bằng tổng của i phần tử đầu tiên trong mảng A. (B[i]= A[1]+A[2]+ .. +A[i])
 V. RÚT KINH NGHIỆM, BỔ SUNG: 	
 ..............................................................................................................................................................
 ..............................................................................................................................................................
 ..............................................................................................................................................................
 Ngày soạn : 28/01/2012	
Tiết PPCT : 26	 
BÀI THỰC HÀNH SỐ 3 
I. MỤC TIÊU:
 - Về Kiến thức: Củng cố cho HS những hiểu biết về kiểu dữ liệu mảng, giới thiệu hàm ngẫu nhiên để tạo giá trị cho mảng.
 - Về Kỹ năng: Khai báo được kiểu dữ liệu mảng, nhập dữ liệu mảng,.
 	+ Duyệt qua phần tử của mảng để xử lý từng phần tử.
- Về tư duy và Thái độ: rèn luyện tư duy lập trình, tác phong của người lập trình.
II. CHUẨN BỊ:
GV: Phòng máy tính, máy chiếu Projector.
HS: SGK, bài tập.
III. HOẠT ĐỘNG DẠY VÀ HỌC
Ổn định tổ chức: Kiểm tra sĩ số lớp.
Kiểm tra bài cũ: Khi nào ta nên khai báo biến mảng gián tiếp – thông qua định nghĩa kiểu?
Giảng bài mới: 
HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
GV: Cài đặt và trình chiếu CT mẫu bài 1a.
HS: Xem bài mẫu được trình chiếu.
?1: MyArray là tên kiểu dữ liệu hay tên biến?
GV: Nhận xét.
HS1: Trả lời
?2: Vai trò của nmax và n khác nhau như thế nào?
HS2: Trả lời
?3: Dòng lệnh nào dùng để tạo biến mảng A?
GV: Nhận xét.
HS3: Trả lời.
GV: Cho chạy thử CT bài 1a
HS: Xem
?4: Lệnh gán A[i]:= random(300) – random(300) có ý nghĩa gì?
GV: Nhận xét.
HS4: Trả lời.
?5: Lệnh For i:=1 to n do Write(A[i]:5); có ý nghĩa gì?
GV: Nhận xét.
HS5: Trả lời.
?6: Lệnh For i:=1 to n do If A[i] mod k = 0 then s:=s + A[i]; thực hiện nhiệm vụ gì?
GV: Nhận xét.
HS6: Trả lời.
?7: Lệnh s:=s+A[i]; được thực hiện bao nhiêu lần?
GV: Nhận xét.
HS7: Trả lời.
GV: Cho HS chạy thử chương trình để thấy kết quả.
HS: Chạy thử chương trình trên máy của mình.
GV: Nhắc nhở HS lưu chương trình đã chạy tốt ở câu a.
HS: Lưu chương trình.
GV: Trình chiếu các câu lệnh của câu 1b.
HS: Xem.
?8: Đưa biến Posi và Neg vào vị trí nào trong câu 1a?
GV: Nhận xét.
HS8: Trả lời
?9: Nhiệm vụ của câu lệnh:
If A[i]:>0 then Posi:=Posi+1 else If A[i]<0 then Neg:=Neg+1; ?
GV: Nhận xét.
HS9: Trả lời.
GV: Yêu cầu HS đưa câu lệnh vào chương trình ở câu 1a.
HS: Thực hiện.
GV: Yêu cầu HS chạy chương trình và báo cáo kết quả. 
HS: Lưu và chạy chương trình, báo cáo KQ.
 Củng cố: 
 Yêu cầu HS sửa lại chương trình trên để có thể nhập một mảng có 10 phần tử từ bàn phím.
 Dặn dò:
HS về nhà làm bài tập 4.15 trong sách bài tập.
Chuẩn bị chương trình bài 2 bài thực hành 3 chương IV trong SGK.
IV. RÚT KINH NGHIỆM, BỔ SUNG: 
......................................................................................................................................................
......................................................................................................................................................
.....................................................................................................................................................
 Ngày soạn : 30/01/2012	
Tiết PPCT : 27	 
BÀI TẬP
I. MỤC TIÊU:
 - Về Kiến thức: Củng cố cho HS những hiểu biết về kiểu dữ liệu mảng.
 - Về Kỹ năng: Khai báo được kiểu dữ liệu mảng, nhập dữ liệu mảng bằng cách sử dụng hàm ngẫu nhiên, đưa ra màn hình chỉ số và giá trị của các phần tử mảng.
 	+ Duyệt qua phần tử của mảng để xử lý từng phần tử.
- Về tư duy và Thái độ: rèn luyện tư duy lập trình, tác phong của người lập trình.
II. CHUẨN BỊ:
GV: Phòng máy tính, máy chiếu Projector.
HS: SGK, bài tập.
III. HOẠT ĐỘNG DẠY VÀ HỌC
Ổn định tổ chức: Kiểm tra sĩ số lớp.
Kiểm tra bài cũ: Khi nào ta nên nên tạo mảng bằng cách dùng hàm ngẫu nhiên?ưu điểm của hàm ngẫu nhiên?
Giảng bài mới: 
HOẠT ĐỘNG CỦA GV
HOẠT ĐỘNG CỦA HS
HĐ 1. Bài tập 2(sgk btvà th 3)
a)tìm hiểu chương trình
H1.Em hãy cho biết bài tập 2 tương tự bài tập nào ta đã học
H2. Nhận xét đánh giá câu trả lời và đưa ra câu trả lời cuối cùng
H3. Phân tích sự gống nhau và khác nhau của 2 bài toán
H4. Nhận xét đánh giá câu trả lời và đưa ra câu trả lời cuối cùng
H5. Nêu phần khai báo của bài toán,ý nghĩa của từng khai báo
H6. Nhận xét đánh giá câu trả lời và đưa ra câu trả lời cuối cùng
H7. Nêu dãy lệnh để tạo mảng 
H8. Nhận xét đánh giá câu trả lời và đưa ra câu trả lời cuối cùng
H9. Nêu ý nghĩa của lệnh
 for i:=2 to n do if a[i]>a[j] then j:=i;
H10. Nhận xét đánh giá câu trả lời và đưa ra câu trả lời cuối cùng
H11. Hoàn chình chương trình chạy thử quan sát kết quả
b) Chỉnh sửa chương trình trên để đưa ra chỉ số của các phần tử có cùng giá trị lớn nhất.
H1. Ta cần phải thêm câu lệnh nào vào chương trình và bỏ đi câu lệnh nào để được y/c trên
HĐ2. Bài tập 4.15 sách bài tập trang 35
H1. Gõ và thực hiện 2 chương trình để đưa ra nhận xét
H2. Lập trình tạo mảng a gồm 10000 phần tử mỗi phần tử là một số nguyên có phậm vi từ 0 đến 999. Đếm và đưa ra số phần tử nhỏ hơn 500 của a
H3. Tực hiện chương trình trên nhiều lần . nhận xét
TL1.Tương tự với ví dụ 1 bài 11
TL2. Giống nhau :Yêu cầu tìm giá trị lớn nhất
 Khác nhau :Vd 1 không y/c tìm chỉ số
 Bài tập 2 yêu cầu tìm chỉ số của phần tử max, nếu có nhiều phần tử thì đưa ra chỉ số nhỏ nhất
TL3 Trả lời các câu hỏi giáo viên đã nêu
TL1. Thêm vào câu lệnh sau câu lệnh for trong chương trình
 for i:=2 to n do if a[i]=a[j] then writeln(‘chỉ số các phần tử ln là’,i);
 ta phải bỏ đi câu lệnh 
write(‘chỉ số: ‘,j);
TL1 . Ở chương trình không có thủ tục randomize giá trị của a[i] không khác nhau còn ở chương trình sau thì ngược lại
TL2. Gõ chương trình vào máy tính và chạy chương trình
TL3. Mỗi lần thực hiện cho một kết quả khác nhau
 Củng cố: 
 Yêu cầu HS sửa lại chương trình trên để có thể nhập một mảng có 10 phần tử từ bàn phím.
 Dặn dò:
HS về nhà làm làm lại các bài đã hoc.
Đọc trước bài thực hành 4 chương IV trong SGK.
IV. RÚT KINH NGHIỆM, BỔ SUNG: 
......................................................................................................................................................
......................................................................................................................................................
 .....................................................................................................................................................
 Ngày soạn : 2/02/2012	
Tiết PPCT : 28	
BÀI THỰC HÀNH SỐ 4 
I. Mục tiêu
1. Kiến thức 
- Củng cố kiến thức về dữ liệu kiểu mảng.
- Xây dựng cấu trúc dữ liệu, hiểu thuật toán sắp xếp bằng tráo đổi.
2. Kĩ năng
	- Biết chỉnh sữa lỗi trong chương trình.
	- Tự nhập các bộ dữ liệu để hiểu ý nghĩa một số câu lệnh.
3. Thái độ
- Nghiêm túc thực hiện đúng nội quy phòng máy, tự giác trong khi lập trình.
II.Chuẩn bị
- Gv:Bảng phụ viết sẵn chương trình, phòng máy, project.
- Hs: Sgk, CT đã được viết sẵn.
III. Tiến hành dạy học
Ổn định tổ chức: Kiểm tra sĩ số lớp.
Kiểm tra bài cũ: Lồng trong bài học?
Giảng bài mới: 
Hoạt động 1: Nhắc lại kiến thức đã học liên quan bài thực hành.
Hoạt động của Giáo viên và Học sinh
Nội dung thực hành 

File đính kèm:

  • docBai_13_Kieu_ban_ghi_20150727_120941.doc