You are on page 1of 5

PHÒNG GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HSG CẤP HUYỆN LỚP 9

ĐỒNG XUÂN MÔN: TIN HỌC


NĂM HỌC: 2017 - 2018
ĐỀ CHÍNH THỨC Ngày thi: 30-11-2017
Thời gian làm bài: 150 phút ( không kể thời gian phát đề)
(Đề thi có 2 trang)

Chú ý :
- Mỗi thí sinh tạo một Folder có tên là: HSG_<Số báo danh của thí sinh> chứa trong
D:\ và lưu các file sau vào đúng Folder vừa tạo.
- Tạo tệp tin tên BAI1.PAS; BAI2.PAS; BAI3.PAS; BAI4.PAS tương ứng với Bài 1;
Bài 2; Bài 3; Bài 4.
Bài 1: (6 điểm)
Viết chương trình nhập từ bàn phím hai số tự nhiên A, B (A,B  181). Hãy in ra màn
hình giá trị của các biểu thức:
a/ A2  B 2
b/ A2  B 2

Ví dụ:
INPUT OUTPUT
Nhap so A: 2 -5
Nhap so B: 3 3.6056

Nhap so A: 7 48
Nhap so B: 1 7.0711

Bài 2: (6,0 điểm)


Viết chương trình nhập vào một mảng A gồm N số nguyên và nhập thêm một số
nguyên X vào mảng. Hãy kiểm tra xem số X có trong mảng A hay không?. Nếu có thì xuất vị
trí của số X trong mảng, ngược lại số X không có trong mảng.

Ví dụ:
INPUT OUTPUT
Nhap so N= 5 Vi tri cua X trong mang la: 4
1 3 4 6 7, nhập X=6
Nhap so N= 3 X khong co trong mang
3 4 5, nhập X=1

Bài 3: (4,0 điểm)


Tìm số : Viết chương trình nhập xâu s gồm có ít nhất 5 kí tự số. Hãy xóa bỏ một số kí
tự trong xâu s và chỉ để lại 4 kí tự số sao cho vẫn giữ nguyên thứ tự của chúng và số đó có giá
trị lớn nhất.
Dữ liệu vào: Từ tệp bai3.inp gồm 1 dòng chứa xâu s
Dữ liệu ra: ghi vao tệp bai3.out xâu s chứa 4 kí tự số còn lại tạo thành số lớn nhất

1
Ví dụ:
Bai3.inp Bai3.out
3011thiHSG2017 3217
2017abcDEF3011 7311

Bài 4: (4,0 điểm)


Với ba số nguyên dương a, b, c.
Ba số a, b, c được gọi bộ ba số Pythagore nguyên tố khi thỏa mãn hai điều kiện sau:
2 2 2
- a b  c
- a, b, c là ba số nguyên tố cùng nhau.
Hãy viết chương trình kiểm tra ba số a, b, c có đúng là bộ ba số Pythagore nguyên tố
hay không ? Nếu đúng thì in ra màn hình “D”, ngược lại thì “S”.
* Lưu ý: Quy tắc nhập các số: a < b < c

Ví dụ:
INPUT OUTPUT
Nhap ba so a, b, c: 5 12 13 D
Nhap ba so a, b, c: 13 84 85 D
Nhap ba so a, b, c: 10 24 26 S
Nhap ba so a, b, c: 7 8 9 S

Một số bộ ba số Pythagore để thí sinh nhập mẫu:


(3,4,5); (5, 12, 13); (6, 8, 10); (7, 24, 25); (8, 15, 17); (9, 40, 41); (10, 24, 26); (11; 60, 61);
(12, 16, 20); (12, 35, 37); (13, 84, 85); (14, 28, 50); (15, 20, 25); (16, 30, 34); (20, 21, 29);
(20, 48, 52); (21, 72, 75); (24, 30, 34); (33, 56, 65); (35, 84, 91); (36, 48, 60); (36, 77, 85);
(39, 80, 89); (48, 55, 73); (65, 72, 97) …

------------------- Hết -------------------


Học sinh không được sử dụng tài liệu. Giám thị coi thi không giải thích gì thêm

2
ĐÁP ÁN
Bài 1 (6đ) Điểm chi tiết
program Bai1;
uses crt;
var a,b: integer;
begin
clrscr;
write('Nhap hai so a='); readln(a); 2
write('Nhap hai so b='); readln(b);
{Cau a}
writeln('Gia tri cua bieu thuc la:= ',sqr(A)-sqr(B)); 2

{cau b}
writeln('Gia tri can bac 2 :=',SQRT((sqr(A)+sqr(B))):2:4); 2
readln;
end.
Bài 2(6đ)
program Bai2;
Uses Crt;
Type Mang = ARRAY[1..50] Of Integer;
Var A:Mang;
N,i,x:Integer;
Function TimKiem(x, N: Integer; A:Mang):Integer; 2
Var i:Integer;
Begin
I:=1;
While (I <= N) and (X<>A[I]) do
I:=I+1;
If I <= N Then Timkiem:=I
Else Timkiem:=0;
End;
Begin
{Nhap mang}
Write('Nhap N='); Readln(N); 2
For i:=1 To N Do
Begin
Write('A[',i,']='); Readln(A[i]);
End;
Write('Nhap X='); Readln(x);
{Ket qua tim kiem}
If TimKiem(X,N,A)<>0 Then 2
Writeln('Vi tri cua X trong mang la:',
TimKiem(X,N,A))
Else Writeln('X khong co trong mang.');
Readln;
3
End.
Bài 3(4đ)
program Bai3;
var f1,f2,g:text;
s:string;
{---------------------------------------} 1
procedure Nhap;
Begin
assign(f1,'d:\vao.inp');
reset(f1);
read(f1,S);
close(f1);
end;
{---------------------------------------}
procedure xuly; 3
var i,j,k:byte;
begin
i:=1;
repeat
if s[i] in ['0'..'9'] then inc(i) else delete(s,i,1);
until i>length(s);
for i:=1 to 4 do
begin
k:=i;
for j:=i to length(s)+i-4 do
if s[k]<s[j] then k:=j;
if k>i then delete(s,i,k-i);
end;
assign(f2,'d:\ra.oup');
rewrite(f2);
writeln(f2,copy(s,1,4));
close(f2);
end;
{---------------------------------------}
Begin
Nhap;
xuly; 1
readln;
end.
Bài 4(4đ)
program Pytago_nguyen_to;
uses crt;
var a,b,c,t: integer;

begin
clrscr;
4
write('Nhap ba so a, b, c: '); readln(a,b,c); 1
if ((a*a + b*b) =c*c) then
begin
{ kiem tra UCLN(b,c) } 1
while b<>0 do
begin
t:= c mod b;
c:=b;
b:= t;
end;
{ kiem tra UCLN(UCLN(b,c),a) } 2
if a>=c then begin t:=a; a:=c; c:=t; end;

while a<>0 do
begin
t:= c mod a;
c:=a;
a:= t;
end;
if c = 1 then write('D')
else write('S');
end
else
write('S');
readln;
end.

You might also like