1. Trang chủ
  2. » Trung học cơ sở - phổ thông

De DT HSG Tin 12 bang B nam hoc 20102011

8 8 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 15,5 KB

Nội dung

Chữ số thứ I đợc gắn một số nguyên dơng aI đợc gọi là trọng lợng của nã thø tù c¸c ch÷ sè trong phÇn ®Çu cña m· tÝnh tõ tr¸i qua ph¶i.. Ngêi ta lÊy lÇn lît c¸c ch÷ sè trong m· nh©n víi t[r]

(1)SỞ GD&ĐT NGHỆ AN KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH LỚP 12 NĂM HỌC 2010 – 2011 Đề chính thức Môn thi: TIN HỌC LỚP 12 THPT - BẢNG B Thời gian làm bài: 180 phút (Đề thi có 03 trang) Bài 1: (5.5 ®iÓm) tÇn sè Cho dẫy số nguyên dơng, số lần xuất số đợc gọi tần số số nguyên đó Hãy tìm số nguyên dơng có tần số cao và tần số tơng ứng nó D÷ liÖu vµo: Cho tõ file v¨n b¶n MAX.INP bao gåm:  Dßng ®Çu tiªn chøa mét sè nguyªn N( 1≤ N ≤ 10000) lµ sè lîng c¸c sè nguyªn d·y  Mçi dßng N dßng tiÕp theo chøa sè nguyªn M( 1≤ M ≤ 1000) d·y KÕt qu¶: Ghi file v¨n b¶n MAX.OUT, gåm sè nguyªn viÕt trªn mét dßng, sè thø nhÊt ghi sè nguyªn cã tÇn sè cao nhÊt, sè thø lµ tÇn sè cña nã( tr êng hîp cã nhiÒu sè nguyªn cã tÇn sè cao nhÊt b»ng nhau, h·y ®a sè nguyªn nhá nhÊt vµ tÇn sè cña nã) Hai sè c¸ch mét ký tù tr¾ng MAX.INP Bµi 2: (5.5 ®iÓm) MAX.OUT MAX.INP 7 MAX.OUT 2 M· Sè Để tiện công tác quản lý, công ty đã gắn mã số cho các nhân viên cña m×nh M· sè cña mçi nh©n viªn bao gåm b¶y ch÷ sè( gäi lµ phÇn ®Çu cña m· nhân viên) và chữ cái in hoa nối phía sau Chữ cái này đợc tính toán từ bảy chữ sè phÇn ®Çu cña m· theo c¸c bíc nh sau: Chữ số thứ I đợc gắn số nguyên dơng aI đợc gọi là trọng lợng nã( thø tù c¸c ch÷ sè phÇn ®Çu cña m· tÝnh tõ tr¸i qua ph¶i) Ngêi ta lÊy lÇn lît c¸c ch÷ sè m· nh©n víi träng lîng t¬ng øng cña nã 2.Céng tÊt c¶ c¸c kÕt qu¶ T×m sè d cña phÐp chia tæng trªn cho sè nguyªn d¬ng K ( 1≤ K ≤ 11) Mỗi số d tơng ứng với chữ cái in hoa Chữ cái in hoa tơng ứng tìm đợc lµ ch÷ c¸i nèi phÝa sau cña m· nh©n viªn Cho tríc phÇn ®Çu cña m· nh©n viªn, h·y t×m ch÷ c¸i in hoa nèi phÝa sau D÷ liÖu vµo: Tõ file v¨n b¶n MASO.INP cã cÊu tróc nh sau:  Dßng ®Çu tiªn ghi sè nguyªn d¬ng K  Dßng thø ghi mét x©u gåm ch÷ sè lµ phÇn ®Çu cña m· nh©n viªn  Dßng thø ghi sè nguyªn d¬ng, sè thø I lµ träng lîng cña ch÷ sè thø I phÇn ®Çu cña m· C¸c sè c¸ch mét ký tù tr¾ng  Dòng cuối cùng ghi xâu có độ dài Kgồm các chữ cái tiếng Anh in hoa, chữ cái thứ I tơng ứng với số I-1 là số d phép chia tổng tìm đợc cho K Kết quả: Ghi file văn MASO.OUT, chứa chữ cái tìm đợc VÝ dô: MASO.IN MASO.OUT (2) 11 6830907 JABCDEFGHIZ Bµi 3: (4.5 ®iÓm) D Sa m¹c Sa m¹c lµ líi « vu«ng cÊp MxN ( 1≤ N,M ≤ 100) Trªn mçi « cña líi ngêi ta ghi số nguyên a( 1≤ a ≤ 100) đợc gọi là lợng ô đó Một lạc đà ô (i,j) lới đợc đến hai ô (i+1,j) ô (i,j+1) Lạc đà đến ô nào thì hấp thụ đợc nguồn lợng ô đó Hãy tìm cho lạc đà đờng từ ô (1,1) đến ô (M,N) theo nguyên tắc trên và hấp thụ đợc nhiều lợng D÷ liÖu vµo: Tõ file v¨n b¶n SAMAC.INP, dßng ®Çu tiªn thi sè nguyªn d¬ng theo thø tù M, N Dßng thø I M dßng tiÕp theo ghi N sè nguyªn d¬ng, sè thø J lµ n¨ng lîng trªn « (I , J) cña sa m¹c.( sè thø tù cña c¸c sè trªn mét dßng tÝnh tõ tr¸i qua ph¶i) Kết quả: Ghi file văn SAMAC.OUT, dòng đầu tiên ghi số S là lợng mà lạc đà hấp thụ đợc Từ dòng thứ trở dòng ghi số nguyên dơng là toạ độ các ô theo thứ tự trên đờng lạc đà VÝ dô: SAMAC.INP SAMAC.OUT 41 1 1 2 3 3 3 4 4 C¶ hai file d÷ liÖu, c¸c sè trªn mét dßng c¸ch mét ký tù tr¾ng Héi tr¹i Bµi 4: (4.5 ®iÓm) Nhân dịp ngày thành lập công ty, ban Giám đốc công ty X tổ chức cho cán c«ng nh©n viªn mét cuéc héi tr¹i Thêi ®iÓm tÝnh ngµy héi tr¹i lµ phót, thêi ®iÓm ban ®Çu lµ C«ng ty cã N c¸n bé c«ng nh©n viªn Ngêi thø I cã mÆt t¹i héi trại từ thời điểm aI đến thời điểm bI Hãy lập trình giải các công việc sau đây: Tìm cho ban Giám đốc thời điểm sớm đến thăm hội trại để gặp đợc nhiÒu c¸n bé nhÊt Tìm khoảng thời gian dài địa điểm hội trại không có cả, cã nhiÒu kho¶ng thêi gian nh thÕ h·y ®a kho¶ng thêi gian sím nhÊt D÷ liÖu vµo: Tõ file v¨n b¶n: HOITRAI.INP, cã cÊu tróc nh sau:  Dßng ®Çu tiªn ghi sè N lµ sè c¸n bé cña c«ng ty ( ( 1≤ N ≤ 10000)  Dßng thø I N dßng tiÕp theo ghi sè nguyªn d¬ng aI vµ bI lµ kho¶ng thêi gian cã mÆt t¹i héi tr¹i cña c¸n bé thø I KÕt qu¶: Ghi file v¨n b¶n HOITRAI.OUT nh sau:  Dòng đầu tiên ghi số T là thời điểm ban Giám đốc đến thăm hội trại  Dòng thứ ghi số nguyên a, b là khoảng thời gian từ a đến b không có hội trại Nếu không tìm đợc ghi số 32675 hai lần C¶ hai file d÷ liÖu, c¸c sè trªn mét dßng c¸ch mét ký tù tr¾ng VÝ dô: HOITRAI.INP 320 400 1000 351 1200 HOITRAI.OUT 623 321 350 (3) 380 452 512 623 1336 1430 1230 1105 HÕt Hä vµ tªn thÝ sinh ………………………………………………… Sè b¸o danh ……………… Chú ý: - Chơng trình giải các bai1, bài 2, bài 3, bài lần lợt ghi lên đĩa với các tên Bai1.pas; Bai2.pas; Bai3.pas; Bai4.pas - Gi¸m thÞ kh«ng ph¶i gi¶i thÝch g× thªm (4) Bài 1: const var fi='Max.inp'; fo='max.out'; a:array[1 1000] of integer; n,m,i,d,so:integer; f:text; begin assign(f,fi); reset(f); readln(f,n); d:=0; so:=0; for i:=1 to n begin readln(f,m); inc(a[m]); end; for i:=1 to m if a[i]>d then begin d:=a[i]; so:=i; end; close(f); assign(f,fo); rewrite(f); writeln(f,so,' ',d); close(f); end Bài 2: const fi='MASO.INP'; fo='MASO.out'; var t: array[1 7] of byte; d: array[0 10] of char; k: integer; f: text; s,s1: string; tong,i,c,n,du: integer; procedure doc; begin assign(f,fi); reset(f); readln(f,k); readln(f,s); for i:=1 to read(f,t[i]); (5) readln(f); for i:=0 to k-1 read(f,d[i]); close(f); end; function kq: char; begin tong:=0; for i:=1 to length(s) begin s1:=s[i]; val(s1,n,c); tong:=tong+n*t[i]; end; du:=tong mod k; kq:=d[du]; end; begin doc; assign(f,fo); assign(f,fo); rewrite(f); write(f,kq); close(f); end Bài 3: program SA_mac; const f1 ='samac.inp'; fo ='samac.out'; var a : array[1 100,1 100] of integer; b : array[0 100,0 100] of longint; m,n,i,j : integer; f : text; {==============================} procedure khoi_tao; begin assign(f,f1); reset(f); readln(f,m,n); for i:=1 to m begin for j:=1 to n read(f,a[i,j]); readln(f); end; close(f); (6) fillchar(b,sizeof(b),0); end; {=============================} procedure xu_ly; begin for i:=1 to m for j:=1 to n if b[i,j-1]>b[i-1,j] then b[i,j]:=a[i,j]+b[i,j-1] else b[i,j]:=a[i,j]+b[i-1,j]; end; {==============================} procedure thong_bao; var dd : array[1 2,1 199] of integer; k : integer; begin assign(f,fo); rewrite(f); writeln(f,b[m,n]); i:=m; j:=n; k:=m+n-1; while (i>=1) and(j>=1) begin dd[1,k]:=i;dd[2,k]:=j; dec(k); if b[i,j-1]>b[i-1,j] then j:=j-1 else i:=i-1; end; for i:=1 to m+n-1 writeln(f,dd[1,i],' ',dd[2,i]); close(f); end; {======= chuong trinh chinh =============} BEGIN khoi_tao; xu_ly; thong_bao; END Bài 4: program hoi_trai; const f1 fo = 'hoitrai.inp'; = 'hoitrai.out'; (7) var a : array[0 1439] of integer; max_cuoi,n : integer; max_dau,t_diem : integer; f : text; {===================================} procedure khoi_tao; var i,j,t1,t2 : integer; begin fillchar(a,sizeof(a),0); assign(f,f1); reset(f); readln(f,n); for i:=1 to n begin readln(f,t1,t2); for j:=t1 to T2 inc(a[j]); end; close(f); end; {=====================================} procedure cau1; var i,max : integer; begin max:= a[0]; t_diem:=0; for i:=1 to 1439 if a[i]>max then begin max:=a[i]; t_diem:=i; end; end; {======================================} procedure cau2; var i,j,dem,dau,cuoi: integer; begin i:=1; max_dau:=32675; max_cuoi:=32675; while i<=1439 if a[i]<>0 then inc(i) else begin (8) dau:=i; j:=i; while (a[j]=0) and (j<=1439) inc(j); if j-i>max_cuoi-max_dau then begin max_cuoi:=j-1; max_dau:=i; end; i:=j; end; writeln('dau =',max_dau,' cuoi= ',max_cuoi);readln; end; {====================================} procedure thong_bao; begin assign(f,fo); rewrite(f); writeln(f,t_diem); writeln(f,max_dau,' ',max_cuoi); close(f); end; {=========== CHUONG TRINH CHINH==========} BEGIN khoi_tao; cau1; cau2; thong_bao; END (9)

Ngày đăng: 15/06/2021, 04:42

w