Đề thi HSG Tin 9 Huyện Châu Thành – Năm học 1718 – Có code tham khảo

Tổng quan bài thi:

  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 tổng SBD_BAI1.PAS Từ bàn phím Màn hình
Bài 2 Thăm may mắn SBD_BAI2.PAS THAM.IN THAM.OUT
Bài 3 Tấm Cám thời @ SBD_BAI3.PAS TAMCAM.IN TAMCAM.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 TỔNG (6 điểm)

          Viết chương trình cho phép nhập vào từ bàn phím một số nguyên N khác 0 với giá trị của N trong khoảng (-999999999999 < N < 999999999999).

Xuất ra màn hình:

– Tổng các chữ số của số N

–  Cho biết số N có bao nhiêu chữ số

Ví dụ:

Nhập vào số N Xuất ra màn hình
123 – TONG CUA SO 123 LA : 6

– SO 123 CO : 3 CHU SO

999999 – TONG CUA SO 123 LA : 54

– SO 123 CO : 6 CHU SO

-999999999999 – TONG CUA SO 123 LA : -108

– SO 123 CO : 12 CHU SO

 

Bài 2:Lá thăm may mắn (8 điểm)

Nhân dịp  cuối năm siêu thị A tổ chức truy ân khách hàng bằng cách bốc thăm trúng thưởng với hình thức, mỗi khách hàng thân thiết được tặng một lá thăm trúng thưởng, khách hàng điền thông tin cá nhân của mình vào và gởi lại ban tổ chức. Lưu ý trên mỗi lá thăm có một số để “nhận dạng” số đặc biệt này là một số nguyên ngẫu nhiên khác 0 có N chữ số (1<= N < =3 ) không trùng nhau, siêu thị đã phát ra 999 lá thăm. Những lá thăm được khách hàng gởi lại để tham gia bốc thăm được giữ trong thùng kín và không thống kê được hiện có bao nhiêu lá.

Ban tổ chức sẽ mở thùng và lấy thăm ngẫu nhiên để nhập số “nhận dạng” có trên mỗi lá thăm vào máy tính theo thứ tự tăng dần để tiến hành bốc thăm tự động (số thứ tự của phiếu chính là số tiền được thưởng, ví dụ: Lá thăm có số “nhận dạng” là 99 nhập vào máy có số thứ tự là 10. Nếu lá thăm này được chọn là thăm may mắn sẽ nhận được phần thưởng là 10 triệu đồng).

Với cơ cấu giải thưởng như sau:

– Hai lá thăm có số “nhận dạng” lớn nhấtnhỏ nhất sẽ được chọn là “Lá thăm may mắn” với số tiền thưởng tương ứng với số thứ tự của mỗi lá thăm đó (đơn vị tính là triệu đồng).

– Giải “Lá thăm mai mắn nhất” là lá thăm có số “nhận dạng” bằng phần nguyên trung bình cộng của hai số “nhận dạng” lớn nhất và nhỏ nhất. Tiền thưởng bằng số “nhận dạng” nhân cho số thứ tự của lá thăm đó (đơn vị tính là triệu đồng).

Giã sử ban tổ chức đã có sẵn số liệu thống kê được lưu trong file. Hãy viết chương trình giúp ban tổ chức tìm ra các lá thăm mai mắn và số tiền thưởng tương ứng cho từng lá thăm đạt giải.

Bài 3.  Tấm Cám thời @ (6 điểm)

Việt là học sinh giỏi và rất thích chuyện cổ tích đặc biệt cảm thông và yêu thích các nhân vật trong chuyện. Nhưng lại không thích học môn tin học, mẹ Việt nghĩ cách để thử thách nhằm giúp câu hứng thú và học tốt hơn với môn tin học. Bà dùng cách của mụ dì ghẻ dành cho cô Tấm (là trộn lúa với gạo rồi bắt Tấm lựa ra lúa theo lúa, gạo theo gạo nếu hạt gạo nào bị bẫn phải lau cho thật sạch và đếm xem có bao nhiêu hạt lúa, bao nhiêu hạt gạo).

Mẹ Việt tiến hành kế hoạch nhưng Bà dùng kí tự số (1,2..9) để thay cho lúa, kí tư(a,b,…z) để thay cho gạo bẩn, kí tự (A, B,..Z) để thay cho gạo sạch trộn cả ba loại lại với nhau để thử thách Việt.

Các bạn hãy giúp Việt vượt qua thử thách lần này nhé.

Code tham khảo Đề thi HSG Tin 9 Huyện Châu Thành – Năm học 1718

Bài 1 (Code Pascal)




















PROGRAM TINHTONG;
USES CRT;
VAR N,A,S,DEM:INT64;
BEGIN
   clrscr;
   WRITE('NHAP N: ' );
   READLN(N);
   A:=N;
   S:=0;
   dem:=0;
   WHILE N <> 0 DO
       BEGIN
          S:= S + N MOD 10;
          dem:=dem+1;
          N:= N DIV 10;
       END;
   WRITELN('TONG CAC CHU SO CUA ',A, ' LA: ', S);
   WRITELN('                 SO ',A, ' CO: ',DEM,' CHU SO');
READLN;
END.

Bài 2




















































program THAM_MAY_MAN;
 uses crt;
 var i,j,k,n,x,tb:byte;
     tt,kt:boolean;
     A: array[1..100] 











 of integer;
     F1,F2:text;
 Begin
 {nhap mang tu file}
   assign(F1,'c:\BTPASCAL\THAM.IN.txt');reset(F1);
   assign(F2,'c:\BTPASCAL\THAM.OUT.TXT');rewrite(F2);
   n:=0;
   while Not EOF(f1) do
     begin
        while Not EOLn(f1) do
           begin
             inc(n);
             read(F1,A[n] 








);
           end;
           read(F1,k);
    end;
 {TIM MAX MIN}
     j:=1;
     K:=1;
     FOR I:= 2 TO N DO
       Begin
         if A[k]  < A[i] 
 then k:=i;
         if A[j]  > A[i] 

 then j:=i;
       end;
       tb:=(A[k] +A[j] 



) div 2;
  {xuat ket qua}
     for i:=1 to n do
     begin
       Write(F2,A[i] 
,' ');
       if A[i] 







 = tb then
                      begin
                         tt:=true;
                         x:=i;
                      end
       else kt:= false;
     end;
     Writeln(f2);
     writeln(F2,'So nhan dang lon nhat la: ',A[k] 
, ' Tien thuong: ',k, ' trieu dong!');
     Writeln(F2,'So nhan dang nho nhat la: ',A[j] 




, ' Tien thuong: ',j, ' trieu dong!');
       if tt = true then Write(F2,'Tham may man nhat co so nhan dang la: ',tb,' Tien thuong: ',x*tb, ' trieu dong!')
       else Writeln(F2,'So dinh danh cua la tham may man nhat la: ',tb, ' khong duoc tim thay');
     close(f1);
     close(f2);
end.

Bài 3:

































Program TAM_CAM;
uses crt;
var S,Ss,Sc:string;
   F1,F2:text;
   i:byte;
Begin
  Assign(F1,'c:\BTPASCAL\TAMCAM.INT.TXT'); Reset(F1);
  Assign(F2,'c:\BTPASCAL\TAMCAM.OUT.TXT'); Rewrite(F2);
  Readln(F1,S);
  {chuoi so, chuoi ki tu in hoa}
  Ss:=''; Sc:='';
  for i:=1 to length(s) do
    if S[i]  in ['0'..'9']  then Ss:=Ss+S[i]  else Sc:=Sc+upcase(S[i] 







);
        Writeln(F2,S);
        Writeln(F2,' LUA: ',Ss);
        Writeln(F2,' Co ',length(Ss),' hat lua !');
        Writeln(F2,' Gao da duoc lam sach: ',Sc);
        Writeln(F2,' Co ',length(Sc),' hat gao !');
  close(f1);
  close(f2);
End.

 

Read:   Số hoàn hảo trong Pascal
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 *