Khắc phục lỗi free pascal không nhận ra lệnh clrscr năm 2024

  • 1. Nhật Duật Chương I Tiết 1 Tin học 11 MỘT SỐ KN VỀ LT VÀ NNLT Khái niệm lập trình và ngôn ngữ lập trình Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Hiểu khả năng của ngôn ngữ lập trình bậc cao, phân biệt được ngôn ngữ máy và hợp ngữ. - Hiểu ý nghĩa và nhiệm vụ của chương trình dịch. Phân biệt được biên dịch và thông dịch. 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: SGK, giáo án. 2. Học sinh: SGK, vở ghi. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Nội dung Hoạt động của GV và HS Nguyễn Huy Bình
  • 2. Nhật Duật Tin học 11 Trong chương trình lớp 11 chúng ta đã được biết qua về ngôn ngữ lập trình. Trong chương trình lớp 11 chúng ta sẽ tìm hiểu chi tiết hơn về nnlt. - Ngôn ngữ máy Bạn nào cho biết ở lớp 11 chúng ta đã - Hợp ngữ nhắc tới những loại ngôn ngữ lập trình - Ngôn ngữ lập trình bậc cao nào? Lập trình: là sử dụng cấu trúc dữ liệu và HS: Trả lời câu hỏi. HS khác bổ xung. các câu lệnh của ngôn ngữ lập trình cụ thể để mô tả dữ liệu và diễn đạt các thao tác của thuật toán. Chương trình viết bằng ngôn ngữ bậc Chương trình dịch: Là chương trình đặc cao nói chung không phụ thuộc vào loại biệt có chức năng chuyển đổi chương trình máy (chương trình có thể chạy trên nhiều được viết bằng ngôn ngữ lập trình bậc cao loại máy tính khác nhau). thành chương trình thực hiện được trên Chương trình dịch được chia thành hai máy tính. loại: Thông dịch và biên dịch. (Lấy ví dụ minh họa để HS phân biệt được Outpu Input CTD hai loại ctd này). t - Thông dịch (interpreter): được thực hiện bằng cách lặp lại dãy các bước sau: . Kiểm tra tính đúng đắn của câu lệnh tiếp theo trong chương trình nguồn. . Chuyển đổi câu lệnh đó thành một hay nhiều câu lệnh tương ứng trong ngôn ngữ máy. . Thực hiện các câu lệnh vừa chuyển đổi được. - Biên dịch (compiler) được thực hiện qua hai bước: . Duyệt, phát hiện lỗi, kiểm tra tính đúng đắn của các câu lệnh trong chương trình nguồn. . Dịch toàn bộ chương trình nguồn thành một chương trình đích có thể thực hiện trên máy và có thể lưu trữ thực hiện lại khi cần thiết. HS: Nghe giảng, ghi chép. Trong thông dịch không có chương trình đích để lưu trữ, trong biên dịch cả chương trình nguồn và chương trình đích có thể lưu trữ lại để sử dụng về sau. IV. Củng cố: Kể tên một số ngôn ngữ lập trình mà em biết? (Một HS trả lời, HS khác bổ sung). V. Dặn dò: Đọc trước bài 2. Nguyễn Huy Bình
  • 3. Nhật Duật Tiết 2 Tin học 11 Các thành phần của ngôn ngữ lập trình Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Biết ngôn ngữ lập trình có ba thành phần cơ bản là: bảng chữ cái, cú pháp, ngữ nghĩa. Hiểu và phân biệt được ba thành phần này. - Biết một số khái niệm: tên, tên chuẩn, tên dành riêng (từ khóa), hằng và biến. 2. Kỹ năng: - Ghi nhớ các quy định về tên, hằng, biến trong một ngôn ngữ lập trình. - Cách đặt tên đúng và nhận biết được tên sai quy định. II. Chuẩn bị của GV và HS: 1. Giáo viên: SGK, giáo án, bảng phụ. 2. Học sinh: SGK, vở ghi. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Chương trình dịch là gì? Tại sao cần phải có chương trình dịch? . Bài giảng: Nội dung Hoạt động của GV và HS 1. Các thành phần cơ bản. Mỗi ngôn ngữ lập trình thường có ba thành phần cơ bản là bảng chữ cái, cú pháp a) Bảng chữ cái. và ngữ nghĩa. Trong Pascal, bảng chữ cái bao gồm các kí tự sau: • Các chữ cái thường và chữ cái in hoa Các kí tự trong bảng chữ cái và cú pháp của bảng chữ cái tiếng Anh. của ngôn ngữ lập trình có thể tạo thành các ‘A’...’Z’ có mã 65..90 câu lệnh và chương trình tương tự như từ ‘a’...’z’ có mã 97..122 bảng chữ cái và ngữ pháp của ngôn ngữ tự ‘0’...’9’ có mã 48..57 nhiên có thể diễn đạt thành câu và văn bản. • 10 Chữ số thập phân Ả rập. HS: nghe giảng, ghi chép. • Các kí tự đặc biệt. Bảng chữ cái của các ngôn ngữ lập trình nói chung không khác nhau nhiều. b) Cú pháp: Là bộ quy tắc để viết chương trình. c) Ngữ nghĩa: Xác định ý nghĩa thao tác cần thực hiện, ứng với tổ hợp kí tự dựa vào ngữ cảnh của nó. Vd: (SGK) Dựa vào chúng, người lập trình và chương trình dịch biết được tổ hợp nào của các kí tự trong bảng chữ cái là hợp lệ và tổ hợp nào là không hợp lệ. Nguyễn Huy Bình
  • 4. Nhật Duật Tóm lại: Cú pháp cho biết cách viết một chương trình hợp lệ, còn ngữ nghĩa xác định ý nghĩa của các tổ hợp kí tự trong chương trình. 2. Một số khái niệm. a) Tên Trong TP, tên là một dãy liên tiếp không quá 127 kí tự bao gồm chữ cái, chữ số hoặc dấu gạch dưới. Vd: Tên đúng: (lấy 3 vd) Tên sai: (lấy 3 vd) Ngôn ngữ Pascal không phân biệt chữ hoa, chữ thường trong tên. Trong Pascal phân biệt 3 loại tên: - Tên dành riêng; - Tên chuẩn; - Tên do người dùng đặt. Tên dành riêng: là tên được dùng với ý nghĩa riêng xác định. Tên chuẩn: là tên được dùng với ý nghĩa nhất định nào đó. Tên do người lập trình đặt: được dùng với ý nghĩa riêng, xác định bằng cách khai báo trước khi sử dụng. Các tên này không được trùng với tên dành riêng. b) Hằng và biến * Hằng là đại lượng có giá trị không thay đổi trong quá trình thực hiện chương trình. - Hằng số học: là các số nguyên hay số thực. - Hằng logic: True hoặc False - Hằng xâu: * Biến: là đại lượng được đặt tên, dùng để lưu trữ giá trị và giá trị có thể được thay đổi trong quá trình thực hiện chương trình. c) Chú thích: Được đặt trong chương trình, giúp cho người đọc chương trình nhận biết ý nghĩa của chương trình hay của từng câu lệnh trong chương trình. Tin học 11 Mọi đối tượng trong chương trình đều phải được đặt tên theo quy tắc của ngôn ngữ lập trình và từng chương trình dịch cụ thể. HS: Lấy ví dụ về tên đúng và sai. Người lập trình không được dùng với ý nghĩa khác. Có thể khai báo và dùng chúng với ý nghĩa và mục đích khác. Trong ngôn ngữ lập trình thường có các hằng số học, hằng logic, hằng xâu. HS: Nghe giảng, ghi chép. IV. Củng cố: Lấy ví dụ về tên đúng, tên sai trong TP? V. Dặn dò: Trả lời các câu hỏi cuối bài. Làm bài tập trong SBT. Nguyễn Huy Bình
  • 5. Nhật Duật Tiết 3 Tin học 11 Bài tập Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Biết được đặc điểm của ngôn ngữ lập trình bậc cao, chức năng của chương trình dịch. - Biết các thành phần của ngôn ngữ lập trình. 2. Kỹ năng: - Phân biệt được trình thông dịch và biên dịch. - Đặt được tên đúng và nhận biệt tên sai quy định. II. Chuẩn bị của GV và HS: 11 Giáo viên: SBT, giáo án. 11 Học sinh: SBT, vở bài tập. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Hãy cho biết các điểm khác nhau giữa tên dành riêng và tên chuẩn? Lấy ví dụ về 3 tên đúng theo quy tắc của Pascal? . Bài giảng: Nội dung Hoạt động của GV và HS Gọi một số HS đứng tại chỗ chữa các Chữa một số bài tập trong SBT. bài từ 1..8. HS khác nhận xét và bổ sung. GV củng cố lại các câu trả lời Gọi 3 HS lên bảng chữa các bài 9, 10, Chữa bài tập theo yêu cầu của HS. 11. Trong sách bài tập số lượng bài tập nhiều, có một số bài khó. Để mở rộng kiến thức đã học thì nên hoàn thành những bài tập này. Kiểm tra lại kiến thức đã học. Cho HS làm bài kiểm tra 15’. Có thể sử dụng các câu 13, 14 làm đề kiểm tra. IV. Củng cố: V. Dặn dò: Về nhà đọc trước bài 3 - Cấu trúc chương trình. Nguyễn Huy Bình
  • 6. Nhật Duật Tiết 4 Tin học 11 Cấu trúc chương trình Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Hiểu chương trình là sự mô tả của thuật toán bằng một ngôn ngữ lập trình. - Biết cấu trúc của một chương trình đơn giản: cấu trúc chung và các thành phần. 2. Kỹ năng: - Nhận biết được các thành phần của một chương trình đơn giản. II. Chuẩn bị của GV và HS: 1. Giáo viên: SGK, giáo án, bảng phụ. 2. Học sinh: SGK, vở ghi. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Chữa bài tập số 6 (tr 13-SGK)? . Bài giảng: Nội dung Hoạt động của GV và HS 1. Cấu trúc chung Chương trình được viết bằng ngôn ngữ lập trình bậc cao thường gồm phần khai báo và phần thân. Phần khai báo có thể có hoặc không tùy theo từng chương trình cụ thể. Các diễn giải bằng ngôn ngữ tự nhiên Khi diễn giải cú pháp của ngôn ngữ lập được đặt trong cặp dấu < và >. Các thành trình người ta thường sử dụng ngôn ngữ tự phần của chương trình có thể có hoặc nhiên. không được đặt trong cặp dấu [ và ]. Cấu trúc của một chương trình có thể mô tả như sau: [] HS: nghe giảng, ghi bài. 2. Các thành phần của chương trình a)Phần khai báo Có thể khai báo cho: tên chương trình, thư viện, hằng, biến và chương trình con. * Khai báo tên chương trình Phần này có thể có hoặc không. Program tên chương trình là tên do người lập trình đặt theo đúng quy định về tên. * Khai báo thư viện Mỗi ngôn ngữ lập trình thường có sẵn Uses một số thư viện cung cấp một số chương vd: Uses crt, graph; trình thông dụng đã được lập sẵn. * Khai báo hằng Nguyễn Huy Bình
  • 7. Nhật Duật const = * Khai báo biến b) Phần thân chương trình Begin [] End. 3. Ví dụ chương trình đơn giản Ví dụ SGK. Tin học 11 Khai báo hằng thường được sử dụng cho những giá trị xuất hiện nhiều lần trong chương trình. (Trình bày chi tiết ở bài 5) Dãy lệnh trong phạm vi được xác định bởi cặp dấu hiệu mở đầu và kết thúc tạo thành thân chương trình. Viết ví dụ, phân tích để HS hiểu rõ cấu trúc của một chương trình Pascal đơn giản. IV. Củng cố: V. Dặn dò: Nguyễn Huy Bình
  • 8. Nhật Duật Tiết 5 biến Tin học 11 Một số kiểu dữ liệu chuẩn. Khai báo Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Biết một số kiểu dữ liệu chuẩn: nguyên, thực, kí tự, logic; - Hiểu cách khai báo biến; 2. Kỹ năng: - Xác định được kiểu cần khai báo của dữ liệu đơn giản; - Biết khái báo biến đúng. II. Chuẩn bị của GV và HS: 1. Giáo viên: SGK, giáo án, bảng phụ. 2. Học sinh: SGK, vở ghi. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Cho biết cách khai báo tên chương trình, thư viện, hằng, biến trong TP? . Bài giảng: Nội dung Hoạt động của GV và HS MỘT SỐ KIỂU DỮ LIỆU CHUẨN Một số kiểu dữ liệu chuẩn thường dùng Dữ liệu là thông tin đã mã hóa trong máy cho các biến đơn trong Pascal. tính. Dữ liệu trong mỗi ngôn ngữ lập trình chỉ có một số kiểu chuẩn nhất định mặc dù thông tin rất đa dạng. Mỗi kiểu được đặc trưng bởi tên kiểu, miền giá trị, kích thước trong bộ nhớ, các phép toán, các hàm và thủ tục sử dụng chúng. 1. Kiểu nguyên Byte: 0..255 Interger: -215..215-1 Word: 0..216-1 Longint: -231..231-1 2. Kiểu thực Real: -10-38..1038 Extended: -10-4932..104932 Các số nguyên được lưu trữ và kết quả tính toán là số đúng, nhưng có hạn chế về miền giá trị. Các kiểu thực được lưu trữ và kết quả tính toán chỉ là gần đúng với sai số không đáng kể (so với yêu cầu tính toán trong các bài toán thông thường), nhưng miền giá trị được mở rộng hơn so với kiểu nguyên. Phép toán chứa các toán hạng gồm cả kiểu Nguyễn Huy Bình
  • 9. Nhật Duật Tin học 11 nguyên và kiểu thực sẽ cho kết quả kiểu thực. 3. Kiểu kí tự Char: 256 kí tự trong bộ mã ASCII Kiểu kí tự có tập giá trị là các kí tự trong bộ mã ASCII, được dùng khi thông tin là các kí tự, xâu. Vì vậy hầu hết các ngôn ngữ lập trình đều có kiểu kí tự để làm việc với văn bản. Việc so sánh các kí tự được thực hiện bằng cách so sánh các mã ASCII của chúng. 4. Kiểu logic Boolean: True hoặc False. Kiểu logic được dùng khi kiểm tra một điều kiện hoặc tìm giá trị của một biểu thức logic. KHAI BÁO BIẾN Trong Pascal, mọi biến trong chương trình đều phải khai báo tên và kiểu dữ liệu của nó (một số ngôn ngữ coi đó là định nghĩa biến). Khai báo để cấp phát bộ nhớ cho biến. Cấn đặt tên biến sao cho gợi nhớ đến ý nghĩa của biến đó. Điều này rất có lợi cho việc học, hiểu và sửa đổi chương trình khi cần thiết. Không nên đặt tên biến quá ngắn hay quá dài, dễ mắc lỗi khi viết nhiều lần tên biến. Khi khai báo biến cần đặc biệt lưu ý đến phạm vi của nó. Trong Pascal, khai báo biến bắt đầu bằng từ khóa Var có dạng: Var :; trong đó: - danh sách biến là một hoặc nhiều tên biến, tên biến được viết cách nhau bởi dấu phẩy; - kiểu dữ liệu thường là trong các kiểu dữ liệu chuẩn hoặc kiểu dữ liệu do người lập trình định nghĩa. Cấu trúc : có thể xuất hiện nhiều lần. IV. Củng cố: Đưa ra câu hỏi: Trong Pascal, nếu một biến chỉ nhận giá trị nguyên trong phạm vi từ 10 đến 25532 thì biến đó có thể được khai báo bằng các kiểu dữ liệu nào? Gọi một HS đứng tại chỗ trả lời. HS khác nhận xét, bổ xung. V. Dặn dò: Đọc trước bài 6. Làm bài tập trong sách bài tập. Nguyễn Huy Bình
  • 10. Nhật Duật Tiết 6 Tin học 11 Phép toán, biểu thức, câu lênh gán Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Biết các khái niệm: phép toán, biểu thức số học, hàm số học chuẩn, biểu thức quan hệ; - Hiểu lệnh gán; 2. Kỹ năng: - Viết được lệnh gán; - Viết được các biểu thức số học và logic với các phép toán thông dụng. II. Chuẩn bị của GV và HS: 1. Giáo viên: SGK, giáo án. 2. Học sinh: SGK, vở ghi. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Hãy cho biết một số kiểu dự liệu chuẩn được dùng trong TP? Cách khai báo biến? . Bài giảng: Nội dung Hoạt động của GV và HS GV: Để mô tả các thao tác trong thuật toán, mỗi ngôn ngữ lập trình đều xác định và sử dụng một số khái niệm cơ bản: phép toán, biểu thức, gán giá trị cho biến. 1. Phép toán: Bảng kí hiệu các phép toán trong toán và trong Pascal: (SGK – t24). . Chú ý: - Kết quả của các phép toán quan hệ cho giá trị logic; - Một trong những ứng dụng của phép toán logic là để tạo ra các biểu thức phức tạp từ các quan hệ đơn giản GV: Trong lập trình, biểu thức số học là 2. Biểu thức số học một biến số hoặc một hằng số hoặc các Quy tắc: biến kiểu số và các hằng kiểu số liên kết - Chỉ dùng cặp ngoặc tròn để xác định với nhau bởi một số hữu hạn các phép toán trình tự thực hiện phép toán trong số học, các dấu ngoặc tròn tạo thành một trường hợp cần thiết; biểu thức có dạng tương tự như cách viết - Viết lần lượt từ trái sang phải; trong toán học. Nguyễn Huy Bình
  • 11. Nhật Duật Tin học 11 - Không được bỏ qua dấu nhân trong tích. Các phép toán được thực hiện theo thứ tự: - Thực hiện các phép toán trong ngoặc trước; - Trong dãy các phép toán không chứa ngoặc thì thực hiện từ trái qua phải, theo thứ tự các phép toán nhân, chia, chia nguyên, lấy phần dư thực hiện trước và các phép toán cộng, trừ thực hiện sau. GV: Lấy ví dụ trong SGK để giải thích cho Ví dụ: SGK HS. Có thể đưa ra một biểu thức trong toán Chú ý (SGK) học, HS viết lại biểu thức đó trong Pascal. 3. Hàm số học chuẩn Bảng một số hàm số học chuẩn thường dùng: SGK Kết quả của hàm có thể là nguyên hay hoặc thực hay phụ thuộc vào kiểu của đối số. Ví dụ: SGK 4. Biểu thức quan hệ Biểu thức quan hệ có dạng: trong đó, biểu thức 1 và biểu thức 2 cùng là xâu hoặc cùng là biểu thức số học. Biểu thức quan hệ được thực hiện theo trình tự: - Tính giá trị các biểu thức - Thực hiện phép toán quan hệ. Kết quả của phép toán quan hệ là biểu thức logic. 5. Biểu thức logic Biểu thức logic đơn giản là biến logic hoặc hằng logic. Các biểu thức quan hệ thường được đặt trong trong cặp dấu ngoặc ( và ). Phép toán not được viết trước biểu thức cần phủ định. Các phép toán and và or dùng để kết hợp nhiều biểu thức logic hoặc quan hệ thành một biểu thức, thường được dùng để diễn tả các điều kiện phức tạp. ví dụ: SGK GV: Để lập trình được dễ dàng, thuận tiện, các ngôn ngữ lập trình đều có thư viện chứa một số chương trình tính giá trị những hàm toán học thường dùng. Các chương trình như vậy được gọi là hàm số học chuẩn. GV: Hai biểu thức cùng liên kết với nhau bởi phép toán quan hệ cho ta một biểu thức quan hệ. GV: Biểu thức logic là các biểu thức logic đơn giản, các biểu thức quan hệ liên kết nhau bởi phép toán logic. Nguyễn Huy Bình
  • 12. Nhật Duật Tin học 11 6. Câu lệnh gán GV: Lệnh gán là một trong những lệnh cơ Trong Pascal câu lệnh gán có dạng: bản nhất của các ngôn ngữ lập trình. := ; Chức năng của lệnh gán là đặt cho biến có tên ở vế trái dấu “:=” giá trị bằng giá trị HS: nghe giảng, ghi chép. của biểu thức ở vế phải. VD: SGK IV. Củng cố: Hãy viết biểu thức toán học dưới đây trong Pascal: y x ( 1+ x) 1 z+ 1 + x2 x+ V. Dặn dò: Làm bài tập trong SBT. Đọc trước bài 7 và 8. Nguyễn Huy Bình
  • 13. Nhật Duật Tiết 7 dịch, Tin học 11 Các thủ tục chuẩn vào/ra đơn giản. Soạn thảo, thực hiện và hiệu chỉnh chương trình Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Biết các lệnh vào/ra đơn giản để nhập thông tin từ bàn phím và đưa thông tin ra màn hình; - Biết các bước soạn thảo, dịch, thực hiện và hiệu chỉnh chương trình; - Biết một số công cụ của môi trường TP. 2. Kỹ năng: - Viết được một số lệnh vào/ra đơn giản; - Bước đầu sử dụng được chương trình dịch để phát hiện lỗi; - Bước đầu chỉnh sửa được chương trình dựa vào thông báo lỗi của chương trình dịch và tính hợp lý của kết quả thu được. II. Chuẩn bị của GV và HS: 1. Giáo viên: SGK, giáo án. 2. Học sinh: vở ghi, SGK. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Hãy viết biểu thức toán học dưới đây trong Pascal: y  1 x 1+ x ÷ 1 1   + z 1 + x2 1+ . Bài giảng: Nội dung Hoạt động của GV và HS A. Các thủ tục chuẩn vào/ra đơn giản Trong ngôn ngữ Pascal các thủ tục vào/ra chuẩn viết như sau: GV: Khi sử dụng các ứng dụng ta 1. Nhập dữ liệu vào từ bàn phím thường phải nhập thông tin vào, như vậy bằng cách nào ta nhập được thông tin vào khi lập trình? Ta dùng thủ tục chuẩn READ hoặc Làm thế nào để nhập giá trị từ bàn phím READLN có cấu trúc như sau: vào cho biến? READ/READLN(); GV: Diễn giải hoạt động của Ví dụ: Read(N); READ/READLN, nêu sự khác nhau khi Nguyễn Huy Bình
  • 14. Nhật Duật Tin học 11 Read(a,b,c); dùng Read/Readln. Chú ý: Khi nhập dữ liệu từ bàn phím READ và READLN có ý nghĩa như nhau. GV: Đưa ra hai ví dụ về chương trình có nhập thông tin vào từ bàn phím. Ví dụ 1: Chương trình nhập tuổi. Ví dụ 2: Nhập ba số nguyên. GV: Nhận xét về chương trình. Giải thích Việc nhập dữ liệu cho nhiều biến thì giá trị việc nhập giá trị cho nhiều biến đồng thời. mỗi biến phải cách nhau ít nhất một dấu Giải thích sự khác biệt giữa READ và cách hoặc dâu Enter, máy sẽ gán giá trị READLN. cho biến theo thứ tự như trong lệnh nhập tương ứng. GV: Trong ví dụ 2, ta thấy 3 giá trị a, b, c 11 Đưa dữ liệu ra màn hình Để đưa dữ liệu ra màn hình tại vị trí con dính liền vào nhau và người sử dụng không trỏ, ta dùng thủ tục WRITE hoặc WRITE thể phân biệt được giá trị của từng biến. Vậy làm thế nào và có những cách nào để với cấu trúc: hiển thị dữ liệu theo ý muốn của người lập Write/Writeln(,...); trong đó các giá trị có thể là tên biến, trình. tên hằng, giá trị cụ thể, biểu thức hoặc tên GV: Mỗi ngôn ngữ có cách đưa thông tin ra màn hình khác nhau. hàm. Ví dụ: Write(a, b, c); Writeln(‘ Giá trị của N là:’,N); Thủ tục Writeln sau khi đưa kết quả ra sẽ chuyển con trỏ màn hình xuống dòng tiếp theo. Ngoài ra TP còn có quy cách đưa thông tin ra như sau: Kết quả thực: <độ rộng>: Kết quả khác: <độ rộng> Ví dụ: Write(N:8); Write(‘X=’,X:8:2); GV: Giải thích sự khác nhau giữa Write và Writeln. GV: Minh họa cách đưa thông tin ra bằng chương trình. GV: Đưa ra hai ví dụ. Ví dụ 1: Để nhập giá trị từ bàn phím, ta GV: Ví dụ 2 là một ví dụ đầy đủ của một chương trình nhập dl từ bàn phím và hiển thường dùng: thị dữ liệu đó ra màn hình. {1.}Write(‘ Nhập giá trị của N:’); GV: Viết nhanh ví dụ {2.}Readln(N); Trong đó: {1} đưa ra thông báo: nhập giá HS: Nhận xét từng câu lệnh trong đoạn chương trình. trị của N {2} dùng để đọc giá trị và gán cho biến N. Cấu trúc {1}, {2} được gọi là giao tiếp người – máy. B. Soạn thảo, dịch, thực hiện và hiệu Nguyễn Huy Bình
  • 15. Nhật Duật chỉnh chương trình Để thực hiện được các ví dụ và bài thực hành trong máy tính bằng Turbo Pascal cần có các tệp: turbo.exe, turbo.tpl, graph.tpu, egavga.bgi. Màn hình làm việc của ngôn ngữ Pascal có dạng như sau: ( Hình 1. T32-SGK) Một số thao tác thường dùng trong Pascal: - Xuống dòng: Enter - Ghi file vào đĩa: F2 - Mở file đã có: F3 - Biên dịch chương trình: Alt + F9 - Soát lỗi chương trình: F9 - Chạy chương trình: Ctrl + F9 - Đóng cửa sổ chương trình: Alt + F3 - Chuyển qua lại giữa các cửa sổ: F6 - Xem lại màn hình kết quả: Alt + F5 - Thoát khỏi TP: Alt + X Tin học 11 GV: Giới thiệu một số tập tin cần thiết để TP có thể chạy được, hướng dẫn HS cách khởi động Pascal trên máy tính. HS: Quan sát hình vẽ trong SGK. GV: Giới thiệu một số thao tác thường dùng khi soạn thảo chương trình trong môi trường soạn thảo TP. GV: Viết một chương trình ví dụ, thực hiện các thao tác sửa lỗi... IV. Củng cố: Giải thích từng dòng lệnh của đoạn chương trình sau: Program VD; Var N: Integer; Begin Write(‘ Lop ban co bao nhieu nguoi: ’); Readln(N); Writeln(‘ Vay la lop ban co ‘,N-1,’ nguoi ban trong lop’); Readln; End. V. Dặn dò: - Nhắc lại sự hoạt động của Write/Writeln, Read/Readln. - Ra bài tập về nhà. Nguyễn Huy Bình
  • 16. Nhật Duật Tiết 8 Tin học 11 Bài tập Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Củng cố những nội dung chính trong chương II qua các bài tập 2. Kỹ năng: - Biết sử dụng các thủ tục chuẩn vào/ra; - Biết xác định input và output. II. Chuẩn bị của GV và HS: 1. Giáo viên: 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Hãy cho biết các thủ tục vào/ra chuẩn của TP? Lấy vi dụ đơn giản để minh họa? . Bài giảng: Nội dung Hoạt động của GV và HS GV: Chữa các bài tập từ 6 đến 10. GV: Các bài tập 9 và 10 yêu cầu viết chương trình nhập các giá trị của các biến từ bàn phím, sau đó tính giá trị một biểu thức chứa các biến này và hiện kết quả ra màn hình. GV: Yêu cầu HS phân tích tìm ra input và output của bài toán. Bài 6 – 7 (SGK) GV: Hướng dẫn HS phân biệt cách viết công thức trong toán học với trong Pascal (chú ý chỉ dùng một loại dấu ngoặc tròn) HS: Lên bảng viết các biểu thức. Bài 8 (SGK) GV: Hướng dẫn HS phát hiện những đặc điểm của tọa độ (x,y) của điểm thuộc vùng gạch trong các hình 2a và 2b. 2a) bt:= (y>abs(x)) and (y<=1) 2b) bt:= (abs(x) <= 1) and (abs(y) <=1) Câu 9 (SGK) Nguyễn Huy Bình
  • 17. Nhật Duật Tin học 11 Nhận xét: Diện tích phần gạch bằng ½ GV: Gợi ý đề HS nhận xét bài toán diện tích hình tròn tâm O(0,0) bán kính GV: Hướng dẫn HS viết chương trình đầy R= a. Lưu ý số π là hằng trong Pascal và đủ. được kí hiệu là Pi. Chương trình: var a: read; Begin write(‘ Nhap gia tri a (a>0):’);readln(a); write(‘ Dien tich phan gach la: ‘,a*a*pi/2:15:3); readln end. Câu 10 (SGK) GV: Viết sẵn chương trình giải bài 10 trên giấy khổ lớn dạng đồ dùng học tập, nhưng chương trình còn sai một vài chỗ để học sinh tìm lỗi và sửa. IV. Củng cố: Hoàn thiện bài tập số 10 vào vở. V. Dặn dò: Làm các bài tập trong sách bài tập. Chuẩn bị bài để giờ sau thực hành tại phòng máy. Nguyễn Huy Bình
  • 18. Nhật Duật Tiết 9 + 10 Tin học 11 Bài tập và thực hành 1 Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Giới thiệu một chương trình Pascal hoàn chỉnh đơn giản; - Làm quen với một số dịch vụ cơ bản của TP trong việc soạn thảo, lưu trữ, dịch và thực hiện chương trình. 2. Kỹ năng: - Biết viết một chương trình Pascal đơn giản; - Biết sử dụng một số dịch vụ chủ yếu của Pascal trong soạn thảo, lưu, dịch và thực hiện chương trình. II. Chuẩn bị của GV và HS: 1. Giáo viên: Phòng máy, các máy cài Turbo Pascal, giáo án, SGK. 2. Học sinh: Bài tập (viết một chương trình hoàn chỉnh), SGK. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Nội dung Hoạt động của GV và HS GV: Hướng dẫn lại cho HS biết cách khởi động máy, kích hoạt phần mềm Pascal, làm quen với một chương trình đơn giản (giải phương trình bậc hai một ẩn) theo từng bước. GV: Thực hiện theo hướng dẫn như trong a) Gõ chương trình sau: SGK. Program Giai_PTB2; HS: Làm theo từng bước. Uses crt; Var a, b, c, D: real; HS: Mở chương trình Turbo Pascal. x1, x2: real; HS: Gõ chương trình. Begin clrscr; write(‘ a, b, c: ‘); readln(a,b,c); D:=b*b – 4*a*c; x1:= (-b – sqrt(D))/(2*a); Nguyễn Huy Bình
  • 19. Nhật Duật Tin học 11 x2:= - b/a – x1; write(‘ x1=’,x1:8:3,’ x2 = ‘,x2:8:3); readln; End. b) Nhấn phím F2 và lưu chương trình với GV: Hướng dẫn chung cho HS cách lưu tên là PTB2.PAS lên đĩa. chương trình của mình (đặt tên, lưu tại đâu, ... c) Nhấn tổ hợp phím Alt + F9 để dịch và sửa lỗi cú pháp (nếu có). GV: Sửa những lỗi chung lên bảng. GV: Giúp HS dịch và sửa lỗi chương trình trực tiếp trên máy tính với từng HS (vì đây là bài thực hành đầu tiên). d) Nhấn tổ hợp phím Ctrl + F9 để thực hiện chương trình. HS: Nhập các giá trị: 1, -3, 2. Quan sát kết quả trên màn hình. e) Nhấn tổ hợp phím Ctrl + F9 rồi nhập các giá trị 1; 0; -2. HS: Quan sát kết quả hiển thị trên màn hình. f) Sửa lại chương trình trên sao cho không GV: Gợi ý để HS thực hiện việc sửa đổi dùng biến trung gian D. Thực hiện chương chương trình. trình đã sửa với bộ dữ liệu trên. g) Sửa lại chương trình nhận được ở câu c) bằng cách thay đổi công thức tính x2. h) Thực hiện chương trình đã sửa với bộ dữ liệu 1; -5; 6. HS: Thực hiện theo yêu cầu. Quan sát kết quả trên màn hình. g) Thực hiện chương trình với bộ dữ liệu 1; 1; 1 và quan sát kết quả trên màn hình. GV: Sau khi học sinh hoàn thành bài thực hành 1, có thể hướng dẫn HS làm các bài Bài 9 tập 9 và 10 trong SGK. uses crt; var a, s: real; begin clrscr; write(‘ a= ‘); readln(a); s:=pi*sqr(a)/2; writeln(‘ dien tich phan gach cheo la: ‘, HS: Làm bài tập dưới sự hướng dẫn của s:4:2); GV. readln end. IV. Củng cố: Nguyễn Huy Bình
  • 20. Nhật Duật Tin học 11 V. Dặn dò: Làm bài tập 9, 10 (t36 – SGK). Giờ thực hành sau cho chạy thử trên máy. Tiết 11 Cấu trúc rẽ nhánh Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Hiểu nhu cầu cấu trúc rẽ nhánh trong biểu diễn thuật toán; - Hiểu câu lệnh rẽ nhánh (dạng thiếu và dạng đủ); - Hiểu câu lệnh ghép. 2. Kỹ năng: - Sử dụng cấu trúc rẽ nhánh trong mô tả thuật toán của một số bài toán đơn giản; - Viết được các lệnh rẽ nhánh dạng thiếu, rẽ nhánh dạng đầy đủ và áp dụng để thể hiện được thuật toán của một số bài toán đơn giản. II. Chuẩn bị của GV và HS: 1. Giáo viên: Giáo án, SGK, bảng phụ, phiếu học tập. 2. Học sinh: Vỏ ghi, SGK. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Néi dung Ho¹t ®éng cña GV Ho¹t ®éng cña HS - Ph¸t phiÕu häc - NhËn phiÕu häc tËp cho HS. tËp. - Híng dÉn HS sö dông ®Çy phiÕu: ®ñ c¸c §iÒn c¸c th«ng ®iÒn tin c¸ nh©n. th«ng - Xem vµ nghe GV tin ngµy th¸ng, hä híng dÉn c¸ch thøc tªn, Sử dụng líp, ®äc kü ®Ó tr¶ lêi c¸c yªu c¸c yªu cÇu vµ tr¶ cÇu lêi vµo quy ®Þnh. phÇn trong phiÕu ®· häc tËp. - Hái - HS cã 15 phót tù nh÷ng lu«n ý mµ GV m×nh nghiªn cøu SGK vµ cha hiÓu. Nguyễn Huy Bình
  • 21. Nhật Duật phiếu học tập tr¶ Tin học 11 lêi c¸c yªu - Trong 15 phót tù cÇu trong phiÕu. - Quan s¸t nghiªn cøu SGK vµ HS, hoµn gi¶i ®¸p c¸c th¾c HS m¾c trong thµnh phiÕu ph¶i ®äc thËt c¸c yªu cÇu PhiÕu häc qu¸ kü tr×nh HS thùc hiÖn trong c¸c yªu cÇu trong tËp. Sö dông hiÖu phiÕu. qu¶ SGK nh tµi liÖu nghiªn cøu. - HS cã thÓ trao ®æi vµ th¶o luËn víi c¸c thµnh viªn xung - Sau 15 phót b¾t ®îc quanh c©u ®Ó tr¶ cã lêi ®Çu hoµn thiÖn c¸c ®óng ý, ng¾n gän. néi dung trong - phiÕu. Tr×nh dung - Khi ®Ò cËp ®Õn häc bµy trong tËp néi phiÕu theo yªu phÇn nµo trong bµi cÇu cña GV. th× yªu cÇu 1 HS - Theo dâi GV h·y tr×nh bµy néi tr×nh bµy vµ nhËn dung phÇn ®ã. - ViÕt néi lªn b¶ng cÇu c¸c vµ HS xÐt Sau khi tr¶ lêi dung cña b¹n. yªu kh¸c - Hoµn thiÖn phiÕu nhËn xÐt. - phÇn häc tËp. hoµn thµnh c¸c ý trong phiÕu th× yªu cÇu HS hoµn thiÖn Nguyễn Huy Bình
  • 22. Nhật Duật Tin học 11 phiÕu cña m×nh. IV. Củng cố: V. Dặn dò: Đọc trước bài 10 – Cấu trúc lặp. Ngµy.........th¸ng.........n¨m 2007 PhiÕu häc tËp c¸ nh©n- tin häc 11 TiÕt 11: CÊu tróc rÏ nh¸nh Hä vµ tªn: ....................................................................................., Líp: .......................................... C¸c yªu cÇu ®èi víi HS PhÇn tr¶ lêi cña HS 1. RÏ nh¸nh VÝ dô: §Ó gi¶i ph¬ng NÕu ∆ < 0 th× tr×nh bËc hai, ta ph¶i tÝnh: ................................................. ∆ = b2 − 4ac ................................... NÕu ∆ ≥ 0 th× Tïy thuéc vµo ∆ ®Ó ®a ra kÕt ................................................. .................................. luËn nghiÖm. Quan s¸t s¬ ®å. §iÒn vµo hoÆc chç trèng? Tõ ®ã suy ra mét NÕu ∆ < 0 th× ................................................. sè mÖnh ®Ò? ................................... ngîc l¹i th× ........................................... ............................................ ⇒ mÖnh ®Ò: ................................................. ................................................. .................. ................................................. ................................................. .................. Nguyễn Huy Bình
  • 23. Nhật Duật Tin học 11 2. C©u lÖnh if – then ý nghÜa c¸c c©u lÖnh: Quan s¸t cÊu tróc c©u D¹ng thiÕu: lÖnh vµ s¬ ®å khèi. ChØ ra ý ................................................. nghÜa c¸c c©u lÖnh? ....................................... ................................................. ................................................. ................... ................................................. VÝ dô: §äc vÝ dô 3 t40) §iÒn vµo chç trèng? (SGK – ................................................. ................... ................................................. ................................................. C¸ch nµo nhanh h¬n, tiÖn h¬n? ................... D¹ng ®ñ: ................................................. ............................................. ................................................. ................................................. ................... ................................................. ................................................. ................... ................................................. ................................................. ................... Thùc hiÖn b»ng hai c¸ch: C1: max := a; if .............. then .............. C2: if ............ ................... C¸ch: then else.................. .......... 3. C©u lÖnh ghÐp Trong c©u lÖnh if-then Tr¶ lêi: ................................................. muèn thùc hiÖn nhiÒu lÖnh sau ................................................ then hay nhiÒu lÖnh sau else ................................................. ................................................. ta lµm thÕ nµo? ................... ................................................. ................................................. ................... ................................................. ................................................. ................... ................................................. ................................................. ................... 4. Mét sè vÝ dô §äc vÝ tr41). dô 1 (SGK – Nguyễn Huy Bình
  • 24. Nhật Duật Quan s¸t ch¬ng tr×nh trªn b¶ng. Th¶o luËn vÒ ch¬ng tr×nh nµy. Tin học 11 Bµi tËp: Sö dông cÊu tróc rÏ nh¸nh viÕt c©u lÖnh gi¶i ph¬ng tr×nh bËc nhÊt: ax + b = 0. Tiết 12+13 Cấu trúc lặp Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán; - Hiểu cấu trúc lặp với số lần biết trước, cấu trúc lặp kiểm tra điều kiện trước; - Biết cách vận dụng đúng đắn từng loại cấu trúc lặp vào tình huống cụ thể. 2. Kỹ năng: - Mô tả được thuật toán của một số bài toán đơn giản có sử dụng lệnh lặp; - Viết đúng các lệnh lặp với số lần biết trước, lệnh lặp kiểm tra điều kiện trước; - Viết được thuật toán của một số bài toán đơn giản. II. Chuẩn bị của GV và HS: 1. Giáo viên: Giáo án, SGK, bảng phụ. 2. Học sinh: Vở ghi, SGK. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Viết cấu trúc câu lệnh sẽ nhánh dạng thiếu và dạng đủ? Lấy ví dụ? . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung GV : Đưa ra bài toán, yêu cầu học sinh tìm cách để lập trình giải các bài toán này . 1. Khái niệm lặp HS : Đưa ra cách giải của mình, học sinh - Xét 2 bài toán như sau với a > 2 là số có thể đưa ra những cách giải khác nhau . nguyên cho trước : GV : Đưa ra cách giải cho bài toán . Giải theo các lệnh tuần tự Bài toán 1 : Tính tổng Nguyễn Huy Bình
  • 25. Nhật Duật S1:=0; If (1/a>0.0001) then S1:=S1+ 1/a; If (1/(a+1)>0.0001) then S1:=S1+ 1 /(a+1); If (1/(a+2)>0.0001) then S1:=S1+ 1 /(a+2); If (1/(a+3)>0.0001) then S1:=S1+ 1 /(a+3); … Tin học 11 1 1 1 1 S1= a + a + 1 + a + 2 + ... + a + 100 Bài toán 2 : Tính Tổng 1 1 1 1 S2= a + a + 1 + a + 2 + ... + a + N Với điều kệin + ... 1 < 0.0001 a+N HS : Nhận xét với việc giải bài toán theo cách đó ? Cách giải : Với N = 100 thì lặp 100 lần như thế nhưng theo việc kiểm tra điều kiện thì không biết - Bắt đầu S được gán giá trị 1/a. phải làm theo cách nào? Theo cả hai trường hợp thì đều quá dài. - Tiếp theo mỗi lần cộng thêm vào S là 1/(a+N) với N = 1, 2, 3, … - Để học sinh hiểu được khái niệm lặp, giáo viên đưa ra một số ví dụ trong thực tế được tính toán lặp đi lặp lại nhiều lần. VD1 : Bài toán gửi tiền vào ngân hàng. Hằng tháng phải tính lãi và cộng thêm vào gốc đang gửi hay nói cách khác gốc của tháng sau = gốc + lãi tháng trước. VD 2: Tính tổng của một đoạn số nguyên mà không được dùng công thức. GV : Đưa ra ví dụ: So sánh hai thuật toán sau: Với bài toán 1, việc cộng thêm dừng khi 1/(a+N) < 0.0001, => số lần lặp chưa biết. - Với bài toán 2, việc cộng thêm dừng khi N = 100, => số lần lặp đã biết trước. Trong lập trình, có những thao tác phải lặp lại nhiều lần, khi đó ta gọi là cấu trúc lặp. Lặp thường có 2 loại :  Lặp với số lần biết trước .  Lặp với số lần không biết trước . NNLT nào cũng cung cấp một số câu lệnh để mô tả các cấu trúc lặp như trên. Sau đây chúng ta sẽ tìm hiểu các câu lệnh trong ngôn ngữ Pascal. 2. Lặp có số lần biết trước và câu lệnh for – do Trong Pascal, có 2 lọai câu lệnh lặp có số lần biết trước : - Lặp dạng tiến: For := to
  • 26. Nhật Duật Thuật toán Thuật toán Tong_1a Tong_1b B1: S:=1/a; B1: S:=1/a; N:=0; N:=101; B2: N:=N+1; B2: N := N -1; B3: Nếu N >100 B3: Nếu N < 1 thì chuyển sang thì chuyển sang bước 5; bước 5; B4: S:= S + 1/ B4: S:= S+ 1/ (a+ N) rồi quay (a+N) rồi quay lại B2; lại B2; B5: Đưa ra S rồi B5: Đưa ra S rồi kết thúc. kết thúc. GV : Gọi một số học sinh nhận xét về 2 thuật toán trên về một số vấn đề :  Thuật toán có lặp không?  Lặp bao nhiêu lần?  Hai thuật toán giống và khác nhau như thế nào?  Cái gì thay đổi trong thuật toán này? Tin học 11 trị cuối> do ; - Lặp dạng lùi For := downto do ; Trong đó:  Biến đếm thường là biến kiểu số nguyên.  Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm. Giá trị đầu phải nhỏ hơn hay bằng giá trị cuối.  Ở dạng lặp tiến: Biến đếm tự tăng dần từ giá trị đầu đến giá trị cuối.  Ở dạng lặp lùi: Biến đếm tự giảm dần từ giá trị cuối đến giá trị đầu.  Tương ứng với mỗi giá trị của biến đếm, câu lệnh sau do thực hiện 1 lần Ví dụ 1 : Hai chương trình cài đặt thuật toán Sau khi so sánh hai thuật toán trên, giáo tong_1a và tong_1b . viên đưa ra hai cách lặp trong ngôn ngữ Pascal, giải thích ý nghĩa của các thành phần trong câu lệnh . Ví dụ 2 : Tính tổng các số nguyên chia hết GV : Lấy ví dụ minh họa trong Pascal để cho 3 hoặc 5 trong phạm vi từ M đến N các em thấy được sự thay đổi giá trị của (M A thì cần gửi trong bao lâu với lãi suất Nguyễn Huy Bình
  • 27. Nhật Duật Tin học 11 là k%. Bước 3: N :=N +1; Yêu cầu học sinh đưa ra cách giải cho Bước 4: S := S+ 1/(a+N) rồi quay lại bước bài toán này . 2; Bước 5: Đưa kết qủa S ra màn hình rồi kết GV : Phân tích phương án trả lời của học thúc sinh sau đó đưa ra lời giải cho bài toán. - Từ bước 2 đến bước 4 được lặp lại nhiều lần nếu điều kiện 1/(a+N) < 0.0001 chưa GV : Đưa ra cấu trúc câu lệnh While – Do được thỏa mãn. Trong Pascal, giải thích ý nghĩa các thành _ Pascal sử dụng câu lệnh lặp While phần. - Do để tổ chức lặp với số lần chưa viết như HS : Lắng nghe và ghi chép. sau While <Điều kiện> Do ; Trong đó - Điều kiện là biểu thức quan hệ hoặc logic. - Câu lệnh là một câu lệnh trong Pascal. Ý nghĩa : Khi điều kiện còn đúng thì còn thực hiện câu lệnh sau Do sau đó lại quay lại kiểm tra điều kiện. GV: Nên gõ sãn những ví dụ này để học sinh có thể quan sát chương trình, giáo viên chạy thử chương trình trong Pascal. Riêng với VD 2, trước khi đưa ra thuật toán, GV nên cho học sinh xây dựng thuật toán tìm ước chung lớn nhất (đã học ở lớp 10) Chạy chương trình với nhiều cặp M, N khác nhau. Ví dụ 1 : Chương trình của bài toán 1. Ví dụ 2 : Tìm ước chung lớn nhất của M và N. Thuật toán : B1: Nếu M = N thì ƯCLN := M; Kết thúc. Tốt nhất chạy từng bước, cho học sinh thấy B2: Nếu M > N thì M := M – N rồi quay lại sự thay đổi của các biến. B1, ngược lại N := N – M rồi quay lại B1 Sau đây là chương trình tìm UCLN; IV. Củng cố:  Nhắc lại một số khái niệm mới;  Nhắc lại cấu trúc câu lệnh. V. Dặn dò:  Cho bài tập về nhà. Nguyễn Huy Bình
  • 28. Nhật Duật Tiết 14 + 15 Tin học 11 Bài tập và thực hành 2 Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: 2. Kỹ năng: - Xây dựng chương trình có sử dụng cấu trúc rẽ nhánh; - Làm quen với việc hiệu chỉnh chương trình. II. Chuẩn bị của GV và HS: 1. Giáo viên: Phòng máy, các máy cài Turbo Pascal, giáo án, SGK. 2. Học sinh: Bài tập (viết một chương trình hoàn chỉnh), SGK. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Nội dung Hoạt động của GV và HS Bài toán. Bộ số Pi-ta-go. Biết rằng bộ ba số nguyên dương a, b, c được gọi là bộ số Pi-ta-go nếu tổng các bình phương của hai số bằng bình phương của số còn lại. Viết chương trình nhập từ bàn phím ba số nguyên dương a, b, c và kiểm tra xem chúng có là bộ số Pi-ta-go GV: giải thích bài toán. hay không? HS: Đưa phương án có thể xảy ra của bài toán. Kiểm tra xem có đẳng thức nào trong ba đẳng thức sau đây xảy ra hay không: Những công việc cần thực hiện: Nguyễn Huy Bình
  • 29. Nhật Duật Tin học 11 a) Gõ chương trình sau: a 2 = b2 + c 2 program Pi_ta_go; b2 = a 2 +c 2 uses crt; var a, b, c: integer; c 2 = a 2 +b 2 a2, b2, c2: longint; begin clrscr; write(‘a, b, c:’); HS: gõ đoạn chương trình. readln(a, b, c); GV: Chú ý, trước else không có dấu chấm a2:=a; phẩy (;). b2:=b; c2:=c; a2:=a2*a; b2:=b2*b; c2:=c2*c; if (a2 = b2 + c2) or (b2 = c2 + a2) or (c2 = a2 + b2) then writeln(‘ Ba so da nhap la bo so Pi-tago’) else write(‘ Ba so da nhap khong la bo so Pi-ta-go’); readln end. b) Lưu chương trình với tên PITAGO lên đĩa. c) Nhấn phím F7 để thực hiện từng câu lệnh chương trình, nhập các giá trị a = 3, b = 4, c = 5. HS: Thực hiện thao tác lưu chương trình. d) Vào bảng chọn Debug mở cửa sổ hiệu chỉnh để xem giá trị a2, b2, c2. e) Nhấn phím F7 để thực hiện các câu lệnh tính những giá trị nói trên, so sánh với kết GV: Theo dõi và hướng dẫn HS thực hiện quả a2 = 9, b2 = 16, c2 = 25. các phần của bài thực hành. GV: Hướng dẫn cụ thể ở từng máy một. f) Quan sát quá trình rẽ nhánh. g) Lặp lại các bước trên với bộ dữ liệu a = 700, b = 1000, c = 800. h) Nếu thay dãy lệnh a2:=a; b2:=b; c2:=c; Nguyễn Huy Bình
  • 30. Nhật Duật Tin học 11 a2:=a2*a; b2:=b2*b; c2:=c2*c; bằng dãy lệnh a2:=a*a; b2:=b*b; c2:=c*c; thì kết quả có gì thay đổi với bộ dữ liệu HS: Nếu thực hiện xong các yêu cầu trong cho ở câu g? bài thực hành thì có thể làm một số bài tập trong SGK (t.51). GV: Gợi ý cho HS thực hiện các bài tập này. IV. Củng cố: V. Dặn dò: Tiết 16 Kiểm tra 1 tiết Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Củng cố và ghi nhớ kiến thức cơ bản của chương 2 2. Kỹ năng: - Biết cách vận dụng các kiến thức đã được học để viết và thực hiện được những chương trình TP. II. Chuẩn bị của GV và HS: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Nội dung Hoạt động của GV và HS Kiểm tra bằng bài viết trên lớp. GV: Phát đề cho HS, quan sát HS làm bài. Bài kiểm tra gồm 20 câu trắc nghiệm. HS: Làm bài nghiêm túc, không sử dụng tài liệu. IV. Củng cố: V. Dặn dò: Ôn tâp toàn bộ chương 2 và bài “Cấu trúc rẽ nhánh”. Giờ sau kiểm tra học kì. Nguyễn Huy Bình
  • 31. Nhật Duật Tiết 18 Tin học 11 Kiểm tra học kì I Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Củng cố và ghi nhớ kiến thức cơ bản của toàn bộ nội dung học kì I. 2. Kỹ năng: - Biết cách vận dụng các kiến thức đã được học để viết và thực hiện được những chương trình viết bằng ngôn ngữ lập trình Pascal. II. Chuẩn bị của GV và HS: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Nội dung Hoạt động của GV và HS Kiểm tra bằng bài viết trên lớp. GV: Phát đề cho HS, quan sát HS làm bài. Bài kiểm tra gồm 30 câu trắc nghiệm. HS: Làm bài nghiêm túc, không sử dụng tài liệu. IV. Củng cố: V. Dặn dò: Nguyễn Huy Bình
  • 32. Nhật Duật Tiết 19 Tin học 11 Cấu trúc lặp (T) Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: Giáo án, SGK, bảng phụ. 2. Học sinh: Vở ghi, SGK. III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Viết cấu trúc của câu lệnh lặp với số lần biết trước? Lấy ví dụ? . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung 3. Lặp với số lần chưa biết trước và câu lệnh while – do GV : Đưa ra cấu trúc câu lệnh While – Do Để giải bài toán 2 ta dùng thuật toán như sau Trong Pascal, giải thích ý nghĩa các thành : phần. Bước 1 : S :=1/a; N :=0; HS : Lắng nghe và ghi chép. Bước 2 : Nếu 1/(a+N) < 0.0001 thì chuyển đến bước 5 ; Bước 3: N :=N +1; Bước 4: S := S+ 1/(a+N) rồi quay lại bước 2; Bước 5: Đưa kết qủa S ra màn hình rồi kết thúc - Từ bước 2 đến bước 4 được lặp lại nhiều lần nếu điều kiện 1/(a+N) < 0.0001 chưa GV: Nên gõ sãn những ví dụ này để học được thỏa mãn. sinh có thể quan sát chương trình, giáo viên _ Pascal sử dụng câu lệnh lặp While chạy thử chương trình trong Pascal. - Do để tổ chức lặp với số lần chưa viết như Riêng với VD 2, trước khi đưa ra thuật sau toán, GV nên cho học sinh xây dựng thuật toán tìm ước chung lớn nhất (đã học ở lớp While <Điều kiện> Do ; 10) Chạy chương trình với nhiều cặp M, N Trong đó khác nhau. - Điều kiện là biểu thức quan hệ hoặc logic. - Câu lệnh là một câu lệnh trong Pascal. Tốt nhất chạy từng bước, cho học sinh thấy sự thay đổi của các biến. Ý nghĩa : Khi điều kiện còn đúng thì còn Nguyễn Huy Bình
  • 33. Nhật Duật Tin học 11 thực hiện câu lệnh sau Do sau đó lại quay lại kiểm tra điều kiện. Ví dụ 1 : Chương trình của bài toán 1. Ví dụ 2 : Tìm ước chung lớn nhất của M và N. Thuật toán : B1: Nếu M = N thì ƯCLN := M; Kết thúc. B2: Nếu M > N thì M := M – N rồi quay lại B1, ngược lại N := N – M rồi quay lại B1 Sau đây là chương trình tìm UCLN; IV. Củng cố:  Nhắc lại một số khái niệm mới;  Nhắc lại cấu trúc câu lệnh. V. Dặn dò:  Cho bài tập về nhà. Nguyễn Huy Bình
  • 34. Nhật Duật Tin học 11 Tiết 20 Bài tập Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Củng cố thêm về cấu trúc rẽ nhánh; 2. Kỹ năng: - Luyện cấu trúc lặp, chú ý bài tìm tổng của dãy số; - Tiếp tục làm quen với các công cụ hiệu chỉnh chương trình. II. Chuẩn bị của GV và HS: 1. Giáo viên: 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Viết cấu trúc câu lệnh lặp với số lần chưa biết trước? Lấy ví dụ? . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung GV: Hướng dẫn và giải đáp các thắc mắc của HS về một số bài tập ở nhà. GV: Yêu cầu HS chữa bài tập 4 trên bảng. HS: Lên bảng chữa bài. GV: Sửa lỗi và hoàn chỉnh bài 4. GV: Rèn luyệ, uốn nắn HS về cách viết các câu lệnh sao cho chính xác và gọn gàng, mỗi câu lệnh nên viết trên một dòng để thuận tiện cho quá trình theo dõi thực hiện từng lệnh. Bài 4 a) if (sqr(x)+sqr(y)<=1) then z:= sqr(x) + sqr(y) else if y>=x then z:=x + y else z:=0.5; b) if (sqr(x-a) + sqr(y-b))<=sqr(r) then z:=abs(x) + abs(y) else z:=x+y; HS: Rèn luyện tính cẩn thận, chu đáo khi lập trình, rèn luyện cách hiệu chỉnh chương trình khi gặp lỗi và cách kiểm thử lại chương trình thông qua một số test. Bài 5 GV: Yêu cầu cả lớp cùng giải bài tập 5.b. IV. Củng cố: V. Dặn dò: Đọc trước bài Kiểu mảng. Nguyễn Huy Bình
  • 35. Nhật Duật Tiết 21 Tin học 11 Kiểu mảng Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Hiểu khái niệm mảng một chiều và hai chiều . - Hiểu cách khai báo và truy cập đến các phần tử của mảng . 2. Kỹ năng: - Cài đặt được thuật toán của một số bài toán đơn giản với kiểu dữ liệu mảng một chiều . - Thực hiện được khai báo mảng, truy cập, tính toán các phần tử của mảng . II. Chuẩn bị của GV và HS: 1. Giáo viên: 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung Trước khi vào bài, giáo viên đưa ra một số vấn đề cần giải quyết như sau : Với những kiểu dữ liệu như đã biết, làm thế nào để : - Lưu trữ và xử lý một dãy số ? - Lưu trữ và xử lý Họ và tên của một Có thể sử dụng ví dụ trong SGK để học sinh dễ theo dõi, gõ trước chương trình để có thể người ? - Lưu trữ và xử lý bảng kết quả thi tốt sử dụng cho các phần tiếp theo . nghiệp ? HS : Đưa ra các phương án để trả lời cho 3 câu hỏi trên . GV : Các ngôn ngữ lập trình thường cung cấp một số kiểu dữ liệu được xây dựng từ những kiểu dữ liệu chuẩn gọi là kiểu dữ liệu có cấu trúc . Chương này chúng ta sẽ tìm hiểu một Trong lập trình thường có 2 loại mảng : - Mảng một chiều . số kiểu dữ liệu trong ngôn ngữ Pascal để trả - Mảng hai chiều . lời 3 câu hỏi trên . Nguyễn Huy Bình
  • 36. Nhật Duật Tin học 11 GV : Đưa ra ví dụ, cần lập lập trình xử lý 1. Kiểu mảng một chiều một dãy số nguyên, hãy tìm cách lưu trữ một dãy số nguyên trong khi lập trình ? - Mảng một chiều là một dãy hữu hạn các phần tử có cùng kiểu, mảng được đặt tên và Bằng cách nào để lưu trữ được thông tin mỗi phần tử mang một chỉ số. Để mô tả dưới dạng bảng khi lập trình ? mảng một chiều ta cần xác định kiểu của các phần tử và cách đánh chỉ số các phần tử . HS : Đưa ra ý kiến . Với mảng một chiều ta quan tâm đến : GV : Đánh giá ý kiến của học sinh, sau đó - Tên mảng một chiều . đưa ra mục đích của việc sử dụng cấu trúc - Số lượng phần tử trong mảng . mảng trong chương trình . - Kiểu dữ liệu của phần tử . - Cách khai báo biến mảng một chiều . GV : Đưa ra khái niệm mảng một chiều và - Cách truy cập vào từng phần tử của một số yếu tố liên quan trong lập trình nói mảng . chung . Xét ví dụ : Nhập vào nhiệt độ trung bình mỗi ngày trong tuần . Tính và đưa ra màn hình nhiệt độ trung bình của cả tuần và đếm số ngày có nhiệt độ lớn hơn nhiệt độ trung bình này . GV : Đi sâu phân tích hai chương trình để cho học sinh nhận thấy sự tiện lợi khi sử Quan sát hai chương trình viết bằng ngôn dụng mảng . ngữ Pascal cùng để giải bài toán trên . HS : Trong khi giáo viên phân tích hai chương trình, học sinh sẽ đưa ra ý kiến nhận xét về 2 chương trình. HS : Trong khi giáo viên phân tích hai chương trình, học sinh sẽ đưa ra ý kiến nhận xét về 2 chương trình. - Chương trình 1 : Không sử dụng kiểu mảng . - Chương trình 2 : Sử dụng kiểu mảng một chiều . a> Khai báo mảng một chiều Trong ngôn ngữ Pascal, mảng một chiều được khai báo bằng hai cách như sau : Cách 1 : Var : Array[kiểu chỉ số] of ; Cách 2 : Type = Array [] of ; Var : ; GV : Đưa ra cách khai báo mảng một chiều trong ngôn ngữ Pascal, giải thích ý nghĩa Trong đó : của các từ khóa mới . - Type là từ khóa dùng để khai báo biến, Array là từ khóa để khai báo mảng . GV : Khai báo bằng cách nào tiện lợi hơn ? Nguyễn Huy Bình
  • 37. Nhật Duật Tin học 11 - Kiểu chỉ số thường là đoạn số nguyên liên tục có n1..n2, với n1 là chỉ số đầu HS : Thường thì học sinh trả lời cách 1 tiện và n2 là chỉ số cuối. lợi hơn ? - Kiểu thành phần là kiểu dữ liệu của phần tử mảng . - Để truy cập vào phần tử mảng ta viết : GV : Tùy trường hợp cụ thể mà ta dùng - [Chỉ số] cách 1 hay cách 2 nhưng thông thường ta Ví dụ : sử dụng cách 1 . A[20] Truy cập phần tử mang chỉ số 20 trong mảng A . Ví dụ : GV : Sử dụng một sồ hình ảnh trực quan Khai báo biến mảng thông qua kiểu mảng minh họa cho học sinh cấu trúc mảng và : chỉ số của phần tử Type ArrayInteger=Array[1..100] of Integer; Chỉ ArrayReal=Array[1.50] of Real; 1 2 3 4 5 6 7 8 số Var A : Array[1..50]; B : Array[1..50] of Real; Giá 5 81 62 18 26 41 24 53 trị 3 Khai báo mảng trực tiếp : Đưa ra một số khai báo mảng trong Pascal . Var A : Array[1..100] of Integer ; B : Arrat[1..50] of Real ; IV. Củng cố: V. Dặn dò: Nguyễn Huy Bình
  • 38. Nhật Duật Tiết 22 Tin học 11 Kiểu mảng (T) Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: Cho biết cách khai báo mảng một chiều? . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung b> Một số ví dụ : GV : Đưa ra ví dụ . Ví dụ 1 : Tìm phần tử lớn nhất của một dãy số nguyên . HS : Xây dựng thuật toán để giải bài toán - Input : Số nguyên dương N và dãy số (thuật toán đã học ở lớp 10) . A1, A2, ….., AN - Output : Chỉ số và giá trị của số lớn nhất trong dãy GV soạn sẵn chương trình và cho học sinh - Ý tưởng : quan sát chương trình . + Đặt số A1 là số lớn nhất (max) + Cho i lặp từ 2 đến N, nếu A[i]> thì đổi max = A[i] vả lưu lại vị trí i . Nếu có nhiều thời gian, giáo viên sẽ tiến Chương trình như sau : hành soạn chương trình từ đầu để học sinh có thể dễ dàng nhận ra các thao tác cần phải Program timmax ; thực hiện khi viết chương trình . Uses crt ; var a : array[1..250] of integer ; n,i,max,csmax : Integer ; Begin clrscr ; Write('Nhap n = ') ; Readln(n) ; For i := 1 to n do Begin Write('a[',i,'] = ') ; readln(a[i]) ; End ; max := a[i] ; Nguyễn Huy Bình
  • 39. Nhật Duật Tin học 11 csmax := 1 ; For i := 2 to n do If a[i] > max then Begin max := a[i] ; csmax :=i ; End ; Writeln('Gia tri lon nhat : ',max) ; Writeln('chi so ptu lon nhat : ',csmax) ; Readln ; End . Ví dụ 2 : Sắp xếp dãy số nguyên theo bằng thuật toán tráo đổi . GV : Đưa ra ví dụ, nhắc lại ý tưởng của - Input : Số nguyên dương N và dãy số thuật toán . A1, A2, …, AN - Output : Dãy A được sắp xếp theo thứ tự không giảm . HS : Xây dựng thuật toán để giải bài toán (thuật toán đã học ở lớp 10) . - Ý tưởng : + Đổi để đưa số lớn nhất về vị trí cuối cùng . GV: soạn sẵn chương trình và cho học sinh + Làm tương tự đối với những số còn quan sát chương trình . lại . Chương trình như sau : Nếu có thời gian, giáo viên sẽ tiến hành soạn chương trình từ đầu để học sinh có thể Program sapxep ; dễ dàng nhận ra việc chuyển đổi ngôn ngữ Uses crt ; từ ngôn ngữ thuật toán sang ngôn ngữ lập var A : Array[1..250] of integer ; trình . n,i,j,tg : Integer ; Begin clrscr ; Write('Nhap so phan tu mang n = ') ; Readln(n) ; For i := 1 to n do Begin Write('A[',i,'] = ') ; readln(A[i]) ; End ; For j := n downto 2 do Begin For i := 1 to j-1 do Nguyễn Huy Bình
  • 40. Nhật Duật Tin học 11 If A[i] > A[i+1] then Begin tg := A[i] ; A[i] := A[i+1] ; A[i+1] := tg ; End ; End ; Writeln('day sau khi sap xep : ') ; For i := 1 to n do write(a[i]:8) ; readln ; End . Writeln('chi so ptu lon nhat : ',csmax); readln ; End . IV. Củng cố: V. Dặn dò: Nguyễn Huy Bình
  • 41. Nhật Duật Tiết 23 Tin học 11 Kiểu mảng (T) Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C5: 11C6: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh 11C3: 11C7: 11C4: Nội dung Ví dụ 3 : Tìm kiếm nhị phân . GV : Đưa ra ví dụ, nhắc lại ý tưởng của thuật toán . HS : Xây dựng thuật toán để giải bài toán (thuật toán đã học ở lớp 10) . - Input : Dãy số A1, A2,………, AN đã được sắp xếp tăng dần . - Output : Có hay không chỉ số i mà A[i] = k hoặc thông báo không tìm thấy . GV soạn sẵn chương trình và cho học sinh - Ý tưởng : quan sát chương trình . Xem lại thuật toán tìm kiếm nhị phân trong SGK lớp 10 . Chương trình như sau : Nếu có thời gian, giáo viên sẽ tiến hành soạn chương trình từ đầu để học sinh có thể Program sapxep ; dễ dàng nhận ra việc chuyển đổi ngôn ngữ Uses crt ; từ ngôn ngữ thuật toán sang ngôn ngữ lập var A : Array[1..250] of integer ; trình . n,i,k : Integer ; dau,cuoi,giua : Integer ; TK : boolean ; Begin clrscr ; Write('Nhap so ptu mang n = ') ; Readln(n) ; For i := 1 to n do Begin Write('A[',i,'] = ') ; readln(A[i]) ; Nguyễn Huy Bình
  • 42. Nhật Duật Tin học 11 End ; Write('nhap so can tim k : ') ; Readln(k); dau := 1 ; cuoi := n ; TK := false ; while (dau <= cuoi) and Not TK Do Begin giua := (dau+cuoi) div 2 ; If A[giua] = k then TK := true Else If a[giua]>k then cuoi := giua - 1 Else dau := giua + 1 ; End ; If TK then write('Chi so la : ',giua) else write(' Khong tim thay '); readln ; End . 2. Kiểu mảng 2 chiều : GV : Quay lại ví dụ về lưu trữ dữ liệu dạng - Mảng hai chiều là một bảng các phần tử bảng để các em nhận ra nhu cầu phải sử cùng kiểu . dụng mảng 2 chiều trong lập trình . Với mảng hai chiều ta quan tâm đến : - Tên kiểu mảng hai chiều . - Số lượng phần tử của mỗi chiều trong mảng . - Kiểu dữ liệu của phần tử . - Cách khai báo biến mảng hai chiều . - Cách truy cập vào từng phần tử của mảng . a> Khai báo mảng hai chiều - Trong ngôn ngữ Pascal, mảnh hai chiều được khai báo như sau : GV : Khai báo cách nào tiện lợi hơn (tương Cách 1 : Khai báo trực tiếp tự mảng 1 chiều) ? HS : Thường thì học sinh vẫn chọn cách 1 . GV : Tùy theo trường hợp cụ thể nhưng Var : : Array[kiểu chỉ số dòng, kiểu chỉ số cột] of < kiểu phần tử> ; Cách 2 : Khai báo gián tiếp thông qua khai Nguyễn Huy Bình
  • 43. Nhật Duật Tin học 11 thường thì cách 1 hay được dùng hơn . báo kiểu mảng Type = Array[kiểu chỉ số dòng, kiểu chỉ số cột] of ; Var : ; Ví dụ : Khai báo biến mảng thông qua kiểu mảng : GV : Khi khai báo mảng 2 chiều cần chú ý Type điều gì ? ArrayInteger = Array[1..10,1..15] of Integer ; HS : Tìm câu trả lời, GV gợi ý để các em ArrayReal=Array[1..50,1..100] of Real ; chỉ ra được chỉ số của mảng, số dòng, số cột và kiểu của mỗi phần tử trong mảng . Var A : ArrayInteger ; B : ArrayReal ; Khai báo mảng trực tiếp : Var A : Array[1..10,1..15] og Integer ; B : Aarray[1..50,1..100] og Real ; GV : Gọi một số học sinh lên khai báo một số biến mảng một chiều theo yêu cầu của Cách truy cập vào phần tử của mảng hai giáo viên . chiều : [chỉ số dòng, chỉ số cột] Minh họa bằng hình ảnh mảng 2 chiều và Ví dụ : A[1,3], B[23,66],…… chỉ số các phần tử mảng hai chiều cũng như cách viết truy cập phần tử mảng . IV. Củng cố: V. Dặn dò: Nguyễn Huy Bình
  • 44. Nhật Duật Tiết 24 Tin học 11 Kiểu mảng (T) Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C5: 11C6: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh GV cho học sinh quan sát chương trình và giải thích các lệnh trong chương trình, chú ý đi sâu vào các lệnh lặp để các em nhận ra thường thì ta sử dụng vòng lặp for - do để duyệt qua các phần tử mảng . 11C3: 11C7: 11C4: Nội dung b> Một số ví dụ : Ví dụ 1 : Chương trình sau đưa ra màn hình bảng cửu chương . Program cuuchuong; GV nên soạn sẵn chương trình và cho các Uses crt ; em quan sát chương trình, và chạy thử var A : Array[1..9,1..9] of Integer ; chương trình trên máy để các em tiện theo i, j : Byte ; dõi . Begin Program Timkiem; Clrscr ; Uses crt; Writeln('Bang cuu chuong 1 -> 9 : '); var A : Array[1..100,1..100] of Integer; Writeln ; i,j,n,m : Byte ; For i := 1 to 9 do k,d : integer ; For j := 1 to 9 do A[i,j] := i*j ; Begin For i := 1 to 9 do Clrscr ; Begin Write(' Nhap so dong, so cot cua mang : For j := 1 to 9 do Write(a[i,j]:4); ') ; Writeln ; Readln(m,n); Writeln ; For i := 1 to m do End ; For j := 1 to n do Readln ; Begin End . Write(' A[',i,',',j,'] = '); Readln(A[i,j]); Nguyễn Huy Bình
  • 45. Nhật Duật Tin học 11 End ; Writeln(' Mang vua nhap vao la : '); Writeln; For i := 1 to m do Begin For j := 1 to n do Write(a[i,j]:4) ; Writeln; Writeln; End; Write(' Nhap gia tri k : '); Readln(k) ; d := 0 ; For i := 1 to m do For j := 1 to n do If a[i,j] < k then Begin write('So nho hon ',k,' la '); write(a[i,j]:8); d := d+1 ; End ; If d = 0 then Write('Khong co ptu nao nho hon ',k); readln; End . Ví dụ 2 : Chương trình sau nhập vào một mảng 2 chiều và số nguyên k, sau đó in ra các phần tử có giá trị nhỏ hơn k của mảng . IV. Củng cố:  Nhắc lại một số khái niệm mới .  Nhắc lại cấu trúc câu lệnh bằng cách chia bảng thành 4 phần đồng thời gọi 4 học sinh lên bảng viết lại các cách khai báo, truy xuất, và hiển thị để nhập dữ liệu .  Ra bài tập về nhà . V. Dặn dò: Đọc lại các kiến thức đã học trong bài 11. Chuẩn bị các chương trình để chạy trong giờ thực hành sau. Nguyễn Huy Bình
  • 46. Nhật Duật Tiết 25 Tin học 11 Bài tập và thực hành 3 Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: Củng cố cho HS những hiểu biết về kiểu dữ liệu mảng; 2. Kỹ năng: + Nâng cao kĩ năng sử dụng một số câu lệnh và một số kiểu dữ liệu thông qua việc tìm hiểu, chạy thử các chương trình có sẵn; + Biết giải một số bài toán tính toán, tìm kiếm đơn giản trên máy tính. + Tổ chức những hoạt động trong phòng máy để HS có được kĩ năng cơ bản trong làm việc với kiểu mảng (một chiều) trong lập trình, cụ thể là: - Khai báo kiểu dữ liệu mảng; - Nhập dữ liệu cho mảng, đưa ra màn hình chỉ số và giá trị các phần tử của mảng; - Duyệt qua tất cả các phần tử của mảng để sử lí từng phần tử. + Cung cấp cho HS 3 thuật toán cơ bản và đơn giản thường gặp với dữ liệu kiểu mảng: - Tính tổng các phần tử thỏa mãn điều kiện nào đó; - Đếm số phần tử thỏa mãn điều kiện nào đó; - Tìm phần tử lớn nhất (hay nhỏ nhất) của mảng cùng với vị trí của nó trong mảng. + 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. II. Chuẩn bị của GV và HS: 1. Giáo viên: Phòng máy, pascal. 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung HS: phải hiểu được chương trình đã viết Bài 1: Tạo mảng A gồm n (n<=100) số sẵn ở câu a) và thấy được kết quả chạy nguyên, mỗi số có trị tuyệt đối không vượt chương trình này, trên cơ sở đó tìm ra cách quá 300. Tính tổng các phần tử của mảng là giải quyết vấn đề đặt ra ở câu b. bối số của một số nguyên dương k cho GV: cần cho HS thấy được điểm khác nhau trước. cơ bản của các chương trình ở câu a và câu a) Hãy tìm hiểu và chạy thử chương trình b. sau đây: Thủ tục randomize khởi tạo bộ lấy số ngẫu Program Sum1; nhiên trước khi dùng lệnh random(n) để lấy (tr 63 SGK) một số nguyên ngẫu nhiên trong phạm vi từ b) Hãy đưa các câu lệnh sau đây vào những 0 đến n-1. vị trí cần thiết nhằm sửa đổi chương trình Nguyễn Huy Bình
  • 47. Nhật Duật GV: đưa ra một số câu hỏi (phù hợp với trình độ HS ở mỗi lớp), hướng dẫn HS tìm hiểu chương trình: - MyArray là tên một kiểu dữ liệu hay tên một biến? - Vai trò của nmax và n khác nhau ntn? - Những dòng lệnh nào nhằm tạo ra mảng A? - Lệnh gán: A[i]:=random(300)random(300); có ý nghĩa gì? ………. IV. Củng cố: V. Dặn dò: Tin học 11 trong câu a) để có được chương trình đưa ra số các số dương và số các số âm trong mảng. posi, neg : integer; posi:= 0; neg:= 0; if A[i] > 0 then posi:= posi + 1 else if A[i] < 0 then neg:=neg+1; writeln(posi:4,neg:4); Nguyễn Huy Bình
  • 48. Nhật Duật Tiết 26 Tin học 11 Bài tập và thực hành 3(T) Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: Phòng máy, pascal. 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C5: 11C6: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh GV: Nêu gợi ý cho HS thấy được chương trình 2a thể hiên thuật toán tìm phần tử lớn nhất. GV: Hướng dẫn HS tìm hiểu vai trò của biến j qua các câu lệnh của bài toán. GV: Có thể cho HS một ví dụ bộ dữ liệu input nhỏ và yêu cầu HS mô phỏng việc chạy chương trình thể hiện thuật toán trên giấy nháp. 11C3: 11C7: 11C4: Nội dung Bài 2: Viết chương trình tìm phần tử có giá trị lớn nhất của mảng và đưa ra màn hình chỉ số và giá trị của phần tử tìm được. Nếu có nhiều phần tử có cùng giá trị lớn nhất thì đưa ra phần tử có chỉ số nhỏ nhất. a) Tìm hiểu chương trình sau đây: Program max; Const nmax=100; Type myarray=array[1..nmax] of interger; Var a:myarray; HS: Tích cực tìm hiểu bài toán, thực hiện n, i, j:integer; bài toán trên máy tính, sửa lỗi chạy chương Begin trình. Write(‘Nhap so luong phan tu day, n=’); Readln(n); For i:= 1 to n do Begin Write(‘ phan tu thu ‘,i,’ =’); 1 readln(a[i]); 2 end; j:=1; for i:=2 to n do if a[i]>a[j] then j:=i; write(‘ chi so:’,j,’ Gia tri:’,a[j]:4); readln end. Nếu còn thời gian thì HS hoàn thành phần b) Chỉnh sửa chương trình trên để đưa ra chỉ b) dưới sự hướng dẫn của GV. số các phần tử có cùng giá trị lớn nhất. IV. Củng cố: Có thể thay thế câu lệnh a[i]:=random(300)-random(300) cho hai lệnh 1,2 V. Dặn dò: Nguyễn Huy Bình
  • 49. Nhật Duật Tiết 27 Tin học 11 Bài tập và thực hành 4 Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Củng cố cho HS những kiến thức cơ bản đã có khi lập trình với kiểu dl mảng; - Củng cố cho HS một thuật toán sắp xếp các phần tử của một dãy (bằng tráo đổi); 2. Kỹ năng: - Rèn luyện kĩ năng diễn đạt thuật toán sắp xếp bằng chương trình sử dụng dữ liệu kiểu mảng; - Rèn luyện cho HS một ý thức cần có của người lập trình là viết chương trình với khối lượng tính toán ít nhất có thể; - 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. II. Chuẩn bị của GV và HS: 1. Giáo viên: Phòng máy, pascal. 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung GV: Bài này giúp chúng ta củng cố thuật toán sắp xếp (bằng tráo đổi) và kĩ năng cài đặt bằng ngôn ngữ lập trình. Bài 1: a) Hãy tìm hiểu và chạy thử chương trình HS: Tích cực tìm hiểu bài toán, thực hiện thực hiện thuật toán sắp xếp dãy số nguyên bài toán trên máy tính, sửa lỗi chạy chương bằng thuật toán tráo đổi với các giá trị khác trình. nhau của n dưới đây. Qua đó, nhận xét thời gian chạy của chương trình. GV: Yêu cầu HS sửa lại một chỗ để có (chương trình SGK – t65) chương trình sắp xếp các phần tử theo thứ b) Khai báo thêm biến Dem và bổ xung vào tự không tăng. chương trình những câu lệnh cần thiết để HS: Chạy thử để kt kết quả. biến Dem tính số lần thực hiện tráo đổi GV: Để đáp ứng yêu cầu ở câu b, đưa ra trong thuật toán. Đưa kết quả ra màn hình. một số câu hỏi để gợi ý. HS: Trả lời các câu hỏi của GV và thực hiện theo yêu cầu ở câu b. IV. Củng cố: V. Dặn dò: Nguyễn Huy Bình
  • 50. Nhật Duật Tiết 28 Tin học 11 Bài tập và thực hành 4 (T) Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: Phòng máy, pascal. 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C5: 11C6: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh HS: Tích cực tìm hiểu bài toán, thực hiện bài toán trên máy tính, sửa lỗi chạy chương trình. GV: Sửa lỗi cho HS trong quá trình gõ và chạy chương trình. Giải thích những thắc mắc về bài toán mà HS đưa ra. 11C3: 11C7: 11C4: Nội dung Bài 2: Hãy đọc và tìm hiểu những phân tích để viết chương trình giải bài toán: Cho mảng A gồm n phần tử. Hãy viết chương trình tạo mảng B[1..n], trong đó B[i] là tổng i phần tử đầu tiên của A. Chương trình: SGK-t66. Để ý rằng ta có các hệ thức sau: B[1] = A[1] B[i] = B[i-1] + A[i]; Do đó, ta thay đoạn chương trình bởi hai lệnh sau: B[1] = A[1]; For i:= 2 to n do B[i]:= B[i-1]+A[i]; Với hai lệnh này máy chỉ phải thực hiện n-1 phép cộng, trong khi với đoạn chương trình trong SGK máy phải thực hiện n(n+1)/2 phép cộng. GV: Nhờ việc phân tích như trên ta tiết kiệm được một lượng tính toán đáng kể. IV. Củng cố: Tuy tốc độ tính toán của máy tính nhanh nhưng có giới hạn. Do đó, khi viết chương trình ta nên tìm cách viết sao cho chương trình thực hiện càng ít phép toán càng tốt. V. Dặn dò: Nguyễn Huy Bình
  • 51. Nhật Duật Tiết 29 Tin học 11 Kiểu xâu Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Biết xâu là một dãy ký tự (có thể coi xâu là một mảng một chiều) . - Biết cách khai báo xâu, truy cập phần tử của xâu . 2. Kỹ năng: - Sử dụng được một số thủ tục, hà thông dụng về xâu . - Cài đặt được một số chương trình đơn giản có sử dụng xâu . II. Chuẩn bị của GV và HS: 1. Giáo viên: Phòng máy, pascal. 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung GV : Để lưu trữ và xử lý Họ tên của một Một số khái niệm người, các kiểu dữ liệu đã học có đáp ứng - Xâu là một dãy kí tự trong bảng mã ASCII . được ? - Mỗi kí tự được gọi là một phần tử của xâu . HS : Đưa ra một số phương án . - Số lượng kí tự trong xâu được gọi là độ dài của xâu . - Xâu có độ dài bằng 0 gọi là xâu rỗng. GV : Phân tích các phương án của học - Tham chiếu tới phần tử trong xâu được sinh, từ đó đưa ra yêu cầu cần sử dụng một xác định thông qua chỉ số của phần tử kiểu mới : Kiểu xâu . trong xâu . - Chỉ số phần tử trong xâu thường được đánh số là 1 . - Trong ngôn ngữ Pacal, tham chiếu tới GV : Giới thiệu một số khái niệm và thao phần tử thường được viết : tác thường dùng khi làm việc với xâu ký tự [chỉ số] trong lập trình nói chung . Cách khai báo và xử lí xâu trong ngôn ngữ Pascal : GV : Đây là cách khai báo trong ngôn ngữ Pascal, trong các ngôn ngữ khác nhau có thể có cách khai báo khác nhau . Do đó khi viết chương trình bằng ngôn ngữ nào cần 1 Khai báo biến xâu : Pascal sử dụng từ khóa STRING để khai báo xâu . Độ dài tối đa của xâu được viết trong [ ] sau từ khóa STRING . Khai báo Nguyễn Huy Bình
  • 52. Nhật Duật tìm hiểu rõ các đối tượng của ngôn ngữ đó . Tin học 11 như sau : Var : String[độ dài lớn nhất của xâu] ; Ví dụ : Var Ten : String[10] ; Ho_dem : String[50] ; Que : String ; Độ dài tối đa của xâu phụ thuộc vào ngôn ngữ lập trình, thường là 255 ký tự . Cách viết hằng xâu trong các ngôn ngữ khác nhau cũng có sự khác nhau . Xét ví dụ như sau : Có xâu kí tự : ‘ nGuyen vaN A ’ Chú ý : - Nếu không khai báo độ dài tối đa cho biến xâu kí tự thì độ dài ngầm định của xâu là 255 . - Độ dài lớn nhất của xâu là 255 ký tự . - Hằng xâu kí tự được đặt trong cặp nháy đơn ‘ ’ . 2 Các thao tác xử lí xâu - Với các xâu kí tự có các phép phép xâu và phép so sánh hai xâu kí tự . - Phép ghép xâu : Kí hiệu bằng dấu cộng + . Hỏi cần có các thao tác gì để chỉnh sửa xâu kí tự này ? (cần đưa xâu về dạng ‘Nguyen Ví dụ : ‘Ha’ + ‘Noi’ cho kết quả là ‘Ha Van A’) Noi’ HS : Đưa ra ý kiến của mình . Phép so sánh : <, <=, >, >=, = , <>, Pascal tự động so sánh lần lượt từ kí tự từ trái sang GV : Phân tích ý kiến và gợi ý để các em phải . nhận ra cần : - Xóa bớt một số dấu cách . Ví dụ : ‘AB’ < ‘AC’, ‘ABC’ > ‘ABB’, - Chuyển chữ hoa về chữ thường và ‘ABC’ <’ABCD’ ngược lại . GV : Đưa ra một số câu hỏi : - Làm sao biết một ký tự là dấu cách ? - Làm sao để xóa đi một vài kí tự ? - Làm sao để thêm vào một xâu một vài kí tự ? Nguyễn Huy Bình
  • 53. Nhật Duật Tin học 11 - Làm sao để có được chữ in hoa tương ứng với chữ thường. Một số thủ tục chuẩn dùng để xử lí xâu : - Làm sao có được chữ cái thường tương ứng với chữ hoa ? - Delete(St,vt,n) xóa n kí tự của xâu St - Làm sao biết xâu hiện có bao nhiêu bắt đầu từ vị trí vt . kí tự ? - Insert(S1,S1,vt) chèn sâu S1 vào S2 bắt đầu từ vị trí vt của S2 - Val(St,x,m) Đổi giá trị xâu St thành Từ đó đưa ra các thủ tục chuẩn và hàm số ghi giá trị vào biến X, nếu không chuẩn của Pascal thường dùng để xử lí đổi được thì vị trí gây lỗi ghi trong m, xâu . nếu đổi thành công thì m = 0 - Str(X,St) chuyển số X thành xâu kí Ứng với mỗi thủ tục hoặc hàm, giáo viên tự lưu trong St . lấy ví dụ trong một chương trình Pascal cụ thể để các em hiểu được ý nghĩa các thủ tục Một số hàm chuẩn : và hàm này . Trong môi trường soạn thảo của Pascal, giáo viên chỉ cần làm một chương trình đơn giản có sử dụng một trong các thủ tục hoặc hàm này để các em theo dõi . - Copy(St,vt,n) sao chép từ xâu St n kí tự từ vị trí vt . - Pos(S1,S2) tìm vị trí xuất hiện đầu tiên của S1 trong S2 . - Length(St) : cho độ dài xâu St . - Upcase(ch) : cho chữ cái viết hoa tương ứng với chữ thường trong ch . - CHR(X) : cho kí tự có mã X trong bảng mã ASCII . - Ord(ch) : cho mã của kí tự ch trong bảng mã . IV. Củng cố: V. Dặn dò: Nguyễn Huy Bình
  • 54. Nhật Duật Tiết 30 Tin học 11 Kiểu xâu (T) Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: Máy chiếu, máy tính, phông chiếu hoặc bảng . 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung Giáo viên soạn sẵn các ví dụ này để tiện 3 Một số ví dụ : cho học sinh theo dõi trên màn hình cũng như việc chạy thử và không làm mất thời VD 1 : gian ngồi viết chương trình . Program vd1 ; Uses crt ; Với mỗi ví dụ, giáo viên đi sâu vào câu Var s1,s2 : String ; lệnh trực tiếp đáp ứng yêu cầu của ví dụ, Begin như vậy các em sẽ tiếp thu nhanh hơn . Clrscr ; Write('Nhap xau thu 1 : ') ; Readln(s1) ; Ví dụ 1 : Nhập 1 xâu, viết ra màn hình xâu Write('Nhap xau thu 2 : ') ; dài hơn . Readln(s2) ; If length(s1) > Length(s2) then Write(s1) else Write(s2); Readln ; Ví dụ 2 : Nhập 1 xâu, kiểm tra xem ký tự End . đầu tiên của xâu S1 có trùng với ký tự cuối VD 2 : cùng của xâu S2 hay không ? Program vd2 ; Uses crt ; Var s1,s2 : String ; x : Byte ; Nguyễn Huy Bình
  • 55. Nhật Duật Tin học 11 Begin Clrscr ; Write('Nhap xau thu 1 : '); Readln(s1) ; Write('Nhap xau thu 2 : '); Readln(s2) ; x := length(s2) ; If s1[1] = s2[x] then Write('Trung nha') else Write('Khac nhau'); Readln ; Ví dụ 3 : Nhập 1 xâu, viết ra màn hình xâu End . đó theo thứ tự ngược lại của các ký tự trong xâu . VD 3 : Program vd3 ; Uses crt ; Var i,k : Byte ; a : String ; Begin Clrscr ; Write('Nhap xau : ') ; Readln(a) ; k := length(a) ; For i := k downto 1 do Write(a[i]) ; Readln ; End . Ví dụ 4 : Nhập 1 xâu, viết ra màn hình xâu đó nhưng đã được bỏ tất cả các ký tự là dấu VD 4 : cách . Program vd4 ; Uses crt ; Var i,k : Byte ; a,b : String ; Begin Clrscr ; Write('Nhap xau : ') ; Readln(a) ; k := length(a) ; b :='' ; For i := 1 to k do Nguyễn Huy Bình
  • 56. Nhật Duật Tin học 11 if a[i] <> '' then b := b+a[i] ; Write(b) ; Readln ; End . VD 5 : Program Xulixau ; Uses crt ; Ví dụ 5 : Nhập 1 xâu, viết ra màn hình xâu Var s1,s2 : String ; gồm các ký tự số của xâu đó . i : Byte ; Begin Clrscr ; Write('Nhap xau s1 : ') ; Readln(s1) ; s2 := '' ; For i := 1 to length(s1) do If ('0'
  • 57. Nhật Duật Tiết 31 Tin học 11 Bài tập và thực hành 5 Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: Củng cố cho HS những hiểu biết về kiểu xâu. 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: Máy chiếu, máy tính, phông chiếu hoặc bảng . 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung GV: Đưa ra ví dụ hoặc yêu cầu HS cho ví dụ về xâu đối xứng và xâu không đối xứng. HS: Tích cực tìm hiểu bài toán, thực hiện Bài 1: Nhập vào từ bàn phím một xâu. Kiểm bài toán trên máy tính, sửa lỗi chạy chương tra xâu đó có phải là xâu đối xứng không. trình. a) Chạy thử chương trình sau: var x,i : byte; a,p: string; GV: Sửa lỗi cho HS trong quá trình gõ và begin chạy chương trình. Giải thích những thắc write(‘ Nhap vao xau:’); mắc về bài toán mà HS đưa ra. readln(a); x:=length(a); p:=’’; for i:=x downto 1 do p:=p+a[i]; if a=p then write(‘ Xau doi xung’) else write(‘Xau khong doi xung’); readln end. b) Hay viết lại chương trình trên, trong đó GV: Không cần thiết phải tạo một xâu mới không dùng biến xâu p. để so sánh hai xâu mà chỉ so sánh các cặp kí tự ở vị trí đối xứng nhau để kết luận xâu đó có đối xứng không IV. Củng cố: V. Dặn dò: Nguyễn Huy Bình
  • 58. Nhật Duật Tiết 32 Tin học 11 Bài tập và thực hành 5 (T) Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: Củng cố cho HS những hiểu biết về kiểu xâu. 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: Máy chiếu, máy tính, phông chiếu hoặc bảng . 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung Bài 2: Cho xâu s. Viết chương trình đếm số từ có trong xâu s này? Program Demtu; Var s:string; GV: Để giải quyết được bài toán này thì d, x, i:byte; trước hết ta phải cộng thêm một kí tự trống Begin vào đầu xâu s. Write(‘ Nhap xau:’);readln(s); s:= ‘ ‘+s; x:=length(s); GV: Khi đó điều kiện để xác định xem đâu for i:=1 to x do là một từ là gì? if (s[i]=’ ‘ ) and (s[i+1]<>’ ‘) then d:=d+1; write(‘ So tu co trong xau la:’,d); HS: Trả lời câu hỏi. readln end. GV: Kết luận và đưa ra hướng giải quyết bài toán. Khi đó để kiểm tra xem đâu là một từ thì ta phải xét điều kiện: xâu s tại vị trí thứ i là kí tự trống, đồng thời tại vị trí thứ i+1 phải là kí tự khác trống. HS: suy nghĩ và đưa ra phương hướng giải Sử dụng phương pháp chuẩn hóa xâu s. Từ quyết vấn đề này. đó có thể tìm ra số từ có trong xâu s này? IV. Củng cố: V. Dặn dò: Chuẩn bị trước bài tập trong SBT. Nguyễn Huy Bình
  • 59. Nhật Duật Tiết 33 Tin học 11 Bài tập Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: Củng cố cho HS những hiểu biết cơ bản nhất về kiểu dữ liệu có cấu trúc. 2. Kỹ năng: - Rèn luyện kĩ năng giải một bài toán với dữ liệu kiểu mảng và dữ liệu kiểu xâu. - Dần hình thành tư duy trong việc giải toán bằng ngôn ngữ TP với những kiểu dữ liệu có cấu trúc. II. Chuẩn bị của GV và HS: 1. Giáo viên: Giáo án, SGK, SBT . 2. Học sinh: Vở BT, SBT III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung GV: Qua quá trình chuẩn bị bài tập trong SBT từ nhà, có ai có thắc mắc về bài tập nào không? HS: Đưa ra những vướng mắc cần giải đáp. GV: Giải đáp các thắc mắc của HS. Chữa bài tập trong SBT GV: Gọi một số HS lên chữa một số bài tập tiêu biểu (cả bài tập phần mảng và phần xâu). HS: Lên bảng chữa bài. HS khác nhận xét bài làm của bạn. GV: nhận xét và chỉnh sửa lại bài tập một cách hoàn chỉnh. IV. Củng cố: V. Dặn dò: chuẩn bị trước bài 13. Nguyễn Huy Bình
  • 60. Nhật Duật Tiết 34 Tin học 11 Kiểu bản ghi Ngày soạn:...../......; Ngày giảng:..../...... I. Mục tiêu 1. Kiến thức: - Biết khái niệm kiểu bản ghi . - Biết cách khai báo bản ghi, truy cập trường của bản ghi . 2. Kỹ năng: II. Chuẩn bị của GV và HS: 1. Giáo viên: Máy chiếu, máy tính, phông chiếu hoặc bảng . 2. Học sinh: III. Nội dung: . Ổn định lớp: Kiểm diện: 11C1: 11C2: 11C3: 11C4: 11C5: 11C6: 11C7: . Kiểm tra bài cũ: . Bài giảng: Hoạt động của Giáo viên và Học sinh Nội dung Xét ví dụ sau : Một số khái niệm Viết chương trình dùng để quản lí các - Kiểu bản ghi được dùng để mô tả cho thí sinh của một kỳ thi tuyển sinh . các đối tượng có cùng một số thuộc tính Chương trình của chúng ta cần quản lí mà các thuộc tính có thể có các kiểu dữ được : liệu khác nhau . + SBD của thí sinh, - Bản ghi thường được gọi là Record, mỗi + Họ tên thí sinh, Record sẽ lưu trữ dữ liệu về một đối + Giới tính, tượng cần quản lí . + Điểm của các môn … - Mỗi thuộc tính của đối tượng tương ứng với một trường của bản ghi . Các trường GV : Đưa ra một số câu hỏi sau : khác nhau có thể có dữ liệu khác nhau . - Làm thế nào để quản lý toàn bộ - Các ngôn ngữ lập trình thường cho cách thông tin trên của học sinh ? để xác định : - Mỗi thông tin trên có kiểu dữ liệu là + Tên kiểu bản ghi . gì ? + Tên các trường . + Kiểu dữ liệu của trường . HS : Có thể quản lý mỗi dữ kiện trên là + Cách khai báo biến . một mảng một chiều + Cách tham chiếu đến trường . Cách khai báo và sử dụng kiểu bản ghi Ngôn ngữ lập trình bậc cao có cách tốt hơn trong ngôn ngữ Pascal để quản lý dữ liệu trên -> Bản ghi . 1. Khai báo GV lấy một bảng điểm của học sinh rồi chỉ rõ : Mỗi hàng ta gọi là một bản ghi, mỗi cột Để khai báo biến bản ghi, thường khai báo là một trường . một kiểu bản ghi sau đó khai báo biến bản Nguyễn Huy Bình