10 Đề thi và Đáp án cấp THCS môn Tin Học Trẻ
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ẻ - 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.netFile đính kèm:
10_de_thi_va_dap_an_cap_thcs_mon_tin_hoc_tre.docx

