[r]
(1)Phßng gd
vĩnh tờng đề khảo sát đội tuyển hsg lần i Môn : tin hc
Năm học 2006-2007
(Thi gian lm bi: 150 phỳt khụng k giao )
Đề bài
Bài 1: Tên file đợc đặt BL1.PAS (2,5 điểm)
Tại vơng quốc Ba T xa xa, ngời ta tổ chức thi tìm dãy số hạnh phúc : chàng trai cô gái thông minh thời gian ngắn phải tìm đợc dãy số hạnh phúc có nhiều phần tử nhất. Dãy số tự nhiên a1, a2, , ak đợc gọi hạnh phúc thoả mãn điều kn sau :
- DÃy dÃy giảm dần
- Với i (1<i<=k) ai số nguyên tố, phải ớc c¸c sè a1, a2, , ai-1 .
Em viết chơng trình giúp chàng trai cô gái Ba T để : Nhập vào số N từ bàn phím in màn hình dãy số hạnh phúc dài với số hạng đầu tiờn N
VÝ dô :
Nhập N Đọc hình
8 DAY THOA MAN: 1
Bài 2: Tên file đợc đặt BL2.PAS (2,5 im)
Cho số tự nhiên N dÃy số Fibonaci 1, 1, , 3, 5, 8,
Hãy viết chơng trình kiểm tra xem N phân tích đợc thành tổng số Fibonaci khác hay khơng (tổng có số hạng ) thơng báo hình cách biểu diễn đó, khơng có thơng báo: KHONG TH E PHAN TICH.
Nhập N Đọc hình
20 20=13+5+2
Bài 3: Tên file đợc đặt BL3.PAS (2,5 điểm)
Một số n đợc gọi số phản nguyên tố ớc số nhiều n số tự nhiên đầu tiên. Cho số K (K<=10000) Hãy tìm tất số phản nguyên tố K.
VÝ dụ :
Nhập k Đọc hình
1000 840
Bài 4: Tên file đợc đặt BL4.PAS (2,5 điểm)
Trên đờng thẳng cho trớc ngời ta đánh dấu n điểm khác : A1, A2, , An (n>=4 ), điểm
đợc đánh dấu bốn màu: xanh, đỏ, tím, vàng Mỗi màu đợc sử dụng lần trong quỏ trỡnh ỏnh du
Lập chơng trình thực công việc sau :
a) Nhp thơng tin vị trí điểm màu dùng để đánh dấu điểm tơng ứng từ bàn phím (xanh : X , đỏ : D , tím : T , vàng : V ).
b) Chỉ đoạn thẳng dài thoả mãn: Có hai màu, màu xuất lần hai màu lại, màu xuất lần (nếu có nhiều đoạn thoả mãn đọc tất các đoạn thẳng đoạn dịng)
VÝ dơ :
Nhập N DÃy A Đọc hình
10 T V V D T V D X T V DOAN THOA MAN DAI NHAT LA:
V V D T V D X
H
íng dÉn chÊm tin 9
C©u 1: (2,5 điểm ) TEST cho 0,5 điểm
TEST Nhập N Đọc hình
1 1 DAY THOA MAN: 1
2 2 DAY THOA MAN:
3 8 DAY THOA MAN: 1 4 15 DAY THOA MAN: 15 13 11 1
(2)Câu :(2,5 điểm ) TEST Và cho 0,25 điểm TEST lại cho 0,5 điểm (chú ý tổng khác đáp án nhng thoả mãn cho điểm tối đa VD: n=13 là: 8+3+2)
TEST NhËp n Đọc hình
1 1 KHONG THE PHAN TICH
2 2 KHONG THE PHAN TICH
3 10 8+2
4 13 8+5
5 55 34+21
6 10000 6765+2584+610+34+5+2
Câu 3(2,5 điểm ) TEST cho 0,5 điểm
TEST Nhập k Đọc hình
1 100 96 90 84 72 60
2 200 180
3 3000 2520
4 3456 3360 2520
5 10000 9240 7560
Câu (2,5 điểm ) TEST cho 0,5 điểm
TEST Nhập A Đọc h×nh
1 XDTV DOAN THOA MAN DAI NHAT LA: XDTV
2 DXTVVVDXTT DOAN THOA MAN DAI NHAT LA: TVVVDXTT
3 DDDXXXTTTVVV DOAN THOA MAN DAI NHAT LA: DXXXTTTV
4 XDTTTTTVXDT DOAN THOA MAN DAI NHAT LA: DTTTTTVXDT
5 XDTVXDTV DOAN THOA MAN DAI NHAT LA: XDTVXD
DTVXDT TVXDTV
HÕt
……… ………
Bµi1:
{Day so hanh phuc} uses crt;
var a: array[1 1000]of integer; i,j,k,n,d:integer;
kt:boolean;
function nt(n:longint):boolean; var i:longint;
begin
if n<2 then nt:=false else begin
i:=2;
while (i<=sqrt(n)) and (n mod i<>0) inc(i); nt:=(i>sqrt(n));
end; end; BEGIN clrscr;
write('vao n=');readln(n); if n=2 then write(n,' ',1) else
begin
d:=1; a[1]:=n;
for i:= n-1 downto begin
(3)begin
kt:=false;
for j:=1 to d-1
if a[j] mod i=0 then kt:=true; if kt then begin
inc(d); a[d]:=i; end;
end; end;
for i:=1 to d write(a[i],' '); end;
readln; END
Bµi 2:
uses crt;
var a:array[1 1000]of longint; k,i,n,m,h:longint;
function fbnx(k:longint):boolean; var i:longint;
f:array[1 100]of longint; begin
f[1]:=1; f[2]:=1; i:=3; repeat
f[i]:=f[i-1]+f[i-2]; inc(i);
until f[i-1]>=k; fbnx:=(f[i-1]=k); end;
BEGIN clrscr;
write('Nhap n=');readln(n);
if (n=0) or(n=1) then begin write('KHONG THE PHAN TICH.');readln;exit;end; if (n=2) then begin write('KHONG THE PHAN TICH.');readln;exit;end;
m:=n; k:=0;
if not fbnx(n) then begin
repeat
for i:=n downto
if fbnx(i) then begin inc(k);a[k]:=i;n:=n-i;break;end; until (n=0)or (n=1);
write('',m,'='); if n=0 then begin
for i:=1 to k-1 write('',a[i],'+'); write(a[k]);
end; if n=1 then begin
for i:=1 to k-1 write('',a[i],'+'); write('',a[k],'+1');
end; end
else begin
write('',n,'='); h:=0;
for i:=n-1 downto
if fbnx(i) then begin h:=i;write('',i,'+');break;end; write(n-h);
(4)end
Bµi 4:
USES CRT;
var n,k,i,j,c,d1,h,max:integer;
d,dau,cuoi:array[1 255] of integer; MAU: string;
BEGIN CLRSCR;
write('VAO DAY MAU LA CAC KI TU IN HOA: ');readln(MAU); WRITELN(************************);
i:=1; repeat j:=4; repeat
for k:=1 to d[k]:=0; for k:=i to j
begin
if (MAU[k]='X') then inc(d[1]); if (MAU[k]='D') then inc(d[2]); if (MAU[k]='T') then inc(d[3]); if (MAU[k]='V') then inc(d[4]); end;
if((d[1]=1)and(d[2]=1)and(d[4]<>0)and(d[3]<>0)) or ((d[1]=1)and(d[3]=1)and(d[2]<>0)and(d[4]<>0)) or ((d[1]=1)and(d[4]=1)and(d[2]<>0)and(d[3]<>0)) or((d[3]=1)and(d[2]=1)and(d[1]<>0)and(d[4]<>0)) or((d[4]=1)and(d[2]=1)and(d[1]<>0)and(d[3]<>0)) or((d[3]=1)and(d[4]=1)and(d[2]<>0)and(d[1]<>0)) then
begin inc(h);
if j-i+1 >max then max:=j-i+1; dau[h]:=i;cuoi[h]:=j;
end; inc(j);
until j>length(MAU); inc(i);
until i>length(MAU); if h>0 then
begin
write(' DOAN MAU THOA MAN LA :');
for i:=dau[1] to cuoi[1] write(MAU[i]);writeln; for i:=1 to h
begin
if cuoi[i]-dau[i]+1=max then begin
write(' DOAN MAU DAI NHAT THOA MAN LA :');
for j:=dau[i] to cuoi[i] write(MAU[j]);writeln; end;
end; end
else writeln('KHONG CO DOAN MAU NAO THOA MAN'); readln
.