Tiết 19 BÀI TẬP VÀ THỰC HÀNH 2 I. MỤC TIÊU BÀI HỌC 1. Về kiến thức Củng cố các kiến thức về cấu trúc rẽ 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 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 3. Về thái độ Có thái độ học tập tích cực, nghiêm túc. Tự giác trong thực hành, tận dụng thời gian thực hành. II. CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH 1. Giáo viên Giáo án, SGK, SGV, nghiên cứu trước tài liệu tham khảo, 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 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) GV: 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 1. Mục đích, yêu cầu Củng cố các kiến thức về cấu trúc rẽ 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ỉnh chương trình Hoạt động 2: Nội dung bài thực hành (35 phút) GV: Yêu cầu HS đọc thông tin SGK – Tr 49 để tìm hiểu về bộ số Pitago. HS: Đọc thông tin SGK. GV: Hãy cho ví dụ về bộ số Pitago? HS: Ví dụ 3 số: 3, 4, 5 lập thành bộ số Pitago vì: 32 + 42 = 52. GV: Để kiểm tra bộ ba số a, b, c bất 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 không? a2 = b2 + c2 b2 = a2 + c2 c2 = a2 + b2 GV: Đưa ra bài toán: Viết chương trình nhập từ bàn phím 3 số nguyên dương a, b, c và kiểm tra xem chúng có là bộ số Pitago hay không? Yêu cầu HS xác định InputOutput và xây dựng thuật giải cho bài toán. HS: Xác định InputOutput – xây dựng thuật giải của bài toán. GV: 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ổ hợ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 2. Nội dung a) Gõ chương trình sau: Bài toán. Bộ số Pitago 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? a2 = b2 + c2 b2 = a2 + c2 c2 = a2 + b2 Nội dung chương trình: program Pi_ta_go; uses crt; var a,b,c:integer; a2, b2,c2: longint; begin clrscr; write(a, b, c: ); readln(a,b,c); a2:=a; b2:=b; c2:=c; a2:=a2a; b2:=b2b; c2:=c2c; if (a2=b2+c2) or (b2=a2+c2) or (c2=a2+b2) then writeln(Ba so da nhap la bo so Pi_ta_go ) else writeln(Ba so da nhap khong la bo so Pi_ta_go ); readln end. b) Lưu chương trình với tên PITAGO lên đĩa c) 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. KQ: a,b,c: 3 4 5 Ba so da nhap la bo so Pi_ta_go d) Vào bảng Debug mở cửa sổ hiệu chỉnh để xem giá trị a2, b2, c2;
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)
GV: 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
1 Mục đích, yêu cầu
- Củng cố các kiến thức về cấu trúc rẽ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ỉnh
Trang 2kì 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
GV: 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
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 3HS: 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ổ
hợ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
- 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 (;)
Trang 4- 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 đãđược họ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
- 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
Câu lệnh rẽ nhánh
- Dạng thiếu:
Trang 6(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ử
dụng câu lệnh rẽ nhánh áp dụng để thực
hiện bài toán Pi-ta-go trong TP
If <điều kiện> then <câu lệnh>;
- Dạng đủ:
If <điều kiện> then <câu lệnh 1>
else <câu lệnh 2>;
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
HS: 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
Uses crt;
Var a, b, c: integer;
a2,b2,c2: longint;
Begin Clrscr;
Trang 7HS: 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
cò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
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 8đổi so với dữ liệu ở câu g.
HS: Quan sát, Thực hành
3 Củng cố và luyện tập (3 phút)
- Giáo viên nhắc lại cách sử dụng một số công cụ trong TP hỗ trợ cho việcthực hiện, theo dõi, thay đổi giá trị biến trong chương trình
+ Nhấn phím F7 để thực hiện từng câu lệnh chương trình;
+ 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ểm mảng giờ sau học lý thuyết
Trang 9Ngà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ộtCT;
- 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ểunguyê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
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ánbằng má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
1 Giáo viên
Trang 10- Giáo án, SGK, SGV, nghiên cứu trước tài liệu tham khảo, phòng máy, máychiếu hoặc màn hình lớn.
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ũ (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
SGK-T53 và CT Nhietdo_Nngay SGK- T54
(Trình chiếu).
GV: Qua hai ví dụ trên ta thấy được
rằ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
1 Kiểu mảng một chiều
Ví dụ Nhiệt độ trung bình của tuần.Nhiệt độ trung bình của ngày (SGK -T53+54)
- 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ó
- 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.
Trang 11cá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
GV: 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ề
mảng
HS: Quan sát, nghe giảng, 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 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ố];
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:
Trang 12GV: Nhận xét, đánh giá, kết luận.
Typemang=array[1 100] of integer;
Vara: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>;
- Tham chiếu đến từng phần tử của mảng một chiều được xác định bởi tênmảng cùng với chỉ số, được viết trong cặp dấu ngoặc [ ]
Trang 13Ngà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ộtCT;
- 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ểunguyê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
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ánbằng má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
Trang 14- 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
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 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
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)
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;
Trang 15Gv: 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
N, i, Max csmax: integer;
A: arrInt;
BeginWrite(‘Nhap so phan tu cua day so, N=’);Readln(N);
For i:=1 to N do Begin
Write(‘Phan tu thu ‘,i, ‘ =’);
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
Trang 16Type <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 T57
Trang 17SGK-Ngà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ộtCT;
- 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ểunguyê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
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ánbằng má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
Trang 18- 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ừanhậ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?
HS: 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)
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.B2: M ← N;
B3: Nếu M < 2 thì đưa ra dãy A đã được
SX rồi kết thúc;
B4: M ← M – 1; i ← 0;
B5 i ← i + 1;
B6: Nếu i > M thì quay lại B3;
B7: Nếu ai > ai+ 1thì tráo đổi ai và ai+ 1 chonhau;
Trang 19HS: 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ử
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];
A[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
3 Củng cố và luyện tập (3 phút)
Trang 21Ngà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)
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 Chữa Bài 6 SGK- T79
Trang 22GV: 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
WRITE('NHAP LAI, SO PHAN TUCUA DAY A (N<=100), N= ');
READLN(N);
END;
FOR I:=1 TO N DO BEGIN
Trang 23READLNEND.
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
3 Củng cố và luyện tập (3 phút)
- Cách khai báo mảng một chiều
- Nhập, in mảng một chiều
- Một vài thao tác với mảng 1 chiều
- 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 24Ngà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ệukiểu mả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ótrong mả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) tronglập trình, cụ thể là: Khai báo kiểu dữ liệu mảng; nhập dữ liệu cho mảng, đưa ramàn hình chỉ 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
2 Học sinh
- Vở ghi, SGK, đồ dùng học tập
Trang 25- 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
hành (35 phút)
GV: Yêu cầu HS đọc đề bài và
chươ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ừ
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:
Trang 26cho 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
GV: 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
sinh so sánh
GV: Lưu chương trình với tên
mình_ bài 1_ lớp mình
Begin Randomize;
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);
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 tinh la:’,s:8:4);
ReadlnEnd
b) Đưa các câu lệnh sau đây vào các
vị trí cần thiết nhằm sửa đổi CT trong câu a) để có được CT đưa ra số các số dương và số các số âm trong mảng:
posi, neg: integer;
- 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ênhramdom(n) để lấy số ngẫu nhiên trong phạm vi từ 0 đến (n-1)
Trang 274 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 28Ngà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ệukiểu mả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ótrong mả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) tronglập trình, cụ thể là: Khai báo kiểu dữ liệu mảng; nhập dữ liệu cho mảng, đưa ramàn hình chỉ 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
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
Trang 291 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,
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 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
Bài 2 SGK- 64
Viết chương trình tìm phần tử có giá trị lớnnhất của mảng và đưa ra màn hình chỉ số vàgiá trị của phần tử tìm được Nếu có nhiềuphần tử có cùng giá trị lớn nhất thì đưa ra phần
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, '= ');
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
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.
Trang 30phầ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á
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ếnmả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 31Ngà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ươngtrình chạy nhanh hơn
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
Trang 321 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
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
nay
HS: Quan sát, nghe giảng, ghi bài
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ênmáy tí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
- 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?
Const Nmax = 250;
Trang 33họ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ử
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
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 Begin
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
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.
Trang 34ở đâ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
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.;
- 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ộidung bài 2 trong bài bài tập và thực hành 4 giờ sau thực hành
Trang 35Ngà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ươngtrình chạy nhanh hơn
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
Trang 36Hoạ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];
GV: Tuy tốc độ tính toán của máy
tính nhanh nhưng có giới hạn Do
đó, trong khi viết chương trình, ta
nên tìm cách viết sao cho chương
trình thực hiện càng ít phép toán
càng tốt
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.
B[i]:=0;
For j:=1 to i do B[i]:=B[i]+A[j];
End;
{Ket thuc tao B}
For i:=1 to n do write(B[i]:5);
ReadlnEnd
Hoạt động 2 Kiểm tra đánh giá
cuối bài - chia lớp thành nhóm
ngồi theo máy tính (15 phút)
GV: Hãy thực hiện chương trình
trên bằng F7 (nhập vào n = 20),
quan sát sự rẽ nhánh và lặp
- Yêu cầu nhập giá trị n = 20 và quan sát
quá trình rẽ nhánh
Trang 374 Hướng dẫn học sinh tự học ở nhà (2 phút)
- Học và ôn lại bài cũ
- Đọc trước bài 12 SGK-T68 , giờ sau học lý thuyết
Trang 38Ngày giảng Lớp Sĩ số Tên HS vắng
- Biết một xâu là một dãy các kí tự, có thể coi xâu như một mảng một chiều;
- Biết kiểu xâu với một số hàm thủ tục chuẩn;
- Hiểu cách khai báo kiểu dữ liệu xâu
2 Về kỹ năng
- Biết khai báo kiểu dữ liệu xâu;
- Biết so sánh hai xâu;
- Nhận biết và bước đầu sử dụng được các hàm, các thủ tục chuẩn
3 Về thái độ
- 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
- Tiếp tục xây dựng lòng ham thích giải bài toán bằng lập trình trên MTĐT
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 thầy và trò Nội dung bài giảng
Hoạt động 1 Tìm hiểu kiến thức cơ
bản về kiểu xâu (7 phút)
GV: Giới thiệu về kiểu xâu cho học
sinh nắm được Dữ liệu trong các bài
toán không chỉ thuộc kiểu số mà cả kiểu
phi số - dạng ký tự Dữ liệu kiểu xâu là
* Khái niệm
- VD: Xâu đơn giản
- Xâu là một dãy kí tự trong bảng mãASCII Mỗi kí tự được gọi là một phần tửcủa xâu Số lượng kí tự trong xâu được gọi
là độ dài của xâu Xâu có độ dài bằng 0 gọi
Trang 39dãy các ký tự.
GV: Đưa ra VD về xâu đơn giản (trình
chiếu) Hãy cho biết khái niệm Xâu?
HS: Trả lời
GV: Tương tự như mảng một chiều,
để xây dựng và sử dụng kiểu xâu, các
NNLT có quy tắc và cách thức cho phép
xác định (Yêu cầu HS học SGK- T68)
HS: Nghe giảng, ghi bài
GV: Có thể hình dung xâu như mảng
một chiều Tham chiếu tới phần tử của
xâu được xác định bởi tên biến xâu và
chỉ số đặt trong cặp ngoặc [chỉ số]
+ Khi viết một xâu kí tự, ta phải viết
xâu kí tự đó giữa hai dấu nháy đơn
- HS: Quan sát, nghe giảng, ghi bài
là xâu rỗng
* Các NNLT có quy tắc và cách thứccho phép xác định:
+ Tên kiểu xâu+ Cách khai báo biến kiểu xâu+ Số lượng ký tự của xâu+ các phép toán thao tác với xâu+ Cách tham chiếu tới phần tử của xâu
* Có thể xem xâu là mảng 1 chiều màmỗi phần tử là một kí tự Các xâu đượcđánh số thứ tự thường bắt đầu là 1
- Cách tham chiếu tới phần tử của xâu:tên xâu[chỉ số];
- VD: Biến A lu trữ giá trị hằng xâu
'XUAN HUY'
A[3] cho ta kí tự ‘A’
Hoạt động 2 Tìm khai báo kiểu dữ
liệu xâu (10 phút)
GV: Để khai báo kiểu dữ liệu xâu ta
sử dụng tên dành riêng STRING, tiếp
theo là độ dài không quá 255 được ghi
trong cặp ngoặc [255]
HS: Nghe giảng, ghi nhớ
GV: Trình bày có pháp khai báo kiểu
dữ liệu xâu (viết bảng)
GV: Khi trong khai báo không có
phần khai báo độ dài thì biến đó có giá
trị ngầm định là 255
GV: Lấy ví dụ khai báo xâu?
HS: lên bảng viết ví dụ
1 Khai báo
VAR <Tên biến>: STRING [Độ dài
lớn nhất của xâu];
- VD:
VAR Ten: String [20];
- Trong mô tả xâu có thể bỏ qua phầnkhai báo độ dài
VAR Ghichu: String;
Hoạt động 3 Tìm hiểu các thao tác
tự ưu tiên thấp hơn phép ghép xâu
+ Xâu A là lớn hơn xâu B nếu như kí
2 Các thao tác xử lí xâu
a) Phép ghép xâu được sử dụng ghép nhiều xâu thành một xâu kí hiệu là dấu (+).
- VD: ‘abc’ + ‘ks’, Cho kết quả là
‘abcks’
Trang 40tự đầu tiên khác nhau giữa chúng kể từ
trái sang trong xâu A có mã ASCII lớn
thủ tục và hàm chuẩn (trình bày giải
thích chi tiết từng thủ tục và hàm
chuẩn-dùng bảng phụ hoặc máy chiếu)
xâu S1 vào xâu S2, bắt đầu từ vị trí vt
e) Hàm COPY(S., vt, N) Tạo xâu gồm N
kí tự liên tiếp bắt đầu từ vị trí vt của sâu S
f) Hàm LENGTH(S) Cho giá trị là độ
dài xâu S
g) Hàm POS(S1, S2) cho vị trí xuất hiện
đầu tiên của xâu S1, trong xâu S2
h) Hàm UPCASE (ch) cho chữ cái viết
hoa ứng với chữ cái trong ch
- Ví dụ chương trình đơn giản
‘TIN HOC’… ‘HINH HOC’
+ Hãy cho biết kết quả:
Giá trị st: ‘Mon Tin Hoc 10’;
Thao tác: DELETE(st, 4, 6 ); KQ?
- Nhóm 3:
+ Hãy cho biết kết quả:
a) Giá trị S1: ‘Lam Van’; S2: ‘thptxuan huy’
Thao tác: INSERT(S1, S2, 9); KQ?