10 Đề thi và Đáp án cấp THCS môn Tin Học Trẻ

docx 87 trang ducduy 03/12/2025 380
Bạn đang xem 30 trang mẫu của tài liệu "10 Đề thi và Đáp án cấp THCS môn Tin Học Trẻ", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

Tóm tắt nội dung tài liệu: 10 Đề thi và Đáp án cấp THCS môn Tin Học Trẻ

10 Đề thi và Đáp án cấp THCS môn Tin Học Trẻ
 10 Đề thi và Đáp án cấp THCS môn Tin Học Trẻ - DeThiHay.net
function CheckSecurity(SubS: String; var CountHoa, CountThuong, CountSo: Integer): 
Boolean;
var
 i: Integer;
 c: Char;
 // Mang danh dau cho tung loai ky tu
 Dem_Hoa: array['A'..'Z'] of Boolean;
 Dem_Thuong: array['a'..'z'] of Boolean;
 Dem_So: array['0'..'9'] of Boolean;
begin
 // 1. Reset va Duyet xau con, danh dau
 FillChar(Dem_Hoa, SizeOf(Dem_Hoa), 0);
 FillChar(Dem_Thuong, SizeOf(Dem_Thuong), 0);
 FillChar(Dem_So, SizeOf(Dem_So), 0);
 CountHoa := 0;
 CountThuong := 0;
 CountSo := 0;
 for i := 1 to Length(SubS) do
 begin
 c := SubS[i];
 if (c >= 'A') and (c <= 'Z') then
 Dem_Hoa[c] := True
 else if (c >= 'a') and (c <= 'z') then
 Dem_Thuong[c] := True
 else if (c >= '0') and (c <= '9') then
 Dem_So[c] := True;
 end;
 // 2. Dem so ky tu khac nhau trong xau con
 for c := 'A' to 'Z' do if Dem_Hoa[c] then Inc(CountHoa);
 for c := 'a' to 'z' do if Dem_Thuong[c] then Inc(CountThuong);
 for c := '0' to '9' do if Dem_So[c] then Inc(CountSo);
 // 3. Kiem tra dieu kien mat khau an toan
 CheckSecurity := (Length(SubS) >= 6) and 
 DeThiHay.net 10 Đề thi và Đáp án cấp THCS môn Tin Học Trẻ - DeThiHay.net
 (CountHoa >= 2) and 
 (CountThuong >= 2) and 
 (CountSo >= 2); 
end;
// --------------------------------------------------------------------------
// CHUONG TRINH CHINH
// --------------------------------------------------------------------------
var
 TongH, TongT, TongS: Integer; // Output Line 1
 i, L: Integer; // Bien lap
 MatKhau: String; // Output Line 2
begin
 // 1. Gan va mo file
 Assign(f_in, 'BAI03.INP');
 Reset(f_in);
 Assign(f_out, 'BAI03.OUT');
 Rewrite(f_out);
 // Doc xau S
 Readln(f_in, S);
 // -----------------------------------------------------
 // PHAN 1: XU LY DONG 1 (DEM TOAN BO KY TU KHAC NHAU)
 // -----------------------------------------------------
 // Dung CheckSecurity de dem cac ky tu khac nhau trong toan bo xau S.
 CheckSecurity(S, TongH, TongT, TongS); 
 // Ghi ket qua Dong 1
 Writeln(f_out, TongH, ' ', TongT, ' ', TongS);
 // -----------------------------------------------------
 // PHAN 2: XU LY DONG 2 (TIM MAT KHAU AN TOAN NGAN NHAT)
 // -----------------------------------------------------
 MatKhau := 'khong co';
 DeThiHay.net 10 Đề thi và Đáp án cấp THCS môn Tin Học Trẻ - DeThiHay.net
 // Vong lap L: Chieu dai cua xau con (tu 6 den Length(S))
 L := 6;
 while L <= Length(S) do
 begin
 // Vong lap i: Vi tri bat dau cua xau con
 for i := 1 to Length(S) - L + 1 do
 begin
 // Xau con SubS bat dau tu i, dai L
 // Chi can lay SubS va kiem tra, khong can quan tam gia tri TongH, TongT, TongS tra ve 
o day.
 if CheckSecurity(Copy(S, i, L), TongH, TongT, TongS) then 
 begin
 MatKhau := Copy(S, i, L);
 // Da tim thay xau con ngan nhat dau tien, thoat vong lap
 L := Length(S) + 1; // Dung vong lap L
 break; // Dung vong lap i
 end;
 end;
 // Tang chieu dai L chi khi chua tim thay mat khau
 if L <= Length(S) then Inc(L);
 end;
 // Ghi ket qua Dong 2
 Writeln(f_out, MatKhau);
 // Dong file
 Close(f_in);
 Close(f_out);
end.
Bài 4. (5.0 điểm) Lưu lại bài làm với tên bai4. *
program Bai4_VanBanChuan;
uses crt;
 DeThiHay.net 10 Đề thi và Đáp án cấp THCS môn Tin Học Trẻ - DeThiHay.net
const
 // Dinh nghia cac tap hop ky tu
 // Ky tu ngat cau: . , ; ? !
 NGAT_CAU = ['.', ',', ';', '?', '!']; 
 // Ky tu dong ngoac: ) " (gom ca ngoac don va ngoac kep)
 DONG_NGOAC = [')', '"']; 
 // Ky tu mo ngoac: ( "
 MO_NGOAC = ['(', '"']; 
var
 f_in, f_out: Text;
 VanBan: String;
 i, j, pos_space: Integer;
 c: Char;
// --------------------------------------------------------------------------
// THU TUC LOAI BO KHOANG TRANG O DAU VA CUOI XAU
// --------------------------------------------------------------------------
procedure TrimSpace(var S: String);
begin
 // Loai bo khoang trang o dau
 while (Length(S) > 0) and (S[1] = ' ') do
 Delete(S, 1, 1);
 // Loai bo khoang trang o cuoi
 while (Length(S) > 0) and (S[Length(S)] = ' ') do
 Delete(S, Length(S), 1);
end;
// --------------------------------------------------------------------------
// THU TUC CHUAN HOA KHOANG TRANG DU THUA (Quy tac 1)
// --------------------------------------------------------------------------
procedure ChuanHoaKhoangTrang(var S: String);
begin
 // Buoc 1a: Loai bo khoang trang o dau/cuoi
 DeThiHay.net 10 Đề thi và Đáp án cấp THCS môn Tin Học Trẻ - DeThiHay.net
 TrimSpace(S);
 // Buoc 1b: Thay the nhieu khoang trang thanh 1
 while Pos(' ', S) > 0 do
 S := StringReplace(S, ' ', ' ', [rfReplaceAll]);
end;
// --------------------------------------------------------------------------
// CHUONG TRINH CHINH
// --------------------------------------------------------------------------
begin
 // 1. Gan va mo file
 Assign(f_in, 'BAI04.INP');
 Reset(f_in);
 Assign(f_out, 'BAI04.OUT');
 Rewrite(f_out);
 // Doc toan bo van ban (doc tung dong roi ghep lai, hoac doc ca file)
 // Vi Input co the nhieu dong, ta se doc tung dong va ghep lai, sau do xu ly nguyen van ban.
 VanBan := '';
 while not Eof(f_in) do
 begin
 Readln(f_in, S);
 // Them khoang trang giua cac dong
 if Length(VanBan) > 0 then
 VanBan := VanBan + ' ' + S
 else
 VanBan := S;
 end;
 // -----------------------------------------------------
 // BUOC 1: CHUAN HOA KHOANG TRANG DU THUA (Quy tac 1)
 // -----------------------------------------------------
 ChuanHoaKhoangTrang(VanBan);
 // -----------------------------------------------------
 // BUOC 2: CHUAN HOA DAU NGAT CAU & DAU DONG NGOAC (Quy tac 2 & 4)
 DeThiHay.net 10 Đề thi và Đáp án cấp THCS môn Tin Học Trẻ - DeThiHay.net
// (Dau phai dac sat sau tu truoc)
// -----------------------------------------------------
for c := #0 to #255 do // Duyet qua tat ca ky tu
begin
 if (c in NGAT_CAU) or (c in DONG_NGOAC) then
 begin
 // Thay the " " thanh ""
 while Pos(' ' + c, VanBan) > 0 do
 VanBan := StringReplace(VanBan, ' ' + c, c, [rfReplaceAll]);
 end;
end;
// -----------------------------------------------------
// BUOC 3: CHUAN HOA KHOANG TRANG SAU DAU NGAT CAU (Quy tac 2)
// (Sau dau la 1 khoang trang)
// -----------------------------------------------------
for c := #0 to #255 do 
begin
 if (c in NGAT_CAU) then
 begin
 // Thay the "" thanh " "
 for i := 1 to Length(VanBan) - 1 do
 begin
 if (VanBan[i] = c) and (VanBan[i+1] ' ') then
 begin
 Insert(' ', VanBan, i + 1);
 // Vi ta them ky tu, i phai tang len 1
 Inc(i); 
 end;
 end;
 end;
end;
// -----------------------------------------------------
// BUOC 4: CHUAN HOA DAU MO NGOAC (Quy tac 3)
// (Dau phai dac sat truoc tu)
// -----------------------------------------------------
 DeThiHay.net 10 Đề thi và Đáp án cấp THCS môn Tin Học Trẻ - DeThiHay.net
 for c := #0 to #255 do
 begin
 if (c in MO_NGOAC) then
 begin
 // Thay the " " thanh "" (Loai bo khoang trang sau dau mo ngoac)
 while Pos(c + ' ', VanBan) > 0 do
 VanBan := StringReplace(VanBan, c + ' ', c, [rfReplaceAll]);
 end;
 end;
 // -----------------------------------------------------
 // BUOC CUOI: DAM BAO DUNG 1 KHOANG TRANG GIUA CAC TU
 // -----------------------------------------------------
 // Chay lai ChuanHoaKhoangTrang de xu ly cac khoang trang moi sinh ra
 ChuanHoaKhoangTrang(VanBan); 
 // 5. Ghi ket qua
 Writeln(f_out, VanBan);
 // 6. Dong file
 Close(f_in);
 Close(f_out);
end.
 DeThiHay.net 10 Đề thi và Đáp án cấp THCS môn Tin Học Trẻ - DeThiHay.net
 ĐỀ SỐ 3
 UBND THÀNH PHỐ ĐÀ NẴNG HỘI THI TIN HỌC TRẺ CẤP THÀNH PHỐ 
 SỞ GIÁO DỤC VÀ ĐÀO TẠO ĐỀ THI THỰC HÀNH SCRATCH
 BẢNG B1 - KHỐI THCS
 Thời gian: 100 phút (không kể thời gian giao đề)
 Tổng quan bài thi
 Bài Tên bài Tên tệp kết quả Điểm
 Bài 1 Lưới sàn nhà. B1.sb2 25 điểm
 Bài 2 Con lắc đơn. B2-1.sb2, B2-2.sb2 35 điểm (15 + 20)
 Bài 3 Trò chơi: Ghép từ đúng. B3.sb2 40 điểm
(Chú ý: Thí sinh cần tạo một thư mục là số báo danh của mình để lưu bài làm)
Bài 1. Lưới sàn nhà.
Viết chương trình vẽ một lưới sàn nhà kích thước 6 x 6 (hoặc bất kỳ N x N) có dạng sau. 
Chương trình cần được viết sao cho càng tổng quát càng tốt.
Chương trình được lưu thành tệp B1.sb2 hoặc B1.sb3.
Bài 2. Con lắc đơn.
Viết chương trình mô phỏng chuyển động đều của con lắc đơn. 
Chương trình lưu với tên B2-1.sb2 / B2-1.sb3.
Ứng dụng: Viết chương trình mô tả hoạt động sau: 
 DeThiHay.net 10 Đề thi và Đáp án cấp THCS môn Tin Học Trẻ - DeThiHay.net
- Bắt đầu chương trình, phía trên là hình ảnh con lắc đơn chuyển động với biên độ cố định. 
Một cái chuông nhỏ luôn treo tại vị trí con lắc. Phía dưới mặt đất có một người chạy từ trái 
sang phải màn hình với vận tốc cố định. Nếu gặp cạnh phải thì xuất hiện lại từ bên trái. Xem 
hình H1.
- Nếu bấm Space thì người chạy sẽ nhảy lên trên, và sau đó rơi xuống theo lực hút trái đất. 
Chỉ khi xuống đất rồi mới được phép nhảy lên nữa.
- Nếu người nhảy chạm vào chuông thì sẽ lập tức bám chặt vào chuông. Xem hình H2.
- Khi đã gắn với chuông thì con lắc do lực cản không khí sẽ chuyển động chậm dần với biên 
độ giảm dần cho đến khi biên độ bằng 0 thì con lắc đứng lại. Khi đó người chạy sẽ nhảy 
xuống đất và tiếp tục chạy. Xem hình H3.
 H1. Trạng thái ban đầu. H2. Ngưởi chạy nhảy lên H3. Trạng thái kết thúc
 bám vào con lắc.
Chương trình ứng dụng đặt tên B2-2.sb2 / B2-2.sb3.
Bài 3. Trò chơi: Ghép từ đúng.
Trò chơi Ghép từ đúng như sau: 
Bấm phím Space để bắt đầu trò chơi.
 Từ bên trái và bên phải xuất hiện các đám mây mang theo các từ đơn. Các từ đơn này 
được lấy ra từ một câu có ý nghĩa hoàn chỉnh, là một thành ngữ, tục ngữ, ca dao được lưu 
trong bộ dữ liệu từ điển của phần mềm. Các đám mây sẽ xuất hiện ngẫu nhiên, di chuyển 
theo chiều ngang trên màn hình, gặp cạnh thì quay lại. 
Sân khấu luôn đưa ra yêu cầu nhập câu hoàn chỉnh được ghép từ các từ đơn có trên màn 
hình. Người dùng cần nhập nhanh và đúng câu hoàn chỉnh này.
 DeThiHay.net 10 Đề thi và Đáp án cấp THCS môn Tin Học Trẻ - DeThiHay.net
Nếu nhập sai thì bị trừ 1 điểm và sân khấu lại yêu cầu nhập tiếp cho đến khi đúng thì thôi. 
 Nếu nhập đúng thì được tặng 5 điểm, các đám mây sẽ biến mất và sau 1 giây lại xuất 
hiện các đám mây mang theo một câu, thành ngữ với ý nghĩa mới.
 Trò chơi kết thúc sau đúng 2 phút. 
 Ai có điểm số cao nhất sẽ chiến thắng.
Em hãy viết chương trình mô tả trò chơi trên. Ghi tệp chương trình B3.sb2 / B3.sb3.
Yêu cầu bắt buộc của chương trình:
- Bộ dữ liệu gốc cần nhập trước trong chương trình. Bộ dữ liệu này cần có tối thiểu 30 câu, 
đoạn văn, thành ngữ, tục ngữ hoàn chỉnh. 
- Chú ý: khi nhập cho phép và khuyến khích nhập thừa các dấu cách ở trước, sau hoặc giữa 
các từ đơn. 
- Các từ đơn xuất hiện trên màn hình theo thứ tự ngẫu nhiên để người chơi không thể làm mò 
nếu không biết rõ câu văn gốc.
- Các đám mây di chuyển với vận tốc thay đổi ngẫu nhiên.
- Khi bắt đầu chương trình, giáo viên xuất hiện thông báo cách chơi. Khi bấm SPACE thì 
giáo viên ẩn đi và trò chơi bắt đầu.
- Khi kết thúc chương trình giáo viên lại xuất hiện chúc mừng em hoàn thành trò chơi.
 DeThiHay.net

File đính kèm:

  • docx10_de_thi_va_dap_an_cap_thcs_mon_tin_hoc_tre.docx