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: : Kết quả khác: 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 [y0.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 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 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 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]=x then z:=x + y else z:=0.5; b] if [sqr[x-a] + sqr[y-b]] 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 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 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’ 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'

Chủ Đề