[r]
(1)ĐỀ THI TIN HỌC Bài 1: Tên file đặt BL1.PAS (2,5 điểm)
Tại vương quốc Ba Tư xa xưa, 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 dãy số hạnh phúc có nhiều phần tử
Dãy số tự nhiên a1, a2, , ak gọi hạnh phúc thoả mãn điều kện sau :
- Dãy dãy giảm dần
- Với i (1<i<=k) số nguyên tố, phải ước số
a1, a2, , ai-1
Em viết chương trình giúp chàng trai gái Ba Tư để : Nhập vào số N từ bàn phím in hình dãy số hạnh phúc dài với số hạng N Ví dụ :
Nhập N Đọc hình
8 DAY THOA MAN:
Bài 2: Tên file đặt BL2.PAS (2,5 điểm)
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 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 đặt BL3.PAS (2,5 điểm)
Một số n gọi số phản nguyên tố ước số nhiều n số tự nhiên Cho số K (K<=10000) Hãy tìm tất số phản nguyên tố nhỏ K
Ví dụ :
Nhập k Đọc hình
1000 840
Bài 4: Tên file đặ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
đánh dấu bốn màu: xanh, đỏ, tím, vàng Mỗi màu sử dụng lần trình đánh dấu
Lập chương trình thực công việc sau :
(2)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 đ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
ĐÁP ÁN
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;
(3)if(nt(i)) then begin inc(d);a[d]:=i;a[d]:=i;end else
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;
(4)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);
end; readln 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
(5)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;
(6)end; end
else writeln('KHONG CO DOAN MAU NAO THOA MAN'); readln