Đề thi HSG Tin 9 Huyện Châu Thành – Năm học 1819 – Có code mẫu

Đề thi HSG Tin 9 Huyện Châu Thành – Năm học 1819

  Tên bài Tên tệp chương trình Dữ liệu vào Kết quả ra
Bài 1 Tính căn SBD_BAI1.PAS Từ bàn phím Màn hình
Bài 2 Dãy số k SBD_BAI2.PAS daysok.inp daysok.out
Bài 3 Tên thiêng SBD_BAI3.PAS tenthieng.inp Tenthieng.out
Ví dụ thí sinh có SBD:012; làm Bài 1 thì lưu lại ở ổ đĩa D:\ với tên: 012_BAI1.PAS

Bài 1: Tính căn (6 điểm)

          Viết chương trình cho phép nhập vào từ bàn phím hai số số nguyên dương x, n (1<= x, n <=100)

Xuất ra màn hình kết quả của biểu thức  [latex] \sqrt {x + \sqrt {x + \sqrt {x + … + \sqrt x } } } [/latex]   (n dấu căn, n=4)

Ví dụ:

x n Biểu thức
? 3 [latex] \sqrt {x + \sqrt {x + \sqrt x } } [/latex]
? 5 [latex] \sqrt {x + \sqrt {x + \sqrt {x + … + \sqrt x } } } [/latex]

Bài 2:Dãy số k (8 điểm)

Cho dãy số A có N (N ≤ 100) số tự nhiên (A[i] ≤ 100 (1 ≤ I ≤ N), mỗi số cách nhau đúng 01 dấu cách) và số tự nhiên K (K ≤ N ≤ 100). Hãy viết chương trình ghi ra các phần tử trong dãy A có số lần xuất hiện từ K lần trở lên theo thứ tự tăng dần, nếu không có thì ghi chữ “NO”.

Dữ liệu vào:  từ file văn bản daysok.inp gồm 2 dòng: dòng 1 ghi 2 số N và K cách nhau bởi 01 dấu cách; dòng 2 là dãy A (các số cách nhau đúng 01 dấu cách).

Read:   Đề thi Vòng khu vực miền bắc tin học trẻ toàn quốc năm 2022 – Bảng A tiểu học

– Dữ liệu ra: file văn bản daysok.out chỉ một dòng duy nhất chứa kết quả (mỗi số cách nhau đúng 01 dấu cách). Xem ví dụ bên dưới.

daysok.inp
10 2

1 2 1 1 5 5 20 20 5 5

5 2

0 1 2 3 4

daysok.out
1 5 20

 

NO

 

Bài 3.  Tên thiêng(6 điểm)

Thời xa xưa, ở một bộ tộc cổ đại giữ tập tục đặt tên cho những đứa trẻ mới sinh ra theo tên Thiêng của gia đình với hy vọng chúng được thần linh phù hộ, hạnh phúc, khỏe mạnh và có thể chóng lại các thế lực đen tối, ma quỹ xung quanh. Mỗi gia đình có một tên Thiêng riêng do Tộc trưởng đặt cho và từ tên Thiêng đó mà đặt tên cho các thành viên khác trong gia đình theo cách như sau:

– Tên các thành viên trong gia đình phải là một xâu con gồm một hay nhiều ký tự liên tiếp nhau của tên Thiêng.(tên của các thành viên không được trùng nhau và không trùng với tên thiêng).

Ví dụ: tên Thiêng là: “alubala” thì các tên có thể đặt là “a”, “alu”, “luba”, “bala”, “ala”……(các tên không được phép đặt là “aba”, “ula”, “lula”….)

Yêu cầu: Tộc trưởng muốn biết dựa vào số tên có thể đặt, mỗi gia đình có thể đặt được tối đa bao nhiêu tên.

– Dữ liệu vào: File văn bản tenthieng.inp gồm một dòng chứa tên thiêng, trong đó chỉ chứa chữ cái Latinh thường, có độ dài không quá 255 ký tự.

– Dữ liệu ra: File văn bản tenthieng.out chứa một số nguyên là số lượng các tên có thể đặt khác nhau.

Ví dụ:

tenthieng.inp tenthieng.out
alubala 23

Code tham khảo

Bài 1















program   can;
uses crt;
var x,n,i:byte;
    s:real;
begin
  write('Nhap x: ');
  readln(x);
  write('Nhap n: ');
  readln(n);
  s:=0;
  for i:=1 to n do
  s:=sqrt(x+s);
  write('bieu thuc co gia tri la:',s:2:4);
  readln
  end.

Bài 2













































Program DaySoK;
Uses crt;
Var A, B:Array[0..100] 













 of Integer;
    n,i,j,k:integer;

    f:text;
procedure Nhap;
  begin
    assign(f,'d:\daysok.inp.txt');
    reset(f);
    i:=0;
    Fillchar(A,SizeOf(A),0);
    read(f,n);
    readln(f,k);
    while not eof(f) do
      begin
         read(f, A[i] 










);
         inc(i);
      end;
    close(f);
  end;
Procedure XuLy;
  begin
    assign(f,'d:\daysok.out.txt');
    rewrite(f);
    FillChar(B, SizeOf(B),0);
    j:=0;
    For i:= 1 to n do inc(B[A[i] 

]);
    For i:= 1 to 100 do
       if((B[i]  <> 0) and (B[i] 










 >= k)) then
         begin
           write(f, i, ' ');
           inc(j);
         end;
       if j=0 then write(f, 'NO');
       close(f);
  end;
BEGIN
  Nhap;
  XuLy;
END.

Bài 3






































Program TenThieng;
  Uses crt;
  const
    fi = 'D:\tenthieng.inp.txt';
    fo = 'D:\tenthieng.out.txt';
  var
    fin, fout: text;
    s, s1, s2: string;
    l,i,j:word;
    k: longint;
Procedure Dem;
  var m: byte;
  begin
    k:=0;
    for m:= 1 to l do
    begin
      s1:=s;
      while s1<>'' do
        begin
          if m>length(s1) then break;
          s2:=copy(s1,1,m);
          delete(s1,1,1);
          if pos(s2,s1)=0 then inc(k);
        end;
     end;
     writeln(fout,k-1);
  end;
BEGIN
  assign(fin,fi); reset(fin);
  assign(fout,fo); rewrite(fout);
  while not eof(fin) do
  begin
    readln(fin,s);
    l:=length(s);
    Dem;
  end;
  Close(fin);
  Close(fout);
End.

 

Read:   Đề thi HSG Tin 11 Tỉnh Thanh Hóa - Năm học 2017 - 2018 - Có Code tham khảo
Hình đại diện của người dùng

admin

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *