Giáo án Tin học Lớp 11 - Tiết 32: Bài tập
A – Mục tiêu học tập.
- Về kiến thức:
• Củng cố khai báo mảng, duyệt, truy cập các phần tử của mảng.
• Biết khai báo xâu, duyệt, truy cập các phần tử của xâu.
• Luyện tập các dạng bài tập về cấu trúc dữ liệu mảng và xâu.
- Về kỹ năng:
• Cài đặt được thuật toán của 1 số bài toán đơn giản với kiểu dữ liệu mảng 1 chiều.
• Thực hiện được khai báo mảng, truy cập, tính toán các phần tử của mảng.
• Sử dụng được 1 số hàm, thủ tục thông dụng về xâu.
- Về thái độ:
• Rèn luyện cho học sinh một ý thức cần có của người lập trình.
• Học sinh có thái độ đúng đắn, nghiêm túc khi học và làm bài tập lập trình.
- Phát triển tư duy Tin học: Rèn luyện tính sáng tạo, áp dụng Tin học vào nhiều lĩnh vực khác nhau của đời sống xã hội.
- Giáo dục tư tưởng: Giúp học sinh say mê, ham học hỏi môn Tin học.
B- Chuẩn bị phương tiện, đồ dùng học tập
Phương pháp: Thuyết trình + vấn đáp + giảng giải.
Phương án 1: Sử dụng máy chiếu Projector, máy vi tính để dạy.
Phương án 2: Sử dụng bảng, mẫu vẽ sẵn.
GIÁO ÁN BÀI TẬP TIẾT 32: BÀI TẬP A – Mục tiêu học tập. - Về kiến thức: Củng cố khai báo mảng, duyệt, truy cập các phần tử của mảng. Biết khai báo xâu, duyệt, truy cập các phần tử của xâu. Luyện tập các dạng bài tập về cấu trúc dữ liệu mảng và xâu. - Về kỹ năng: Cài đặt được thuật toán của 1 số bài toán đơn giản với kiểu dữ liệu mảng 1 chiều. Thực hiện được khai báo mảng, truy cập, tính toán các phần tử của mảng. Sử dụng được 1 số hàm, thủ tục thông dụng về xâu. - Về thái độ: Rèn luyện cho học sinh một ý thức cần có của người lập trình. Học sinh có thái độ đúng đắn, nghiêm túc khi học và làm bài tập lập trình. - Phát triển tư duy Tin học: Rèn luyện tính sáng tạo, áp dụng Tin học vào nhiều lĩnh vực khác nhau của đời sống xã hội. - Giáo dục tư tưởng: Giúp học sinh say mê, ham học hỏi môn Tin học. B- Chuẩn bị phương tiện, đồ dùng học tập Phương pháp: Thuyết trình + vấn đáp + giảng giải. Phương án 1: Sử dụng máy chiếu Projector, máy vi tính để dạy. Phương án 2: Sử dụng bảng, mẫu vẽ sẵn. C- Tiến trình lên lớp I. Ổn định lớp Thời gian: 1’ - Kiểm tra sĩ số: II. Kiểm tra bài cũ Thời gian: GV: Chữa bài tập trắc nghiệm phần mảng và xâu kí tự đã giao cho học sinh về nhà làm. ( 18’) III. NỘI DUNG BÀI TẬP. NỘI DUNG BÀI TẬP TG Hoạt động của giáo viên và học sinh. Bài 1: Nhập vào 1 dãy số nguyên gồm n phần tử. Đếm xem trong dãy có bao nhiêu số chẵn. Dem:=0; For i:=1 to N do If A[i] thỏa điều kiện then Dem:=Dem+1; Program Demx; Uses Crt; Var A: Array[1..200] of Real; x:Real; i,n,dem:integer; BEGIN clrscr; Write('Nhap vao so phan tu cua mang n='); Readln(n); dem:=0; {Nhap tung phan tu cua mang} For i:=1 to n do Begin Write('A[',i,']='); Readln(A[i]); end; Write('Nhap gia tri cua x='); Readln(x); {in mang} For i:=1 to n do write(A[i]:8:3); Writeln; {Dem x} dem:=0; For i:=1 to n do if A[i]=x then dem:=dem+1; Write('So lan xuat hien cua ',x:8:3,'la ',dem); Readln; Readln; END. Bài 2: Nhập vào từ bàn phím 1 xâu. In xâu vừa nhập ra màn hình. Thay thế tất cả các cụm kí tự ‘anh’ bằng cụm kí tự ‘em’. Program timkiem; Uses crt; Var st: String; i, vt:integer; BEGIN Clrscr; Write('Nhap vao xau st='); Readln(st); write('Xau ban dau:', st); Writeln; While pos('anh', st)0 do Begin vt:=pos('anh',st); Delete(st,vt,3); insert('em',st,vt); end; Write(st); Readln; END. 10’ 15’ GV: Ví dụ: N=6 5 4 2 3 4 9 GV: Theo em 1 số chẵn phải thỏa mãn điều kiện gì? HS: Số chẵn là số chia hết cho 2. GV: Để kiểm tra 1 số có chia hết cho 2 không em làm thế nào? HS: 1 số chia hết cho 2 thì phần dư của nó =0. GV: Thể hiện điều kiện? HS: A[i] mod 2 =0 GV:Theo các em muốn đếm số lần xuất hiện của các số chia hết cho 2 ở trên thì em sẽ làm thế nào? Ta chờ đợi ở học sinh đưa được ra những nhận xét sau: HS: Ta dùng biến Dem kiểu nguyên để đếm số lần xuất hiện của số chẵn. Ðầu tiên ta gán Dem:=0, sau đó duyệt từng phần tử A1, A2, ..., An, mỗi khi có một phần tử chia hết cho 2 thì tăng biến Dem lên một đơn vị. GV: Vậy để thể hiện ý tưởng thuật toán trên trong Pascal thì em sử dụng những lệnh nào? HS: Hai lệnh chính của thuật toán là: Dem:=0; For i:=1 to N do If A[i] mod 2=0 then Dem:=Dem+1; GV: Tiếp tục đưa ra Ví dụ, đếm trong dãy số A có bao nhiêu số 0, ta viết: Dem:=0; For i:=1 to N do if A[i]=0 then Dem:=Dem+1; Writeln(‘ Có ‘, Dem , ‘ số không ‘); Nhận xét: Ðẳng thức A[i] mod 2 =0 ( hay A[i]=0 ) là điều kiện để biến Dem được tăng thêm 1, vậy bài toán trên có thể mở rộng là: hãy đếm số phần tử của mảng A thỏa mãn một điều kiện cho trước. Trong lệnh For ở trên, khi thay đẳng thức A[i] mod 2=0 bằng A[i] thỏa điều kiện , ta được thuật toán tổng quát hơn : GV:Gợi ý học sinh viết chương trình theo sự hướng dẫn: B1: Khai báo 1 mảng A nguyên gồm n phần tử. B2:Nhập mảng, in mảng lên màn hình. B3: Dem:=0; For i:=1 to N do If A[i] mod 2=0 then Dem:=Dem+1; B4: Đưa biến đếm ra màn hình. GV: Chờ đợi học sinh về nhà hoàn thành chương trình như sau: HS: Hoàn thành. BTVN: Viết chương trình nhập một mảng A có N phần tử, in mảng A lên màn hình, và đếm xem mảng A có bao nhiêu số dương, bao nhiêu số âm, bao nhiêu số chẵn, bao nhiêu số lẻ, bao nhiêu số nguyên tố, số chính phương. GV: Để thay thế tất cả các cụm từ ‘anh’ bằng cụm từ ‘em’ thì em làm thế nào? HS: Chúng ta có thể làm 1 cách tự nhiên như sau: Tìm vị trí xâu con ‘anh’ trong xâu st đã cho, xóa 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ây ‘anh’ cần thay thế trong xâu st nữa. GV: Để làm điều đó thì em dùng những hàm, thủ tục chuẩn nào? HS: Tìm 1 xâu: Hàm Pos. Xóa 1 xâu: Thủ tục chuẩn Delete Chèn 1 xâu: Thủ tục chuẩn Insert GV: Hướng dẫn. {Phần khai báo} Begin {Nhập xâu St} {Chừng nào còn tìm thấy xâu con ‘anh’ trong xâu St còn làm 3 việc sau: Tìm vị trí bắt đầu của xâu ‘anh’. Xóa xâu ‘anh’ vừa tìm thấy. Chèn xâu ‘em’ vào xâu st tại vị trí trước đây xuất hiện xâu ‘anh’. {In xâu St kết quả} End. GV: Mong đợi học sinh chi tiết hóa dàn ý trên để có được chương trình như sau: IV. CỦNG CỐ, DẶN DÒ. 1’ Yêu cầu học sinh về hoàn thiện các bài ở trên để chuẩn bị tốt cho bài kiểm tra 1 tiết.
File đính kèm:
- GIÁO ÁN BÀI TẬP.doc