Hướng dẫn giải bài tập tin 11 năm 2024

Khởi động Turbo Pascal: Nhấp chuột lên biểu tượng Pascal trên màn hình hoặc lên tệp Turbo.exe trong thư mục BIN của thư mục TP ở ổ đĩa C hoặc ổ đĩa D.

Xem lời giải

Dưới đây là Hướng dẫn giải chi tiết bài tập Tin học 11 được Học247 tổng hợp và biên tập gửi đến các em học sinh lớp 11, nhằm giúp các em củng cố kiến thức và ôn tập tốt môn học này. Đây là phần tài liệu tổng hợp lại các bài tập bao quát toàn bộ chương trình Tin học lớp 11, được trình bày logic, bám sát nội dung sách giáo khoa, các bài tập có hướng dẫn giải rất đặc sắc và rõ ràng, chi tiết. Mời các em học sinh cùng tham khảo.

- 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 sl 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 s một số dấu cách để khi đưa ra màn hình xâu kí tự trong s ban đầu được căn giữa dòng gồm 80 kí tự.

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;

  1. 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àn hình văn bản 25x80.

uses crt;

type str7 9 string [79];

var s1,s2 : Str79;

stop: boolean; procedure CatDan(si: Str79; var s2: Str79);

begin

s2:= copy(s1,2,length(s1)-1)+sl[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;

while Not(stop) do

begin

gotoxy(1,12); (*chuyen con tro den dau dong 12*)

write (s1);

delay(500); (*Dung 500 miligiay*)

Catean (s1, s2 )

s1 : =s2;

stop:=keypresGed; (*nhan mot phim bat ky de ket thuc*)

end;

readln

End.

Hãy chạy thử chương trình trên với dòng chữ

" ...Mung nghin nam Thang Long — Ha Noi!...'

  1. 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ó sử dụng thủ tục này.

Đề bài 2

Hướng dẫn làm bài tập và thực hành 6 trang 103 SGK Tin học 11

Lời giải chi tiết

1. Mục đích, yêu cầu

- Rèn luyện các thao tác xử lí xâu, kĩ năng tạo hiệu ứng chữ chạy trên màn hình;

- Nâng cao kĩ năng viết, sử dụng chương trình con.

2. Nội dung

  1. Hai thủ tục CatDan(s1,s2) và CanGiua(s) 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 nên 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. Ta chỉ cần khai báo s1 là tham số giá trị, nhưng s2 phải khai báo 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. Nếu 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.

  1. Chương trình làm một dòng chữ chạy trên màn hình. Nó sử dụng hai thủ tục mà chúng ta đã tìm hiểu ở câu a).

Trong chương trình:

- Thủ tục chuẩn 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;

- Thủ tục 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ố trả ra giá trị true khi có một phím được gõ.

Khi chạy chương trình trên với dòng chữ

'....Mung nghin nam Thang Long — Ha Noi!'

Kết quả chương trình có dạng như hình 72 dưới đây:

Hướng dẫn giải bài tập tin 11 năm 2024

  1. Để giải quyết bài toán tổng quát hơn (xâu chữ chạy ở dòng bất kỳ do chương trình chính quy định). Chúng ta cần lưu ý một số điểm sau:

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ủ tục Chuchay(s, dong) chỉ viết khác thân chương trình ờ câu b) vài chỗ. Chẳng hạn:

procedure Chuchay(s1:Str79; dong:byte);

var s2 : Str79;

stop:boolean;

begin

clrscr;

cangiua(s1);

clrscs;

stop: = false;

while not(stop) do

begin

gotoxy(1,dong);

write(s1);

delay(100); (*Dung 100 miligiay*)

Catdan(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 thủ 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ế số nguyên dương không vượt quá số dòng của màn hình).

Chương trình:

Program Xau_chu_chay_o_dong_bat_ky;

uses crt;

type Str79 = string[79];

var s1, s2: Str79;

dong: byte; 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;

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); (*Dung 100 miligiay*)

Catdan(s1,s2); s1:=s2;

stop:=keypressed;

end ;

end.

clrscr;

vrite('Nhap xau chu:');

readln(s1);

vrite('Nhap đong xuat hien:');

readln(dong);

ChuChay(s1, dong);

readln

END

Khi chạy chương trình trên, giả sử ta nhập vào xâu:

' Xin chao cac ban ! ' thì ngay sau đó sẽ xuất hiện một dòng yêu cầu ' Nhap dong Xuat hien:' của xâu vừa nhập vào (chẳng hạn, ở dòng 15)(Hình 73)

Hướng dẫn giải bài tập tin 11 năm 2024

Kết quả của chương trình sẽ là một dòng chữ chạy ở dòng 15 trên màn hình có dạng như hình 74 dưới đây: