Kĩ năng -Biết được các thành phần trong khai báo kiểu mảng một chiều; -Biết được định danh của một phần tử kiểu mảng một chiều xuất hiện trong một chương trình; -Biết cách khai báo mảng
Trang 1Ngày soạn: 2/12/2010 Tiết PPCT: 17
- Rèn luyện kĩ năng nhận xét, phân tích một bài toán.
II CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH
1 Chuẩn bị của giáo viên
- Nghiên cứu, hệ thống lại kiến thức, sách giáo khoa.
2 Chuẩn bị của học sinh.
- Sách giáo khoa, một số chương trình bài tập.
III HOẠT ĐỘNG DẠY – HỌC
1 Hoạt động 1: Nhắc lại kiến thức cũ đã học.
a Mục tiêu:
- Học sinh nhớ lại được các kiến thức lí thuyết đã học.
b Nội dung:
- Khái niệm về lập trình và ngôn ngữ lập trình.
- Có hai loại chương trình dịch: Biên dịch và thông dịch.
- Các thành phần của ngôn ngữ lập trình: Bảng chữ cái, cú pháp và ngữ nghĩa.
- Các khái niệm: Tên, hằng và biến, chú thích.
- Cấu trúc của chương trình Pascal: Phần khai báo và phần thân.
- Các kiểu dữ liệu chuẩn: Số nguyên, số thực, kí tự, logic.
Đặt câu hỏi gợi ý để học sinh tự nhắc lại
Chú ý, theo dõi trả lời các câu hỏi.
- Lập trình là quá trình diễn đạt thuật toán bằng một ngôn ngữ lập trình.
- Biên dịch và thông dịch.
- Bảng chữ cái, cú pháp và ngữ nghĩa.
- Khái niệm tên, hằng và biến, chú thích.
- Gồm hai phần: Phần khai báo và phần thân.
- Số nguyên, số thực, kí tự, logic.
- Phép toán số học, phép toán quan hệ,
Trang 2- Hàm bình phương, hàm căn bậc hai, hàm giá trị tuyệt đối, hàm sin, hàm cos.
Nhóm 1: Nêu câu hỏi phân tích.
Nhóm 2: Trả lời câu hỏi phân tích của
- Thu phiếu học tập, treo kết quả lên
bảng Gọi học sinh của nhóm khác nhận
1 Quan sát, theo dõi đề bài và định hướng của giáo viên để xác định bài toán.
- Nhóm 1:
+ Dữ liệu vào.
+ Dữ liệu ra.
+ Các nhiệm vụ chính phải thực hiện.
- Nhóm 2:
+ Số N + Điều kiện để có số chia hết cho
Trang 3xét đánh giá và bổ sung.
3 Chuẩn hóa kiến thức bằng chương
trình mẫu của giáo viên Thực hiện chương
trình, nhập dữ liệu để học sinh thấy kết quả
của chương trình.
- Nhận xét, đánh giá và bổ sung những thiếu sót của nhóm khác.
3 Theo dõi và ghi nhớ.
Củng cố
1 Những nội dung đã học.
- Giáo viên yêu cầu học sinh nhắc lại một số nội dung chính đã được ôn tập trong tiết học.
2 Câu hỏi và bìa tập về nhà.
- Chuẩn bị kiến thức cho tiết sau kiểm tra học kì 1: Xem lại toàn bộ các kiến thức đã được ôn tập, đặc biệt chú trọng cấu trúc lặp và rẽ nhánh kiểu mảng.
KIỂM TRA HỌC KÌ 1
1 MỤC TIÊU CẦN ĐÁNH GIÁ.
- Kiểm tra kết quả tiếp thu của học sinh từ đầu năm học đến nay.
- Đánh giá kĩ năng phân tích một bài toán và tư duy lập trình trên giấy.
- Có thái độ tự giác, tích cực trong làm bài kiểm tra.
2 MỤC ĐÍCH YÊU CẦU CỦA ĐỀ.
- Kiến thức: Học sinh nắm được các kiến thức về kiểu dữ liệu cơ bản, kiểu dữ liệu có cấu trúc Các hàm chuẩn thông dụng Cấu trúc vào/ra dữ liệu, cấu trúc rẽ nhánh và lặp.
- Kĩ năng: Có kĩ năng phân tích bài toán, viết chương trình.
3 CHUẨN BỊ.
- Giáo viên chuẩn bị đề kiểm tra.
- Học sinh chuẩn bị đầy đủ kiến thức đã được học, ôn tập.
4 NỘI DUNG ĐỀ BÀI VÀ ĐÁP ÁN.
- Cấu trúc đề: 2 câu kiểm tra hiểu lí thuyết, 1 câu lập trình, thời gian làm bài 45 phút, hình thức thi viết trên giấy.
- Nội dung đề:
Câu 1: Hãy phân biệt kĩ thuật biên dịch và thông dịch.
Câu 2: So sánh sự giống và khác nhau của cấu trúc For và While.
Cho chương trình có sử dụng cấu trúc For như sau:
Trang 4Câu 3: Viết chương trình nhập một mảng số nguyên dương N, đếm số phần tử chia hết cho 3 hoặc 5 trong dãy số từ 1 đến N.
Bước 1: Kiểm tra tính đúng đắn của lệnh tiếp theo trong chương trình nguồn.
Bước 2: Chuyển lệnh đó thành ngôn ngữ máy.
Bước 3: thực hiện các câu lệnh vừa được chuyển đổi.
(phù hợp với môt trường đối thoại giữa người và máy)
Câu 2: (4 điểm)
- giống: For và While đều cùng là cấu trúc lặp.
- Khác : For là cấu trúc lặp có số lần đã biết trước, ngược lại while ;à cấu trúc lặp có
If (i mod 3 = 0) OR (i mod 5 = 0) then dem:=dem+1;
write(‘so luong dem duoc la’,dem);
readln;
end.
Trang 5Ngày soạn:10/12/2010 TiếtPPCT 19
1 Chuẩn bị của giáo viên.
- Phòng máy vi tính, máy chiếu Projector để hướng dẫn.
2 Chuẩn bị của học sinh.
- Sách giáo khoa, sách bài tập và bài tập đã viết ở nhà.
III Hoạt đông dạy – học
1 Ổn định lớp, sỹ số
2 Bài mới
1 Gợi ý để học sinh nêu khái niệm về bộ
số Pitago.
- Yêu cầu: lấy một ví dụ cụ thể
- Hỏi : Để kiểm tra bộ ba số a, b, c bất kì
có phải là bộ Pitago, ta pahỉ kiểm tra các
đẳng thức nào?
2 Chiếu chương trình mẫu lên bảng.
thực hiện mẫu các thao tác: lưu, thực hiện
từng lệnh chương trình, xem kết quả trung
gian, thực hiện chương tình và nhập dữ
liệu.
- Yêu cầu học sinh gõ chương trình mẫu
vào máy.
- Yêu cầu học sinh lưu chương trình lên
đĩa với tên Pytago.pas.
- Yêu cầu học sinh thực hiện từng lệnh
của chương trình.
1 Theo dõi dẫn dắt cuả chọ sinh để nêu khái niệm về bộ số Pitago: Tổng bình phương của hai số bằng bình phương của
Trang 6- Yờu cầu học sinh xem cỏc kết quả a2,
- Quan sỏt quỏ trỡnh rẽ nhỏnh của từng
bộ dữ liệu vào và trả lời.
Củng cố: Về nhà xem lại cỏc nội dung thực hành đồng thời xem trước nội dung phần
tiếp theo để hụm sau ta thực hành tiếp.
1 Chuẩn bị của giỏo viờn.
- Phũng mỏy vi tớnh, mỏy chiếu Projector để hướng dẫn.
2 Chuẩn bị của học sinh.
- Sỏch giỏo khoa, sỏch bài tập và bài tập đó viết ở nhà.
III Hoạt đụng dạy – học
1 Ổn định lớp, sỹ số
2 Bài mới
Trọng tõm: Rốn luyện kĩ năng lập trỡnh hoàn thiện một bài toỏn
1 Nêu nôi dung, mục đích, yêu cầu cảu
bài toán.
- Hỏi : Bớc đầu tiên để giải bài toán ?
- Hỏi : Để xác định ta phải đặt các câu
hỏi nh thế nào? Gọi học sinh đặt câu hỏi và
gọi học sinh trả lời cho câu hỏi đó?
- Yêu cầu học sinh phác họa thuât toán.
2 Yêu cầu học sinh gõ chơng trình vào
máy.
- Giáo viên tiếp cận từng học sinh để
h-ớng dẫn và sửa sai.
3 Yêu cầu học sinh nhập dữ liệu.
1 chú ý theo dõi vấn đề đặt ra của giáo viên.
- Xác định input output và thuật giải.
- Mục đích của giải phơng trình?
+ Kết luận số nghiệm và giá trị nghiệm x.
- Để tính đợc nghiệm x cần các đại lợng nào?
Trang 7- Nhập dữ liệu với test 1 2 -2
4 Yêu cầu học sinh xác định các testcase,
nhập dữ liệu, đối sánh kết quả.
thông báo kết quả của hcơng trình.
4 Tìm testcase.
0 0 VNV
0 3 VN
2 3 -1.5 Nhập dữ liệu và thông báo kết quả.
IV Đánh giá cuối bài.
1 Những nội dung đã học
Các bớc để hoàn thành một chơng trình.
- Phân tích bài toán để xác định dữ liệu vào, dữ liệu ra, thuật toán.
- Soan chơng trình vào máy.
- Lu dữ chơng trình.
- Biên dịch.
- Thực hiện và hiệu chỉnh chơng trình.
Trang 8Ngày soạn: 16/12/2010 PPCT: 21
§11 KIỂU MẢNG (Tiết 1)
I Mục đích, yêu cầu
1 Kiến thức
-Biết được một kiểu dữ liệu mới là kiểu mảng một chiều
-Biết được một loại biến có chỉ số;
-Biết cấu trúc tạo mảng một chiều, cách khai báo biến kiểu mảng một chiều
2 Kĩ năng
-Biết được các thành phần trong khai báo kiểu mảng một chiều;
-Biết được định danh của một phần tử kiểu mảng một chiều xuất hiện trong một chương trình;
-Biết cách khai báo mảng đơn giản với chỉ số miền con của kiểu nguyên;
-Biết cách tham chiếu đến các phần tử của mảng một chiều
3 Tư duy và thái độ:
Tự giác, tích cực, chủ động và sáng tạo trong tìm kiếm tri thức
IV Hoạt động dạy học
1 Hoạt động 1: Khởi động bài mới
Hoạt động của GV Hoạt động của HS Nội dung ghi bảng
1 Nêu bài toán mở đầu Y/cầu
hs đọc, tìm hiểu chương trình
giải quyết bài toán đó Và trả lời
các câu hỏi sau:
- Nhận giá trị nhiệt độcủa 7 ngày trong tuần
Cùng kiểu thực (real)
- dem: để đếm số
ngày tron tuần có nđộlớn hơn nđộ trungbình
- Để kiểm tra lần lượtcác ngày, nđộ ngàynào lớn hơn nđộ trungbình
2 Bản chất thuật toán
không có gì thay đổinhưng việc viếtchương trình gặp khókhăn do cần dùng rấtnhiều biến và đoạncác câu lệnh tính toán
Trang 93 Để khắc phục hạn chế trên
người ta thường ghép chung 7
biến trên thành một dãy và đặt
cho nó chung 1 tên và đánh cho
chiều và kiếu mảng hai chiều
4 Y/cầu hs tham khảo sgk và
hỏi: Em hiểu như thế nào về
tử cùng kiểu dữ liệu
Các ptử trong mảngcùng tên và phân biệtnhau bởi chỉ số
- Trả lời:
+ Kiểu của các p/tử
+ Cách đánh số cácp/tử
BÀI 11 KIỂU MẢNG 1.Kiếu mảng một chiều
a K/n mảng một chiều
Mảng một chiều là dãy hữu hạncác phận tử cùng kiểu dữ liệu.Các ptử trong mảng cùng tên vàphân biệt nhau bởi chỉ số
Để mô tả mảng một chiều, ta cần xác định:
+ Kiểu của các p/tử
+ Cách đánh số các p/tử
2 Hoạt động 2:Tạo kiểu mảng một chiều và khai báo biến mảng
Hoạt động của GV Hoạt động của HS Nội dung ghi bảng
1 Y/cầu hs tìm hiểu phần khai
báo một lời giải khác cho bài
toán trên trong trường hợp tổng
quát (N ngày), có sử dụng mảng
1 chiều
Hỏi: Chỉ ra phần khai báo mảng
trong phần khi báo của chương
-Khái quát hoá, ta có cú pháp
khái báo biến mảng một chiều
Dòng 2 : Kbáo biến
mảng Nhietdo qua kiểu
mảngLắng nghe và ghi chép
3 Suy nghĩ và trả lời Var Dhs2: array
Var Nhietdo: Kmang1;
b Khai báo (Có hai cách)
+ Kbáo gián tiếp: (sgk)+ Kbáo trực tiếp: (sgk)
Ví dụ 1:
Var Nhietdo: array [1 Max]
Of real;
Ví dụ 2: Khai báo mảng tối đa
100 số nguyên (chỉ số đầu tiên
là 1)
Ta có các cách sau:
Trang 103 Y/cầu cho ví dụ khai báo
mảng?
Gọi hs khác: Ý nghĩa của khai
báo bạn vừa viết?
.ArrayReal
.301 phần tử.Real
a[2] p/tử ở vị trí thứ 2của mảng a
a[i] p/tử ở vị trí i củamảng a
hs trả lời câu hỏi
+ Những khai báo nào là đúng?
+ Biến a trong khai báo trên
chiếm dung lượng bộ nhớ là bao
array[-of boolean;
+ Trả lời: a chiếm 400byte trong bộ nhớ
Type
Arrayr = array[1 200] of
integer;Arrayr = array[byte] of real;Arrayb = array[-100 100] of
Trang 11IV Hoạt dộng dạy học
1 Hoạt động 1: Kiểm tra bài cũ
1 Trình bày các cách khai báo kiểu mảng
trong NNLT Pascal?
2 Khai báo mảng gồm N số nguyên
(N500) (theo 2 cách: trực tiếp và gián tiếp)
Gọi lần lượt hs trả lời
Gọi hs khác nhận xét Nội dung trên bảng
Đánh giá, cho điểm
Hs1: Đứng tại chổ trả lời Hs2: (lên bảng)
Const N = 500;
C1: Var M : array[1 N] of integer;
C2: Type Mnguyen = array[1 N] of
Hoạt động của GV Hoạt động của HS Nội dung ghi bảng
1 Nêu đề bài toán (ghi bảng)
Y/cầu hs xác định In/Output
của bài toán
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
+ Tính tổng
Bài 1: Viết CT tạo mảng A gồm
N (N100) số nguyên Tính tổngcác phần tử của mảng là bội của
một số nguyên dương k cho
trước
Trang 12- Y/cầu hs khác lên viết phần
khai báo các biến đó?
5 Tiếp tục y/cầu hs lên viết
phần chương trình tạo giá trị
cho các ptử của mảng A (lưu
thêm gì không? (GV bổ sung)
- Y/cầu hs khác lên viết đoạn
chương trình còn lại?
** Chuẩn hoá lại chương trình
* Chạy thử chương trình với 1
bộ giá trị:
4 suy nghĩ và trả lời
- mảng Abiến đơn: N, k, S
Đứng tại chổ n/xét,(bổ sung nếu sai sót)
6 Chú ý sự dẫn dắt
vấn đề của gv, suynghĩ và trả lời: Sửdụng cấu trúc lặp For
write(‘phan tu thu ’,i,’ =’); readln(A[i]);
Hãy đưa các câu lệnh đó vào những vị trí thích hợp trong chương trình bài 1, để có được
chương trình đưa ra số các số dương và số các số âm trong mảng
Trang 13b Các bước tiến hành:
Hoạt động của GV Hoạt động của HS Nội dung ghi bảng
(Treo bảng) chứa Nội dung câu
lệnh cần thêm vào chương trình ở
lệnh vào cho phù hợp để chương
trình đếm được số dương, số âm
3 Y/cầu hs lên hoàn chỉnh lại
chương trình?
** Chuẩn hoá lại chương trình
* Chạy thử chương trình với 1 bộ
- Đếm số dương hoặcđếm số âm
- Số các số dương, sốcác số âm
2 Chỉ ra vị trí cần bổ
sung và các câu lệnhcần loại bỏ bớt
{tao mang}
For i:=1 To n Do begin
write(‘phan tu thu ’,i,’
Else if A[i]<0 Then
am := am + 1;Writeln(duong: 4, am:4);
IV Củng cố bài học
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
Trang 14Ngày soạn: 02/1/2011 PPCT: 23
§11 KIỂU MẢNG (Tiết 3)
I Mục đích, yêu cầu
1 Kiến thức:
- Khai báo kiểu, biến mảng một chiều, cách tham chiếu dến các p/tử trong mảng
- Củ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.
3 Tư duy và thái độ:
-Rèn luyện tác phong, tư duy lập trình, tự giác , tích cực, chủ động và sáng tạo trong tìm kiếm kiến thức
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
1 Hoạt động 1: 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
Gọi hs khác nhận xét
Đánh giá cho điểm
2 hs lên bảng trình bàyNhận xét
2 Hoạt động 2: 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 GV Hoạt động của HS Nội dung ghi bảng
1 Nêu bài toán, y/cầu hs xác
định In/Output của bài toán
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
Out: dãy A không giảm
2.Thuật toán
B1: Nhập N, dãy A ;B2: jN;
B3: nếu j<2 thì đưa radãy đã được sắp xếp,KT;
Trang 15(với mỗi giá trị j, i lần lượt nhận
các giá trị từ 1 đến j-1)
+ 2 j N, 1 i
j-1+ i phụ thuộc theo j
3 Hoạt động 3: Vận dụng kiểu dữ liệu mảng một chiều để mô tả t/toán trên trong Pascal
Hoạt động của GV Hoạt động của HS Nội dung ghi bảng
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ì?
- Tạo mảng là làm những gì?
- 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 mảng A đã sắpxếp ra màn hình
2 Lên bảng trình bàytừng Nội dung
- mảng A, biến đơn N, i,j
- Nhập sl p/tử của mảng
và nhập giá trị cho cácp/tử trong mảng
For i:=1 To n Do begin
write(‘phan tu thu ’,i,’
{dua ra mang da sap xep}
Writeln (‘Mang da duocsap xep ’);
-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
Trang 16-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])
- 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 haichiều
- Thực hiện được việc tính toán các phần tử trong mảng hai chiều
3 Tư duy, thái độ
- Xây dựng lòng yêu thích giải toán bằng lập trình trên máy tính
- Luôn muốn cải tiến chương trình nhằm nâng cao hiệu quả chương trình
IV Hoạt động dạy học
1 Hoạt động 1: Kiểm tra bài cũ
Viết CT tạo và in ra màn hình mảng A gồm
n phần tử 10 phần tử Mỗi phần tử là một số
nguyên Cho biết có bao nhiêu phần tử trong
mảng có giá trị bằng số nguyên k
2 Hoạt động 2: Tìm hiểu ý nghĩa của mảng hai chiều.
Đặt vấn đề: Ở tiết trước, chúng ta đã tìm hiểu cách khai báo mảng, cách tạo mảng và truy cập đến một phần tử trong mảng một chiều Hôm nay, chúng ta sẽ tìm hiểu các vấn đề đó đối với mảng hai chiều.
Hoạt động của GV Hoạt động của HS Nội dung ghi bảng
- GV yêu cầu HS xem bảng nhân
- Với cách lưu trữ như vậy, ta
phải khai báo bao nhiêu biến
mảng?
- Khai báo như vậy có những hạn
- Xem bảng nhân ởSGK trang 59
- Sử dụng 9 mảng mộtchiều, mỗi mảng lưumột hàng của bảng
- TL: Khai báo 9 biếnmảng một chiều
- TL: Phải khai báo
§11 KIỂU MẢNG (tiết 4)
2 Kiểu mảng hai chiều:
a Xét bài toán: Bảng nhân
(SGK)
Trang 17tử Như vậy, ta có thể biểu diễn
bảng nhân bằng kiểu dữ liệu
mảng hai chiều
- Yêu cầu HS nhận xét về 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?
nhiều biến, chươngtrình phải viết nhiềulệnh để tạo và in giá trịcủa mảng
- Chú ý lắng nghe
- TL: Nếu coi mỗi hàngcủa mảng hai chiều làmột phần tử thì ta có thểcoi mảng hai chiều làmảng một chiều mà mỗiphần tử của nó là mảngmột chiều
- HS trả lời
- Tham khảo SGK vàtrả lời
* Khái niệm mảng hai chiều:(SGK)
Hoạt động của GV Hoạt động của HS Nội dung ghi bảng
- 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
- TL: Tênbiến[chỉ số]
b Khai báo:
C1: Trực tiếp:
Var <tênbiếnmảng>:array [kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu phần tử>;
C2: Gián tiếp:
Type <tên kiểu mảng> = array[kiểu chỉ số hàng, kiểu chỉ số cột] of <kiểu ptử>;
Var <tên biến mảng>:<tên kiểu mảng>;
i) A[i,j] phần tử ở hàng i, cột j của mảng A
Trang 18đến số 81 trong bảng nhân?
- TL: B[9,9] = 81
ii) B[9,9] phần tử ở hàng 9, cột 9 của bảng nhân B
4 Hoạt động 4: Tìm hiểu cách viết chương trình đơn giản.
Hoạt động của GV Hoạt động của HS Nội dung ghi bảng
- 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
program Tao_in_mang; var i, j, m, n: integer;
A: array [1 100,1 100] ofinteger;
for j := 1 to n do write (A[i , j]:4);
Trang 19- 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.
Bài tập
I Mục tiêu:
1 Về kiến thức: Củng cố các kiến thức về:
- Các quy tắc kiểu dữ liệu có cấu trúc để thực hiện dữ liệu thực tế
- Kiểu dữ liệu có cấu trúc được xây dựng từ những kiểu dữ liệu cơ sở theo một số cáchthức tạo kiểu do ngôn ngữ lập trình Pascal quy định
- Mỗi kiểu dữ liệu có cấu trúc thường hữu ích trong việc giải quyết một số bài tập
- Trong ngôn ngữ Pascal dùng mô tả kiểu dữ liệu mới với từ khoá Type
2 Về kĩ năng:
- Rèn luyện kĩ năng khai báo kiểu dữ liệu có cấu trúc (với Pascal, sử dụng thành thạocác từ khoá Var, Type)
- Sử dụng thành thạo các thao tác vào/ ra và các phép toán trên các thành phần cơ sở
3 Về tư duy và thái độ:
IV Tiến trình hoạt động:
Hoạt động 1: Giải bài tập số 6 trang 79 Sách GK Tin học lớp 11
trong dãy thì tìm số lượng số lẻ
được hay không? - Nếu được
thì tìm bằng cách nào?
- Trả lời:
Kiểu mảng một chiều:
Var A:array [1 100] ofinteger;
- Trình bày lên bảng:
TL: Chia hết cho 2.
- Nếu có số lượng sốchẵn trong dãy thì tìm sốlượng lẻ bằng cách: n -
số lượng số chẵn
Chính xác hoá bài 6/tr79
Trang 20Hoạt động của GV Hoạt động của HS Ghi bảng
H4: Sử dụng câu lệnh nào để
viết?
- Yêu cầu HS hoàn thành
chương trình của câu a
- Nhận xét, chỉnh sửa bài làm
của HS
HĐTP 2:
H1: Nêu thuật toán kiểm tra 1
số có phải là số nguyên tố hay
không?
- Yêu cầu HS viết chương
trình dựa theo thuật toán
+ Hoạt động 2: Giải bài tập 7 trang 79 Sách GK Tin học lớp 11
- Yêu cầu HS liệt kê 6 số hạng
đầu của dãy Fiponaci
- Gợi ý: Để viết chương trình
này ta cần bao nhiêu biến phụ?
H3: sử dụng câu lệnh nào
trong bài này?
- Yêu cầu HS viết chương
Cấu trúc lệnh: While do và For do
Về nhà làm các bài tập tiếp theo
*************************
Trang 21BÀI THỰC HÀNH SỐ 3 I.Mục tiêu:
1.Kiến thức:
- Củng cố lại kiến thức cơ bản về kiểu dữ liệu mảng, cụ thể là mảng một chiều.Qua đó cung
cấp cho học sinh các thuật toán cơ bản thường gặp với kiểu dữ liệu mảng
2.Kĩ năng:
- Rèn luyện cho học sinh một số kĩ năng làm việc với mảng như:
+Khai báo kiểu dữ liệu mảng một chiều,
+ Nhập/ xuất dữ liệu,
+Duyệt qua các phần tử của mảng,
-Qua đó giúp học sinh biết cách giải một số bài toán cơ bản thường gặp như:
+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 đó,
+Một số chương trình cài sẵn trong USB hoặc đĩa mềm,
+Máy chiếu hoặc bảng phụ,
-Hướng dẫn học sinh các bước thực hiện một số chương trình
IV.Tiến trình bài dạy:
Hoạt động 1: Kiểm tra bài cũ
Câu hỏi: Có mấy cách khai báo mảng một chiều? Cho ví dụ
Hoạt động học sinh Hoạt động giáo viên Ghi bảng
-Lắng nghe câu hỏi
-Học sinh trả lời câu
hỏi Cả lớp theo dõi,
nhận xét
-Nêu câu hỏi
-Gọi học sinh lên trả lời
-Giáo viên nhận xét, chođiểm
Có hai cách khai báo:
a/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ử>;
b/ 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ểumảng >;
Trang 22Sau đó đặt câu hỏi cho họcsinh trả lời
+ Khai báo uses CRT; có ýnghĩa gì?
+Myarray là tên kiểu dữliệu hay tên biến?
+Vai trò của nmax và n có
gì khác nhau?
+Những dòng lệnh nàodùng để tạo biến mảng a
-Giáo viên giới thiệu hàmRandom cho học sinh.Sau
đố đặt câu hỏi:
+ a[i] := Random(300) –Random (300) có ý nghĩagì?
+ Lệnh for i:=1 to n do Write ( a[i] : 5);
Có ý nghĩa gì?
+Lệnh For-do cuối cùngthực hiện nhiệm vụ gì?
+Lệnh gán s := s + a[i] ;được thực hiện bao nhiêulần?
-Thực hiện lại chương trình
-Khai báo thư viện chương trìnhcon CRT để sử dụng được thủ tụcClrscr;
- Myarray : tên kiểu dữ liệu
- nmax: số phần tử tối đa có thểchứa của biến mảng a,
n: số phần tử thực tế của a
-Random(n): cho số ngẫu nhiên từ
0 đến n-1
Trang 232/HĐTP2: Sửa
chương trính câu a/ để
được chương trình giải
quyết bài toán câu b/
-Quan sát bảng phụ,
theo dõi và trả lời các
câu hỏi của GV
+Nếu a[i] > 0 thì cộng
a[i] vào posi; ngược lại
nếu a[i] < 0 thì cộng a[i]
là gì?
+Hướng dẫn học sinh
thêm vào vị trí cần thiết để chương trình đếm được số lượng các số âm và các số dương
+Chạy thử chưong trình đểhọc sinh theo dõi kết quả
+posi : đếm số dương trong mảng.+neg: đếm các số âm trong mảng
-Gợi ý , hướng dẫn họcsinh thuật toán tìm phần tửlớn nhất và vị trí của nó
Trang 24-Theo dõi, suy nghĩ để
nắm thuật toán
-Đọc đoạn chương trình
sgk Liên hệ trả lời các
câu hỏi mà GV nêu ra
+Sửa a[i] > a[j] ; thành
Hỏi HS:
+ Nếu muốn tìm phần tửnhỏ nhất thì cần sửa ở chỗnào?
+Nếu muốn tìm phần tửlớn nhất với chỉ số lớn nhấtcủa nó thì ta sửa ổ chỗnào?
-Chạy thử chưong trìnhcho học sinh theo dõi
-Theo dõi học sinh thựchiện chương trình và xemkết quả
Hoạt động 4: Củng cố
-Nhắc lại cho học sinh một số kiến thức về:
+ Tính tổng các phần tử các phần tử thoả mãn một điều kiện nào đó
+ Đếm số các phần tử thoả mãn một điều kiện nào đó
+ Tìm phần tử lớn nhất/ bé nhất
BTVN- Viết một chương trình nhập một mảng một chiều, đếm số phần tử nhỏ hơn một số k
nào đó
Trang 25- 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
IV Tiến hành dạy học
1 Hoạt động 1: Nhắc lại kiến thức đã học liên quan bài thực hành
Hỏi 1: Nêu cách khai báo kiểu mảng 1
End;
2 Hoạt động 2: Xác định bài toán và tìm hiểu chương trình
1 Chiếu đề bài lên bảng.
2 Xác định bài toán
Y/cầu hs xác định dữ liệu
vào/ra của bài toán?
3. Gv minh hoạ bài toán:
- Chiếu thuật toán đã được
liệt kê các bước
4 Tìm hiểu chương trình
1 Quan sát đề và lằng
nghe câu hỏi của gv
2 Trả lời câu hỏi.
- Vào: mảng A
- Ra: mảng A đã sắpxếp
3 Theo dãy số minh
họa, nhớ lại thuật toánsắp xếp đã học
- Nhắc lại thuật toán
- Quan sát, đối chiếuthuật toán liệt kê với CT(SGK)
Đề: Sắp xếp dãy số nguyên bằng
thuật toán tráo đổi với các giá trịkhác nhau của n số
CT( SGK/65)
Trang 26- Vai trò của biến i, j trong
CT?
- Đoạn lệnh nào thực hiện
tráo đổi giá trị 2 phần tử liền
3 Hoạt động 3: Chạy CT câu a
- Yêu cầu hs tự nhập dữ liệu
với CT có sẵn
- Giúp hs phát hiện và sữa lỗi
- Thuật toán trên tiến hành
đưa số lớn thứ j về đến vị trí j
sau mỗi vòng lặp:
For i:= 1 to j-1 do
- Chạy CT, nhập dữliệu, xm kết quả
- Chỉnh sữa CT thôngqua các thông báo lỗi
- Chú ý hiểu rõ thêm vềCT
4 Hoạt động 4: Xác định bài toán câu b
1 Xác định bài toán.
- Y/cầu hs xác I/O bài toán?
- Biến Dem được tăng lên khi
nào?
- Cần đưa câu lệnh tăng Dem
vào chỗ nào trong CT trên?
- Câu lệnh khởi tạo Dem:= 0
được đặt vào vị trí nào trong
+ Trước 3 CL tráo đổi
+ Sau 3 CL tráo đổi
- Sau CL cuối CT nên đưa CL
nào vào để hiển thị giá trị
biến Dem ra màn hình
1 Xác định bài toán:
+ I: mảng a;
+O: mảng a đã sắp xếp,
số lần tráo đổi (Dem);
TL: Khi A[i] > A[i+1]
(tức là biểu thức đktrong CL If đúng)
TL: Trong thân CL If:
trước hoặc sau 3 lệnhtráo đổi
TL: Chọn một trong hai
phương án 3, 4
Đề: Khai báo biến đếm nguyên
Dem và bổ sung vào chươngtrình những câu lệnh cần thiết đểbiến Dem tính số lần tráo đổitrong chương trình
Trang 274 Hoạt động 5: Sữa CT câu a để giải bài toán câu b.
- Yêu cầu hs sữa lại CT theo
IV Tiến hành dạy học
1 Hoạt động 1: Ôn lại kiến thức chuẩn bị thực hành
Hỏi 1: cách khai báo kiểu mảng 1 chiều.
Hỏi 2: (tuỳ từng lớp)
Tl: có 2 cách
+ gián tiếp:
+ trực tiếp:
2 Hoạt động 2:(13') Nêu đề bài toán và tìm hiểu
1 Ghi đề bài lên bảng.
2 Tìm hiểu đề
Y/cầu hs xác định dữ liệu
vào/ra của bài toán?
3. Gv lấy ví dụ minh hoạ
CT tạo ra mảng B[1 n], trong đó B[i]
là tổng của i phần tử đầu tiên củamảng A
Trang 28Ban đầu: mọi B[i] = 0
Hỏi: mỗi B[i] được tạo
mới bằng bao nhiêu?
Tóm lại: B[i] = A[1] +
…+ A[i]
=
i j=1[ ]
b[i]: =0;
for j:=1 to i do b[i]:=
B1: tạo mảng A
B2: xd mảng B theo A
B3: In mảng B
3 Hoạt động 3: (5')Tối ưu chương trình
1 Dựa vào phần phân
Trang 29thuật toán tối ưu Đối với
bài toán này theo phân
trình được cải tiến
{tùy đối tượng hs}
3 Nhìn bảng, tự điều
chỉnh hành vi nhậnthức
Đoạn CT cải tiến: Sgk
4 Hoạt động 4: (20') Hs thực hành trên máy theo nhóm
1 Y/cầu hs nhập CT cải
tiếnvào máy
2 Theo dõi quá trình
t/hiện của hs Giải quyết
3 Tự lấy Input để
chạy lại CT
5 Hoạt động 5: Củng cố, uốn nắn những sai sót thường gặp của Hs.
6 Hoạt động 6: Dặn dò: Xem, chuẩn bị trước bài 12: Kiểu xâu
- Biết được một kiểu dự liệu mới, biết được khái niệm kiểu xâu
- Phân biệt được sự giống và khác giữa kiểu mảng với kiểu xâu
- Biết được cách khai báo biến, nhập/xuất dữ liệu, tham chiếu dến từng kí tự của xâu
- Biết các phép toán liên quan đến xâu
2 Về kĩ năng
- Khai báo được biến kiểu xâu trong ngôn ngữ lập trình Pascal
- Sử dụng biến xâu và các phép toán trên xâu để giải quyết một bài toán đơn giản
3 Tư duy, thái độ
- Có thái độ nghiêm túc trong học tập, làm việc khoa học và có hứng thú giải các bài toán bằnglập trình
II Chuẩn bị của GV và HS
Trang 301 GV: Máy vi tính, Máy chiếu để giới thiệu ví dụ.
2 HS: SGK.
III Phương pháp
Thuyết trình, vấn đáp
IV Tiến trình bài học
Hoạt động 1: Kiểm tra bài cũ và khởi động bài mới
Ghi câu hỏi lên bảng
Phát vấn HS tại chỗ
Y/c HS khác nhận xét
Chính xác hóa nội dung
'Viet Nam' là dữ liệu kiểu
Câu hỏi:
Định nghĩa mảng một chiều vàcách khai báo
'Viet Nam' có phải là dữ liệu kiểumảng một chiều không, Vì sao?
Hoạt động 2: Tìm hiểu về dữ liệu kiểu xâu
lượng ký tự của mỗi xâu
Giới thiệu cách tham chiếu
phần tử
Trả lờiNhận xétHình thành khái niệmXâu
Cho VDTrả lời
Bài 12: KIỂU XÂUKhái niệm (SGK)
Tương tự kiểu mảng
Hoạt động 3: Khai báo dữ liệu kiểu xâu và các thao tác xử lí xâu
- Hỏi: Ý nghĩa của từ
BeginSt:='A' + 'B';
Trang 31Nhắc lại những nội dung đã học:
- Khai báo biến
- Nhập xuất gá trị cho biến xâu
- Tham chiếu từng kí tự trong xâu
- Bước đầu sử dụng được một số hàm, thủ tục thông dụng về xâu
- Có thể cài đặt được một số chương trình đơn giản có sử dụng xâu
3 Tư duy, thái độ
-Rèn luyện tác phong, tư duy lập trình, tự giác , tích cực, chủ động và sáng tạo trongtìm kiếm kiến thức
II Chuẩn bị của GV và HS:
Diễn giải, dùng bảng để ghi lại các chi tiết quan trọng trong ví dụ
IV Tiến trình bài học.
Hoạt động 1:
Tổ chức lớp: Ổn định và kiểm tra sĩ số
Các bước tiến hành:
Kiểm tra bài cũ
- Gọi HS :
Câu 1: Xâu là gì? Cách khai
báo biến xâu
- HS trả lời câu hỏi
Trang 32HĐ GIÁO VIÊN HĐ HỌC SINH NỘI DUNG
giáo viên đưa ra một ví dụ
minh hoạ theo sgk
- Xâu gồm một kí tự trống
được viết như thế nào? số
lượng kí tự là bao nhiêu?
ĐVĐ: Bấy giờ chúng ta sẽ đi
sâu hơn về các chức năng của
các hàm và thủ tục trong xâu
- Ý nghiã của hàm Length(b)?
chú ý quan sát trênbảng
Val(St,x,m) Đổi giá trị xâu
St thành số ghi giá trị vào biến
X, nến không đổi được thì vị trígây lỗi ghi trong m, nếu đổithành công thì m = 0
Bảng phụ chứa ví dụ 1Ues crt;
Var a, b: string;
Begin Clrscr;
Write(‘ nhap ho ten thu nhat: ‘); Realn (a);
Write(‘ nhap ho ten thu hai: ‘); Realn (b);
If length(a)>length(b) then Write(a) else writer(b);Realn
End
Trang 33HĐ GIÁO VIÊN HĐ HỌC SINH NỘI DUNG
Em nào có thể giải thích câu
TL: cho thấy hàmlength() có thể thamchiếu đến từng kí tự
cử một xâu thông qua
vị trí của nó
TL: Xâu b được tạothành từ một xâurỗng qua phép ghépxâu
Quan sát trên bảng
Bảng phụ chứa ví dụ 2Bảng phụ chứa ví dụ 3
Bảng phụ chứa ví dụ 4
Bảng phụ chứa ví dụ 5
Hoạt động 3:
Củng cố:
Nhắc lại một số hàm và thủ tục liên quan đến xâu
Nhắc lại cấu trúc câu lệnh
- Các quy tắc kiểu dữ liệu có cấu trúc để thực hiện dữ liệu thực tế
- Kiểu dữ liệu có cấu trúc được xây dựng từ những kiểu dữ liệu cơ sở theo một số cáchthức tạo kiểu do ngôn ngữ lập trình Pascal quy định
- Mỗi kiểu dữ liệu có cấu trúc thường hữu ích trong việc giải quyết một số bài tập
- Trong ngôn ngữ Pascal dùng mô tả kiểu dữ liệu mới với từ khoá Type
2 Về kĩ năng:
Trang 34- Rèn luyện kĩ năng khai báo kiểu dữ liệu có cấu trúc (với Pascal, sử dụng thành thạocác từ khoá Var, Type).
- Sử dụng thành thạo các thao tác vào/ ra và các phép toán trên các thành phần cơ sở
3 Về tư duy và thái độ:
H1) Nhắc lại cấu trúc khai báo biến mảng một chiều? hai chiều?
H2) Nhắc lại cách thức khai báo biến xâu?
3 Nội dung
Dẫn dắt vấn đề: Chúng ta đã được tìm hiểu về 2 kiểu dữ liệu có cấu trúc là kiểu mảng vàkiểu xâu Trong tiết học hôm nay chúng ta sẽ vận dụng để giải quyết một số bài tập cơbản
GV: Nhắc lại một số
kiến thức cơ bản: khai
báo mảng? khai báo xâu?
Tham chiếu?
Gv: chuẩn xác hoá câu
trả lời của hs
Hs trả lời câu hỏi
Ghi nhớ lại kiến thức
*Gián tiếp:
Type <tên kiểu mảng> = array[kieu chi
so, kiểu chỉ số cột] of <kiểu phần tử>;Var <tên biến mảng>: <tên kiểu mảng>;
Tham chiếu: Tên_biến[chi số phần tử]
Kiểu xâu:
Khai báo: Var <tên biến xâu>:string[độ
Trang 35Yêu cầu hs tìm hiểu bài
tâp 6 SGK Phân tích và
viết chương trình cho bài
toán này
Gv: Gợi ý cho hs thực
hiện từng bước sau:
+ Phân tích bài toán, mô
tả dữ liệu bài toán
+ trả lời câu hỏi: thế nào
với yêu cầu b: Đếm số
lượng số nguyên tố trong
dãy A
Tìm hiểu bài tập 2:
Gv phân tích, hướng dẫn
Viết chương trình hoàn
chỉnh nếu còn thời gian
Đọc kỹ và phân tích bàitoán
Hs xác định bài toán, dựđoán các kiểu dữ liệu chođối tượng có trong bàitoán
đứng tại chổ trả lời câuhỏi
Viết đoạn chương trìnhdưới sự hướng dẫn củagv
Theo dõi, ghi chép
Hs thực hiện các bướctương tự câu a
đọc kỹ bài tập 2 SGK)
(BT10-theo dõi và ghi nhận
dài lớn nhất của xâu];
hoặc Var <tên biến xâu>:string;
Tham chiếu: tên_biến[chỉ số phần tử];
B Bài tập
Bt1) Bài tập 6 –SGK trang 79Chương trình:
Readln(n);
For i:=1 to n do Begin
Writeln(‘so chan:’,sochan:3,’so le:’,sole:3);
{so nguyen to}
J:=2;
For i:=1 to n doWhile j<= sqrt(a[i]) and (a[i] mod 2
<>0) do j:=j+1;
If j> sqrt(a[i]) then sonto:=sonto+1;Writeln(‘ so nguyen to:’, sonto:3);Readln
End
Bt2) bài tập 10 trang 80-SGKChương trình:
Var s: string[100];
dem,i: integer;
Begin Write(‘nhap xau ki tu S:’);
Readln(S);
Trang 36For i:=1 to length(s) do
If (0<=s[i]) and (s[i]<=9) then dem:=dem+1;
Writeln(‘trong xau S so’,dem:3,’chu so’);
ReadlnEnd
Củng cố: Nắm chắc 2 kiểu dữ liệu có cấu trúc, cách thức khai báo, tham chiếu
Về nhà: Đọc trước bài số 13: Kiểu bản ghi.
Củng cố cho học sinh những kiến thức về xâu ký tự, đặc biệt là các hàm và thủ tục liên quan
Nắm được một số thuật toán cơ bản : tạo xâu mới, đếm số lần xuất hiện 1 ký tự…
2- Kỹ năng :
Khai báo được biến kiểu xâu
Nhập, xuất giá trị cho biến xâu
Duyệt qua được tất cả các ký tự của xâu
Sử dụng được các hàm và thủ tục chuẩn
3- Thái độ : Tự giác, tích cực, chủ động trong thực hành.
II.Chuẩn bị của giáo viên và học sinh:
GV: - Phòng máy vi tính đã được cài đầy đủ Turbo Pascal.
Tổ chức trong phòng máy để HS có được kỹ năng cơ bản khi làm việc với kiểu xâu
HS: SGK, bài tập chuẩn bị sẵn ở nhà
III.Phương pháp dạy học:
Gợi mở, vấn đáp kết hợp hoạt động nhóm
IV.Tiến trình bài dạy:
Hoạt động 1: Tìm hiểu một chương trình, đề xuất phương án cải tiến
Hoạt động của học sinh Hoạt động của giáo viên Nội dung
HĐTP1: Tìm hiểu đề bài:
- Giới thiệu nội dung đề bài
lên bảng
- GV diễn giải: Một xâu
được gọi là Palidrom nếu ta
đọc các ký tự từ phải sang trái
sẽ giống khi đọc từ trái sang
Trang 37* Kiểm tra 1 xâu có phải
Palidrom hay không?
*In ra: ‘ xau la Palidrom’
‘xau khong la Palidrom’
- HS nhận xét
- Quan sát GV thực hiện
chương trình, nhập dữ liệu và
kết quả của chương trình
Hoạt động 2: Tìm hiểu chương
- Gọi 2 HS trả lời
- Gọi HS khác nhận xét
- GV chính xác
- Chạy chương trình trên máy chủ
để HS kiểm nghiệm suy luận củamình
- Chú ý theo dõi yêu cầu của
GV và trả lời 1 số câu hỏi
-Thực hiện soạn thảo chương
trình vào máy theo yêu cầu
cải tiến của GV
- Nhập dữ liệu vào và thông
* Nhận xét về các cặp ở vị trí đốixứng nhau trong một xâuPalidrom?
* Ký tự thứ i đối xứng với ký tự
vị trí nào?
* Cần phải so sánh bao nhiêu cặp
ký tự trong xâu để biết được xâu
đó là Palidrom?
* Dùng cấu trúc lặp nào để sosánh ?
- Gọi HS trả lời
Trang 38- GV chính xác
- Yêu cầu HS chi tiết hoá bằngcác câu lệnh để có 1 chương trìnhchạy đúng
- Yêu cầu HS nhập dữ liệu chosẵn của GV và thông báo kết quả -Xác nhận những bài làm có kếtquả đúng và sửa sai cho HS có kếtquả sai
Hoạt động 2: Rèn luyện kỹ năng lập trình
- Quan sát đề và xác định
những công việc cần thực
hiện
- Nhóm 1:
* Dữ liệu vào, dữ liệu ra
của bài toán?
* Nêu các nhiệm vụ chính
cần thực hiện khi giải
quyết bài toán
* Cấu trúc dữ liệu phải sử
* Ra: Dãy các số ứng với
sự xuất hiện của mỗi loại
ký tự trong xâu
* Nhiệm vụ: Duyệt từ trái
sang phải, thêm 1 đơn vị
-Thực hiện soạn thảo
chương trình vào máy theo
yêu cầu của GV
- Nhập dữ liệu vào và
thông báo kết quả cho GV
HĐTP1: GV giới thiệu đề bài
- GV nêu mục đích của bài toán
- Chia lớp thành 2 nhóm:
* Nhóm 1: Đặt các câu hỏi phân tích.
* Nhóm 2: Trả lời các câu hỏi phân
- Yêu cầu HS nhập dữ liệu cho sẵn của
GV và thông báo kết quả -Xác nhận những bài làm có kết quảđúng và sửa sai cho HS có kết quả sai
Bài 2: SGK trang 73
Trang 39Hoạt động 3: Rèn luyện kỹ năng tìm kiếm và thay thế sự xuất hiện 1 từ bằng 1 từ khác trong một xâu văn bản
- HS trả lời
- HS nhận xét
-HS về nhà chuẩn bị
- GV giới thiệu đề bài
- GV hướng dẫn: Tìm vị trí xâu con
“anh” trong xâu st đã cho, xoá xâu con này đi rồi chèn xâu “em” vào vị trí đó
Lặp đi lặp lại điều này cho đến khi
không tìm thấy xâu “anh” cần thay thế
trong xâu st nữa
* Các hàm và thủ tục chuẩn đã biết đốivới kiểu xâu có thể tìm được vị trí xuấthiện 1 xâu con, xoá 1 xâu con, chèn 1xâu con không?
- Gọi HS trả lời
- Gọi HS khác nhận xét
- GV chính xác
- GV cùng HS thống nhất 1 dàn ýchương trình và yêu cầu HS về nhà chitiết hoá bằng các câu lệnh để có 1chương trình chạy đúng
Bài 3: SGK trang 73
Hoạt động 3: củng cố
Nắm được một số thuật toán đơn giản liên quan đến xâu ký tự :
Kiểm tra một xâu đối xứng
Tìm tần suất xuất hiện của các ký tự có trong xâu
Đọc trước nội dung bài kiểu dữ liệu tệp– thao tác với tệp
- Biết được khái niệm về bản ghi
- Biết được các khai báo bản ghi, gán giá trị, truy cập trường của bản ghi
2 Về kỹ năng:
- Khai báo được kiểu bản ghi, khai báo được biến kiểu bản ghi
- Nhận biết được trường (thuộc tính) của một biến bản ghi
3 Về tư duy và thái độ:
- Biết quy lạ về quen
- Phát triển tư duy logic từ mảng một chiều và kiểu xâu
- Tích cực học tập, lắng nghe bài giảng
- Cẩn thận, chính xác trong lập luận
Trang 40II)CHUẨN BỊ:
Giáo viên: Giáo án, đồ dùng dạy học, bảng phụ
Học sinh:Sách giáo khoa, sách bài tập, bài cũ, bài mới
III)PHƯƠNG PHÁP: Gợi mở vấn đáp, thuyết trình diễn giải.
IV)TIẾN TRÌNH BÀI HỌC:
1.Hoạt động1: Kiểm tra bài cũ:
Hoạt động của học sinh Hoạt động của giáo viên Ghi bảng
2.Hoạt động2: Giới thiệu bài mới
Hoạt động học sinh Hoạt động của giáo viên Ghi bảng
-Học sinh thực hiện
H1: Cho học sinh quan sátbảng kết quả điểm thi trang 74SGK
Cho học sinh kết luận
về những thông tin trong đó,
từ đó kết luận kiểu dữ liệu
H2: Chỉnh sửa, giới thiệu vềtrường, đối tượng, thuộc tínhcủa đối tượng, từ đó đi vàonội dung bài mới
3.Hoạt động3: Khai báo kiểu bản ghi
Hoạt động của học sinh Hoạt động của giáo viên Ghi bảng
-Chính xác hoá nội dung
H2:Yêu cầu học sinh khai báokiểu bản ghi, kiểu biến bảnghi cho bảng kết quả thi trang
*Lưu ý: Nếu A là biến kiểu
bản ghi, X là tên trường, đểtham chiếu đến trường X
ta viết: A.X