Tải bản đầy đủ (.doc) (9 trang)

Đáp án Đề thi tin học trẻ không chuyên tỉnh Hải Dương năm 2009 khối THPT

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 (119.82 KB, 9 trang )

Câu 1: (Đề chính thức THPT)
Viết chơng trình nhập vào độ dài ba cạnh của một tam giác và tính
chu vi, diện tích của tam giác đó?
Program Chu_vi_Dien_tich;
uses crt;
var a,b,c,cv,dt,P: real;
Begin
clrscr;
writeln('Nhap do dai canh 1 cua tam giac a = : '); readln(a);
writeln('Nhap do dai canh 2 cua tam giac b = : '); readln(b);
writeln('Nhap do dai canh3 cua tam giac c = : '); readln(c);
cv:=a+b+c; {cv: la chu vi cua tam giac}
P:=cv/2;
dt:=sqrt(P*(P-a)*(P-b)*(P-c)); {dt: la dien tich cua tam giac}
writeln('Chu vi tam giac can tim la :', cv:10:2);
writeln('Dien tich tam giac can tim la :',dt:10:2);
readln
end.
Câu 2: (Đề chính thức THPT)
Lập trình nhập từ bàn phím bảng số nguyên A có kích thớc 10 x 10,
thực hiện tính và đa ra màn hình:
1. Tính tổng các phần tử trên đờng chéo chính và đờng chéo phụ?
2. Sắp xếp các phần tử của hàng theo thứ tự tăng dần?
3. Kiểm tra đếm trong bảng có bao nhiêu phần tử chia hết cho 3, hiển thị
ra màn các phần tử đó?
program Cau_2;
var b: array[1 10,1 10] of integer;
i,j,k,p,tc,tp,t,d: integer;
begin
writeln('nhap cac phan tu cua mang theo dong: ');
for i:=1 to10 do


begin
for j:=1 to 10 do readln(b[i,j]);
writeln;
end;
{phan 1: Tính tổng các phần tử}
tc:=0; tp:=0;
for i:=1 to 10 do
begin
j:=i;
tc:=tc + b[i,j];
end;
for i:=10 downto 1 do
begin
j:=11-i;
tp:=tp + b[i,j]:
end;
t:=tc + tp;
writeln('tong hai duong cheo la: ',t);

{Phan 2: Sắp xếp các phần tử theo thứ tự tăng dần}
for j:=1 to 10 do
begin
for k:=10 downto 2 do
for i:=1 to (k-1) do
if (b[i,j]>b[i+1,j]) then
begin
p:=b[i,j];
b[i,j]:=b[i+1,j];
b[i+1,j]:=p;
end;

writeln('cac hang duoc sap xep: ');
for i:=1 to 10 do
begin
write (b[i,j]:4);
writeln;
end;

{Phan 3: Kiểm tra đếm trong bảng có bao nhiêu phần tử chia hết cho 3}
d:=0;
for i:=1 to 10 do
for j:=1 to 10 do
if (b[i,j] mod 3 = 0) then d:=d+1;
writeln('so phan tu cua mang chia het cho 3 la: ',d);
readln
end.
Câu 3: (Đề chính thức THPT)
Thiết lập chế độ đồ hoạ mô phỏng quả bóng tròn màu đỏ chuyển
động đập vào các cạnh của màn hình dới một góc 45
0
?
Program cau3;
uses crt,graph;
var gd,gm,a,b,r: integer;
dx,dy: integer;
Begin
gd:=0;
initgraph(gd,gm,'C:\BIN\BGI');
r:=20; a:=320; b:=240; dx:=2; dy:=2;
Repeat
Setcolor(red); {Thiet lap ve hinh tron rong voi mau vien mau do}

Circle(a,b,r);
Delay(100);
Setcolor(black); {Thiet lap ve hinh tron rong voi mau vien mau den
cung voi mau nen cua man hinh}
Circle(a,b,r);
a:=a+dx;
b:=b+dy;{Thiet lap cho hinh tron chuyen dong dap vao canh cua
tam giac}
If(b < r) then dy:=2;
If(a > 640 - r) then dx:=-2;
If(b > 480 - r) then dy:=-2;
If (a < r) then dx:=2;
Until keypressed;
closegraph;
readln
end.
Câu 2: ((Đề dự bị THPT))
Viết chơng trình tính giá trị của tổng X(N) = 1
3
+ 3
3
+ 5
3
+ + (2N +
1)
3
, với N lần lợt 0, 1, 2, 3, , , chừng nào X(N) còn nhỏ hơn 2 x 10
9
. Đa ra
các giá trị X(N) ra màn hình.

Program gia_tri_tong;
const E=2000000000;
uses crt;
var n, tong, i: integer;
Function mu(a:integer): integer;
var i,A:integer,k;
Begin
k:=1;
for i:=1 to 3 do
k:=k*a;
mu:=k;
end;
begin
write('nhap n:');
readln(n);
tong:=1;
While tong<=E do
Begin
for i:=1 to n do
tong:=tong(n-1)+mu(2n-1);
n:=n+1;
end;
writeln('gia tri tong can tim la:', tong:10);
readln
end.
Câu 1: (Đề chính thức THCS)
Nhập vào một dãy số nguyên dơng gồm 10 số đợc nhập vào từ bàn
phím, thực hiện tính và đa ra màn hình:
Tính tổng các phần tử trong dãy số?
Đếm và tính tổng các số chẵn, số lẻ?

Program Tinh_tong_dem;
uses crt;
var A: array [1 10] of integer;
i,n,S,d1,d2,S1,S2: integer;
Begin
clrscr;
write('Nhap so phan tu trong mang:');
readln(n);
for i:=1 to n do
Begin
write('Cho A[',i,']=');
readln(A[i]);
end;
S:=0;d1:=0;d2:=0;S1:=0;S2:=0;
for i:=1 to n do
S:=S+A[i];
for i:=1 to n do
begin
If (A[i] div 2 = 0) then
begin
S1:=S1+A[i];
d1:=d1+1;
end
else
Begin
S2:=S2+A[i];
d2:=d2+1;
end;
end;
writeln('Tong cac phan tu trong day so :',S);

writeln('So cac phan tu chan trong day so nguyen:', d1, 'Tong cac phan tu
chan trong day la: ',S1);
writeln('So cac phan tu le trong day so nguyen:', d2, 'Tong cac phan tu le
trong day la: ',S2);
readln
end.
Câu 3: ((Đề chính thức THCS))
Cho một dãy số gồm 10 phần tử (X1, X2, X3, , X10)
1. Nhập giá trị các phần tử trong dãy số?
2. Sắp xếp các phần tử trong dãy số theo chiều tăng dần?
3. Tìm vị trí phần tử trong dãy số có giá trị = 25 theo phơng pháp tìm
kiếm nhị phân (Binary Search)?
Program cau6;
{uses crt;}
var A: array[1 20] of integer;
i,j,n,k,Dau,cuoi,giua,tg: integer;
Tim_thay:boolean;
begin
{Phan 1: Nhập giá trị các phần tử trong dãy số}
write('nhap so phan tu trong day so:');
readln(n);
for i:=1 to n do
Begin
writeln('Cho A[',i,']= ');
readln(a[i]);
end;
{Phan 2: S¾p xÕp c¸c phÇn tö trong d·y sè theo chiÒu t¨ng dÇn}
For j:=N downto n do
For i:=1 to j -1 do
If A[i]> A[j] then

begin
tg:=A[i];
A[i]:=A[i+1];
A[i+1]:=tg;
end;
writeln('Day so duoc sap xep la:');
For i:=1 to N do Write(A[i]:4);
{Phan 3: T×m vÞ trÝ phÇn tö trong d·y sè }
writeln('nhap gia tri k can tim:');
readln(k);
Dau:=1; Cuoi:=n; Tim_thay:=false;
While (dau <= Cuoi) and not (tim_thay) do
begin
Giua:=(dau+cuoi)div 2 ;
if A[giua]=k then
tim_thay:=true
else
if A[giua]>k then Cuoi:=Giua -1
else Dau:=Giua +1;
end;
if Tim_thay then
writeln('Chi so can tim la', Giua)
else
writeln('Khong tim thay');
readln
end.
C©u 2: ((§Ò dù bÞ THCS))
Lập trình giải phương trình bậc hai ax
2
+ bx + c = 0 (ẩn x)

(hệ số a, b, c là các số nguyên dương).
Program Cau7;
{ uses crt;}
var a,b,c: integer; delta,x1,x2: real;
begin
write('nhap vao he so cua phuong trinh: ');
readln(a,b,c);
If a = 0 then
Begin
writeln('Quay tro lai giai phuong trinh bac nhat !');
if b=0 then
begin
if c=0 then
writeln('Phuong trinh vo so nghiem')
else
writeln('Phuong trinh vo nghiem')
end
else
write('Phuong trinh co nghiem ',-c/b);
end
else
begin
delta:=b*b-4*a*c;
if delta=0 then
begin
x1:=-b/(2*a);
writeln('phuong trinh co 2 nghiem kep :', x1:10:4)
end
else
begin

if delta > 0 then
begin
writeln('Phuong trinh co 2 nghiem phan biet :');
x1:=(-b+sqrt(delta))/(2*a);
x2:=(-b-sqrt(delta))/(2*a);
writeln('nghiem thu nhat :',x1:10:4);
writeln('nghiem thu hai :',x2:10:4);
end
else
writeln('Phuong trinh vo nghiem');
end;
end;
readln
end.
C©u 3: (§Ò dù bÞ THCS)
Nhập vào 1 số tự nhiên N với (0 < N ≤ 65535), phân tích số vừa nhập
thành các thừa số nguyên tố, nếu số vừa nhập là số nguyên tố thì chỉ thông
báo ra màn hình đây là số nguyên tố.
VÝ dụ:
- Nếu số vừa nhập là 300, thì in ra màn hình 300 = 2. 2. 3. 5. 5
- Nếu số vừa nhập là 307, thì in ra màn hình “307 là số nguyên tố”
Program So_TN;
var d,m,k : integer;
Function kt(k: integer): Boolean;
Var i: integer;
begin
kt:=False;
if k<= 1 then exit;
i:=2;
While k mod i<>0 do i:=i+1;

if i=k then kt:=true;
end;
begin
write('nhap so m:'); readln(m);
d:=0;
k:=1;
writeln(m,'so nguyen to dau tien la: ');
While d<m do
begin
k:=k+1;
If kt(k) then
begin
write(k:4);
d:=d+1;
end;
end;
readln
end.

×