Ngày giảng Lớp Sĩ số Tên HS vắng- Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu; - Các NNLT thông dụng cho phép người lập trình xây dựng kiểu dữ liệu mảngmột chiều; - Để mô tả
Trang 1Ngày giảng Lớp Sĩ số Tên HS vắng
- Biết sử dụng cấu trúc rẽ nhánh (dạng thiếu – dạng đủ) một cách hợp lí
- Biết xây dựng chương trình có sử dụng cấu trúc rẽ nhánh
2 Về kĩ năng
- Xây dựng chương trình có sử dụng cấu trúc rẽ nhánh
- Làm quen với việc hiệu chỉnh chương trình
- Học bài cũ và chuẩn bị bài mới
III TIẾN TRÌNH DẠY HỌC
1 Kiểm tra bài cũ (Kết hợp trong khi thực hành)
2 Nội dung bài mới
Hoạt động của Thầy và Trò Nội dung cần đạt
Hoạt động 1: Tìm hiểu mục đích,
yêu cầu của bài thực hành (5 phút)
1 Mục đích, yêu cầu
- Củng cố các kiến thức về cấu trúc rẽ
Trang 2GV: Giới thiệu cho học sinh biết mục
đích, yêu cầu cũng như thời lượng của
nội dung bài thực hành
HS: Quan sát, nghe giảng, ghi bài
nhánh
- Biết sử dụng cấu trúc rẽ nhánh(dạng thiếu – dạng đủ) một cách hợp lí
- Biết xây dựng chương trình có sửdụng cấu trúc rẽ nhánh
- Làm quen với việc hiệu chỉnhchương trình
Hoạt động 2: Nội dung bài thực
kì có phải là bộ Pytago hay không, ta
phải kiểm tra các đẳng thức nào?
HS: Kiểm tra xem có đẳng thức nào
trong 3 đẳng thức sau đây thoả mãn
dương a, b, c và kiểm tra xem chúng có
là bộ số Pi-ta-go hay không?
Yêu cầu HS xác định Input/Output và
xây dựng thuật giải cho bài toán
HS: Xác định Input/Output – xây
dựng thuật giải của bài toán
2 Nội dung a) Gõ chương trình sau:
Bài toán Bộ số Pi-ta-go
- Xác định bài toán
+ Input: Ba số a, b, c + Output: Ba số là bộ số Pitago hoặc
ba số không phải là bộ số Pitago.
- Ý tưởng
Kiểm tra xem có đẳng thức nào trong
3 đẳng thức sau đây thoả mãn không?
Trang 3GV: Giới thiệu chương trình giải bài
toán (SGK – Tr 49, 50) Chia nhóm thực
hành và tổ chức cho HS gõ chương trình
vào máy
Gv: Thực hành làm mẫu 1 số thao tác
trên máy chiếu cho học sinh quan sát,
hướng dẫn, giải thích cho học sinh hiểu
cách hoạt động và các chú ý trong khi
soạn thảo chương trình
HS: Quan sát, nghe giảng
HS: Thực hiện theo yêu cầu của GV
GV: Chú ý: trước else không có dấu
chấm phẩy (;)
GV: Yêu cầu HS lưu chương trình lên
đĩa rồi nhấn phím F7 để thực hiện từng
câu lệnh chương trình, nhập các giá trị
a=3, b=4, c=5 Yêu cầu nhập thêm các
giá trị khác ngoài ba giá trị yêu cầu
HS: thực hiện theo yêu cầu của GV
Gv: Quan sát, hướng dẫn cho học
sinh trong khi thực hành, kịp thời sửa
chữa những lỗi nếu có trong quá trình
học sinh thực hành
GV: Hướng dẫn, làm mẫu cách thực
hiện việc theo đúng giá trị của các biến
a2, b2, c2 của CT bằng cách nhấn phím
F7 và theo đúng các giá trị của biến trên
cửa sổ Watches, Trước hết cần dùng tổ
KQ: a,b,c: 3 4 5
Ba so da nhap la bo so Pi_ta_go
Trang 4hợp phím Ctrl+F7 để hiện cửa sổ Add
Watches (Hoặc vào bảng chọn Debug
chọn Add watch) sau đó nhập tên biến
(ví dụ a2 là biến đang cần theo đúng giá
trị) và nhấn phím Enter sẽ có tên biến a2
cựng giá trị của nó Tương tự với các
biến khác cần theo dõi b2, c2
HS: Quan sát và thực hành theo
hướng dẫn trên
Gv: Quan sát, hướng dẫn học sinh
cách thực hiện
HS: Thực hành theo yêu cầu
d) Vào bảng Debug mở cửa sổ hiệu chỉnh để xem giá trị a2, b2, c2;
3 Củng cố và luyện tập (3 phút)
- Nhấn mạnh cách theo dõi giá trị của các biến khi chạy chương trình
- Trước else không có dấu chấm phẩy (;)
- Khi nhập bộ giá trị cho các biến thì các giá trị cách nhau bằng dấu cách
- Lưu lại chương trình vừa chỉnh sửa
- Thoát khỏi Pascal, tắt máy tính đúng qui trình
4 Hướng dẫn học sinh tự học ở nhà (2 phút)
- Học và ôn lại các nội dung bài học
- Tiết sau kiểm tra một tiết lý thuyết, yêu cầu về nhà ôn lại các kiến thức đã đượchọc
- Trả lời các câu hỏi và làm các bài tập SGK (trang 50 + 51)
Trang 5Ngày giảng Lớp Sĩ số Tên HS vắng
- Biết sử dụng cấu trúc rẽ nhánh (dạng thiếu – dạng đủ) một cách hợp lí
- Biết xây dựng chương trình có sử dụng cấu trúc rẽ nhánh
Trang 6- Học bài cũ và chuẩn bị bài mới
III TIẾN TRÌNH DẠY HỌC
1 Kiểm tra bài cũ (Kết hợp trong khi thực hành)
2 Nội dung bài mới
Hoạt động của giáo viên và học sinh Nội dung bài giảng
Hoạt động 1: Tìm hiểu lại về câu
lệnh rẽ nhánh và bài toán Pi_ta_go
(10 phút).
Gv: Giới thiệu lại cho học sinh về câu
lệnh rẽ nhánh If Then dạng thiếu và
Gv: Giới thiệu lại bài toán Pi-ta-go,
các yêu cầu, cách xác định bài toán, ý
tưởng để xây dựng bài toán và cách sử
Bài toán Bộ số Pi-ta-go
- Xác định bài toán
+ Input: Ba số a, b, c + Output: Ba số là bộ số Pitago hoặc
ba số không phải là bộ số Pitago.
GV: Hướng dẫn hs mở tệp lưu bài
tập chương trình PITAGO (chọn FILE
chọn OPEN, hoặc nhấn phím F3, chọn
tệp cần mở) sau đó thực hiện các yêu
cầu của bài toán
Bài thực hành Program Pi_ta_go;
Uses crt;
Var a, b, c: integer;
Trang 7HS: Thực hành theo hướng dẫn của
giáo viên, mở chương trình
Gv: Quan sát, hướng dẫn học sinh
thực hành mở chương trình đã gõ trong
tiết thực hành trước
Gv: Yêu cầu học sinh sau khi đã mở
được chương trình trên, sau đó tắc hết
màn hình và quan sát thầy giáo hướng
dẫn thực hành nội dung của các phần
HS: Thực hành, báo cáo kết quả
GV: Yêu cầu học sinh tiếp tục nhấn
GV: Yêu cầu HS thực hiện lặp lại các
bước như trên với a=700, b=1000,
c=800 và tự làm các thao tác như trên
trong thời gian này hướng dẫn một số
học sinh thực hiện các thao tác trong bài
thực hành
HS: Quan sát và thực hiện theo nội
dung yêu cầu
Gv: Yêu cầu học sinh tự nhập với các
dữ liệu khác và tự so sánh kết quả (Nếu
a2,b2,c2: longint;
Begin Clrscr;
Trang 8còn thời gian).
Gv: Yêu cầu học sinh sau khi đã mở
được chương trình trên, sau đó tắc hết
màn hình, gọi học sinh đọc yêu cầu thực
hành của câu h trong bài thực hành 2.
HS: Đọc bài
Gv: Thực hành làm mẫu, hướng dẫn
cho học sinh hiểu cách thực hiện của bài
thực hành, tiếp tục sử dụng bảng chọn
Debug và dùng phím F7 để theo dõi
từng câu lệnh, sau đó so sánh với kết
quả của câu g
HS: Quan sát, thực hiện theo yêu cầu
của bài tập
Gv: Gọi một số học sinh yêu cầu cho
biết kết quả của việc thay đổi trên có gì
thay đổi so với kết quả của câu g
HS: Trả lời
Gv: Cho học sinh quan sát kết quả
của việc thay đổi Kết quả không thay
đổi so với dữ liệu ở câu g
HS: Quan sát, Thực hành
f) Quan sát quá trình rẽ nhánh;
g) Lặp lại các bước nói trên với a=700, b=1000, c=800;
h) Nếu thay dãy lệnh
Trang 9+ Chọn Debug để mở cửa sổ hiệu chỉnh hoặc nhấn tổ hợp phím Cltr + F7.
- Thoát khỏi Pascal, tắt máy tính đúng qui trình
4 Hướng dẫn học sinh tự học ở nhà (2 phút)
- Học và ôn lại các nội dung bài học
- Về nhà xem trước nội dung chương IV Kiểu dữ liệu có cấu trúc bài 10: Kiểmmảng giờ sau học lý thuyết
Trang 10Ngày giảng Lớp Sĩ số Tên HS vắng
- Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu;
- Các NNLT thông dụng cho phép người lập trình xây dựng kiểu dữ liệu mảngmột chiều;
- Để mô tả mảng một chiều cần khai báo kiểu của các phần tử và cách đánh sốcác phần tử của nó;
- Có thể tham chiếu phần tử của mảng bằng tên của mảng và chỉ số tương ứngcủa phần tử này
- Có hai cách đẻ khai báo kiểu dữ liệu mảng một chiều trong TP
2 Về 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ác định danh của phần tử kiểu mảng một chiều xuất hiện trong một CT;
- Biết cách khai bào kiểu mảng đơn giản với chỉ số kiểu miền con của kiểu nguyên
- Tạo được kiểu mảng một chiều và sử dụng biến mảng một chiều trong ngônngữ lập trình Pascal để giải quyết một số bài toán cụ thể đơn giản
Trang 113 Về thái độ
- Tiếp tục xây dựng lòng ham thích lập trình, nhằm giải quyết các bài toán bằngmáy tính
- Có ý thức tự giác học tập và có tinh thần tập thể tham gia hoạt động nhóm
II CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH
- Học bài cũ và chuẩn bị bài mới
III TIẾN TRÌNH DẠY HỌC
1 Kiểm tra bài cũ (Không)
2 Nội dung bài mới
Hoạt động của giáo viên và học sinh Nội dung bài giảng
Hoạt động 1 Tìm hiểu Kiểu mạng 1
chiều (25 phút)
GV: Yêu cầu HS tự đọc phần đầu của
mục 1 SGK –T53
HS: Đọc SGK
Gv: Cùng học sinh đi phân tích ví dụ
xét nhiệt độ trung bình của tuần và của N
ngày Từ đó cho các em thấy được tầm
quan trọng của mảng
GV: Trình bày và giải thích câu lệnh
cho chương trình Nhietdo_tuan
- Mảng một chiều là dãy hữu hạn cácphần tử cùng kiểu Mảng được đặt tên vàmỗi phần tử của nó có một chỉ số Để mô
tả mảng một chiều cần xác định kiểu củacác phần tử và cách đánh số các phần tửcủa nó
Trang 12rằng, khi cần giải bài toán lên đến N ngày
thì cách làm như CT Nhietdo_tuan không
những đòi hỏi một khối lượng khai báo
khá lớn mà CT tính toán cũng khá dài Vì
vậy cần sử dụng đến mảng để giải quyết
những bài toán như vậy Vậy mảng là gì?
GV: Hãy cho biết khái niệm về mảng
một chiều? Tại sao cần dùng đến mảng
một chiều?
HS: Trả lời
GV: Các ngôn ngữ lập trình có qui tắc
và cách thức cho phép xác định
HS: Quan sát, nghe giảng, ghi bài
GV: Các em hãy quan sát hai ví dụ
trên; đó là các cách khai báo mảng một
chiều Qua các ví dụ trên, em hãy chỉ ra
cách khai báo mảng một chiều tổng quát
HS: Trả lời câu hỏi
GV: Lấy ví dụ phân tích cho học sinh
hiểu các thành phần trong khai báo và
các cách khai báo mảng
Ví dụ 1
Var LOP: array[40 100] of integer;
TO: array[1 7] of integer;
HS: Quan sát, nghe giảng, ghi bài
GV: Vậy để có thể tham chiếu đến
phần tử của mảng người ta sử dụng cấu
trúc như thế nào?
HS: Suy nghĩ, trả lời câu hỏi
- Khi xây dựng và sử dụng kiểu mảngmột chiều, các NNLT có quy tắc, cáchthức cho phép xác định:
+ Tên kiểu mảng một chiều;
+ Số lượng phần tử;
+ Kiểu dữ liệu của phần tử;
+ Cách khai báo biến mảng;
+ Cách tham chiếu đến phần tử
a) Khai báo
* Tổng quát, khai báo mảng một
chiều có hai dạng
- 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>;
Trong đó:
+ Kiểu chỉ số thường là một đoạn sốnguyên liên tục có dạng n1 n2 với n1,n2 là các hằng hoặc biểu thức nguyênxác định chỉ số đầu và chỉ số cuối (n1 ≤n2);
+ Kiểu phần tử là kiểu của phần tửmảng
* Cách tham chiếu đến phần tử của mảng:
Tham chiếu đến phần tử của mảng đượcxác định theo cú pháp sau:
Tên biến mảng [Giá trị chỉ số];
VD: Cho phần tử mảng sau.
Trang 13GV: Nhận xét, đưa ra ví dụ, phân tích
cho học sinh hiểu cách tham chiếu đến
phần tử của mảng và một vài thông tin về
cầu các nhóm thảo luận với nội dung sau
(Trình chiếu yêu cầu cho các nhóm thảo
- Nhóm 1, 3: Hãy viết khai báo mảng
một chiều theo cách 1 (trực tiếp)?
- Nhóm 2: Hãy viết khai báo mảng
một chiều theo cách 2 (gián tiếp)?
Đáp án:
Cách 1:
Vara:array[1 100] of integer;
Cách 2:
Typemang=array[1 100] of integer;Var
a:mang;
3 Củng cố và luyện tập (3 phút)
- Hệ thống kiến thức cần nhớ
- Cách tạo kiểu mảng một chiều và cách khai báo biến:
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>;
Trang 14- Tham chiếu đến từng phần tử của mảng một chiều được xác định bởi tên mảngcùng với chỉ số, được viết trong cặp dấu ngoặc [ ].
4 Hướng dẫn học sinh tự học ở nhà (2 phút)
- Học bài theo câu hỏi SGK, Lấy ví dụ đúng và khai báo mảng một chiều ở hai dạng
- Đọc trước mục 1b một số ví dụ giờ sau tiếp tục học về kiểu mảng
Trang 15Ngày giảng Lớp Sĩ số Tên HS vắng
- Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu;
- Các NNLT thông dụng cho phép người lập trình xây dựng kiểu dữ liệu mảngmột chiều;
- Để mô tả mảng một chiều cần khai báo kiểu của các phần tử và cách đánh sốcác phần tử của nó;
- Có hai cách để khai báo kiểu dữ liệu mảng một chiều trong TP
2 Về 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ác định danh của phần tử kiểu mảng một chiều xuất hiện trong một CT;
- Biết cách khai bào kiểu mảng đơn giản với chỉ số kiểu miền con của kiểu nguyên
- Tạo được kiểu mảng một chiều và sử dụng biến mảng một chiều trong ngônngữ lập trình Pascal để giải quyết một số bài toán cụ thể đơn giản
- Hình thành kỹ năng cơ bản về sử dụng kiểu mảng trong cài đặt chương trình
Trang 16- Các công việc liên quan trong kiểu mảng có liên quan đến câu lệnh For To Do.
3 Về thái độ
- Tiếp tục xây dựng lòng ham thích lập trình, nhằm giải quyết các bài toán bằngmáy tính
- Có ý thức tự giác học tập và có tinh thần tập thể tham gia hoạt động nhóm
II CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH
- Học bài cũ và chuẩn bị bài mới
III TIẾN TRÌNH DẠY HỌC
1 Kiểm tra bài cũ (5 phút)
Câu hỏi
Viết có pháp cách khai báo mảng một chiều theo hai cách? Áp dụng khai báomạng một chiều gồm 50 phần tử thuộc kiểu số thực
2 Nội dung bài mới
Hoạt động của thầy và trò Nội dung bài giảng
Hoạt động 1 Tìm hiểu ví dụ 1 tìm
Max (20 phút)
GV: Cùng học sinh đi phân tích các
yêu cầu của ví dụ 1 trong SGK tìm
phần tử lớn nhất của dãy số nguyên
GV: Yêu cầu HS hãy cho biết Input
và Output của bài toán?
HS: trả lời
1 Kiểu mảng một chiều b) Một số ví dụ
- Ví dụ 1: tìm phần tử lớn nhất của dãy
số nguyên.
Xác định bài toá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)
Trang 17Gv: Nhận xét, kết luận.
GV: Giới thiệu cho học sinh nhớ lại
thuật toán tìm phần tử lớn nhất trong
dãy số nguyên đã được học trong
chương trình Tin học lớp 10 Phân
tích, giải thích thuật toán cho học sinh
hiểu
GV: Trình bày và giải thích chương
trình Tìm giá trị Max (Dùng màn hình
lớn trình chiếu)
HS: Quan sát, nghe giảng, ghi bài
GV: Gọi HS đứng tại chỗ giải thích
ý nghĩa từng câu lệnh
HS: Trả lời
Gv: Giới thiệu, phân tích cho học
sinh hiểu cách sử dụng kiểu mảng
trong chương trình, cách khai báo biến
mảng, cách nhập mảng, in mảng và
thao tác tìm max trong dãy số cho học
sinh hiểu rõ hơn về việc sử dụng kiểu
mảng (Trình chiếu)
HS: Quan sát, nghe giảng, ghi bài
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ếtthúc;
For i:=1 to N do Begin
Write(‘Phan tu thu ‘,i, ‘ =’); Readln(A[i]);
Trang 18csMax:= i;
End;
writeln(‘Gia tri cua p.tu max la:,’max);writeln(‘Chi so cua p.tu max la:’,max);readln
GV: Yêu cầu các em tự soạn thảo,
hiệu chỉnh chương trình trên và lưu
với tên TKnhinphan
HS: Bật máy thực hành
GV: Quan sát, hướng dẫn, sữa chữa
cho học sinh trong quá trình thực
hành
Thực hành
- Soạn thảo chương trình trên, tự hiệuchỉnh chương trình và nhập dữ liệu để kiểmtra quá trình thực hiện của chương trình
3 Củng cố và luyện tập (3 phút)
- Củng cố cho HS nắm chắc hai cách khai báo biến mảng một chiều:
Var <tên biến mảng>: array[kiểu chỉ số] of <kiểu phần tử>;
Hoặc
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>;
4 Hướng dẫn học sinh tự học ở nhà (2 phút)
- Học bài theo câu hỏi SGK, làm bài tập trong SBT, đọc trước ví dụ 2 SGK- T57
Trang 19Ngày giảng Lớp Sĩ số Tên HS vắ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ác định danh của phần tử kiểu mảng một chiều xuất hiện trong một CT;
- Biết cách khai bào kiểu mảng đơn giản với chỉ số kiểu miền con của kiểu nguyên
- Tạo được kiểu mảng một chiều và sử dụng biến mảng một chiều trong ngônngữ lập trình Pascal để giải quyết một số bài toán cụ thể đơn giản
- Hình thành kỹ năng cơ bản về sử dụng kiểu mảng trong cài đặt chương trình
- Các công việc liên quan trong kiểu mảng có liên quan đến câu lệnh For To Do
Trang 203 Về thái độ
- Tiếp tục xây dựng lòng ham thích lập trình, nhằm giải quyết các bài toán bằngmáy tính
- Có ý thức tự giác học tập và có tinh thần tập thể tham gia hoạt động nhóm
II CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH
- Học bài cũ và chuẩn bị bài mới
III TIẾN TRÌNH DẠY HỌC
1 Kiểm tra bài cũ (5 phút)
Câu hỏi
- Viết chương trình nhập vào mảng 1 chiều gồm 10 phần tử, đưa mảng vừa nhập
ra màn hình
2 Nội dung bài mới
Hoạt động của thầy và trò Nội dung bài giảng
Hoạt động 1: Tìm hiểu ví dụ 2
sắp xếp dãy số bằng tráo đổi (15
phút)
GV: Cùng học sinh đi phân tích các
yêu cầu của ví dụ 2 trong SGK Sắp
xếp dãy số bằng thuật toán tráo đổi
GV: Yêu cầu HS hãy cho biết Input
và Output của bài toán?
1 Kiểu mảng một chiều b) Một số ví dụ
Ví dụ 2: sắp xếp dãy số nguyên bằng
thuật toán tráo đổi.
+ Input: Số nguyên dương N và dãy Agồm N số nguyên dương a1, a2, …, an
+ Output: dãy A đựơc sắp xếp thành dãykhông giảm
Thuật toán:
B1: Nhập N và dãy a1, a2, …, an
Trang 21HS: trả lời
Gv: Nhận xét, kết luận
GV: Giới thiệu cho học sinh nhớ lại
thuật toán sắp xếp dãy số bằng tráo
đổi đã được học trong chương trình
Tin học lớp 10 Phân tích, giải thích
thuật toán cho học sinh hiểu
GV: Trình bày và giải thích chương
trình sắp xếp dãy số bằng tráo đổi
(Dùng màn hình lớn trình chiếu)
HS: Quan sát, nghe giảng, ghi bài
GV: Gọi HS đứng tại chỗ giải thích
ý nghĩa từng câu lệnh
HS: Trả lời
Gv: Giới thiệu, phân tích cho học
sinh hiểu cách sử dụng kiểu mảng
trong chương trình, cách khai báo biến
mảng, cách nhập mảng, in mảng và
thao tác sắp xếp dãy số bằng tráo đổi
(Sắp xếp tăng dần) trong dãy số cho
học sinh hiểu rõ hơn về việc sử dụng
B6: Nếu i > M thì quay lại B3;
B7: Nếu ai > ai+ 1thì tráo đổi ai và ai+ 1 chonhau;
For i:=1 to N do Begin
Write(‘Phan tu thu ‘,i, ‘ =’); Readln(A[i]);
End;
For j:=N downto 2 do For i:=1 to j – 2 do
If A[i] > A[i+1] then Begin
TG:=A[i];
Trang 22A[i]:=A[i+1];
A[i+1]:=TG;
End;
Writeln(‘Day so duoc sap xep la:’);
For i:=1 to N do writeln(A[i]):4);
ReadlnEnd
Hoạt động 2: Thực hành (15
phút)
GV: Tổ chức cho học sinh bật máy
tính thực hành chương trình trên
GV: Yêu cầu các em tự soạn thảo,
hiệu chỉnh chương trình trên và lưu
với tên TKnhinphan
HS: Bật máy thực hành
GV: Quan sát, hướng dẫn, sữa chữa
cho học sinh trong quá trình thực
hành
Thực hành
- Soạn thảo chương trình trên, tự hiệuchỉnh chương trình và nhập dữ liệu để kiểmtra quá trình thực hiện của chương trình
Trang 23Ngày giảng Lớp Sĩ số Tên HS vắng
- Biết có pháp khai báo kiểu dữ liệu có cấu trúc: Kiểu mảng một chiều
- Biết vận dụng kiến thức để xây dựng chương trình
- Học bài cũ và chuẩn bị bài mới
III TIẾN TRÌNH DẠY HỌC
1 Kiểm tra bài cũ (Kết hợp trong khi chữa bài tập)
Trang 242 Nội dung bài mới
Hoạt động của thầy và trò Nội dung bài giảng
Hoạt động 1 Chữa Bài 6 SGK- T79
(25 phút)
GV: Yêu cầu học sinh đọc nội dung
đề bài số 6
GV: Cùng học sinh đi phân tích các
yêu cầu của bài toán Yêu cầu học sinh
xác định bài toán? các yêu cầu của bài
HS: Quan sát, nghe giảng, ghi bài
GV: Để thực hiện được các yêu cầu
của bài toán ta sử dụng kiểu mảng một
chiều và áp dụng các câu lệnh của vòng
lặp thực hiện yêu cầu trên
GV: Hướng dẫn học sinh cách khai
báo, nhập n và nhập dãy số Đưa ra cách
tính số lượng số chẵn và số lẻ; Số lượng
số nguyên tố trong dãy
(Trình chiếu chương trình cho học
sinh quan sát), giải thích cho học sinh
hiểu cách thực hiện của các câu lệnh
trong chương trình
Bài 6 SGK- T79
PROGRAM BT6_T79;
VAR A: ARRAY[1 100] OF INTEGER;
N, I, U: INTEGER;
SO_NT, SO_CHAN: INTEGER;
BEGIN SO_CHAN:=0;
WRITE('NHAP LAI, SO PHAN TUCUA DAY A (N<=100), N= ');
READLN(N);
END;
FOR I:=1 TO N DO BEGIN
U:=2;
Trang 25HS: Quan sát, nghe giảng, ghi bài WHILE (U<= SQRT(A[I]))
AND ((A[I] MOD U) <>0) DO U:=U+ 1;
IF U> SQRT(A[I]) THEN SO_NT:= SO_NT+1;
READLNEND
Hoạt động 2: Thực hành (15 phút)
GV: Tổ chức cho học sinh thực hành
luôn chương trình vừa thực hiện được
HS: Bật máy thực hành, tự soạn thảo,
dịch và chạy chương trình để hiểu rõ
hơn cách hoạt động của các câu lệnh
trong chương trình
GV: Quan sát, hướng dẫn, sửa chữa
cho học sinh trong khi các em thực
hành Trình chiếu kết quả thực hành cho
học sinh quan sát và đối chiếu với bài
làm của mình
HS: Thực hành theo yêu cầu, đối
chiếu kết quả
Thực hành Soạn thảo chương trình của bài tập 6 Cho biết ý nghĩa của các câu lệnh trong chương trình
Trang 26- Soạn thảo, cách dịch, chạy CT
4 Hướng dẫn học sinh tự học ở nhà (2 phút)
- Yêu cầu về nhà trả lời và làm các bài tập liên quan đến mảng 1 chiều trong SGK
trang 79, 80 Tự thực hành lại (Nếu có điều kiện)
- Đọc và tìm hiểu trước Bài tập và thực hành 3 giờ sau học thực hành bài 3
Trang 27Ngày giảng Lớp Sĩ số Tên HS vắng
- Củng cố cho HS những hiểu biết về kiểu dữ liệu mảng;
- Cung cấp cho HS ba thuật toán cơ bản và đơn giản thường gặp với dữ liệu kiểumảng: Tính tổng các phần tử thoả mãn điều kiện nào đó; Đếm số các phần tử thoảmãn điều kiện nào đó; Tìm phần tử lớn nhất hay nhỏ nhất cùng vị trí của nó trongmảng; Giới thiệu hàm ramdom;
- Biết giải một số bài toán tính toán, tìm kiếm đơn giản trên máy tính
2 Về kĩ năng
- HS có được các kỹ năng cơ bản làm việc với kiểu mảng (một chiều) trong lậptrình, cụ thể là: Khai báo kiểu dữ liệu mảng; nhập dữ liệu cho mảng, đưa ra màn hìnhchỉ số và giá trị các phần tử của mảng; Duyệt qua các phần tử của mảng để xử lý từngphần tử;
- Biết chạy chương trình với một số chương trình có sẵn và biết giải một số bàitoán tính toán, tìm kiếm đơn giản
Trang 281 Giáo viên
- Giáo án, SGK, SGV, phần mềm quản lý phòng máy Netop school, nghiên cứutrước tài liệu tham khảo, nội dung bài tập thực hành, phòng máy, máy chiếu Projector(nếu có)
2 Học sinh
- Vở ghi, SGK, đồ dùng học tập
- Học bài cũ và chuẩn bị bài mới
III TIẾN TRÌNH DẠY HỌC
1 Kiểm tra bài cũ (Kết hợp trong khi thực hành)
2 Nội dung bài mới
Hoạt động của thầy và trò Nội dung bài giảng
Hoạt động 1 Tìm hiểu mục đích,
yêu cầu của bài thực hành (5 phút)
Gv: Giới thiệu cho học sinh biết
mục đích và yêu cầu của bài thực
GV: Nhắc lại cho học sinh nhớ lại
một số thao tác với mảng 1 chiều
Nhập mảng, khai báo mảng, đưa
mảng ra và một vài thao tác với mảng
sẽ áp dụng trong bài thực hành hôm
có sẵn.
- Biết giải một số bài toán tính toán, tìm kiếm đơn giản trên máy tính.
* Cách khai báo mảng
- 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>;
Hoạt động 2: Nội dung thực
Trang 29chương trình (ý a) bài 1 SGK- T63.
HS: Đọc SGK
GV: Cùng học sinh đi phân tích các
yêu cầu của bài tập thực hành
GV: Giới thiệu, hướng dẫn cho học
sinh cách khai báo sử dụng mảng
trong bài thực hành
HS: Quan sát, nghe giảng, ghi bài
GV: Giới thiệu cho học sinh về thủ
tục ramdomize khởi tạo lấy số ngẫu
nhiên trước khi dùng lênh ramdom(n)
để lấy số ngẫu nhiên trong phạm vi từ
0 đến (n-1)
GV: Đưa ra các câu hỏi và gợi ý
cho học sinh trả lời và thực hiện theo
yêu cầu (trình chiếu)
+ MyArray là tên biến hay tên một
GV: Thực hành, chiếu bài mẫu cho
học sinh quan sát cách thực hiện
chương trình
GV: Yêu cầu HS soạn thảo chương
trình, tự sửa lỗi, hiệu chỉnh, chạy thử
HS: Bật máy tính thực hành theo
nhóm đã được quy định
HS: Thực hành theo yêu cầu
GV: Quan sát, hướng dẫn học sinh
thực hành Chiếu kết quả bài làm cho
học sinh đối chiếu và so sánh với bài
của HS
HS: Thực hành theo yêu cầu
mỗi số có giá trị tuyệt đối không lớn hơn
300 Tính tổng các phần tử của mảnglà bội
số của một số nguyên dương k cho trước
a) Hãy tìm hiểu và chạy thử CT sau:
Write(‘Nhap n=’);
Readln(n);
For i:=1 to n do A[i]:=ramdom(300) – ramdom(300); For i:=1 to n do write(a[i]:5);
Trang 30GV: Yâu cầu HS thực hành theo
yêu cầu của ý b
HS: Thực hành theo yêu cầu
GV: Chi biết biến Posi và biến neg
có ý nghĩa như thế nào?
GV: Quan sát, hướng dẫn học sinh
thực hành Chiếu kết quả cho học
- Nhắc lại cách xây dựng và sử dụng biến mảng một chiều
- Thủ tục ramdomize khởi tạo lấy số ngẫu nhiên trước khi dùng lênh ramdom(n)
để lấy số ngẫu nhiên trong phạm vi từ 0 đến (n-1)
4 Hướng dẫn học sinh tự học ở nhà (2 phút)
- Học bài cũ và làm các bài tập 4.1 đến 4.8 SBT – 31+32
- Đọc trước bài 2 SGK- T 64 (bài thực hành 3)
Trang 31Ngày giảng Lớp Sĩ số Tên HS vắng
- Củng cố cho HS những hiểu biết về kiểu dữ liệu mảng;
- Cung cấp cho HS ba thuật toán cơ bản và đơn giản thường gặp với dữ liệu kiểumảng: Tính tổng các phần tử thoả mãn điều kiện nào đó; Đếm số các phần tử thoảmãn điều kiện nào đó; Tìm phần tử lớn nhất hay nhỏ nhất cùng vị trí của nó trongmảng; Giới thiệu hàm ramdom;
- Biết giải một số bài toán tính toán, tìm kiếm đơn giản trên máy tính
2 Về kĩ năng
- HS có được các kỹ năng cơ bản làm việc với kiểu mảng (một chiều) trong lậptrình, cụ thể là: Khai báo kiểu dữ liệu mảng; nhập dữ liệu cho mảng, đưa ra màn hìnhchỉ số và giá trị các phần tử của mảng; Duyệt qua các phần tử của mảng để xử lý từngphần tử;
- Biết chạy chương trình với một số chương trình có sẵn và biết giải một số bàitoán tính toán, tìm kiếm đơn giản
Trang 32- Giáo án, SGK, SGV, phần mềm quản lý phòng máy Netop school, nghiên cứutrước tài liệu tham khảo, nội dung bài tập thực hành, phòng máy, máy chiếu Projector(nếu có).
2 Học sinh
- Vở ghi, SGK, đồ dùng học tập
- Học bài cũ và chuẩn bị bài mới
III TIẾN TRÌNH DẠY HỌC
1 Kiểm tra bài cũ (Kết hợp trong khi thực hành)
2 Nội dung bài mới
Hoạt động của thầy và trò Nội dung bài giảng
Hoạt động 1 Thực hành Bài 2 ý
a SGK- 64 (25 phút)
GV: Yêu cầu HS thực hành theo
nội dung hướng dẫn:
+ Hãy soạn thảo chương trình (ý
GV: Thực hành, chiếu bài mẫu
cho học sinh quan sát cách thực hiện
chương trình
GV: Yêu cầu HS soạn thảo
chương trình, tự sửa lỗi, hiệu chỉnh,
n, i, j: Integer;
BEGIN WRITELN('Nhap so luong phan tu cua day so, N =');
READLN(N);
FOR i:= 1 TO N DO BEGIN
WRITELN ('Phan tu thu ', i, '= '); READLN(A[i]);
Trang 33HS: Thực hành soạn thảo nội
dung chương trình (ý a) Bài 2
SGK-64, Lưu tệp, hiệu chỉnh, chạy
chương trình với nhiều bộ Input
khác nhau
GV: Quan sát, hướng dẫn học
sinh thực hành Chiếu kết quả bài
làm cho học sinh đối chiếu và so
sánh với bài của HS
Hoạt động 2: Thực hành Bài 2 ý
b SGK- 64 (15 phút)
GV: Hãy soạn lại chương trình
trên để đưa ra các chỉ số của các
phần tử có cùng giá trị lớn nhất
GV: chia lớp thành các nhóm và
yêu cầu thực hiện theo yêu cầu
HS: Thực hành theo nhóm và
thực hiện các yêu cầu của GV
GV: Kiểm tra kết quả, đánh giá
b) Viết lại chương trình trên để đáp ứng yêu cầu sau: Đưa ra các chỉ số của các phần
tử có cùng giá trị lớn nhất.
3 Củng cố và luyện tập (3 phút)
- Nhận xét tiết thực hành
- Nhắc lại cách xây dựng và sử dụng biến mảng một chiều
- Hướng dẫn HS sử dụng cấu trúc rẽ nhánh, cấu trúc lặp và khai báo biến mảng
để viết chương trình cho bài tập 7 SGK- T79
4 Hướng dẫn học sinh tự học ở nhà (2 phút)
- Học bài cũ và làm bài tập 7 SGK - T79
- Đọc trước nội dung bài tập và thực hành 4 Giờ sau học thực hành
Trang 34Ngày giảng Lớp Sĩ số Tên HS vắng
- Biết nhận xét, phân tích, đề xuất thuật toán giải bài toán sao cho chương trìnhchạy nhanh hơn
Trang 35- Giáo án, SGK, SGV, Phần mềm quản lý phòng máy netop school, nghiên cứutrước tài liệu tham khảo, nội dung bài tập thực hành, phòng máy, máy chiếu Projector(nếu có).
2 Học sinh
- Vở ghi, SGK, đồ dùng học tập
- Học bài cũ và chuẩn bị bài mới
III TIẾN TRÌNH DẠY HỌC
1 Kiểm tra bài cũ (Kết hợp trong khi thực hành)
2 Nội dung bài mới
Hoạt động của thầy và trò Nội dung bài giảng
Hoạt động 1 Tìm hiểu mục đích,
yêu cầu của bài thực hành (5 phút)
Gv: Giới thiệu cho học sinh biết
mục đích và yêu cầu của bài thực
toán sắp xếp các phần tử của một dãy
(bằng tráo đổi) và biết vận dụng để
diễn đạt thuật toán này bằng CT sử
dụng dữ liệu kiểu mảng trên máy
tính
GV: Nhắc lại cho học sinh nhớ lại
một số thao tác với mảng 1 chiều và
mảng 2 chiều sẽ được áp dụng trong
bài khi thực hành về bài tập hôm nay
Nhập mảng, khai báo mảng, đưa
1 Mục đích, yêu cầu
- Củng cố cho HS những kiến thức và kỹ
năng khi lập trình với kiểu dữ liệu mảng;
- Củng cố cho HS một số thuật toán sắpxếp các phần tử của một dãy (bằng tráo đổi)
và biết vận dụng để diễn đạt thuật toán nàybằng CT sử dụng dữ liệu kiểu mảng trên máytính
- Biết nhận xét, phân tích, đề xuất thuậttoán giải bài toán sao cho chương trình chạynhanh hơn
* Cách khai báo mảng một chiều
- 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>;
* Cách khai báo mảng hai chiều
Trang 36mảng ra và một vài thao tác với mảng
sẽ áp dụng trong bài thực hành hôm
nay
HS: Quan sát, nghe giảng, ghi bài
- Cách 1: khai báo trực tiếp biến mảnghai chiều:
Var <tên biến mảng> = Array[kiểu chỉ
trình bài 1 (25 phút)
GV: Yêu cầu đọc đề đầu bài, nhắc
lại thuật toán sắp xếp bằng tráo đổi?
HS: Trả lời
GV: Thực hành, chiếu bài mẫu cho
học sinh quan sát cách thực hiện
chương trình
GV: Yêu cầu HS soạn thảo chương
trình, tự sửa lỗi, hiệu chỉnh, chạy thử
Randomize;
Readln(‘Nhap n=’);
Readln(n);
For i:=1 to n do A[i]:=random(300)-ramdom(300);
For i:=1 to n do write(A[i]:5);
Writeln;
For j:=n downto 2 do For i:=1 to j-1 do
If A[i]>A[i+1] then
Trang 37GV: Cho phép HS chạy thử CT để
kiểm tra kết quả
HS: Thực hành theo các yêu cầu
GV: Lưu chương trình với tên
mình_ bài 1T65_ lớp mình
Begin T:=A[i];
WritelnEnd
Hoạt động 3 Sửa đổi chương
trình (10 phút)
GV: Đưa ra một số câu hỏi, yêu
cầu học sinh suy nghĩ, trả lời và thực
hành
GV: Đoạn nào (gồm những câu
lệnh nào) thể hiện một lần tráo đổi
giá trị của hai phần tử liện kề của
mảng?
+ Phải đặt câu lệnh tăng biến Dem
ở đâu?
+ Khai báo biến đếm như thế nào?
+Khởi tạo biến Dem như thế nào?
HS: Suy nghĩ trả lời các câu hỏi
Thực hành theo yêu cầu
GV: Lưu chương trình với tên
mình_ bài 1_Yb_T65
b) Khai báo thêm biến nguyên Dem và
bổ sung vào CT những câu lệnh cần thiết để biến Dem tính số lần thực hiện tráo đổi trong thuật toán Đưa kết quả tìm được ra màn hình.
3 Củng cố và luyện tập (3 phút)
- Nhận xét, đánh giá tiết thực hành
- Nhắc lại thuật toán sắp xếp đơn giản.;
Trang 38- Mỗi bài toán có thể có nhiều cách viết thành một chương trình vì vậy cầnchọn cách có số phép tính ít nhất.
4 Hướng dẫn học sinh tự học ở nhà (2 phút)
- Xem lại Bài 1 đã học, đọc trước Bài 2 SGK- T66 Yêu cầu xem trước nội dungbài 2 trong bài bài tập và thực hành 4 giờ sau thực hành
Trang 39Ngày giảng Lớp Sĩ số Tên HS vắng
- Biết nhận xét, phân tích, đề xuất thuật toán giải bài toán sao cho chương trìnhchạy nhanh hơn
Trang 40- Giáo án, SGK, SGV, Phần mềm quản lý phòng máy netop school, nghiên cứutrước tài liệu tham khảo, nội dung bài tập thực hành, phòng máy, máy chiếu Projector(nếu có).
2 Học sinh
- Vở ghi, SGK, đồ dùng học tập
- Học bài cũ và chuẩn bị bài mới
III TIẾN TRÌNH DẠY HỌC
1 Kiểm tra bài cũ (Kết hợp trong khi thực hành)
2 Nội dung bài mới
Hoạt động của thầy và trò Nội dung bài giảng
Hoạt động 1 Tìm hiểu và soạn
thảo chương trình Bài 2 SGK- 66
(25 phút)
GV: Cùng học sinh đi phân tích
yêu cầu của bài toán
GV: Hãy đọc và tìm hiểu những
phân tích để viết CT giải bài toán
+ Yêu cầu HS đọc đề bài;
+ Yêu cầu HS soạn thảo CT (có
sẵn)
HS: Gõ và chạy thử CT;
GV: Yêu cầu HS sửa đổi CT bằng
cách: chọn Save As rồi mới sửa
GV: hướng dẫn, chỉ rõ cho HS tại
sao lại có được B[i] = B[i-1] + A[i];
Bài 2 SGK- T66.
Cho mảng A gồm n phần tử Hãy viết
CT tạo mảng B[1 n] trong đó B[i] là tổng của i phần tử đầu tiên của A.