A. Mục đích, yêu cầu
§ Cho học sinh tìm hiểu các thao tác xử lí xâu, cách tạo hiệu ứng chữ chạy trên màn hình.
§ Củng cố cho học sinh những khái niệm về chương trình con: Thủ tục, hàm, tham số giá trị, tham số biến, tham số thực, biến toàn cục, biến cục bộ.
§ Tổ chức những hoạt động trong phòng máy để học sinh có được các kĩ năng cơ bản trong việc tổ chức và sử dụng chương trình con trong lập trình.
§ Góp phần rèn luyện tác phong, tư duy lập trình.
B. Nội dung
1/ Bài tập 1: Cho xâu S1 gồm không quá 79 kí tự. Viết thủ tục tạo xâu S2 bằng cách chuyển đổi kí tự đầu tiên của xâu S1 xuống vị trí cuối cùng của nó.
Bài tập 2: Cho xâu S gồm không quá 79 kí tự. Viết thủ tục để bổ sung vào đầu xâu S một số dấu cách để khi đưa ra màn hình xâu kí tự S ban đầu được căn giữa dòng ( 80 kí tự).
BÀI TẬP VÀ THỰC HÀNH 6 A. Mục đích, yêu cầu Cho học sinh tìm hiểu các thao tác xử lí xâu, cách tạo hiệu ứng chữ chạy trên màn hình. Củng cố cho học sinh những khái niệm về chương trình con: Thủ tục, hàm, tham số giá trị, tham số biến, tham số thực, biến toàn cục, biến cục bộ. Tổ chức những hoạt động trong phòng máy để học sinh có được các kĩ năng cơ bản trong việc tổ chức và sử dụng chương trình con trong lập trình. Góp phần rèn luyện tác phong, tư duy lập trình. B. Nội dung 1/ Bài tập 1: Cho xâu S1 gồm không quá 79 kí tự. Viết thủ tục tạo xâu S2 bằng cách chuyển đổi kí tự đầu tiên của xâu S1 xuống vị trí cuối cùng của nó. Bài tập 2: Cho xâu S gồm không quá 79 kí tự. Viết thủ tục để bổ sung vào đầu xâu S một số dấu cách để khi đưa ra màn hình xâu kí tự S ban đầu được căn giữa dòng ( 80 kí tự). * Giúp học sinh hiểu được hai thủ tục sẽ được dùng trong một chương trình để làm một dòng chữ chạy trên màn hình. Thủ tục CatDan(s1, s2) tạo xâu s2 từ xâu s1 nhận ở đầu vào, sao cho s2 chính là trạng thái tiếp theo nếu hình dung s1 dịch sang trái một vị trí trong chuyển dịch vòng tròn. Cần lưu ý học sinh vì sao chỉ cần khai báo s1 là tham số giá trị nhưng phải khai báo s2 là tham số biến. Thủ tục CanGiua(s) thêm một số dấu cách ở đầu một xâu s sao cho khi đưa ra màn hình dòng chữ của xâu s nằm giữa màn hình. Cần lưu ý học sinh nếu không khai báo s là tham số biến thì thủ tục này không có hiệu lực gí vì lệnh đưa s ra màn hình không nằm trong thủ tục này. * Chương trình: SGK 2/ Bài tập 3:Viết chương trình để nhập một xâu kí tự từ bàn phím và đưa xâu đó ra màn hình có dạng dòng chữ chạy giữa màn hình văn bản 25 x 80. * Nhằm cung cấp cho học sinh chương trình tạo dòng chữ chạy trên màn hình, chương trình này sử dụng hai thủ tục đã được tìm hiểu trước ở câu a. Qua đó học sinh hiểu được thuật tóan để giải bài toán này và củng cố được hiểu biết về cách sử dụng các thủ tục trong một chương trình. Giáo viên cần: - Cho học sinh chạy chương trình để quan sát kết quả và tìm hiểu. - Phân tích thân chương trình để học sinh hiểu rõ thuật toán. - Giới thiệu thêm cho học sinh hai thủ tục chuẩn (mới đối với học sinh) là gotoxy(x,y) chuyển con trỏ màn hình đến vị trí cột x dòng y trên màn hình và delay(n) dừng trạng thái của màn hình trong n miligiây. Hàm chuẩn keypressed không có tham số và trả về giá trị true khi có một phím được gõ. * Chương trình: SGK. 3/ Bài tập 4: Hãy viết thủ tục ChuChay(S, dong) nhận đầu vào là xâu S gồm không quá 79 kí tự và biến nguyên dong, đưa ra xâu S có dạng chữ chạy ở dòng dong. Viết và chạy chương trình có thủ tục này. * Tạo điều kiện cho học sinh vận dụng hiểu biết về chương trình con, thuật toán vừa được cung cấp để giải quyết bài toán tổng quát hơn một chút (xâu chữ chạy ở dòng bất kì do chương trình chính quy định). Cần lưu ý: - Nhiệm vụ của thủ tục ChuChay(s, dong) thực hiện, về cơ bản là nhiệm vụ mà chương trình ở câu b đã làm, chỉ khác là chương trình ở câu b luôn cho dòng chữ chạy ở dòng 12, còn ở thủ tục ChuChay(s, dong) có tham số dong quy định ở dòng nào trên màn hình xảy ra chuyển động của chữ. Từ ý nghĩa sử dụng tham số dong ta thấy chỉ cần khai báo nó là tham số giá trị. Như vậy, thủ thục ChuChay(s,dong) chỉ viết khác thân chương trình ở câu b một vài chỗ, chẳng hạn: Procedure ChuChay (s1 : str79; dong: byte) ; var s2 : str79 ; stop: boolean ; begin clrscr ; CanGiua (s1) ; clrscr; stop:=false; while not (stop) do begin gotoxy (1, dong) ; write (s1) ; delay (100) ; CatDat (s1, s2) ; s1:=s2 ; stop:=keypressed ; end ; end ; Thủ tục ChuChay(s, dong) có sử dụng hai thủ tục CatDan(s1,s2) và CanGiua(s). Do vậy, chương trình sử dụng thủ tục ChuChay vẫn có hai thủ tục đó trong phần khai báo chương trình con, phải đặt phía trên phần khai báo thủ tục ChuChay. Thân chương trình sử dụng thủ tục ChuChay đơn giản vì chỉ cần gọi thu tục này làm việc. Tất nhiên trước đó cần xác định giá trị của xâu chữ cần chạy (xác định giá trị của biến s) và xác định chữ chạy ở dòng nào trên màn hình (xác định tham số thực sự cho tham số dong khi gọi thủ tục ChuChay). Chương trình chính có thêm biến dong thuộc kiểu byte (thực tế là số nguyên dương không vượt quá số dòng của màn hình). Chương trình: Begin Clrscr ; write (‘Nhap xau chu: ’) ; readln (s1) ; write (‘Nhap dong xuat hien: ’) ; readln (dong) ; ChuChay (s1, dong) ; Readln End.
Tài liệu đính kèm: