Giáo án Tin học Lớp 11 - Học kì 2

docx 95 trang hoanvuK 09/01/2023 1790
Bạn đang xem 20 trang mẫu của tài liệu "Giáo án Tin học Lớp 11 - Học kì 2", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • docxgiao_an_tin_hoc_lop_11_hoc_ki_2.docx

Nội dung text: Giáo án Tin học Lớp 11 - Học kì 2

  1. Tuần: 20 Tiết: 20 Ngày dạy:01/01/2018 đến 07/01/2018 BÀI 11. KIỂU MẢNG I. MỤC TIÊU 1. Về kiến thức - Hiểu khái niệm mảng một chiều. - Hiểu cách khai báo và truy cập đến các phần tử của mảng. 2. Về kĩ năng - Cài đặt được thuật toán giải một số bài toán đơn giản với kiểu dữa liệu mảng một chiều. - Thực hiện khai báo mảng, truy cập, tính toán, đếm các phần tử trong mảng. 3. Về thái độ - Thái độ nghiêm túc trong học tập. - Chủ động tìm hiểu kiến thức mới. 4. Năng lực hướng tới: - Khai báo biến dữ liệu hợp lý. Hiểu nguyên lý lưu dữ liệu một cách có cấu trúc. II. CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH 1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng, 2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết, III. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP 1. Ổn định lớp 2. Kiểm tra bài cũ (không) 3. Tiến trình bài học ❖ HOẠT ĐỘNG 1: Hoạt động khởi động: (1) Mục tiêu: Tạo động cơ để học sinh hiểu được cách sử dụng và khai báo được biến mảng. (2) Phương pháp/kĩ thuật dạy học: Cá nhân, thảo luận nhóm. (3) Phương tiện dạy học: SGK, Projector, máy tính. (4) Học sinh có nhu cầu mong muốn được học cách khai báo biến mảng Nội dung hoạt động Hoạt động của giáo viên Hoạt động của học sinh - Trong thực tế, các kiểu dữ liệu chuẩn không thể - Nghe giảng. đáp ứng đủ biểu diễn của các bài toán lớn. Vì thế, dựa trên các kiểu dữ liệu đó người lập trình có thể tạo ra các kiểu dữ liệu phức tạp hơn để giải quyết các bài toán trong thực tế. (?) Các em hãy tham khảo bài toán sách giáo - Tham khảo sách giáo khoa và trả lời: khoa trang 53 và cho biết cần nhập thông tin gì? Input: Nhập vào nhiệt độ trung bình của Và dữ liệu đưa ra là gì? 7 ngày t1, t2, t3, t4, t5, t6, t7; Output: Nhiệt độ trung bình của tuần tb, và số ngày vượt mức trung bình dem;
  2. - Nhận xét, như vậy nếu muốn tính nhiệt độ - Trả lời: phải khai báo từ t1 t365. trung bình của n ngày (365 ngày) thì sẽ gặp phải những khó khăn gì? Để giải quyết vấn đề đó, ta sử dụng kiểu mảng một chiều để mô tả dữ liệu đó - Hôm nay chúng ta sẽ tìm hiểu khái niệm mảng 1 chiều. ❖ HOẠT ĐỘNG 2: Hình thành kiến thức (1) Mục tiêu: Giúp học sinh biết được khái niệm về mảng một chiều, cách khai báo mảng một chiều, hiểu cách nhập và in mảng một chiều. (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích. (3) Hình thức tổ chức hoạt động: Làm việc cá nhân. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh nắm được khái niệm về bảng, cách khai báo biến mảng một chiều, hiểu cách nhập và in mảng một chiều, hiểu được một số ví dụ giải bài toán về mảng một chiều. Nội dung hoạt động Hoạt động giáo viên Hoạt động học sinh Nội dung trình bày (?) Các em hãy tham khảo sách - Tham khảo sách giáo 1. Kiểu mảng một chiều giáo và cho biết khi làm việc khoa và trả lời. Mảng một chiều là một dãy hữu với mảng 1 chiều cần xác định hạn các phần tử có cùng kiểu dữ những gì? liệu. - Nhận xét. - Nghe giảng và ghi * Khi làm việc với mảng một bài. chiều ta cần xác định được: + Tên mảng; + Số lượng phần tử; + Kiểu dữ liệu; + Cách khai báo; + Cách tham chiếu đến một phần tử nào đó trong mảng. - Cho ví dụ để học sinh hiểu - Ghi ví dụ. Ví du: A rõ hơn về mảng 1 chiều. 5 8 7 1 Chỉ số 1 2 3 4 (?) Với mảng một chiều vừa - Suy nghĩ trả lời. + Tên mảng: A cho ta xác định được gì? + Số lượng phần tử: 4 - Nhận xét. - Ghi bài. + Kiểu dữ liệu: Số nguyên + Tham chiếu đến PT thứ 3, ta viết A[3]. - Đối với các biến trong NNLT - Ghi mục bài. 2. Khai báo khi sử dụng thì bắt buộc chúng
  3. ta phải khai báo, và đối với biến mảng 1 chiều chúng ta cũng phải khai báo. Cách khai báo thế nào thầy và cả lớp cùng tìm hiều phần 2. Khai báo mảng 1 chiều. - Đối với mảng một chiều ta có 2 cách khai báo. - Nghe giảng và ghi Cách 1. Khai báo trực tiếp bài. VAR : array[ ] of ; Ví dụ: - Bên cạnh đó ta có cách khai VAR A: array[1 10] of real; báo thứ hai. - Nghe giảng và ghi Cách 2. Khai báo gián tiếp bài. TYPE = array[ ] of ; VAR : ; Ví dụ: TYPE nhietdo = array[1 365] of real; - Giải thích ví dụ rõ để học sinh VAR a : nhietdo; phân biệt tên kiểu mảng, tên - Nghe giảng. biến mảng. - Yêu cầu học sinh cho ví dụ về 2 cách khai báo trên. - Thực hiện theo yêu - Nhận xét, chỉnh sửa nếu có sai cầu giáo viên. sót. (?) Khi ta đã khai báo được - Suy nghĩ trả lời: xác 3. Các thao tác trên mảng một mảng một chiều, lúc đó ta đã định được tên mảng, chiều xác định được những gì của số lượng phần tử tối mảng đó? đa của mảng, kiểu dữ liệu của mảng. - Nhận xét. (?) Giá trị của từng phần tử - Suy nghĩ trả lời. mảng đã xác định được chưa, làm thế nào để có các giá trị đó? - Nhận xét, để có được giá trị của các phần tử chúng ta phải - Nghe giảng và ghi a/ Nhập mảng một chiều nhập và thủ tục nhập như thế mục bài. nào thầy và cả lớp cùng tìm hiểu phần a. Nhập mảng 1 chiều. - Để làm được điều đó ta cần xác định các thao tác sau: + Trước tiên, cần xác định có - Ghi bài. Trước tiên, cần xác định có bao bao nhiêu phần tử cần dùng; nhiêu phần tử cần dùng:
  4. + Dùng vòng lặp For - do để Write(‘nhap so phan tu: ‘); nhập giá trị cho từng phần tử Readln(n); A[i]. Dùng vòng lặp For - do để nhập giá trị cho từng phần tử A[i]: For i:=1 to n do Begin Write(‘Nhap phan tu thu: ’, i); Readln(A[i]); - Hướng dẫn học sinh cách in End; các phần tử của mảng 1 chiều. b/ In mảng một chiều - Nghe giảng và ghi Dùng vòng lặp For - do để in bài. các phần tử trong mảng: For i:= 1 to n do Write(A[i]:4); ❖ HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng: (1) Mục tiêu: Giúp học sinh thực hiện được thao tác tạo khai báo, nhập và in mảng một chiều (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh, (3) Hình thức tổ chức hoạt động: giải bài tập trên bảng (4) Phương tiện dạy học:SGK, bảng. (5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể. Nội dung hoạt động GV yêu cầu HS: Với cách khai báo biến mảng sau đây: Var A:array[1 100] of integer; Em hãy cho biết? - Mảng tên gì? Được nhập tối đa bao nhiêu phần tử cho mảng? Các giá trị phần tử có kiểu dữ liệu gì? Cách khai báo trên là trực tiếp hay gián tiếp? GV hướng dẫn và cho các em thảo luận. GV gọi các nhóm trả lời. GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng ❖ HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng: (1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình. (2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm. (3) Hình thức tổ chức hoạt động: Ngoài lớp học (4) Phương tiện dạy học:SGK, Projector, máy tính. (5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể. Nội dung hoạt động - GV: cho bài tập: Viết chương trình nhập dãy N số nguyên (N<=200). In giá trị của phần tử cuối và đầu của dãy số.
  5. - HS: làm bài tập GV yêu cầu. - Gv: học bài và xem trước phần b IV. RÚT KINH NGHIỆM Duyệt của tổ trưởng chuyên môn Giáo viên soạn Lê Thị Lịnh Lê Minh Tâm
  6. Tuần: 20 Tiết: 21 Ngày dạy:01/01/2018 đến 07/01/2018 BÀI 11. KIỂU MẢNG (Tiếp theo) I. MỤC TIÊU 1. Về kiến thức - Hiểu khái niệm mảng một chiều. - Hiểu cách khai báo và truy cập đến các phần tử của mảng. 2. Về kĩ năng - Cài đặt được thuật toán giải một số bài toán đơn giản với kiểu dữa liệu mảng một chiều. - Thực hiện khai báo mảng, truy cập, tính toán, đếm các phần tử trong mảng. 3. Về thái độ - Thái độ nghiêm túc trong học tập. - Chủ động tìm hiểu kiến thức mới. 4. Năng lực hướng tới: - Khai báo biến dữ liệu hợp lý. Hiểu nguyên lý lưu dữ liệu một cách có cấu trúc. II. CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH 1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng, 2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết, III. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP 1. Ổn định lớp 2. Kiểm tra bài cũ (không) 3. Tiến trình bài học ❖ HOẠT ĐỘNG 1: Hoạt động khởi động: (1) Mục tiêu: Tạo động cơ để học sinh hiểu được cách sử dụng và khai báo được biến mảng. (2) Phương pháp/kĩ thuật dạy học: Cá nhân, thảo luận nhóm. (3) Phương tiện dạy học: SGK, Projector, máy tính. (4) Học sinh có nhu cầu mong muốn được tìm hiểu cách dùng mảng trong việc giải các bài toán. Nội dung hoạt động Hoạt động của giáo viên Hoạt động của học sinh - Tiết trước chúng ta đã tìm hiểu về cách khai - Nghe giảng báo mảng một chiều. Nhưng khi giải các bài toán bằng mảng ta cần hiểu sâu hơn nữa về cách thức sử dụng mảng trong giải các bài toán đơn giản. - Hôm nay chúng ta sẽ hiểu sâu hơn qua các ví dụ. ❖ HOẠT ĐỘNG 2: Hình thành kiến thức (1) Mục tiêu: Giúp học sinh biết được khái niệm về mảng một chiều, cách khai báo mảng một chiều, hiểu cách nhập và in mảng một chiều. (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích.
  7. (3) Hình thức tổ chức hoạt động: Làm việc cá nhân. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh nắm được khái niệm về bảng, cách khai báo biến mảng một chiều, hiểu cách nhập và in mảng một chiều, hiểu được một số ví dụ giải bài toán về mảng một chiều. Nội dung hoạt động Hoạt động giáo viên Hoạt động học sinh Nội dung trình bày 4. Một số ví dụ - Yêu cầu học sinh đọc ví dụ - Dựa vào SGK suy Ví dụ 1: Tìm phẩn tử lớn nhất trong SGK và xác định input, nghỉ trả lời. của dãy số nguyên. output. - Nhận xét. - Chú ý lắng nghe và - Input: Số nguyên dương N và ghi lại bài. dãy gồm N sô nguyên dương a1, a2, , an. - Output: Max(a1, a2, , an), chỉ số Max. - Các em chú ý thuật toán trong - Chú ý quan sát. Thuật toán: sách giáo khoa. B1: Nhập N, và dãy a 1, a2, , an. B2: Max a1; i 2; B3: Nếu i > N thì đưa ra Max, rồi kết thúc; B4: - Nếu ai > Max thì Max ai; - i i + 1 rồi quay lại B3. Program Tim_max; - Sau khi hiểu thuật toán có thể - Chú ý quan sát cách Const Nmax = 250; giải thích các bước viết chương viết chương trình và Type ArrInt = Array[1 Nmax] trình hoàn chỉnh. viết chương trình vào of integer; tập. Var N, i, Max, csmax: integer; A: ArrInt; Begin Write(‘Nhap so phan tu cua day so, N=’); Readln(N); For i:=1 to N do Begin Write(‘Phan tu thu ‘, i, ‘ =’); Readln(A[i]); End; Max:=A[1]; csmax:=1; For i:=2 to N do If A[i] > Max then Begin
  8. Max := A[i]; csMax := i; End; writeln(‘Gia tri cua p.tu max la:’, max); writeln(‘Chi so cua p.tu max la:’, csmax); Readln; End. - Yêu cầu học sinh về đọc các ví dụ sách giáo khoa. ❖ HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng: (1) Mục tiêu: Giúp học sinh thực hiện được thao tác tạo khai báo, nhập và in mảng một chiều (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh, (3) Hình thức tổ chức hoạt động: giải bài tập trên bảng (4) Phương tiện dạy học:SGK, bảng. (5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể. Nội dung hoạt động GV yêu cầu HS: Viết chương trình nhập dãy N số nguyên (N<=100). In dãy số nguyên vừa nhập. GV hướng dẫn và kêu một học sinh lên bảng làm bài. GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng ❖ HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng: (1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình. (2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm. (3) Hình thức tổ chức hoạt động: Ngoài lớp học (4) Phương tiện dạy học:SGK, Projector, máy tính. (5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể. Nội dung hoạt động - GV: cho bài tập: Viết chương trình nhập dãy N số nguyên (N<=200). Tính và in ra tổng dãy số nguyên vừa nhập. - HS: làm bài tập GV yêu cầu. - GV: xem trước về bài tập mảng một chiều IV. RÚT KINH NGHIỆM
  9. Duyệt của tổ trưởng chuyên môn Giáo viên soạn Lê Thị Lịnh Lê Minh Tâm
  10. Tuần: 21 Tiết: 22 Ngày dạy:08/01/2018 đến 14/01/2018 BÀI TẬP VỀ MẢNG I. MỤC TIÊU 1. Về kiến thức - 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ách thức tạo kiểu do ngôn ngữ lập trình Pascal quy định. - 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. - 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ề thái độ - Thái độ nghiêm túc trong học tập, chủ động giải bài tập. 4. Năng lực hướng tới - Năng lực tự học, năng lực giải quyết vấn đề. II. CHUẨN BỊ 1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng, 2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết, III. HOẠT ĐỘNG DẠY VÀ HỌC 1. Ổn định lớp, kiểm tra sĩ số 2. Kiểm tra bài cũ: không. 3. Tiến trình bày học ❖HOẠT ĐỘNG 1: Hoạt động khởi động: (1) Mục tiêu: Tạo động cơ để học sinh hiểu được cách thao tác với mảng một chiều (2) Phương pháp/kĩ thuật dạy học: Cá nhân. (3) Phương tiện dạy học: SGK, Projector, máy tính. (4) Học sinh có nhu cầu mong muốn được học cách sử dụng kiểu mảng một chiều để giải các bài toán. Nội dung hoạt động Hoạt động của giáo viên Hoạt động của học sinh Với những bài toán yêu cầu nhập dãy số xác định - Trả lời : Kiểu mảng một chiều ta dùng khai báo kiểu gì để lưu các giá trị đó? Ta có thể tham chiếu đến các phần tử và lấy giá trị các phần tử của dãy số đó để tính toán được - Trả lời : Được không? Để hiểu được sự lợi ích nhiều hơn của việc sử dụng kiểu mảng một chiều hôm nay chúng ta sẽ - Nghe giảng làm một số bài tập vận dụng cấu trúc rẽ nhánh, cấu trúc lặp với kiểu mảng ❖ HOẠT ĐỘNG 2: Hình thành kiến thức
  11. (1) Mục tiêu: Giúp học sinh biết được cách khai báo mảng một chiều, hiểu cách nhập và in mảng một chiều. (2) Phương pháp/kĩ thuật dạy học: Đặt vấn đề, phân tích. (3) Hình thức tổ chức hoạt động: Làm việc cá nhân. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh nắm được cách khai báo biến mảng một chiều, hiểu cách nhập và in mảng một chiều, giải được các bài toán về mảng một chiều. Nội dung hoạt động Hoạt động giáo viên Hoạt động học sinh Nội dung trình bày Câu 1. Viết chương trình nhập từ bàn phím số nguyên dương N (N<=100) và dãy A gồm N số nguyên A1, A2, AN. Tìm và in ra màn hình giá trị nhỏ nhất - Xác định input và output - Trả lời: Giá trị n và của dãy số vừa nhập? dãy số a1,a2, an, và output là số nhỏ nhất - Cần khai báo phạm vi của - Trả lời: [1 100] Program tim_min; mảng là bao nhiêu? Uses crt; Var A: Array[1 100] of integer; - Tương tự như tìm giá trị lớn - Nghe giảng. min, n, i: integer; nhất của dãy số, ta gán một giá Begin trị min là phần tử đầu sau đólần Clrscr; lượt so sánh với các phần tử còn Writeln('nhap vao n va n lại nếu nhỏ hơn min thì gán lại phai lon hon khong'); giá trị này. Readln(n); - Khai báo những biến nào? - Trả lời: Biến mảng, For i:=1 to n do biến min, n, i. Begin - Gọi học sinh lên bảng làm. - Một học sinh lên Writeln('nhap phan tu bảng làm thu ', i); - Quan sát các học sinh khác Readln(A[i]); làm bài. End; - Gọi học sinh nhận xét. - Nhận xét Min:=a[1]; For i:=2 to n-1 do - Nhận xét - Nghe giảng và ghi If a[i]<min then bài. min:=a[i]; Writeln(‘Gia tri nho nhat la',min); Readln ; End. Câu 2. Viết chương trình nhập từ bàn phím số nguyên dương - Xác định input và output - Trả lời: Giá trị n và N (N<=100) và dãy A gồm N số dãy số a1,a2, an, và nguyên A1, A2, AN. Tìm và in
  12. output là các số chia ra màn hình các số chia hết cho hết cho 3 3? - Ta cần sử dụng hàm gì để tính chia hết? - Trả lời: hàm mod Program Chia_het_cho_3; Uses crt; - Vậy đều kiện như thế nào là Var A:array[1 100] of integer; chia hêt? - Trả lời: a[i] mod 3=0 n, i: integer; - Cần dùng vòng lặp nào để - Trả lời: Vòng lặp for Begin duyệt hết các phần tử mảng? clrscr; Writeln('nhap vao n'); - Sau khi ta nhập mảng sao đó - Nghe giảng Readln(n); duyệt lần lượt các phần tử của For i:=1 to n do mảng, số nào chia hết cho 3 thi Begin in số đó ra màn hình. Writeln('nhap vao phan tu - Gọi học sinh lên bảng làm. - Một học sinh lên thu ', i); bảng làm Readln(A[i]); - Quan sát các học sinh khác End; làm bài. Writeln(‘Cac so chia het cho 3 - Gọi học sinh nhận xét. - Nhận xét la:’) For i:=1 to n do - Nhận xét - Nghe giảng và ghi If (A[i] mod 3=0) then bài. Write(a[i]:4); Readln; ❖ HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng: (1) Mục tiêu: Giúp học sinh biết được cách khai báo mảng một chiều, hiểu cách nhập và in mảng một chiều. (2) Phương pháp/kĩ thuật dạy học: Đặt vấn đề, phân tích. (3) Hình thức tổ chức hoạt động: Làm việc cá nhân. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh nắm được cách khai báo biến mảng một chiều, hiểu cách nhập và in mảng một chiều, giải được các bài toán về mảng một chiều. Nội dung hoạt động GV cho bài tập : Viết chương trình nhập dãy N số nguyên (N<=250). Tìm và in ra màn hình các số chẵn và lẻ riêng biệt. GV hướng dẫn và kêu một học sinh lên bảng làm bài. GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng ❖ HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng: (1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình. (2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm. (3) Hình thức tổ chức hoạt động: Ngoài lớp học (4) Phương tiện dạy học:SGK, Projector, máy tính. (5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể. Nội dung hoạt động
  13. - GV: cho bài tập: Viết chương trình nhập dãy N số nguyên (N<=200). Tính và in ra tổng các số chẵn. - HS: làm bài tập GV yêu cầu. - GV: xem trước về bài tập và thực hành 3 IV. RÚT KINH NGHIỆM Duyệt của tổ trưởng chuyên môn Giáo viên soạn Lê Thị Lịnh Lê Minh Tâm
  14. Tuần: 21 + 22 Ngày soạn: 25/12/2017 Tiết: 23 + 24 Ngày dạy: 08/01/2018 đến 21/01/2018 BÀI TẬP VÀ THỰC HÀNH 3 I. MỤC TIÊU 1. Về kiến thức - Biết các thao tác nhập xuất mảng một chiều, chạy thử một số chương trình có sẵn. - Giải được một số bài toán tính toán đơn giản. 2. Về kĩ năng - Thực hiện đúng các thao tác từ khai báo đến nhập xuất mảng một chiều. 3. Về thái độ - Thái độ nghiêm túc trong học tập. 4. Năng lực hướng tới: - Giải quyết vấn đề, sử dụng công nghệ thông tin giải các bài toán đơn giản. II. CHUẨN BỊ 1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng, 2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết, III. HOẠT ĐỘNG DẠY VÀ HỌC 1. Ổn định lớp, kiểm tra sĩ số 2. Kiểm tra bài cũ: - Câu 1. Thế nào là mảng một chiều? - Câu 2. Có mấy cách khai báo mảng một chiều? Cho ví dụ từng cách khai báo mảng một chiều? - Câu 3. Viết một phần chương trình nhập vào mảng n phần tử và giá trị từng phần tử trong mảng? 3. Nội dung bài mới: ❖ HOẠT ĐỘNG 1: Hoạt động khởi động: (1) Mục tiêu: Tạo động cơ để học sinh sử dụng máy tính giải các bài toán. (2) Phương pháp/kĩ thuật dạy học: Cá nhân. (3) Phương tiện dạy học: SGK, Projector, máy tính. (4) Học sinh có nhu cầu mong muốn được học cách sử dụng kiểu mảng một chiều để giải các bài toán. Nội dung hoạt động Hoạt động của giáo viên Hoạt động của học sinh - Khi làm việc với mảng một chiều trước tiên - Nghe giảng chúng ta cần thành thạo các thao tác khai báo, nhập, xuất mảng. Để làm được điều đó thầy và cả lớp cùng tìm hiểu và thực hành một số bài tập ở Bài tập và thực hành số 3 trong SGK. ❖ HOẠT ĐỘNG 2: Hình thành kiến thức (1) Mục tiêu: Giúp học sinh sử dụng máy tính chạy được một số bài tập về mảng (2) Phương pháp/kĩ thuật dạy học: Thực hành trên máy tính.
  15. (3) Hình thức tổ chức hoạt động: Làm việc cá nhân. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh sử dụng máy tính chạy được một số bài toán về kiểu mảng một chiều. Nội dung hoạt động Hoạt động giáo viên Hoạt động học sinh Nội dung trình bày - Đọc nội dung yêu cầu của bài - Ghi bài tập. Bài 1. Viết chương trình nhập 1. vào mảng 1 chiều với N phần tử, với N nhập từ bàn phím, sao đó in ra màn hình sao khi đảo ngược mảng đó. (?) Các em hãy xác định số - Suy nghĩ trả lời: đối lượng phần tử và yêu cầu của với bài này chúng ta bài là gì? có n phần tử, sao khi giá trị các phần tử của mảng được nhập thì ta in các phần tử trong mảng ngược lại. - Nhận xét, cho ví dụ cho học - Chú ý quan sát ví dụ. sinh quan sát. - Ghi bài. - Hướng dẫn cho học sinh cách Program Dao_nguoc_mang; viết chương trình. Uses crt; Var A: Array[1 100] of Integer; N, i: Integer; Begin Clrscr; Writeln('Nhap vao N'); Readln(N); For i:=1 to N do Begin Writeln('Nhap vao phan tu thu ', i); Readln(A[i]); End; Writeln('Mang vua duoc dao nguoc lai la'); For i:=N downto 1 do Write(A[i]); Readln; End. - Ghi nội dung bài học. Bài 2. Viết chương trình nhập - Với bài tập vừa làm các em có vào mảng 1 chiều với N phần thể vận dụng giải quyết bài toán tử, với N nhập từ bàn phím, tìm phần tử lớn nhất trong mảng sao đó in ra màn hình phần tử 1 chiều. - Suy nghĩ trả lời. lớn nhất của mảng.
  16. - Yêu cầu học sinh nêu thuật - Ghi bài. toán để giải bài toán trên. Program Phan_tu_max; - Nhận xét, hướng dẫn các em Uses crt; cách viết chương trình. Var A: Array[1 100] of Integer; N, Max, i: Integer; Begin Clrscr; Writeln('Nhap vao N'); Readln(N); For i:=1 to N do Begin Writeln('Nhap vao phan tu thu ', i); Readln(A[i]); End; Max:=A[1]; For i:=2 to n do If (Max<A[i]) then Max :=A[i]; Write(‘Phan tu lon nhat ’, Max); Readln; End. - Nghe giảng. - Trong học kì I thầy đã giới thiệu cho các em một số bài toán như kiểm tra tính chẵn lẻ của một số, tổng các số chẵn lẻ trong dãy số. Hôm này chúng ta sẽ áp dụng những thuật toán đó vào bài toán đối với mảng một - Ghi bài. Bài 3. Viết chương trình nhập chiều. vào mảng 1 chiều với N phần - Đọc yêu cầu bài toán cho học tử, với N nhập từ bàn phím, sinh ghi bài. sao đó in ra màn hình số lần xuất hiện của số chẵn và số lẻ. - Suy nghĩ trả lời. (?) Các em hãy xác định Input - Chú ý quan sát và ghi Program Demch_Deml; và Output của bài toán. bài. Uses crt; - Nhận xét, hướng dẫn cho học Var A: array[1 100] of Integer; sinh cách ghi bài. N, dle, dchan, i: Integer; Begin Clrscr; Writeln('Nhap vao N');
  17. Readln(N); For i:=1 to N do Begin Writeln('Nhap vao phan tu thu ', i); Readln(A[i]); End; dle:=0; dchan:=0; For i:=1 to N do If (A[i] mod 2=0) then dchan:=dchan+1 else dle:=dle+1; Writeln(‘So lan xuat hien so chan la ', dchan); Writeln('So lan xuat hien so le la ', dle); Readln; End. - Ghi bài. Bài 4. Viết chương trình nhập vào mảng 1 chiều với N phần - Tương tự như vậy các em hãy tử, với N nhập từ bàn phím, viết chương trình tính tổng các sao đó in ra màn hình tổng các giá của mảng N phần tử. phần tử của mảng. - Suy nghĩ và thực hiện theo yêu cầu của - Yêu cầu một học sinh lên bảng giáo viên. viết chương trình. - Chú ý quan sát và ghi Program Tong_mang; bài. Uses crt; - Nhận xét, bổ sung nếu có sai Var A: Array[1 100] of Integer; sót. N, Tong, i: Integer; Begin Clrscr; Writeln('Nhap vao N'); Readln(N); For i:=1 to N do Begin Writeln('Nhap vao phan tu thu ', i); Readln(A[i]); End; Tong:=0; For i:=1 to N do Tong:=Tong+A[i];
  18. Write(‘Tong mang la’, Tong); Readln; End. - Yêu cầu học sinh tham khảo các bài tập SGK trang 63, 64. ❖ HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng: (1) Mục tiêu: Giúp học sinh giải được các bài toán về kiểu mảng (2) Phương pháp/kĩ thuật dạy học: Đặt vấn đề (3) Hình thức tổ chức hoạt động: Làm việc cá nhân. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh giải được các bài toán về kiểu mảng Nội dung hoạt động GV cho bài tập : Viết chương trình nhập dãy N số nguyên (N<=250). Đếm và in ra màn hình các số chẵn và lẻ. GV hướng dẫn và kêu một học sinh lên bảng làm bài. GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng ❖ HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng: (1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình. (2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm. (3) Hình thức tổ chức hoạt động: Ngoài lớp học (4) Phương tiện dạy học:SGK, Projector, máy tính. (5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể. Nội dung hoạt động - GV: cho bài tập: Viết chương trình nhập dãy N số nguyên (N<=200). Tính và in ra tổng các số dương. - HS: làm bài tập GV yêu cầu. - GV: xem trước về bài tập thực hành 4 IV. RÚT KINH NGHIỆM Duyệt của tổ trưởng chuyên môn Giáo viên soạn Lê Thị Lịnh Lê Minh Tâm
  19. Tuần: 22 + 23 Ngày soạn: 02/01/2018 Tiết: 25 + 26 Ngày dạy:15/01/2018 đến 28/01/2018 BÀI TẬP VÀ THỰC HÀNH 4 I. MỤC TIÊU 1. Về kiến thức - Củng cố lại các kiến thức cơ bản khi lập trình với kiểu dữ liệu mảng. - Làm quen với thuật toán sắp xếp đơn giản trên máy tính. 2. Về kĩ năng - Rèn luyện kĩ năng sử dụng kiểu dữ liệu có cấu trúc. - Rèn luyện kĩ năng nhận xét, phân tích và đề xuất cách giải bài toán sao cho chương trình chạy nhanh hơn. 3. Về thái độ - Thái độ nghiêm túc trong học tập, tự giác, chủ động trong khi thực hành. 4. Năng lực hướng tới: - Giải quyết vấn đề, sử dụng máy tính giải một số bài toán về kiểu xâu. II. CHUẨN BỊ 1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng, 2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết, III. HOẠT ĐỘNG DẠY VÀ HỌC 1. Ổn định lớp, kiểm tra sĩ số 2. Kiểm tra bài cũ: không. 3. Nội dung bài mới: ❖ HOẠT ĐỘNG 1: Hoạt động khởi động: (1) Mục tiêu: Tạo động cơ để học sinh sử dụng máy tính giải các bài toán. (2) Phương pháp/kĩ thuật dạy học: Cá nhân. (3) Phương tiện dạy học: SGK, Projector, máy tính. (4) Học sinh có nhu cầu mong muốn được học cách sử dụng kiểu mảng để giải các bài toán. Nội dung hoạt động Hoạt động của giáo viên Hoạt động của học sinh - Khi làm việc với kiểu mảng trước tiên chúng ta - Nghe giảng cần thành thạo các thao tác khai báo, nhập, xuất xâu. Để làm được điều đó thầy và cả lớp cùng tìm hiểu và thực hành một số bài tập ở Bài tập và thực hành số 4 trong SGK. ❖ HOẠT ĐỘNG 2: Hình thành kiến thức (1) Mục tiêu: Giúp học sinh sử dụng máy tính chạy được một số bài tập về kiểu mảng (2) Phương pháp/kĩ thuật dạy học: Thực hành trên máy tính. (3) Hình thức tổ chức hoạt động: Làm việc cá nhân. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh sử dụng máy tính chạy được một số bài toán về kiểu mảng. Nội dung hoạt động
  20. Hoạt động giáo viên Hoạt động học sinh Nội dung trình bày (?) Các em hãy cho thầy một số - Suy nghĩ cho ví dụ. ví dụ về một mảng một chiều có dãy số tăng dần hoặc giảm. - Nhận xét, như vậy với một dãy số bất kỳ trong mảng 1 chiều - Nghe giảng và ghi Bài 1. Hãy tìm hiểu và chạy làm sao chúng ta có thể sắp xếp bài. thử chương trình thực hiện như vậy. Để hiểu rõ hơn thầy và thuật toán sắp xếp dãy số cả lớp cùng xét bài tập thứ nhất. nguyên bằng thuật toán tráo - Hướng dẫn và giải thích đổi với các giá trị khác nhau chương trình. của n dưới đây - Nghe giảng và viết Program Sap_xep; chương trình vào tập. Uses crt; Const nmax=250; Type arrint=array[1 nmax] of integer; Var n, i, j, t: integer; A: arrint; Begin Clrscr; Randomize; Write('nhap n='); Readln(n); For i:=1 to n do A[i]:=random(300) - random (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 t:=A[i]; A[i]:=A[i+1]; A[i+1]:=t; End; Writeln('day so sau khi sap xep'); For i:=1 to n do write(A[i]: 7); Writeln; - Đối với bài toán như vậy các Readln; em sẽ khó hiểu, để dể hiểu hơn End. thầy và cả lớp cùng viết chương
  21. trình nhập vào mảng n phần tử - Chú ý nghe giảng và Bài 2. Viết chương trình nhập và nhập vào giá trị từng phần tử ghi bài. vào mảng n phần tử, sau đó chứ không cho giá trị ngẫu sắp xếp mảng vừa nhập theo nhiên. chiều tăng dần. - Yêu cầu học sinh viết chương trình, nhận xét, chiếu chương trình hoàn chỉnh lên máy chiếu, khi thực thi chương trình nhập - Chú ý quan sát. Program MaxElement; từ bước cho học sinh quan sát. Uses crt; Const nmax=200; Type MyArray=array[1 nmax] of integer; Var A: MyArray; n, t, i, j: integer; Begin Clrscr; Write('Nhap n='); Readln(n); For i:=1 to n do Begin Writeln('Nhap vao phan tu thu ', i); Readln(A[i]); End; Writeln; Writeln('Mang vua nhap la'); For i:=2 to n do Write(A[i],' '); For j:=n downto 2 do For i:=1 to j-1 do if A[i]>A[i+1] then Begin t:=A[i]; A[i]:=A[i+1]; A[i+1]:=t; End; Write(' Day so duoc sap xep la '); (?) Theo các em số lần tráo đổi For i:=1 to n do của từng dãy số có khác nhau Write(A[i]:4); không? Readln; - Như thế ta có thể xác định số End. lần tráo đổi được không, để biết - Suy nghĩ trả lời: có. được đều đó thì chúng ta phải đếm số lần tráo đổi. Như vậy
  22. thì chúng ta cần phải bổ xung - Suy nghĩ trả lời. vào chương trình cái gì? - Nhận xét, ta cần khai báo biến dem và sao mỗi vòng lặp tráo đổi ta tăng biến dem lên 1 đơn vị. - Hướng dẫn học sinh cách viết - Nghe giảng. chương trình. - Chú ý quan sát và ghi Program Sap_xep; bài. Uses crt; Const nmax=250; Type arrint=array[1 nmax] of integer; Var n, i, j, t, dem: integer; A: arrint; Begin clrscr; Randomize; Write('nhap n='); Readln(n); For i:=1 to n do A[i]:=random(300) - random (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 t:=A[i]; A[i]:=A[i+1]; A[i+1]:=t; dem:=dem+1; End; Writeln('day so sau khi sap xep'); For i:=1 to n do write(A[i]: 7); - Cho bài tập yêu cầu học sinh Writeln('So lan trao doi ', hãy viết chương trình tính tổng dem); các phần tử của mảng với điều Readln; kiện các phần tử đó phải chia End. hết cho 5. - Ghi bài.
  23. - Giải thích yêu cầu của bài Bài 3. Viết chương trình nhập toán. vào mảng 1 chiều với N phần - Yêu cầu học sinh lên viết tử, tính tổng các phần tử chia chương trình. hết cho 5, sau đó in tổng ra - Nhận xét, bổ sung nếu có sai - Chú ý nghe giảng. màn hình. sót. - Viết chương trình. - Nghe nhận xét và ghi bài. Program Tong_chia5; Uses crt; Var A: array[1 100] of integer; N, i, Tong: integer; Begin Clrscr; Write('Nhap N='); Readln(N); For i:=1 to N do Begin Writeln('Nhap vao phan tu thu ', i); Readln(A[i]); End; Tong:=0; For i:=1 to N do If (A[i] mod 5=0) then Tong:=Tong+A[i]; (?) Giả sử bây giờ thầy muốn Write('Tong cac so chia het đếm xem trong mảng chúng ta cho 5 la ', Tong); vừa nhập có bao nhiêu phần tử Readln; chia hết cho 5 thì như thế nào? End. - Suy nghĩ trả lời: chúng ta phải kiểm tra Program Dem_chia5; từng phần tử sau đó Uses crt; - Hướng dẫn các em cách viết coi có chia hết cho 5 Var A: array[1 100] of integer; chương trình. không, nếu chia hết thì N, i, Dem: integer; chúng ta đếm lên một Begin giá trị. Clrscr; - Nghe giảng và ghi Write('Nhap N='); bài. Readln(N); For i:=1 to N do Begin Writeln('Nhap vao phan tu thu ', i); Readln(A[i]); End;
  24. Dem:=0; For i:=1 to N do If (A[i] mod 5=0) then Dem:=Dem+1; Write('Mang 1 chieu co ', Dem, ‘ chia het cho 5’); Readln; End. ❖ HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng: (1) Mục tiêu: Giúp học sinh giải được các bài toán về kiểu mảng (2) Phương pháp/kĩ thuật dạy học: Đặt vấn đề (3) Hình thức tổ chức hoạt động: Làm việc cá nhân. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh giải được các bài toán về kiểu mảng Nội dung hoạt động GV cho bài tập : Viết chương trình nhập dãy N số nguyên (N<=250). In ra màn hình tổng các số chẵn và lẻ. GV hướng dẫn và kêu một học sinh lên bảng làm bài. GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng ❖ HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng: (1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình. (2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm. (3) Hình thức tổ chức hoạt động: Ngoài lớp học (4) Phương tiện dạy học:SGK, Projector, máy tính. (5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể. Nội dung hoạt động - GV: cho bài tập: Viết chương trình nhập dãy N số nguyên (N<=200). Đếm và in ra số lần xuất hiện các số dương và âm. - HS: làm bài tập GV yêu cầu. - GV: xem trước về bài kiểu xâu IV. RÚT KINH NGHIỆM Duyệt của tổ trưởng chuyên môn Giáo viên soạn Lê Thị Lịnh Lê Minh Tâm
  25. Tuần: 23 Ngày soạn: 08/01/2018 Tiết: 27 Ngày dạy:22/01/2018 đến 04/02/2018 CHỦ ĐỀ 4: KIỂU XÂU BÀI 12. KIỂU XÂU I. MỤC TIÊU 1. Về kiến thức - Biết được một kiểu dữ liệu mới, biết được khái niệm kiểu xâu. - Biết cách khai báo biến, nhập xuất dữ liệu, tham chiếu đế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 - Rèn luyện kĩ năng sử dụng kiểu dữ liệu có cấu trúc. - 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 các bài toán đơn giản. 3. Về thái độ - Nghiêm túc trong giờ học, chủ động tìm hiều kiến thức mới. 4. Năng lực hướng tới - Nhận biết, giải quyết vấn đề, thảo luận. II. CHUẨN BỊ 1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng, 2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết, III. HOẠT ĐỘNG DẠY VÀ HỌC 1. Ổn định lớp, kiểm tra sĩ số 2. Kiểm tra bài cũ: không. 3. Nội dung bài mới: ❖ HOẠT ĐỘNG 1: Hoạt động khởi động: (1) Mục tiêu: Tạo động cơ để học sinh hiểu được cách sử dụng và khai báo được biến xâu. (2) Phương pháp/kĩ thuật dạy học: Cá nhân, thảo luận nhóm. (3) Phương tiện dạy học: SGK, Projector, máy tính. (4) Học sinh có nhu cầu mong muốn được học cách khai báo biến xâu Nội dung hoạt động Hoạt động của giáo viên Hoạt động của học sinh - Trong thực tế, các kiểu dữ liệu chuẩn không thể - Nghe giảng. đáp ứng đủ biểu diễn của các bài toán lớn. Vì thế, dựa trên các kiểu dữ liệu đó người lập trình có thể tạo ra các kiểu dữ liệu phức tạp hơn để giải quyết các bài toán trong thực tế. (?) Để nhập vào một ký tự nào đó ta khai báo - Kiểu char kiểu dữ liệu gi? - Nhận xet - Vậy để nhập vào một chuỗi hay một xâu các kí - Nghe giảng tự thì chúng ta dùng kiểu char được không?
  26. - Để giải quyết vấn đề này hôm nay chúng ta sẽ tìm hiểu về kiểu xâu. ❖ HOẠT ĐỘNG 2: Hình thành kiến thức (1) Mục tiêu: Giúp học sinh biết được khái niệm về xâu, cách khai báo mảng một chiều, hiểu cách nhập và in một xâu kí tự. (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích. (3) Hình thức tổ chức hoạt động: Làm việc cá nhân. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh nắm được khái niệm về xâu, cách khai báo biến xâu một chiều, hiểu cách nhập và in xâu, hiểu được một số ví dụ giải bài toán về xâu kí tự Nội dung hoạt động Hoạt động giáo viên Hoạt động học sinh Nội dung trình bày (?) Các em hãy cho thầy một - Suy nghĩ trả lời: 1. Định nghĩa xâu vài ví dụ về dãy kí tự nào đó? Ví dụ: ‘Ha Noi’ ‘Ho Chi Minh’ (?) Các em hãy tham khảo sách - Trả lời: Là dãy kí tự giáo khoa và cho thầy biết khái trong bảng mã ASCII, niệm xâu? mỗi kí tự là một phần tử, được đặt trong hai dấu nháy đơn ‘’. - Nhận xét và nhắc lại khái - Ghi bài. Xâu là dãy các kí tự trong bộ mã niệm. ASCII, mỗi kí tự là một phần tử của xâu. (?) Các em hãy cho thầy biết độ - Trả lời: dài của 2 ví dụ vừa nêu? + Xâu 1: Độ dài: 6. + Xâu 2: Độ dài: 11. - Qua đó giải thích cho học sinh - Nghe giảng và ghi - Số lượng kí tự trong một xâu biết thế nào là độ dài của xâu. bài. gọi là độ dài của xâu. (?) Có tồn tại xâu nào không chứa bất kì kí tự nào không? - Trả lời: có, gọi là xâu - Xâu rỗng là xâu không chứa kí - Nhận xét, hướng dẫn cách rỗng. tự nào (xâu có độ dài bằng 0), biểu diễn xâu rỗng. - Nghe giảng. được biểu diễn bằng hai dấu nháy đơn liên tiếp ‘’. - Có thể xem xâu là mảng 1 chiều mà mỗi phần tử là một kí - Tương tự mảng 1 chiều chúng tự. ta có các quy tắc xác định thì - Ghi các quy tắc xác - Cách thức cho phép xác kiểu xâu cũng vậy. định một xâu. định: + Tên kiểu xâu. Ví dụ: s:=‘Lop 11A’; + Cách khai báo biến kiểu xâu. Ví dụ: Var s: string[20]; + Số lượng các kí tự của xâu.
  27. Ví dụ: ‘Lop 11A’ gồm 7 kí tự. + Các phép toán thao tác với xâu như: Ghép, so sánh, chèn + Cách tham chiếu đến phần tử của xâu (Tên xâu[chỉ số]). Ví dụ: s[1] là kí tự ‘L’. - Giới thiệu về cách khai báo - Nghe giảng và ghi 2. Khai báo biến xâu trong ngôn ngữ lập bài. Var : String[Độ dài trình Pascal, giải thích ý nghĩa lớn nhất của xâu]; của từ String, [n] cho học sinh hiểu String là tên kiểu xâu [n] là giá trị qui định số lượng kí tự tối đa mà biến xâu có thể chứa. (?) Các em hãy cho biết khi khai - Trả lời: Số lượng kí báo không có [n] thì số lượng kí tự tối đa là 255. tự tối đa cho phép là bao nhiêu? - Cho ví dụ giúp học sinh hiểu - Khi độ dài lớn nhất của xâu sẽ rõ cách khai báo kiểu xâu. - Chú ý quan sát, ghi nhận giá trị ngầm là 255. bài. Ví dụ: Var hoten: string[26]; Var chugiai: string; (?) Đối với dữ liệu chuẩn, sử - Trả lời: 3. Các thao tác xử lý xâu dụng thủ tục nào để nhập giá trị? + Nhập: Read, readln. + Xuất: Write, - Nhận xét, đối với kiểu xâu writeln. cũng thực hiện các thao tác - Ghi bài. Nhập giá trị, in ra giá trị biến tương tự. kiểu xâu: * Nhập giá trị cho xâu: Read ( ); Readln ( ); * Viết ra giá trị của xâu: Write ( ); (?) Làm thế nào để ghép hai hay Writeln ( ); nhiều xâu lại với nhau? - Trả lời: dấu cộng a. Phép ghép xâu (+). Để ghép hai hay nhiều xâu thành một, ta dùng dấu “+” để ghép. Có thể thực hiện ghép xâu đối với các hằng và biến xâu. - Yêu cầu học sinh cho ví dụ VD: ghép ‘Ha’ + ‘ Noi’ cách ghép xâu. - Cho ví dụ. KQ: ‘Ha Noi’ b. Các phép so sánh xâu
  28. (?) Các em hãy cho biết để so - Trả lời: Các phép so Các phép so sánh: =, , sánh, có các phép toán so sánh sánh: =, , =. nào? >=. (?) Cho 2 xâu A và B, khi nào - Tham khảo sách giáo thì xâu A được coi là lớn hơn khoa trả lời: (A>B) xâu B? Nếu xâu B là đoạn đầu của xâu A. + (A>B) Nếu kí tự đầu tiên khác nhau giữa chúng kể từ trái sang trong xâu A có mã ASCII lớn hơn; + (A=B) Nếu chúng giống nhau hoàn toàn giống nhau. Quy tắc so sánh: - Nhận xét và phân tích, cho ví - Ghi bài. + A B nếu kí tự đầu tiên khác nhau giữa chúng kể từ trái sang trong xâu A có mã ASCII lớn hơn; + A = B nếu chúng hoàn toàn giống nhau. Ví dụ: ‘Ha’ = ‘Ha’ ‘Ha’ ‘HaNam’ c. Thủ tục Delete Delete(st, vt, n) - Để xóa kí tự trong xâu ta dùng - Nghe giảng và ghi Thực hiện việc xóa n kí tự của thủ tục Delete, trình bày cú bài. biến xâu st bắt đầu từ vị trí vt chỉ pháp, khái niệm. định. Ví dụ: A:= ‘Tin hoc’ - Yêu cầu học sinh nêu ví dụ về Ví dụ: A:= ‘Tin hoc’ Delete( A, 4, 1) thủ tục Delete? Delete( A, 4, 1) KQ: ‘Tinhoc’ KQ: ‘Tinhoc’ d. Thủ tục Insert Insert( s1, s2, vt) - Giới thiệu: thủ tục Insert dùng - Nghe giảng, ghi bài. Thực hiện chèn xâu s1 vào xâu để chèn xâu, trình bày cú pháp, s2 bắt đầu ở vị trí vt. khái niệm. - Hãy nêu ví dụ về thủ tục Ví dụ: A:= ‘Tin’ ; B:= Insert? ‘Hoc ’ Insert(A, B, 4) KQ: ‘Học Tin’ e. Hàm copy Copy( S, vt, n)
  29. - Hàm copy dùng để tạo một xâu - Ghi bài. Thực hiện việc copy n kí tự liên mới bằng cách sao chép các kí tiếp bắt đầu từ vị trí vt của xâu S tự trong xâu cũ, trình bày cú để tạo thành một xâu mới. pháp và khái niệm. Hãy nêu ví dụ về hàm copy? Ví dụ: A:= ‘Mua xuan’ Copy(A, 5, 4) KQ: ‘xuan’ f. Hàm length - Hàm length dùng để trả về giá - Nghe giảng. Length(x) trị độ dài của xâu. Ví dụ Trình bày cú pháp và khái niệm. A := ‘Truong Van Hoa II’ Xác định độ dài của xâu sau: Độ dài: 17 A := ‘Truong Van Hoa II’ - Trả lời: 17 Hàm pos xác định vị trí xuất g. Hàm pos hiện đầu tiên của xâu này trong - Ghi bài. Pos(s1, s2) một xâu khác hay vị trí xuất Cho vị trí xuất hiện đầu tiên của hiện đầu tiên của một dãy kí tự xâu s1 trong xâu s2. trong một xâu. Pos(kí tự, x) Trình bày cú pháp và khái Cho vị trí xuất hiện đầu tiên của niệm. kí tự hoặc dãy kí tự trong xâu x. Xác định kết quả của VD: Ví dụ: A := ‘Ho Guom’ - Trả lời: 4. A := ‘Ho Guom’ B := ‘Guom’ B := ‘Guom’ Pos(B, A) Pos(B, A) Kq: 4 Hàm Upcase trả về chữ cái in h. Hàm upcase hoa tương ứng với các chữ cái Upcase(ch) trong xâu. Cho chữ cái in hoa ứng với các Trình bày cú pháp và khái niệm chữ cái trong xâu ch. (?) Cho ví dụ về hàm Upcase? - Quan sát và ghi bài. Ví dụ: A := ‘d’ - Suy nghĩ cho ví dụ. Upcase(A) ‘D’ ❖ HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng: (1) Mục tiêu: Giúp học sinh thực hiện được thao tác tạo khai báo, nhập và in mảng một chiều (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh, (3) Hình thức tổ chức hoạt động: giải bài tập trên bảng (4) Phương tiện dạy học:SGK, bảng. (5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể. Nội dung hoạt động
  30. GV yêu cầu HS: Viết khai báo xâu a có độ dài lớn là 200 kí tự và xâu b có độ dài lớn nhất. GV hướng dẫn và kêu một học sinh lên bảng làm bài. GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng ❖ HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng: (1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình. (2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm. (3) Hình thức tổ chức hoạt động: Ngoài lớp học (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể. Nội dung hoạt động - GV: cho bài tập: Cho xâu s:= ‘Thien Ho Dương’ - Viết hàm xác định độ dài của xâu s - Viết thủ tục xóa xâu s thành ‘Thien Ho’ - HS: làm bài tập GV yêu cầu. - GV: xem trước về phần 3 một số ví dụ IV. RÚT KINH NGHIỆM Duyệt của tổ trưởng chuyên môn Giáo viên soạn Lê Thị Lịnh Lê Minh Tâm
  31. Tuần: 24 Ngày soạn: 08/01/2018 Tiết: 28 Ngày dạy:22/01/2018 đến 04/02/2018 BÀI 12. KIỂU XÂU (Tiếp theo) I. MỤC TIÊU 1. Về kiến thức - Biết được một kiểu dữ liệu mới, biết được khái niệm kiểu xâu. - Biết cách khai báo biến, nhập xuất dữ liệu, tham chiếu đế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 - Rèn luyện kĩ năng sử dụng kiểu dữ liệu có cấu trúc. - 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 các bài toán đơn giản. 3. Về thái độ - Nghiêm túc trong giờ học, chủ động tìm hiều kiến thức mới. 4. Năng lực hướng tới - Nhận biết, giải quyết vấn đề, thảo luận. II. CHUẨN BỊ 1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng, 2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết, III. HOẠT ĐỘNG DẠY VÀ HỌC 4. Ổn định lớp, kiểm tra sĩ số 5. Kiểm tra bài cũ: không. 6. Nội dung bài mới: ❖ HOẠT ĐỘNG 1: Hoạt động khởi động: (1) Mục tiêu: Tạo động cơ để học sinh hiểu được cách sử dụng kiểu xâu để giải cách bài toán đơn giản (2) Phương pháp/kĩ thuật dạy học: Cá nhân, thảo luận nhóm. (3) Phương tiện dạy học: SGK, Projector, máy tính. (4) Học sinh có nhu cầu mong muốn được học cách sử dụng kiểu xâu để giải cách bài toán đơn giản Nội dung hoạt động Hoạt động của giáo viên Hoạt động của học sinh - Tiết trước chúng ta đã tìm hiểu về cách khai - Nghe giảng xâu, một số thao tác với xâu. Nhưng khi giải các bài toán bằng mảng ta cần hiểu sâu hơn nữa về cách thức sử dụng xâu trong giải các bài toán đơn giản. - Hôm nay chúng ta sẽ hiểu sâu hơn qua các ví dụ. ❖ HOẠT ĐỘNG 2: Hình thành kiến thức (1) Mục tiêu: Giúp học sinh biết được cách sử dụng kiểu xâu để giải cách bài toán đơn giản (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích.
  32. (3) Hình thức tổ chức hoạt động: Làm việc cá nhân. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh nắm được cách sử dụng kiểu xâu để giải cách bài toán đơn giản thông qua các ví dụ Nội dung hoạt động Hoạt động giáo viên Hoạt động học sinh Nội dung trình bày 4. Một số ví dụ Ví dụ 1. Viết chương trình nhập Ví dụ 1. Viết chương trình nhập vào họ đệm và tên của học sinh. vào họ đệm và tên của học sinh. In ra màn hình họ và tên của học In ra màn hình họ và tên của học sinh đó. sinh đó. (?) Theo các em làm sao ta có - Suy nghĩ trả lời: ta Program In_hoten; thể in học tên học sinh? ghép 2 xâu đó lại. Var a, b, x : string; - Hướng dẫn học sinh cách viết - Nghe giảng và ghi Begin chương trình. bài. Write(‘Nhap vao ho hoc sinh: ’); Readln(a); Write(‘Nhap vao ten hoc sinh: ’); Readln(b); x:= a + b; Write(‘Ho va ten hoc sinh la: ’, x); Readln; End. Ví dụ 2. Nhập vào hai xâu, kiểm Ví dụ 2. Nhập vào hai xâu, kiểm tra kí tự đầu tiên của xâu thứ tra kí tự đầu tiên của xâu thứ nhất có trùng với kí tự cuối cùng - Trả lời: Hàm length. nhất có trùng với kí tự cuối cùng của xâu thứ hai không? của xâu thứ hai không? - Hướng dẫn các em cách truy Program Ktkitutrung; cập phần tử cuối của xâu. - Chú ý nghe giảng, Var x: integer; ghi bài. A, b: string; Begin Write(‘ Nhap vao xau thu nhat: ’); readln(a); Write(‘ Nhap vao xau thu hai: ’); readln(b); x := length(b); If a[1] = b[x] then write(‘Trung nhau’) else write(‘Khac nhau’); Readln; End. Ví dụ 3. Nhập vào một xâu, in Ví dụ 3. Nhập vào một xâu, in ra ra màn hình xâu đó viết theo thứ màn hình xâu đó viết theo thứ tự tự ngược lại. ngược lại. (?) Để làm được đó ta phải sử Nghe giảng và ghi bài. dụng vòng lặp gì?
  33. - Nhận xét trước tiên ta phải Program Daonguocxau; dùng hàm length sao đó ta lặp từ Uses Crt; chỉ số cuối về chỉ số đầu. Var i, k: integer; a: string; Begin Write(‘ Nhap xau: ’); Readln(a); k:= length(a); For i:= k downto 1 do write(a[i]); Readln; End. Ví dụ 4. Nhập vào một xâu, đưa Ví dụ 4. Nhập vào một xâu, đưa ra màn hình xâu thu được từ nó ra màn hình xâu thu được từ nó nhưng đã loại bỏ dấu cách. - Trả lời: vòng lặp lùi. nhưng đã loại bỏ dấu cách. - Hướng dẫn học sinh cách viết Program Xoakhoangcach; chương trình. - Nghe giảng và viết Var i, k: byte; chương trình. a: string; Begin Write(‘ Nhap xau: ’); readln(a); k:= length(a); b:= ‘’; For i:= 1 to k do If a[i] <> ‘ ’ then b:=b+a[i]; Writeln(‘Ket qua: ’, b); Readln; End. Ví dụ 5. Nhập vào xâu x1, tạo Ví dụ 5. Nhập vào xâu x1, tạo một xâu x2 gồm tất cả các chữ một xâu x2 gồm tất cả các chữ số có trong x1, giữ nguyên thứ số có trong x1, giữ nguyên thứ tự xuất hiện giữa chúng, rồi in - Ghi bài. tự xuất hiện giữa chúng, rồi in ra ra màn hình. màn hình. - Giáo viên nhận xét. Program Xauchuso; Uses crt; Var x1, x2: string; i: byte; Begin Write(‘ Nhập vào xâu x1: ’); Readln(x1); x2 := ‘’; For i := 1 to length(x1) do If (‘0’ =< x1[i]) and (x1[i] <= ‘9’) then x2 := x2 + x1[i];
  34. - Tự viết chương Writeln(‘Ket qua la: ’, x2); trình. Readln; End. ❖ HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng: (1) Mục tiêu: Giúp học sinh thực hiện được sử dụng kiểu xâu để giải cách bài toán đơn giản (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh, (3) Hình thức tổ chức hoạt động: giải bài tập trên bảng (4) Phương tiện dạy học:SGK, bảng. (5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể. Nội dung hoạt động GV yêu cầu HS: Viết chương trình nhập vào hai xâu, in ra màn hình xâu dài hơn. GV hướng dẫn và kêu một học sinh lên bảng làm bài. GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng ❖ HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng: (1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình. (2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm. (3) Hình thức tổ chức hoạt động: Ngoài lớp học (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể. Nội dung hoạt động - GV: cho bài tập: Viết chương trình nhập hai xâu kí tự a, b bất kì. Kiểm tra kí tự cuối của xâu a có trùng với kí tự thứ hai trong xâu b hay không. - HS: làm bài tập GV yêu cầu. - GV: xem trước về bài tập kiểu xâu IV. RÚT KINH NGHIỆM Duyệt của tổ trưởng chuyên môn Giáo viên soạn Lê Thị Lịnh Lê Minh Tâm
  35. Tuần: 24 Ngày soạn: 15/01/2018 Tiết: 29 Ngày dạy:29/01/2018 đến 04/02/2018 BÀI TẬP I. MỤC TIÊU 1. Về kiến thức - 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ách thức tạo kiểu do ngôn ngữ lập trình Pascal quy định. - 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. - 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ề thái độ - Thái độ nghiêm túc trong học tập, chủ động giải bài tập. 4. Năng lực hướng tới - Khai báo biến dữ liệu hợp lý. Hiểu nguyên lý lưu dữ liệu một cách có cấu trúc. II. CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH 1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng, 2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết, III. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP 1. Ổn định lớp 2. Kiểm tra bài cũ (không) 3. Tiến trình bài học ❖ HOẠT ĐỘNG 1: Hoạt động khởi động: (1) Mục tiêu: Tạo động cơ để học sinh hiểu được cách thao tác với kiểu xâu (2) Phương pháp/kĩ thuật dạy học: Cá nhân. (3) Phương tiện dạy học: SGK, Projector, máy tính. (4) Học sinh có nhu cầu mong muốn được học cách sử dụng kiểu xâu để giải các bài toán. Nội dung hoạt động Hoạt động của giáo viên Hoạt động của học sinh Với những bài toán yêu cầu nhập xâu kí tự bất - Trả lời : Kiểu xâu kỳ ta dùng khai báo kiểu gì để lưu các giá trị đó? Ta có thể tham chiếu đến các phần tử và lấy giá trị các phần tử của xâu kí tự được không? - Trả lời : Được Để hiểu được sự lợi ích nhiều hơn của việc sử dụng kiểu xâu hôm nay chúng ta sẽ làm một số bài tập vận dụng cấu trúc rẽ nhánh, cấu trúc lặp - Nghe giảng với kiểu xâu ❖ HOẠT ĐỘNG 2: Hình thành kiến thức (1) Mục tiêu: Giúp học sinh biết được cách khai báo mảng một chiều, hiểu cách nhập và in mảng một chiều. (2) Phương pháp/kĩ thuật dạy học: Đặt vấn đề, phân tích.
  36. (3) Hình thức tổ chức hoạt động: Làm việc cá nhân. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh nắm được cách khai báo biến mảng một chiều, hiểu cách nhập và in mảng một chiều, giải được các bài toán về mảng một chiều. Nội dung hoạt động Hoạt động giáo viên Hoạt động học sinh Nội dung trình bày Bai 1: Viết chương trình nhập một xâu s bất kỳ vào từ bàn phím. Đếm và in ra màn hình - Xác định input và output - Trả lời: Xâu s, output xâu có bao nhiêu dấu cách? là số lượng dấu cách Program dem_trang; - Trả lời:Biến xâu s, Uses crt; - Cần khai báo những biến nào? dem, i Var s:string; Dem, I:integer; - Sử dụng vòng lặp gì để duyệt - Trả lời:vòng lặp for Begin các phần tử? Write(‘Nhap xau:’); - Vòng lặp đi từ giá trị nào? - Trả lời:1->length(s) Readln(s); - Để so sánh một kí tự với - Trả lời:a[i]=’ ‘ Dem:=0; khoảng trắng ta viết như thế For i:=1 to length(s) do nào? If a[i]=’ ‘ then Dem:=dem+1; - Gọi học sinh lên bảng làm? - Một học sinh lên Write(‘so luong dau cach bảng làm la:’,dem); - Quan sát Readln End - Gọi học sinh nhận xét -Nhận xét - Nhận xét -Nghe giảng và ghi bài Bai 2: Viết chương trình nhập một xâu s1 bất kỳ vào từ bàn - Trả lời: Xâu s1, phím, tạo xâu s2 gồm tất cả các - Xác định input và output output xâu s2 ký tự không phải là chữ số có - Trả lời:Biến xâu s1, trong xâu s1 và in kết quả ra - Cần khai báo những biến nào? s2, i màn hình. - Khởi tạo s2 bang bao nhiêu? -Trả lời:s2=’’ - Sử dụng vòng lặp gì để duyệt - Trả lời:vòng lặp for Program tao_xau; các phần tử? Var s1,s1:string; - Vòng lặp đi từ giá trị nào? - Trả lời : I:integer; 1->length(s1) Begin - Đều kiện để lấy giá trị cho -Trả lời: s1[i] ’9’ Readln(s1); - Gọi học sinh lên bảng làm? - Một học sinh lên S2:=’’; bảng làm For i:=1 to length(s1) do - Quan sát If s1[i] ’9’ then
  37. S2:=s2+s1[i]; - Gọi học sinh nhận xét -Nhận xét Writeln(‘xau s2 la:’,s2); - Nhận xét -Nghe giảng và ghi bài Readln End. ❖ HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng: (1) Mục tiêu: Giúp học sinh biết được cách khai báo biến xâu, hiểu cách nhập và in xâu. (2) Phương pháp/kĩ thuật dạy học: Đặt vấn đề, phân tích. (3) Hình thức tổ chức hoạt động: Làm việc cá nhân. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh nắm được cách khai báo biến xâu, hiểu cách nhập và in xâu, giải được các bài toán về kiểu xâu. Nội dung hoạt động GV cho bài tập : Viết chương trình nhập một xâu kí tự bất kì. Đếm và in ra số lần xuất hiện chữ số trong xâu. GV hướng dẫn và kêu một học sinh lên bảng làm bài. GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng ❖ HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng: (1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình. (2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm. (3) Hình thức tổ chức hoạt động: Ngoài lớp học (4) Phương tiện dạy học:SGK, Projector, máy tính. (5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể. Nội dung hoạt động - GV: cho bài tập: Viết chương trình nhập một xâu kí tự bất kì và một kí tự bất ki. Cho biết số lần xuất hiện kí tự vừa nhập. - HS: làm bài tập GV yêu cầu. - GV: xem trước về bài tập thực hành 5 IV. RÚT KINH NGHIỆM Duyệt của tổ trưởng chuyên môn Giáo viên soạn Lê Thị Lịnh Lê Minh Tâm
  38. Tuần: 25 Ngày soạn: 15/01/2018 Tiết: 30+31 Ngày dạy:05/02/2018 đến 24/02/2018 BÀI TẬP VÀ THỰC HÀNH 5 I. MỤC TIÊU 1. Về kiến thức - Củng cố cho học sinh những hiểu biết về kiểu xâu. - Cung cấp cho học sinh một vài thuật toán cơ bản và đơn giản thường gặp trong xử lý xâu. 2. Về kĩ năng - Làm việc với xâu trong lập trình. - Bước đầu viết được một số thuật toán kiêu xâu quen thuộc bằng Pascal. - Góp phần hình thành và rèn luyện tư duy lập trình, tác phong của người lập trình. 3. Về thái độ - Thái độ nghiêm túc trong học tập. 4. Năng lực hướng tới II. CHUẨN BỊ 1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng, 2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết, III. HOẠT ĐỘNG DẠY VÀ HỌC 1. Ổn định lớp, kiểm tra sĩ số 2. Kiểm tra bài cũ: không. 3. Nội dung bài mới: ❖ HOẠT ĐỘNG 1: Hoạt động khởi động: (1) Mục tiêu: Tạo động cơ để học sinh sử dụng máy tính giải các bài toán. (2) Phương pháp/kĩ thuật dạy học: Cá nhân. (3) Phương tiện dạy học: SGK, Projector, máy tính. (4) Học sinh có nhu cầu mong muốn được học cách sử dụng kiểu xâu để giải các bài toán. Nội dung hoạt động Hoạt động của giáo viên Hoạt động của học sinh - Khi làm việc với kiểu xâu trước tiên chúng ta - Nghe giảng cần thành thạo các thao tác khai báo, nhập, xuất xâu. Để làm được điều đó thầy và cả lớp cùng tìm hiểu và thực hành một số bài tập ở Bài tập và thực hành số 5 trong SGK. ❖ HOẠT ĐỘNG 2: Hình thành kiến thức (1) Mục tiêu: Giúp học sinh sử dụng máy tính chạy được một số bài tập về kiểu xâu (2) Phương pháp/kĩ thuật dạy học: Thực hành trên máy tính. (3) Hình thức tổ chức hoạt động: Làm việc cá nhân. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh sử dụng máy tính chạy được một số bài toán về kiểu mảng. Nội dung hoạt động
  39. Hoạt động giáo viên Hoạt động học sinh Nội dung trình bày Bài 1. Nhập từ bàn phím một Bài 1. Nhập từ bàn phím một xâu. Kiểm tra xâu đó có phải là xâu. Kiểm tra xâu đó có phải là xâu đối xứng không. Xâu đối xâu đối xứng không. Xâu đối xứng có tính chất: đọc từ bên xứng có tính chất: đọc từ bên phải sang trái cũng thu được kết phải sang trái cũng thu được kết quả giống như từ trái sang phải quả giống như từ trái sang phải (còn gọi là xâu palindrome). (còn gọi là xâu palindrome). (?) Khi đó chúng làm như thế nào? - Trả lời: sao khi đảo ngược xâu thì xâu mới - Nhận xét, bên cạnh đó ta còn giống xâu cũ. a/ Program xaudoixung; kiểm tra phần tử đầu trùng với - Nghe giảng và ghi Var i, x: byte; phần tử cuối và tương tự cho bài. a, p: string; đến phần tử ở giữa xâu. Begin Writeln('Nhap vao xau: '); Readln(a); x:=length(a); p:=''; For i:=x downto 1 do p:=p+a[i]; If a=p then Writeln('Xau la palindrome') Else Writeln('Xau khong la palindrome'); Readln; End. b/ Program xaudoixung; Uses crt; Var A: string; i, dem, n: integer; Begin Clrscr; Writeln('nhap vao xau'); Readln(A); n:=length(A); dem:=0; For i:=1 to n div 2 do If (A[i]=A[n+1-i]) then dem:=dem+1; If (dem=n div 2 ) then Writeln('Xau la palindrome')
  40. Else Writeln('Xau khong la palindrome'); Readln; End. - Giới thiệu các dòng lệnh giúp học sinh hiểu rõ cấu trúc - Lắng nghe để hiểu rõ chương trình. hơn. Bài 2. Viết chương trình nhập Bài 2. Viết chương trình nhập từ từ bàn phím một xâu kí tự S và - Nghe giảng và viết bàn phím một xâu kí tự S và thông báo ra màn hình số lần chương trình. thông báo ra màn hình số lần xuất lần của mỗi chữ cái tiếng xuất lần của mỗi chữ cái tiếng Anh trong S (không phân biệt Anh trong S (không phân biệt chữ hoa hay chữ thường). chữ hoa hay chữ thường). - Hướng dẫn học sinh cách viết Program xuathienchu; chương trình. - Chú ý quan sát, ghi Uses crt; bài. Var i, n: integer; j: char; dem, demso: integer; A:string; Begin Clrscr; Writeln('Nhap xau ki tu A'); Readln(A); For i:=1 to length(A) do If (A[i]=' ') then delete(A, i, 1); For i:=1 to length(A) do A[i]:=upcase(A[i]) ; For n:=0 to 9 do begin For i:=1 to length(A) do If (A[i]=n) then demso:=demso+1; end; For j:='A' to 'Z' do begin dem:=0; For i:=1 to length(A) do If (A[i]=j) then dem:=dem+1; If (dem>0) then writeln ('ki tu ', j, ' xuat hien ', dem, ' lan'); end; Readln; End.
  41. Bài 3. Nhập tự bàn phím một Bài 3. Nhập tự bàn phím một xâu. Thay thế tất cả các cụm tự xâu. Thay thế tất cả các cụm tự ‘anh’ bằng kí tự ‘em’. ‘anh’ bằng kí tự ‘em’. (?) Khi đó ta dùng thủ tục gì? - Trả lời: ta dùng thủ - Nhận xét, khi đó ta gặp chữ tục Delete và Insert. Program thaytheanhem; ‘anh’ ta xóa 3 kí tự sao đó ta - Viết chương trình Uses crt; chèn vào vị trí đó chữ ‘em’. vào tập. Var A: string; vt, i: integer; Begin Clrscr; Writeln('nhap vao xau A'); Readln(A); While pos('anh', A)<>0 do Begin vt:=pos('anh', A); delete(A, vt, 3); insert('em', A, vt); End; Writeln(A); Readln; End. ❖ HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng: (1) Mục tiêu: Giúp học sinh giải được các bài toán về kiểu xâu (2) Phương pháp/kĩ thuật dạy học: Đặt vấn đề (3) Hình thức tổ chức hoạt động: Làm việc cá nhân. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh giải được các bài toán về kiểu xâu Nội dung hoạt động GV cho bài tập : Viết chương trình nhập từ bàn phím một xâu bất kỳ. Đếm xem trong xâu vừa nhập có bao nhiêu chữ số. GV hướng dẫn và kêu một học sinh lên bảng làm bài. GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng ❖ HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng: (1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình. (2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm. (3) Hình thức tổ chức hoạt động: Ngoài lớp học (4) Phương tiện dạy học:SGK, Projector, máy tính. (5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể. Nội dung hoạt động - GV: cho bài tập: Viết chương trình nhập từ bàn phím một xâu bất kỳ. In xâu vừa nhập sau khi đã chuyển tất cả kí thường thành kí tự hoa.
  42. - HS: làm bài tập GV yêu cầu. - GV: xem trước câu hỏi và bài tập chương IV IV. RÚT KINH NGHIỆM Duyệt của tổ trưởng chuyên môn Giáo viên soạn Lê Thị Lịnh Lê Minh Tâm
  43. Tuần: 27 Ngày soạn: 29/01/2018 Tiết: 32+33 Ngày dạy:26/02/2018 đến 03/03/2018 CÂU HỎI VÀ BÀI TẬP I. MỤC TIÊU 1. Về kiến thức - 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ách thức tạo kiểu do ngôn ngữ lập trình Pascal quy định. - 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. - 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ề thái độ - Thái độ nghiêm túc trong học tập, chủ động giải bài tập. 4. Năng lực hướng tới II. CHUẨN BỊ 1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng, 2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết, III. HOẠT ĐỘNG DẠY VÀ HỌC 1. Ổn định lớp, kiểm tra sĩ số 2. Kiểm tra bài cũ: không. 3. Nội dung bài mới: ❖ HOẠT ĐỘNG 1: Hoạt động khởi động: (1) Mục tiêu: Tạo động cơ để học sinh ôn nắm lại kiến thức kiểu mảng một chiều và kiểu xâu. (2) Phương pháp/kĩ thuật dạy học: Cá nhân. (3) Phương tiện dạy học: SGK, Projector, máy tính. (4) Học sinh có nhu cầu mong muốn được trả lời các câu hỏi và các bài tập về kiểu mảng một chiều và kiểu xâu. Nội dung hoạt động Hoạt động của giáo viên Hoạt động của học sinh - Để ôn lại về khái niệm thế nào là kiểu mảng - Nghe giảng. một chiều, kiểu xâu. Sử dụng kiểu mảng một chiều, kiểu xâu để giải các bài toán đơn giản, hôm nay chúng ta sẽ làm câu hỏi và bài tập trang 79 - Yêu cầu học sinh mở sách giáo khoa trang 79 sau đó trả lời từng câu hỏi. ❖ HOẠT ĐỘNG 2: Hình thành kiến thức
  44. (1) Mục tiêu: Giúp học sinh ôn lại kiến thức về kiêu xâu và kiểu mảng một chiều, giải các bài toán đơn giản. (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích. (3) Hình thức tổ chức hoạt động: Làm việc cá nhân, nhóm. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh nắm được kiến thức đã học, sử dụng kiểu xâu và mảng giải được một số bài toán đơn giản Nội dung hoạt động Hoạt động giáo viên Hoạt động học sinh Nội dung trình bày (?) Gọi học sinh lên trả lời câu - Trả lời: vì nó có Câu 1. Tại sao mảng là kiểu dữ hỏi vì sao gọi dữ liệu có cấu khuôn dạng do ngôn liệu có cấu trúc? trúc? ngữ lập trình cung cấp. - Nhận xét, kết luận mảng là - Nghe giảng, ghi bài. kiểu dữ liệu có cấu trúc. Mảng là kiểu dữ liệu có cấu trúc bởi vì nó là kiểu có cấu trúc (?) Tại sao phải khai báo kích - Suy nghĩ trả lời. được đề cập tới sớm nhất trong thước mảng? các ngôn ngữ lập trình. Nó được - Nhắc lại, sự cần thiết khai báo - Nghe giảng và ghi xây dựng từ những kiểu dữ liệu kích thước. bài. đã có theo quy tắc khuôn dạng do ngôn ngữ lập trình cung cấp. (?) Các em hãy kể tên các kiểu - Trả lời: Real, Câu 2. Tại sao phải khai báo liệu đã được học? Integer, Longint, kích thước của mảng? Boolean. + Để đánh số các phần từ; - Tương tự như vậy mảng cũng - Ghi bài. + Tránh tốn ô nhớ giúp chương có các kiểu dữ liệu như vậy. trình chạy nhanh hơn. (?) Để tham chiếu đến phần tử - Trả lời: chỉ số của Câu 3. Các phần tử của mảng của mảng, phần quan trọng nhất mảng, cách ghi đúng. có thể có những kiểu gì? là gì? - Nhận xét: cần xác định tên - Nghe giảng. Các kiểu dữ liệu: Real, Boolean, mảng, chỉ số, phải để trong dấu Integer, Longint. []. Câu 4. Tham chiếu đến phần tử (?) Các em đã học toán hãy cho - Trả lời: dãy số là 1 3 của mảng bằng cách nào? một ví dụ về cấp số cộng? 5 7 - Tương tự trong Pascal vẫn - Nghe giảng. - Cần xác định tên mảng, chỉ số, giống như vậy, hôm nay chúng phải để trong dấu ngoặc vuông ta sẽ lập trình bài toán kiểm tra [chỉ số]. dãy số có phải là cấp số cộng Câu 5. Viết chương trình nhập không. từ bàn phím số nguyên dương N (N<=100) và dãy A gồm N số
  45. nguyên A1, A2, AN có giá trị (?) Theo toán học để kiểm tra - Trả lời: ta tính công tuyệt đối không lớn hơn 1000. dãy số có phải là cấp số cộng sai. Hãy cho biết dãy số A có phải không, ta cần tính giá trị nào? là cấp số cộng hay không và - Như vậy ta phải cần có công - Nghe giảng và ghi thông báo kết quả ra màn hình. sai, khi đó chúng ta lấy phần tử bài. thứ 2 trừ phần tử thứ nhất ta sẽ được công sai. Tiếp tục lấy phần tử i+1 trừ phần từ i nếu các Program capsocong; phép trừ cho kết quả bằng công Uses crt; sai thì ta được cấp số cộng. Var A: Array[1 100] of integer; cs, n, i, dem: integer; Begin Clrscr; Writeln('nhap vao n va n phai lon hon khong'); Readln(n); For i:=1 to n do Begin Writeln('nhap phan tu thu ', i); Readln(A[i]); End; dem:=0; cs:=A[2]-A[1]; For i:=2 to n-1 do If (A[i+1]-A[i]=cs) then dem:=dem+1; If (dem=n-2) then writeln('La cap so cong') Else (?) Các em đã biết khái niệm Writeln('Khong thế nào là số chẵn thế nào là số - Nghe giảng. la cap so cong'); lẻ và số nguyên tố là số như thế Readln ; nào? Hôm nay chúng ta sẽ lập End. trình bài toán kiểm tra số đó có Câu 6. Viết chương trình nhập phải là số nguyên tố không? từ bàn phím số nguyên dương N (N<=100) và dãy A gồm N số nguyên A1, A2, AN có giá trị tuyệt đối không lớn hơn 1000. Hãy đưa ra thông báo sau: (?) Yêu cầu học sinh nhắc lại a. Số lượng số chẵn và số lẻ thế nào là số chẵn, số lẻ? trong dãy;
  46. - Nhận xét, còn số nguyên tố là - Trả lời: là số chia hết b. Số lượng số nguyên tố trong số chia hết cho 1 và chính nó, và không chia hết cho dãy. nhưng số 1 không là số nguyên 2. tố, hướng dẫn học sinh cách viết - Xem cách viết chương trình. chương trình và ghi vào tập. Program Thuoctinhcuaday; Uses crt; Var A:array[1 100] of integer; n, demle, demchan, demngto, i , j: integer; tam: boolean; Begin clrscr; Writeln('nhap vao n'); Readln(n); If (abs(n)>1000) then writeln(' Nhap lai N') Else Begin For i:=1 to n do Begin Writeln('nhap vao phan tu thu ', i); Readln(A[i]); End; demle:=0; demchan:=0; For i:=1 to n do If (A[i] mod 2=0) then demchan:=demchan+1 Else demle:=demle+1; demngto:=0; tam:=true; For i:=1 to n do If (A[i] >1) then Begin j:=2; While (j 0) do j:=j+1; If (j>sqrt(A[i])) then demngto:=demngto+1; End; writeln('Cac so chan la ', demchan);
  47. writeln('Cac so le la ', demle); writeln('So nguyen to la', (?) Các em hãy cho biết thế nào demngto); là dãy Phi- bô- na –xi? End; - Nhận xét: Dãy Readln; Fibonaxi là dãy vô hạn các số - Suy nghĩ trả lời. End. tự nhiên bắt đầu bằng hai phần Câu 7. Dãy F là Phi-bô-na- xi tử 0 và 1, các phần tử sau đó - Nghe giảng. nếu: được thiết lập theo quy tắc mỗi F0=0; F1=1; FN=FN-1+FN-2 với phần tử luôn bằng tổng hai N>=2. phần tử trước nó. Viết chương trình nhập từ bàn phím số nguyên dương N và đưa ra màn hình số hạng thứ N - Hướng dẫn học sinh cách viết của dãy Phi- bô- na-xi. Chương chương trình. trình của bạn thực hiện được với giá trị lớn nhất của N là bao - Chú ý quan sát. nhiêu? Program Dayfibonaxi; Uses crt; Var n, i, f0, f2, f1, f: integer; Begin Clrscr; Writeln('nhap vao n'); Readln(n); f0:=0; f1:=1; f2:=1; If (n=2) then writeln('Phan tu thu ', n, 'la ', f0 + f1) Else Begin For i:=3 to n do Begin f:=f1+f2; f1:=f2; f2:=f; End; Writeln('Phan tu thu ', n, 'la - Theo các em thì chương trình ', f); chúng ta chạy tới với giá trị nào End; của N? Readln; - Với từng kiểu số nguyên khác - Trả lời phụ thuộc vào End. nhau sẽ cho giá trị N, vì mỗi khai báo N. kiểu có phạm vi giá trị khác nhau. - Nghe giảng.
  48. - Yêu cầu học sinh đọc và thảo luận bài tập 10 trang 80 SGK. Câu 10. Viết chương trình (?) Khi đó ta phải kiểm tra từ nhập từ bàn phím xâu kí tự S phần tử đầu đến phần tử cuối. có độ dài không quá 100. Hãy Để tìm phần tử cuối thì chúng ta cho biết có bao nhiêu chữ số phải dùng hàm gì? - Trả lời: Hàm length. xuất hiện trong xâu S. - Khi đó ta cho vòng lặp chạy từ phần tử 1 đến phần tử có giá trị bằng length(S), nếu nằm trong khoảng từ 0 đến 9 thì ta đếm lên - Nghe giảng, tự viết một giá trị. chương trình. - Nhận xét cách viết chương trình của học sinh, chỉnh sửa nếu có sai sót. - Viết chương trình vào tập. Program demso; Var s: string[100]; i, dem: integer; Begin Writeln('Nhap 1 xau ki tu do dai khong qua 100'); Readln(s); dem:=0; For i:=1 to length(s) do If ('0'<=s[i]) and (s[i]<='9') then dem:=dem+1; Writeln('Trong xau s co ', dem, ' chu so xuat hien’); Readln; End. ❖ HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng: (1) Mục tiêu: Giúp học sinh giải thêm các bài tập về xâu, mảng một chiều. (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh, (3) Hình thức tổ chức hoạt động: giải bài tập trên bảng (4) Phương tiện dạy học:SGK, bảng. (5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể. Nội dung hoạt động GV yêu cầu HS: Viết chương trình nhập vào một dãy số nguyên có n phần tử. - Sắp xếp dãy theo thứ tự tăng dần và in kết quả ra màn hình. - Nhập vào một số x bất kì, đếm số lần xuất hiện của nó trong dãy trên.
  49. - In ra màn hình số phần tử nhỏ hơn hoặc bằng x. - In ra màn hình số phần tử lớn hơn x GV hướng dẫn và kêu một học sinh lên bảng làm bài. GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng ❖ HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng: (1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình. (2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm. (3) Hình thức tổ chức hoạt động: Ngoài lớp học (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể. Nội dung hoạt động - GV: cho bài tập: Viết chương trình nhập một đoạn văn. Đếm có bao nhiêu câu trong đoạn vừa nhập. - HS: làm bài tập GV yêu cầu. IV. RÚT KINH NGHIỆM Duyệt của tổ trưởng chuyên môn Lê Thị Lịnh
  50. Tuần: 28 Ngày soạn: 25/02/2018 Tiết: 34 Ngày dạy:05/03/2018 đến 10/03/2018 ÔN TẬP I. MỤC TIÊU 1. Về kiến thức - 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ách thức tạo kiểu do ngôn ngữ lập trình Pascal quy định. - 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. - 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ề thái độ - Thái độ nghiêm túc trong học tập, chủ động giải bài tập. 4. Năng lực hướng tới II. CHUẨN BỊ 1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng, 2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết, III. HOẠT ĐỘNG DẠY VÀ HỌC 1. Ổn định lớp, kiểm tra sĩ số 2. Kiểm tra bài cũ: không. 3. Nội dung bài mới: ❖ HOẠT ĐỘNG 1: Hoạt động khởi động: (1) Mục tiêu: Tạo động cơ để học sinh ôn nắm lại kiến thức kiểu mảng một chiều và kiểu xâu. (2) Phương pháp/kĩ thuật dạy học: Cá nhân. (3) Phương tiện dạy học: SGK, Projector, máy tính. (4) Học sinh có nhu cầu mong muốn được làm các bài tập về kiểu mảng một chiều và kiểu xâu. Nội dung hoạt động Hoạt động của giáo viên Hoạt động của học sinh - Để ôn lại về khái niệm thế nào là kiểu mảng - Nghe giảng. một chiều, kiểu xâu. Sử dụng kiểu mảng một chiều, kiểu xâu để giải các bài toán đơn giản, hôm nay chúng ta sẽ làm một số bài tập ❖ HOẠT ĐỘNG 2: Hình thành kiến thức (1) Mục tiêu: Giúp học sinh ôn lại kiến thức về kiêu xâu và kiểu mảng một chiều, giải các bài toán đơn giản. (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích. (3) Hình thức tổ chức hoạt động: Làm việc cá nhân, nhóm. (4) Phương tiện dạy học: SGK, Projector, máy tính.
  51. (5) Kết quả: Học sinh nắm được kiến thức đã học, sử dụng kiểu xâu và mảng giải được một số bài toán đơn giản Nội dung hoạt động Hoạt động giáo viên Hoạt động học sinh Nội dung trình bày Bài 1. Viết chương trình nhập vào mảng 1 chiều với N phần tử, với N nhập từ bàn phím, - Xác định input và output - Trả lời: Dãy số, sao đó in ra màn hình tổng của output là tổng chẳn số chẵn. - Thế nào là số chẵn? - Trả lời:số chia hết Program Tong_chan; cho 2 Uses crt; - Hàm gì để tính điều kiện chia - Trả lời:a[i] mod 2=0 Var A: array[1 100] of Integer; hết? N, tongch, i: Integer; Begin - Nếu chia hết thì biến tong tăng -Trả lời Clrscr; bao nhiêu? tong:=tong+a[i] Writeln('Nhap vao N'); Readln(N); - Gọi học sinh lên bảng làm? - Một học sinh lên For i:=1 to N do bảng làm Begin - Quan sát Writeln('Nhap vao phan tu thu ', i); - Gọi học sinh nhận xét -Nhận xét Readln(A[i]); - Nhận xét -Nghe giảng và ghi bài End; Tongch:=0; For i:=1 to N do If (A[i] mod 2=0) then tongch:=tongch+a[i]; Writeln(‘Tong chan la ', tongch); Readln; End. Bài 2: Viết chương trình nhập - Trả lời:Xâu s, output xâu bất kỳ. In xâu vừa nhập - Xác định input và output là xâu kí tự hoa sau khi đổi tất cả các kí - Trả lời: upcase thường thành kí tự hoa? - Hàm gì đổi một kí tự thường Program xau_hoa; thành hoa? Uses crt; - Trả lời:vong lặp for, Var s:string; - Ta dùng vòng lặp nào và đi từ 1->length(s) I:integer; giá trị bao nhiêu? Begin - Trả lời Clrscr; - Với mõi lần lặp ta thực hiện s[i]:=upcase(s[i]) Write(‘nhap xau s:’); câu lệnh gì Readln(s); - Một học sinh lên For i:=1 to length(s) do - Gọi học sinh lên bảng làm? bảng làm S[i]:=upcase(s[i]);
  52. Write(‘xau hoa:’,s); - Quan sát Readln -Nhận xét End. - Gọi học sinh nhận xét -Nghe giảng và ghi bài - Nhận xét ❖ HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng: (1) Mục tiêu: Giúp học sinh thực hiện được thao tác tạo khai báo, nhập và in mảng một chiều (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh, (3) Hình thức tổ chức hoạt động: giải bài tập trên bảng (4) Phương tiện dạy học:SGK, bảng. (5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể. Nội dung hoạt động GV yêu cầu HS: Viết chương trình nhập 1 xâu bất kỳ gồm các kí tự từ a đến Z. In ra màn hình kí tự xuất hiện nhiều nhất trong câu. GV hướng dẫn và kêu một học sinh lên bảng làm bài. GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng ❖ HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng: (1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình. (2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm. (3) Hình thức tổ chức hoạt động: Ngoài lớp học (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể. Nội dung hoạt động - GV: cho bài tập: Viết chương trình nhập dãy số nguyên bất kì và một số nguyên k bất kì. Tìm và đếm số lần xuất hiện số k đó trong dãy số vừa nhập. - HS: làm bài tập GV yêu cầu. IV. RÚT KINH NGHIỆM Duyệt của tổ trưởng chuyên môn Lê Thị Lịnh
  53. Tuần: 28 Ngày soạn: 25/02/2018 Tiết: 35 Ngày dạy:05/03/2018 đến 10/03/2018 KIỂM TRA 1 TIẾT THỰC HÀNH. I. MỤC TIÊU 1. Kiến thức: - Nắm vững các kiến thức đã học. - Thực hiện đúng các thao tác mảng, xâu. - Biết phân tích chương trình. 2. Kĩ năng - Giải những bài toán từ đơn giản tới phức tạp. 3. Thái độ - Có thái độ nghiêm túc giờ kiểm tra. II. CHUẨN BỊ ĐỒ DÙNG DẠY HỌC - Chuẩn bị của giáo viên: Giáo án, SGK, SGV, máy tính, máy chiếu, bút lông, bảng, - Chuẩn bị của học sinh: SGK, tập, viết, III. PHƯƠNG PHÁP DẠY HỌC - Vấn đáp, thuyết trình. IV. TIẾN TRÌNH LÊN LỚP 1. Ổn định lớp, kiểm tra sĩ số. 2. Kiểm tra bài cũ: 3. Nội dung đề kiểm tra Câu 1. Viết chương trình nhập mảng 1 chiều n phần tử. Tính và in ra màn hình tổng các số lẻ. Câu 2. Viết chương nhập vào xâu A, sau đó in kí tự đầu tiên và kí tự cuối cùng của xâu 4. Củng cố - dặn dò a. Củng cố. - Nắm các thao tác với từng loại kiểu dữ liệu. b. Dặn dò - Về xem trước bài kiểu dữ liệu tệp. 5. Rút kinh nghiệm
  54. Tuần: 29 Ngày soạn: 26/02/2018 Tiết: 36 Ngày dạy:12/03/2018 đến 17/03/2018 BÀI 14. KIỂU DỮ LIỆU TỆP I. MỤC TIÊU 1. Về kiến thức - Biết được đặc điểm của kiểu dữ liệu tệp. - Biết hai cách phân loại tệp, khái niệm tệp có cấu trúc và tệp văn bản. 2. Về kĩ năng - Làm quen với kiểu dữ liệu mới. 3. Về thái độ - Thái độ nghiêm túc trong học tập. 4. Năng lực hướng tới II. CHUẨN BỊ 1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng, 2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết, III. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP 1. Ổn định lớp 2. Kiểm tra bài cũ (không) 3. Tiến trình bài học ❖ HOẠT ĐỘNG 1: Hoạt động khởi động: (1) Mục tiêu: Tạo động cơ để học sinh hiểu được kiểu dữ liệu là gì (2) Phương pháp/kĩ thuật dạy học: Cá nhân (3) Phương tiện dạy học: SGK, Projector, máy tính. (4) Học sinh có nhu cầu mong muốn được học kiểu dữ liệu tệp Nội dung hoạt động Hoạt động của giáo viên Hoạt động của học sinh - Sau khi chạy chương trình ở các bài trước ta - Nghe giảng. thấy kết quả in trên màn hình nhưng muốn sử dụng kết quả đó về sau thì không được. Do đó, ta có kiểu dữ liệu mới là kiểu dữ liệu tệp. ❖ HOẠT ĐỘNG 2: Hình thành kiến thức (1) Mục tiêu: Giúp học sinh biết được về vai trò kiểu dữ liệu tệp, phân loại và biết được các thao tác với tệp. (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích. (3) Hình thức tổ chức hoạt động: Làm việc cá nhân. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh nắm được vai trò kiểu dữ liệu tệp, phân loại và biết được các thao tác với tệp.
  55. Nội dung hoạt động Hoạt động giáo viên Hoạt động học sinh Nội dung trình bày (?) Các kiểu dữ liệu trước được - Trả lời: lưu trên bộ 1. Vai trò của kiểu tệp lưu trữ ở bộ nhớ nào? nhớ Ram. (?) Vậy dữ liệu lưu trên Ram thì - Trả lời: dữ liệu sẽ khi tắt máy hoặc mất điện thì dữ mất. liệu lưu trữ trong bộ nhớ này sẽ như thế nào? - Dữ liệu kiểu tệp có những đặc - Hôm nay ta sẽ tìm hiểu tệp là - Nghe giảng và ghi điểm sau: gì? Có đặc điểm gì? bài. + Được lưu trữ lâu dài ở bộ nhớ - Em hãy tìm hiểu trong SGK - Tham khảo SGK trả ngoài (đĩa từ, CD, ) và không cho thầy biết vai trò của kiểu dữ lời bị mất khi tắt nguồn điện; liệu tệp? + Lượng dữ liệu lưu trữ trên tệp có thể rất lớn và chỉ phụ thuộc vào dung lượng đĩa. (?) Yêu cầu học sinh đọc SGK - Tham khảo SGK và 2. Phân loại tệp và thao tác với và cho biết đặc điểm của kiểu dữ trả lời. tệp liệu tệp? - Nhận xét và giảng thêm khái - Nghe giảng và ghi Tệp được phân loại theo hai niệm 2 loại tệp. bài. cách: - Theo cách tổ chức dữ liệu: + Tệp văn bản; + Tệp có cấu trúc. - Hướng dẫn học sinh hai cách - Ghi bài. - Theo cách thức truy cập: truy cập tệp. + Tệp truy cập tuần tự; + Tệp truy cập trực tiếp. - Giới thiệu cho học sinh biết hai - Nghe giảng và ghi - Không cần biết số lượng phần thao tác cơ bản khi làm việc với bài. tử trước. tệp là ghi dữ liệu vào tệp và đọc - Hai thao tác cơ bản đối với tệp dữ liệu từ tệp. là ghi dữ liệu vào tệp và đọc dữ liệu từ tệp. Nhưng người lập trình biết cách thức mà ngôn ngữ lập trình cung cấp: + Khai báo biến tệp; + Mở tệp; + Đọc/ghi dữ liệu; + Đóng tệp. ❖ HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng: (1) Mục tiêu: Giúp học sinh biết được vai trò kiểu tệp, phân loại tệp và biết các thao tác với tệp (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh, (3) Hình thức tổ chức hoạt động: giải bài tập trên bảng (4) Phương tiện dạy học:SGK, bảng.
  56. (5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể. Nội dung hoạt động GV yêu cầu HS: Trả lời các câu trắc nghiệm sau: Câu 1: Cữ liệu kiểu tệp A_được lưu trữ trên ROM. B_ được lưu trữ trên RAM. C_chỉ được lưu trữ trên đĩa cứng. D_được lưu trữ trên bộ nhớ ngoài. Câu 2: Dữ liệu kiểu tệp A. sẽ bị mất hết khi tắt máy. B. sẽ bị mất hết khi tắt điện đột ngột. C. không bị mất khi tắt máy hoặc mất điện. D. cả A, B, C đều sai. Câu 3: Phát biểu nào dưới đây là đúng ? A. Các kiểu dữ liệu đều được lưu trữ ở bộ nhớ trong (RAM). B. Dữ liệu kiểu tệp được lưu trữ ở bộ nhớ trong. C. Dữ liệu kiểu tệp được lưu trữ ở bộ nhờ ngoài (đĩa mềm, đĩa cứng, CD, thiết bị nhớ Flash). D. Các dữ liệu trong máy tính đều bị mất đi khi tắt nguồn điện. GV hướng dẫn và cho các em thảo luận. GV gọi các nhóm trả lời. GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng ❖ HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng: (1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình. (2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm. (3) Hình thức tổ chức hoạt động: Ngoài lớp học (4) Phương tiện dạy học:SGK, Projector, máy tính. (5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể. Nội dung hoạt động - GV: cho bài tập: Câu 1: Phát biểu nào sau đây là sai ? A. Tệp có cấu trúc là tệp mà các thành phần của nó được tổ chức theo một cấu trúc nhất định. B. Tệp chứa dữ liệu được tổ chức theo một cách thức nhất định gọi là tệp có cấu trúc. C. Tệp văn bản không thuộc loại tệp có cấu trúc. D. Tệp văn bản gồm các kí tự theo mã ASCII được phân chia thành một hay nhiều dòng. Câu 2: Phát biểu nào sau đây là sai ? A. Có thể truy cập trực tiếp tệp văn bản. B. Tệp có cấu trúc có thể truy cập trực tiếp. C. Tệp có cấu trúc có thể truy cập tuần tự. D. Truy cập trực tiếp là cách truy cập cho phép tham chiếu đến dữ liệu cần truy cập bằng cách xác định trực tiếp vị trí (thường là số hiệu) của dữ liệu đó. Câu 3: Phát biểu nào sau đây là đúng ?
  57. A. Số lượng phần tử của tệp là cố định. B. Kích thước tệp có thể rất lớn. C. Dữ liệu một tệp được lưu trữ trên đĩa thành một vùng dữ liệu liên tục. D. Tệp lưu trữ lâu dài trên đĩa, không thể xóa tệp trên đĩa. - HS: làm bài tập GV yêu cầu. - Gv: học bài và xem trước bài 15 IV. RÚT KINH NGHIỆM Duyệt của tổ trưởng chuyên môn Giáo viên soạn Lê Thị Lịnh Lê Minh Tâm
  58. Tuần: 29 Ngày soạn: 26/02/2018 Tiết: 37 Ngày dạy:12/03/2018 đến 17/03/2018 BÀI 15. THAO TÁC VỚI TỆP I. MỤC TIÊU 1. Về kiến thức - Biết khai báo biến tệp và gắn tên tệp. 2. Về kĩ năng - Khai báo đúng biến kiểu tệp. - Thao tác đúng gắn tên tệp 3. Về thái độ - Thấy được sự cần thiết và tiện lợi của kiểu dữ liệu tệp. - Có ý thức lưu trữ dữ liệu một cách khoa học. 4. Năng lực hướng tới - Khai báo biến dữ liệu hợp lý. II. CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH 1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng, 2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết, III. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP 1. Ổn định lớp 2. Kiểm tra bài cũ (không) 3. Tiến trình bài học ❖ HOẠT ĐỘNG 1: Hoạt động khởi động: (1) Mục tiêu: Tạo động cơ để học sinh hiểu được cách sử dụng và khai báo được biến tệp. (2) Phương pháp/kĩ thuật dạy học: Cá nhân, thảo luận nhóm. (3) Phương tiện dạy học: SGK, Projector, máy tính. (4) Học sinh có nhu cầu mong muốn được học cách khai báo biến tệp Nội dung hoạt động Hoạt động của giáo viên Hoạt động của học sinh - Giới thiệu cấu trúc chung của khai báo biến tệp Nghe giảng và giải thích, cũng giống như các kiểu dữ liệu khác để có thể hiểu được thì chúng ta cần khai báo. ❖ HOẠT ĐỘNG 2: Hình thành kiến thức (1) Mục tiêu: Giúp học sinh biết được cách khai báo mảng một chiều, hiểu cách gắn tên tệp. (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích. (3) Hình thức tổ chức hoạt động: Làm việc cá nhân. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh nắm được cách khai báo biến mảng một chiều, gắn tên tệp
  59. Nội dung hoạt động Hoạt động giáo viên Hoạt động học sinh Nội dung trình bày (?) Vậy em nào có thể cho thầy - Nghe giảng và quan 1. Khai báo biết dạng của khai báo biến tệp sát. văn bản? - Trả lời: var : text; cho một ví dụ về khai báo kiểu biến tệp? - Cho một số ví dụ giúp học sinh hiểu thêm kiểu dữ liệu mới. - Trả lời: Var a: text; - Ghi bài. Khai báo biến tệp văn bản có dạng: Var : text; Ví dụ: Var f: text; - Các thao tác với tệp chia thành - Nghe giảng. 2. Thao tác với tệp bốn nhóm: + Gắn tên tệp; + Mở tệp; + Đọc/ghi tệp; + Đóng tệp; - Để thao tác với tệp, trước hết - Nghe giảng và ghi a/ Gắn tên tệp phải gắn tên tệp cho biến tệp bài. - Để thao tác với tệp, trước hết phải bằng câu lệnh: gắn tên tệp cho biến tệp bằng câu Assign ( , ); assign ( , ); - Trong đó tên tệp là biến xâu - Trong đó tên tệp là biến xâu hoặc hoặc hằng xâu. hằng xâu. (?) VD1: Giả thiết có biến xâu myfile và cần gắn biến tệp f với - Suy nghĩ và trả lời: tệp có tên DULIEU.DAT. Việc myfie:='DULIEU.DA gắn tên tệp được thực hiện bằng T'; các câu lệnh? assign (f, myfile); - Nhận xét và giải thích thêm ví hoặc assign (f, Ví dụ 1: dụ, đặc biệt là ví dụ 2 đọc trên 'DULIEU.DAT'); myfie:='DULIEU.DAT'; thư mục gốc của đĩa D. assign (f, myfile); - Ghi ví dụ. hoặc assign (f, 'DULIEU.DAT'); Ví dụ 2: (?) VD2: Để chuẩn bị thao tác assign(tep2, 'C:\KQ.DAT'); với tệp có tên KQ.DAT ở ổ đĩa C ta dùng các câu lệnh nào để gắn nó với tệp tep2?. - Suy nghĩ và trả lời câu hỏi của giáo viên.
  60. ❖ HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng: (1) Mục tiêu: Giúp học sinh thực hiện được thao tác khai báo biến tệp và gắn tên tệp (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh, (3) Hình thức tổ chức hoạt động: giải bài tập trên bảng (4) Phương tiện dạy học:SGK, bảng. (5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể. Nội dung hoạt động GV yêu cầu HS: Trả lời các câu hỏi trắc nghiệm Câu 1. Để thao tác với tệp? A. Ta có thể gắn tên tệp cho biến tệp, hoặc sử dụng trực tiếp tên tệp cũng được. B. Ta nên sử dụng trực tiếp tên tệp trong chương trình. C. Ta nhất thiết phải gắn tên tệp cho biến tệp. D. Ta nhất thiết phải sử dụng trực tiếp tên tệp trong chương trình. Câu 2. Trong Pascal, để khai báo hai biến tệp văn bản f1, f2 ta viết? A. Var f1; f2: text B. Var f1, f2: text C. Var f1 f2: text D. Var f1: f2: text GV hướng dẫn và cho các em thảo luận. GV gọi các nhóm trả lời. GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng ❖ HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng: (1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình. (2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm. (3) Hình thức tổ chức hoạt động: Ngoài lớp học (4) Phương tiện dạy học:SGK, Projector, máy tính. (5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể. Nội dung hoạt động - GV: cho bài tập: Hãy khai báo một biến tệp tep1 và gắn với tên tệp là ‘C:\dulieu.dat’ - HS: làm bài tập GV yêu cầu. - Gv: học bài và xem trước phần 2.b, 2.c, 2.d IV. RÚT KINH NGHIỆM Duyệt của tổ trưởng chuyên môn Giáo viên soạn
  61. Lê Thị Lịnh Lê Minh Tâm
  62. Tuần: 30 Ngày soạn: 05/03/2018 Tiết: 38 Ngày dạy:19/03/2018 đến 24/03/2018 BÀI 15. THAO TÁC VỚI TỆP (tiết 2) I. MỤC TIÊU 1. Về kiến thức - Biết các thao tác cơ bản với tệp văn bản. - Biết sử dụng một số hàm và thủ tục chuẩn làm việc với tệp. 2. Về kĩ năng - Sử dụng một số hàm và thủ tục chuẩn làm việc với tệp. 3. Về thái độ - Thấy được sự cần thiết và tiện lợi của kiểu dữ liệu tệp. - Có ý thức lưu trữ dữ liệu một cách khoa học. 4. Năng lực hướng tới: - Năng lực tự học, năng lực giải quyết vấ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: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng, 2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết, III. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP 1. Ổn định lớp 2. Kiểm tra bài cũ (không) 3. Tiến trình bài học ❖ HOẠT ĐỘNG 1: Hoạt động khởi động: (1) Mục tiêu: Tạo động cơ để học sinh hiểu được các thao tác với kiểu dữ liệu tệp (2) Phương pháp/kĩ thuật dạy học: Cá nhân, thảo luận nhóm. (3) Phương tiện dạy học: SGK, Projector, máy tính. (4) Học sinh có nhu cầu mong muốn được học cách khai báo biến tệp Nội dung hoạt động Hoạt động của giáo viên Hoạt động của học sinh Ta đã tìm hiểu vai trò kiểu dữ liệu và cách khai Nghe giảng báo một biến biến tệp. Hôm nay chúng ta sẽ tìm hiểu để mở một tệp ta phải dùng thủ tục như thế nào và cách ghi và đọc dữ kiệu đối với một tệp mà ta muốn thao tác như thế nào ? ❖ HOẠT ĐỘNG 2: Hình thành kiến thức (1) Mục tiêu: Giúp học sinh biết được khái niệm về mảng một chiều, cách khai báo mảng một chiều, hiểu cách nhập và in mảng một chiều. (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích. (3) Hình thức tổ chức hoạt động: Làm việc cá nhân. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh nắm được khái niệm về bảng, cách khai báo biến mảng một chiều, hiểu cách nhập và in mảng một chiều, hiểu được một số ví dụ giải bài toán về mảng một chiều.
  63. Nội dung hoạt động Hoạt động giáo viên Hoạt động học sinh Nội dung trình bày - Tệp có thể dùng để chứa kết - Nghe giảng và ghi 2. Thao tác với tệp quả ra hoặc dữ liệu vào. Trước bài. b/ Mở tệp khi mở tệp, biến tệp phải được - Câu lệnh dùng thủ tục mở tệp gắn tên tệp bằng thủ tục assign. để ghi dữ liệu có dạng: - Câu lệnh dùng thủ tục mở tệp Rewrite( ); để ghi dữ liệu có dạng: Ví dụ 1: Rewrite( ); myfile:='D:\TP\BAITAP.INP'; - Khi thực hiện lệnh rewrite(f), assign (f, myfile); Nếu như trên ổ D:\TP chưa có rewrite(f); tệp BAITAP.INP, thì tệp sẽ được tạo rỗng. Nếu đã có, thì nội dung cũ bị xoá để chuẩn bị ghi dữ liệu mới. - Tương tự như vậy để đọc được nội dung của tệp ta cần có thủ tục mở tệp. (?) Vậy các em hãy đọc sách - Trả lời: ta có thủ tục giáo khoa và cho biết thủ tục là reset. gì? - Nhận xét. - Nghe giảng và ghi bài. - Mở tệp để đọc bằng thủ tục: - Nếu tệp được mở bằng thủ tục Reset( ); reset thì có thể đọc thông tin của Ví dụ: assign(tep1, ’DL.INP’); tệp, ta sẽ tìm hiểu việc đọc/ghi Reset(tep1); tệp văn bản như thế nào? (?) Việc đọc tệp văn bản được thực hiện giống như nhập từ bàn phím. Các em hãy cho biết để - Trả lời: ta viết nhập từ bàn phím lúc trước ta read( ); c/ Đọc/ghi tệp văn bản - Đối với tệp ta cũng dùng thủ tục read hoặc readln nhưng nhưng ở đây có thêm biến tệp. - Nghe giảng và ghi bài. Câu lệnh dùng thủ tục đọc có dạng: + Read( , ); Hoặc + Readln( , );
  64. - Để hiểu rỏ cách đọc như thế Trong đó: danh sách biến là một nào chúng ta xét ví dụ sau: hoặc nhiều tên biến đơn, các Lệnh đọc giá trị từ tệp gắn với biến phải ngăn cách nhau dấu biến tệp f và gán cho biến x1, phẩy. y1. - Nghe giảng. Myfile(‘D:\DL.INP’); Assign(f, myfile); Reset(f); Readln(f, x1, y1); - Các em chú ý trước tiên đọc tệp ta cần mở tệp và các biến được ngăn cách dấu phẩy. - Nghe giảng và ghi ví Ví dụ: - Cũng tương tự như vậy để ghi dụ. Myfile(‘D:\DL.INP’); dữ liệu ra tệp ta sẽ dùng thủ tục Assign(f, myfile); write hoặc writeln, khi thực thi Reset(f); chương trình sẽ thì kết quả sẽ Readln(f, x1, y1); được ghi vào tệp. - Ghi bài. Câu lệnh dùng thủ tục ghi có dạng: + Write( , ); Hoặc + Writeln( , ); Trong đó: danh sách kết quả có thể là một hoặc nhiều phần tử, các phần tử có thể là biến đơn hoặc biểu thức (số học, quan hệ hoặc logic) hoặc hằng xâu, các phần tử được ngăn cách nhau bởi dấu phẩy. - Đối với ngôn ngữ lập trình Ví dụ: Pascal để đọc/ghi tệp văn bản ta Myfile(‘D:\DULIEU.DAT’); có một số hàm chuẩn thường Assign(f, myfile); dùng như: eof và eoln. Rewrite(f); Writeln(f, a, b); - Sau khi làm việc xong với tệp - Ghi ý nghĩa của 2 + Hàm eof( ) trả về cần phải đóng tệp. Việc đóng hàm. true nếu con trỏ tệp đang chỉ tới tệp là đặc biệt quan trọng sau cuối tệp. khi ghi thông tin vào tệp, vậy + Hàm eoln( ) trả về đóng tệp như thế nào chúng ta true nếu con trỏ tệp đang chỉ tới sẽ tìm hiểu mục d. cuối dòng. - Câu lệnh dùng thủ tục đóng tệp - Nghe giảng và ghi d/ Đóng tệp có dạng: close( );, sau bài. khi đóng tệp chúng ta có thể
  65. được mở lại, lưu ý lúc này chúng ta không dùng assign nữa. - Các em hãy xem hình 16 xem các thao tác với tệp được thực Câu lệnh dùng thủ tục đóng tệp hiện theo trình tự nhất định. - Nghe giảng và ghi có dạng: Close( ); bài. Ví dụ: Close(tep1); Close(tep2); ❖ HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng: (1) Mục tiêu: Giúp học sinh thực hiện được thao tác tạo khai báo, nhập và in mảng một chiều (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh, (3) Hình thức tổ chức hoạt động: giải bài tập trên bảng (4) Phương tiện dạy học:SGK, bảng. (5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể. Nội dung hoạt động GV yêu cầu HS: Trả lời các câu trắc nghiệm Câu 1. Thủ tục rewrite( ) là thủ tục? A. Mở tệp để ghi dữ liệu B. Đóng tệp C. Đọc dữ liệu từ tệp D. Ghi dữ liệu vào tệp Câu 2. Thủ tục reset( ) là thủ tục? A. Mở tệp để đọc dữ liệu B. Đóng tệp C. Đọc dữ liệu từ tệp D. Ghi dữ liệu vào tệp Câu 3 Hãy chọn thứ tự hợp lý nhất khi thực hiện các thao tác đọc dữ liệu từ tệp? A. Mở tệp => Đọc dữ liệu từ tệp => Gắn tên tệp với biến tệp => Đóng tệp. B. Gắn tên tệp với biến tệp => Đọc dữ liệu từ tệp => Mở tệp => Đóng tệp C. Mở tệp => Gắn tên tệp với biến tệp => Đọc dữ liệu từ tệp => Đóng tệp D. Gắn tên tệp với biến tệp => Mở tệp => Đọc dữ liệu từ tệp => Đóng tệp Câu 4. Thao tác ghi trên tệp văn bản chứa dữ liệu là? A. Thông báo mở tệp để đọc Đọc dữ liệu trong tệp Đóng tệp Gắn biến tệp với tên tệp. B. Gắn biến tệp với tên tệp Thông báo mở tệp để ghi dữ liệu mới Ghi dữ liệu mới Đóng tệp. C. Thông báo mở tệp để đọc Đọc dữ liệu trong tệp Đóng tệp Gắn biến tệp với tên tệp. D. Gắn biến tệp với tên tệp Thông báo mở tệp để ghi dữ liệu mới Đọc dữ liệu trong tệp Đóng tệp. GV hướng dẫn và cho các em thảo luận. GV gọi các nhóm trả lời.
  66. GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng ❖ HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng: (1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình. (2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm. (3) Hình thức tổ chức hoạt động: Ngoài lớp học (4) Phương tiện dạy học:SGK, Projector, máy tính. (5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể. Nội dung hoạt động - GV: cho bài tập: Với một biến tệp tep1 đã được gắn ten tệp. Em hãy viết cú pháp mở tệp để ghi cho tep1 và ghi vào tep1 một với nội dung là ‘Bai ve kieu tep’ - HS: làm bài tập GV yêu cầu. - Gv: học bài và xem trước bài 16 ví dụ làm việc với tệp. IV. RÚT KINH NGHIỆM Duyệt của tổ trưởng chuyên môn Giáo viên soạn Lê Thị Lịnh Lê Minh Tâm
  67. Tuần: 30+31 Ngày soạn: 05/03/2018 Tiết: 39+40 Ngày dạy:19/03/2018 đến 31/03/2018 BÀI 16. VÍ DỤ LÀM VIỆC VỚI TỆP I. MỤC TIÊU 1. Về kiến thức - Biết các bước làm việc với tệp: gán tên cho biến tệp, mở tệp, đọc/ghi tệp, đóng tệp. - Biết một số hàm và thủ tục chuẩn làm việc với tệp. 2. Về kĩ năng - Hình thành kỹ năng về các thao tác cơ bản khi làm việc với tệp như: mở tệp, gán tên tệp cho biến tệp, đọc/ghi dữ liệu cho biến tệp, đóng tệp. 3. Về thái độ - Có thái độ nghiêm túc trong học tập. - Thấy được sự cần thiết và tiện lợi của kiểu dữ liệu tệp. - Có ý thức lưu trữ dữ liệu một cách khoa học. 4. Năng lực hướng tới - Giải quyết vấn đề, thảo luận nhóm, suy luậ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: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng, 2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết, III. TỔ CHỨC CÁC HOẠT ĐỘNG HỌC TẬP 1. Ổn định lớp, kiểm tra sĩ số 2. Kiểm tra bài cũ: Câu 1: Nêu đặc điểm của kiểu tệp? Câu 2: - Viết khai báo biến tệp với tên biến tệp là f. - Gắn tên tệp ‘D:\ViDu.txt’ cho biến tệp f. - Mở tệp để đọc dữ liệu. - Đọc dữ liệu từ tệp ‘D:\ViDu.txt’ vào 2 biến x, y. - Đóng tệp. Câu 3: - Viết khai báo biến tệp với tên biến tệp là f. - Gắn tên tệp ‘D:\Ketqua.txt’ cho biến tệp f. - Mở tệp để ghi dữ liệu. - Ghi dữ liệu là s1, s2 vào tệp ‘D:\Ketqua.txt’. - Đóng tệp. 3. Nội dung bài mới: ❖ HOẠT ĐỘNG 1: Hoạt động khởi động: (1) Mục tiêu: Tạo động cơ để học sinh muốn tìm hiểu một số ví dụ làm việc với tệp (2) Phương pháp/kĩ thuật dạy học: Cá nhân, thảo luận nhóm. (3) Phương tiện dạy học: SGK, Projector, máy tính. (4) Học sinh có nhu cầu mong muốn tìm hiểu một số ví dụ làm việc với tệp Nội dung hoạt động Hoạt động của giáo viên Hoạt động của học sinh
  68. - Trong tiết học trước các em đã được làm quen - Nghe giảng với kiểu dữ liệu tệp cũng như các thao tác với tệp như là: Khai báo tệp, gán tên tệp, mở tệp, đọc/ghi dữ liệu vào tệp, đóng tệp. Để hiểu rõ hơn các thao tác làm việc với tệp văn bản chúng ta sẽ đi xét một vài ví dụ cụ thể trong bài 16. ❖ HOẠT ĐỘNG 2: Hình thành kiến thức (1) Mục tiêu: Giúp học sinh biết được một số ví dụ bài tập về kiểu tệp (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích. (3) Hình thức tổ chức hoạt động: Làm việc cá nhân. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh nắm được một số ví dụ bài tập về kiểu tệp Nội dung hoạt động Hoạt động giáo viên Hoạt động học sinh Nội dung trình bày - Yêu cầu học sinh đọc ví dụ 1 - Đọc ví dụ và xác định 1. Ví dụ 1 trong sách giáo khoa và yêu cầu Input và Output. học sinh xác định Input và Output của ví dụ. - Nhận xét kết quả trả lời của học sinh, nhận định lại Input: Tọa độ trại hiệu trưởng (0, 0); Tệp TRAI.TXT với các cặp số nguyên (x, y) liên tiếp. Output: Khoảng cách giữa trại mỗi lớp với trại của hiệu trưởng. - Các em hãy cho biết công thức - Trả lời: tính khoảng cách của 2 điểm với , tọa độ biết trước? với (?) Theo yêu cầu của để bài thì - Trả lời: đọc nội dụng chúng ta thực hiện đọc tệp hay của tệp TRAI.TXT. ghi tệp? - Sao khi đọc nội dung tệp chúng ta tiến hành tính khoảng cách rồi in ra màn hình khoảng cách của từng trại đối với trại hiệu trưởng. - Quan sát và viết - Từng bước hướng dẫn học chương trình vào tập. Program Khoang_cach; sinh cách viết chương trình. Var d: real; f: text; x, y: integer; Begin Assign (f, ’D:\TRAI.TXT’); Reset (f);
  69. While not eof (f) do Begin Read (f, x, y); D:= Sqrt (x*x+y*y); Writeln (‘Khoang cach:’ , d: 10: 2); End; Close (f); Readln; End. - Hôm nay chúng ta sẽ tìm hiểu - Đọc ví dụ sách giáo 2. Ví dụ 2 lại cách tính điện trở của một số khoa. mạch điện. Yêu cầu học sinh đọc ví dụ. - Hướng dẫn cách tính điện trở - Nghe giảng. cho từng trường hợp cụ thể. (?) Đối với ví dụ này thì chúng - Trả lời: thực hiện mở ta sẽ thực hiện các thao tác nào? tệp để đọc và mở tệp - Nhận xét, để thực hiện ghi tệp để ghi. chúng ta cần tính được điện trở - Nghe giảng. tương đương rồi mới ghi vào RESIST.EQU. Hướng dẫn cách đọc dữ liệu từ tệp RESIST.DAT và cách ghi ra tệp như thế nào. - Hướng dẫn cách viết chương trình. - Viết chương trình Program Dien_tro; vào tập. Var a: array[1 5] of real; R1, R2, R3: real; f1, f2: text; i: integer; Begin Assign (f1,‘RESIST.DAT’); Reset(f1); Assign(f2,‘RESIST.EQU’); Rewrite(f2); While not eof(f1) do Begin Readln(f1, R1, R2, R3); a[1] := R1*R2*R3 / (R1*R2+R1*R3+R2*R3); a[2]:=R1*R2/(R1+R2)+R3; a[3]:=R1*R3/(R1+R3)+R2; a[4]:=R2*R3/(R2+R3)+R1; a[5]:=R1+R2+R3;
  70. For i:=1 to 5 do write(f2, a[i]: 9: 3, ‘ ‘); Writeln(f2); End; Close (f1); Close (f2); End. ❖ HOẠT ĐỘNG 3: Hoạt động luyện tập, vận dụng: (1) Mục tiêu: Giúp học sinh thực hiện được thao tác tạo khai báo, nhập và in mảng một chiều (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích, so sánh, (3) Hình thức tổ chức hoạt động: giải bài tập trên bảng (4) Phương tiện dạy học:SGK, bảng. (5) Học sinh biết vận dụng kiến thức đã học vào giải quyết tình huống thực tiễn cụ thể. Nội dung hoạt động GV yêu cầu HS: Hãy cho biết kết quả của đoạn chương trình sau: Program VD_bt1_txt ; Uses crt ; Var f : text ; Begin Clrscr; Assign(f, ‘BT1.TXT ’) ; Rewrite(f) ; Write(f, 123 + 456) ; Close(f) ; End . GV gọi một học sinh trả lời. GV nhận xét, giải đáp thắc mắc của học sinh, đưa ra các nhận xét cuối cùng ❖ HOẠT ĐỘNG 4: Hoạt động tìm tòi mở rộng: (1) Mục tiêu: Giúp học sinh có nhu cầu mở rộng thêm kiến thức của mình. (2) Phương pháp/kĩ thuật dạy học: làm việc cá nhân, nhóm. (3) Hình thức tổ chức hoạt động: Ngoài lớp học (4) Phương tiện dạy học:SGK, Projector, máy tính. (5) Học sinh biết cách mở rộng các kiến thức của mình thông qua bài tập cụ thể. Nội dung hoạt động - GV: cho bài tập:Hãy cho biết nội dung của đoạn chương trình sau viết với mục đích gì? Program Vi_Du ; Uses crt ; Var f : text ; ch : char ; tenfile : string[30] ; Begin
  71. Write(‘ Nhap ten file : ’) ; readln(tenfile) ; Assign(f, tenfile) ; Reset(f) ; While not eof(f) do Begin Read(f, ch) ; Write(ch) ; End ; Close(f) ; End. - HS: làm bài tập GV yêu cầu. - GV: Về xem lại cách viết chương trình và xem trước phần câu hỏi và bài tập cuối chương V. IV. RÚT KINH NGHIỆM Duyệt của tổ trưởng chuyên môn Giáo viên soạn Lê Thị Lịnh Lê Minh Tâm
  72. Tuần: 31 Ngày soạn: 12/03/2018 Tiết: 41 Ngày dạy:26/03/2018 đến 31/03/2018 CÂU HỎI VÀ BÀI TẬP CHƯƠNG V (trang 89) I. MỤC TIÊU 1. Về kiến thức - Biết được lợi ích của việc sử dụng tệp trong ngôn ngữ lập trình pascal. - Cần ghi nhớ và thực hiện các thao tác với tệp cho phù hợp và chính xác. 2. Về kĩ năng Hình khả năng phân tích một số ví dụ về tệp, để thực hiện thao tác chính xác. 3. Về thái độ - Có thái độ nghiêm túc trong học tập. - Thấy được sự cần thiết và tiện lợi của kiểu dữ liệu tệp. 4. Năng lực hướng tới - Giải quyết vấn đề, hoạt động nhóm. II. CHUẨN BỊ 1. Chuẩn bị của giáo viên: Giáo án, sách giáo khoa, sách giáo viên, máy tính, máy chiếu, phông chiếu, bút lông, bảng, 2. Chuẩn bị của học sinh: Sách giáo khoa, tập, viết, III. HOẠT ĐỘNG DẠY VÀ HỌC 1. Ổn định lớp, kiểm tra sĩ số 2. Kiểm tra bài cũ: không. 3. Tiến trình bày học ❖HOẠT ĐỘNG 1: Hoạt động khởi động: (1) Mục tiêu: Tạo động cơ để học sinh hiểu được cách thao tác kiểu dữ liệu tệp (2) Phương pháp/kĩ thuật dạy học: Cá nhân. (3) Phương tiện dạy học: SGK, Projector, máy tính. (4) Học sinh có nhu cầu mong muốn được học cách sử dụng kiểu mảng một chiều để giải các bài toán. Nội dung hoạt động Hoạt động của giáo viên Hoạt động của học sinh - Các tiết rồi chúng ta vừa tìm hiểu các thao tác - Nghe giảng và thực hành với tệp, hôm nay chúng ta sẽ nhắc lại vì sao tệp có những ưu điểm như vậy. ❖ HOẠT ĐỘNG 2: Hình thành kiến thức (1) Mục tiêu: Giúp học sinh biết rõ hơn về vai trò của kiểu tệp. (2) Phương pháp/kĩ thuật dạy học: Vấn đáp, thuyết trình, đặt vấn đề, phân tích. (3) Hình thức tổ chức hoạt động: Làm việc cá nhân. (4) Phương tiện dạy học: SGK, Projector, máy tính. (5) Kết quả: Học sinh nắm được rõ hơn về vai trò kiểu dữ liệu tệp. Nội dung hoạt động Hoạt động giáo viên Hoạt động học sinh Nội dung trình bày