Tải bản đầy đủ (.docx) (4 trang)

hsg tin thcs tin học 9 lê gia lợi thư viện giáo dục tỉnh quảng trị

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (99.21 KB, 4 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

<b>Phßng gd </b>



<b>vĩnh tờng</b>

<b>đề khảo sỏt i tuyn hsg ln i </b>

<b>Mụn : tin hc</b>



<b>Năm häc 2006-2007</b>



<i>(Thời gian làm bài: 150 phút không kể giao )</i>



<b>Đề bài</b>



<b> Bi 1: Tờn file c t l BL1.PAS (2,5 điểm)</b>



Tại vơng quốc Ba T xa xa, ngời ta tổ chức các cuộc thi tìm dãy số hạnh phúc : các chàng trai cô gái


thông minh trong thời gian ngắn nhất phải tìm ra đợc một dãy số hạnh phúc có nhiều phần tử nhất.


Dãy số tự nhiên a

1

, a

2

,.., a

k

đợc gọi là hạnh phúc nếu nó tho món cỏc iu kn sau :



-

DÃy trên là dÃy giảm dần .



-

Với mọi i (1<i<=k) a

i

hoặc là số nguyên tố, hoặc phải là íc cđa mét trong c¸c sè

a

1

, a

2

,.., a

i-1

.



Em hãy viết chơng trình giúp các chàng trai cô gái Ba T để : Nhập vào một số N từ bàn phím và in ra


màn hình một dãy số hạnh phúc dài nhất với số hạng đầu tiờn là N .



VÝ dô :



NhËp N

Đọc ra màn hình



8

DAY THOA MAN: 8 7 5 4 3 2 1



<b>Bài 2: Tên file đợc đặt là BL2.PAS (2,5 điểm)</b>




Cho sè tự nhiên N và dÃy số Fibonaci 1, 1, 2 , 3, 5, 8,...



Hãy viết chơng trình kiểm tra xem N có thể phân tích đợc thành tổng của các số Fibonaci khác nhau


hay không (tổng có ít nhất 2 số hạng ) thơng báo ra màn hình cách biểu diễn đó, nếu khơng có cũng


thơng báo: KHONG TH E PHAN TICH.



NhËp N

§äc ra màn hình



20

20=13+5+2



<b>Bi 3: Tờn file c t l BL3.PAS (2,5 điểm)</b>



<b> Một số n đợc gọi là số phản nguyên tố nếu ớc số của nó là nhiều nhất trong n số tự nhiên đầu tiên.</b>


Cho số K (K<=10000). Hãy tìm tất cả các số phản nguyên tố hơn hoặc bằng K.



VÝ dô :



NhËp k

Đọc ra màn hình



1000

840



<b>Bi 4: Tờn file c đặt là BL4.PAS (2,5 điểm)</b>



Trên đờng thẳng cho trớc ngời ta đánh dấu n điểm khác nhau : A

1

, A

2

,..., A

n

(n>=4 ), mỗi điểm



đợc đánh dấu bằng một trong bốn màu: xanh, đỏ, tím, vàng. Mỗi màu đợc sử dụng ít nhất một lần trong


quá trỡnh ỏnh du .



Lập chơng trình thực hiện các công viƯc sau :




a) Nhập thơng tin về vị trí các điểm màu dùng để đánh dấu các điểm tơng ứng đó từ bàn phím (xanh : X


, đỏ : D , tím : T , vàng : V ).



b) Chỉ ra một đoạn thẳng dài nhất trong đó thoả mãn: Có đúng hai màu, mỗi màu xuất hiện đúng một


lần và hai màu còn lại, mỗi màu xuất hiện ít nhất một lần (nếu có nhiều đoạn thoả mãn thì đọc ra tất cả


các đoạn thẳng đó mỗi đoạn trên một dịng)



VÝ dơ :



NhËp N

DÃy A

Đọc ra màn 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



<b>H</b>



<b> íng dÉn chÊm tin 9</b>



<b>C©u 1: (2,5 điểm ) mỗi TEST cho 0,5 điểm </b>



TEST

Nhập N

Đọc ra màn hình



1

1

DAY THOA MAN: 1



2

2

DAY THOA MAN: 2 1



3

8

DAY THOA MAN: 8 7 5 4 3 2 1


4

15

DAY THOA MAN: 15 13 11 7 5 3 2 1




</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

<b>Câu 2 :(2,5 điểm ) TEST 1 Và 2 cho 0,25 điểm mỗi TEST còn lại cho 0,5 điểm (chú ý nếu </b>


tổng khác đáp án nhng vẫn thoả mãn thì vẫn cho điểm tối đa VD: n=13 có thể l: 8+3+2)



TEST

Nhập n

Đọc ra màn 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



<b>Câu 3(2,5 điểm ) mỗi TEST cho 0,5 điểm </b>



TEST

Nhập k

Đọc ra màn hình



1

100

96 90 84 72 60



2

200

180



3

3000

2520



4

3456

3360 2520



5

10000

9240 7560




<b>C©u 4 (2,5 điểm ) mỗi TEST cho 0,5 điểm </b>



TEST

Nhập A

Đọc ra màn 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) do 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 1 do
begin



</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

begin


kt:=false;


for j:=1 to d-1 do


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 do write(a[i],' ');
end;


readln;
END.


<b>Bµi 2:</b>



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 1 do


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 do write('',a[i],'+');
write(a[k]);


end;
if n=1 then
begin


for i:=1 to k-1 do write('',a[i],'+');
write('',a[k],'+1');


end;
end


else
begin


write('',n,'=');


h:=0;


for i:=n-1 downto 1 do


if fbnx(i) then begin h:=i;write('',i,'+');break;end;
write(n-h);


</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=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 4 do d[k]:=0;


for k:=i to j do


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] do write(MAU[i]);writeln;
for i:=1 to h do


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] do write(MAU[j]);writeln;
end;


end;
end


else writeln('KHONG CO DOAN MAU NAO THOA MAN');
readln


.



</div>

<!--links-->

×