Tin học 11 Bài tập và thực hành 6
Với mong muốn hỗ trợ các em trong quá trình học tập môn Tin học 11, eLib đã biên soạn và tổng hợp nội dung bài tập và thực hành số 6 bên dưới đây. Tài liệu được trình bày với nội dung chi tiết, cụ thể thông qua 3 phần chính xuyên suốt nội dung bài học bên dưới đây, hy vọng đây sẽ là tài liệu tham khảo hữu ích cho các em học sinh. Mời các em cùng tham khảo!
Mục lục nội dung
1. Tóm tắt lý thuyết
1.1. 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.
1.2. Nội dung
a) Thủ tục CatDan(s1,s2) nhận đầu vào là xâu s1 gồm không quá 79 kí tự , tạo xâu s2 thu được từ xâu s1 bằng việc chuyển kí tự đầu tiên của nó xuống vị trị cuối cùng.
Ví dụ nếu s1='abcd' thì s2='bcda'.
Type str79=string[79];
Procedure CatDan(s1:str79; var s2:=str79);
Begin
S2:=copy(s1,2,length(s1)-1)+s1[1];
End;
- Thủ tục CanGiua(s) nhận đầu vào là xâu s gồm không quá 79 kí tự, bổ sung vào đầu dòng s một số dấu cách để khi đưa ra màn hình xâu kí tự s.
Procedure CanGiua(var s:str79)
Var I,n:integer;
Begin N:=length(s);
N:=(80-n ) div 2;
For i:=1 to n do s:=' '+s;
End;
b) Theo dõi cách sử dụng hai thủ tục trên, ta có thể viết chương trình sau đây để 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à có dạng dòng chữ chạy giữa màn hình văn bản 25*80.
uses crt;
type str79=string[79];
var
s1,s2:str79;
stop:boolean;
procedure CatDan(s1:str79;var s2:str79);
begin
s2:=copy(s1,2,length(s1)-1)+s1[1];
end;
procedure CanGiua (var s:str79);
var i,n:integer;
begin n:=length(s);
n:=(80-n) div 2;
for i:=1 to n do s:=' '+s;
end;
begin
clrscr;
write('Nhap xau s1:');
readln(s1);
CanGiua(s1);
clrscr;
stop:=false;
while not(stop) do
begin
gotoxy(1,12);
write(s1);
delay(500);
CatDan(s1,s2);
s1:=s2;
stop:=keypressed;
end;
readln
end.
Thử chạy với dòng chữ '… Mung nghin nam Thang Long-Ha Noi!...'
c) Hãy viết thủ tục ChuChay(s,dong) nhận đầu vào là xâu s gồm không qus 79 kkis tự và biến nguyên dong, đưa ra xâu s có dạng chữ chạy ở dòng dong. Viết chương trình đưa ra xâu s có dạng chữ chạy ở dòng dong. Viết và chạy chương trình có sử dụng thủ tục này.
uses crt;
type str79=string[79];
var
s1,s2:str79;
stop:boolean;
dong:integer;
procedure ChuChay(s:string;dong:integer);
begin
gotoxy(1,dong);
write(s);
end;
procedure CatDan(s1:str79;var s2:str79);
begin
s2:=copy(s1,2,length(s1)-1)+s1[1];
end;
procedure CanGiua (var s:str79);
var i,n:integer;
begin n:=length(s);
n:=(80-n) div 2;
for i:=1 to n do s:=' '+s;
end;
begin
clrscr;
write('Nhap xau s1:');
readln(s1);
write('Nhap vao dong ');
readln(dong);
CanGiua(s1);
clrscr;
stop:=false;
while not(stop) do
begin
ChuChay(s1,dong);
delay(500);
CatDan(s1,s2);
s1:=s2;
stop:=keypressed;
end;
readln
end.
Kết quả:
2. Luyện tập
Câu 1: Đoạn chương trình sau có lỗi gì?
Procedure End ( key : char ) ;
Begin
If key = ‘ q ’ then writeln( ‘ Ket thuc ’ )
End;
A. Thiếu dấu “ ; ” sau lệnh writeln ;
B. Thiếu dấu “ ; ” sau từ khóa Begin ;
C. End không thể dùng làm tên của thủ tục ;
D. Không thể dùng câu lệnh if trong thủ tục;
Câu 2: Muốn khai báo x là tham số giá trị và y, z là tham số biến (x, y, z thuộc kiểu Byte) trong thủ tục "ViduTT" thì khai báo nào sau đây là sai?
A. Procedure ViduTT( x : Byte ; Var y, z : Byte) ;
B. Procedure ViduTT( Var y : Byte ; x : Byte ; Var z : Byte) ;
C. Procedure ViduTT( x : Byte ; Var y : Byte ; Var z : Byte) ;
D. Procedure ViduTT( x : Byte ; Var y : Byte ; z : Byte) ;
Câu 3: Trong các chương trình chuẩn sau đây, chương trình chuẩn nào là thủ tục chuẩn?
A. Sin(x);
B. Sqrt(x);
C. Delete(S,5,1);
D. Length(S);
Câu 4: Cho chương trình sau:
Program Thi_du ;
Var Mess : string ;
Procedure StopHere;
Var Mess : string ;
Begin
Mess := ‘StopHere’ ;
Write(Mess) ;
End ;
Begin
Mess:= ‘StartHere’ ;
StopHere ;
Write(Mess) ;
End.
Phương án nào dưới đây là kết quả thực hiện chương trình trên?
A. StartHere StopHere StartHere;
B. StopHere StartHere;
C. StartHere StopHere;
D. StopHere StopHere;
Câu 5: Giả sử có hai biến xâu x và y (y đã có giá trị) câu lệnh nào sau đây là không hợp lệ?
A. x := Copy(y,5,3);
B. x := Delete(y,5,3);
C. Delete(y,5,3);
D. x := y;
3. Kết luận
Qua bài tập và thực hành số 6 môn Tin học 11 các em học sinh nắm được những nội dung chính sau đây:
- 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.
- 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ộ.
- Thành thao 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.
Tham khảo thêm
- doc Tin học 11 Bài 17: Chương trình con và phân loại
- doc Tin học 11 Bài 18: Ví dụ về cách viết và sử dụng chương trình con
- doc Tin học 11 Bài tập và thực hành 7
- doc Tin học 11 Bài 19: Thư viện chương trình con chuẩn
- doc Tin học 11 Bài tập và thực hành 8