Diễn đàn tin học Văn Lang - Vạn Ninh
Chào mừng bạn đến với Diễn đàn Tin học Văn Lang - Vạn Ninh của chúng tôi !
Hãy đăng nhập hoặc đăng kí tài khoản để trải nghiệm nhiều điều thú vị tại đây !
Thân ái !

Diễn đàn tin học Văn Lang - Vạn Ninh

Nơi trao đổi thông tin, tăng cường hợp tác, giải đáp những vướng mắc khi học lập trình Pascal
 
Trang ChínhCalendarTrợ giúpTìm kiếmThành viênNhómĐăng kýĐăng Nhập

Share | 
 

 đề thi hsg

Go down 
Tác giảThông điệp
pqtoan



Posts : 72
Danh tiếng : 3
Join date : 10/11/2014

Bài gửiTiêu đề: đề thi hsg    25/1/2015, 14:46

ĐỀ THI CHÍNH THỨC KỲ THI CHỌN HỌC SINH GIỎI LỚP 9 CẤP TỈNH
MÔN: TIN HỌC
THỜI GIAN: 150 PHÚT  (Không kể thời gian phát đề)



Lưu ý: Thí sinh tạo thư mục là SBD của mình, làm bài và lưu với tên tập tin là bai1.pas, bai2.pas, bai3.pas vào thư mục SBD vừa tạo.

Câu 1: (7 điểm) Số nguyên dương n gọi là song tố  khi n là số nguyên tố và tổng chữ số của nó cũng là số nguyên tố.
Yêu cầu: Viết chưong trình thực hiện công việc sau:
a) Nhập vào số nguyên n. Hãy cho biết n có là số song tố hay không?
b) In ra các số song tố bé hơn hoặc bằng n.
c) In ra các cặp số nguyên tố lẻ liên tiếp nhỏ hơn hoặc bằng n.
Ví dụ:  
Nhập Câu a Câu b Câu c
n=11 So n la so song to 2 3 5 7 11 (3,5); (5,7)




Câu 2: (7.0 điểm) Cho một chuỗi gồm n2 ký tự. Người ta cắt chuỗi từ trái sang phải thành n chuỗi con, mỗi chuỗi con có đúng n ký tự. Viết mỗi chuỗi con thành một cột, ta có một bảng gồm n hàng và n cột ký tự.
Yêu cầu: Viết chương trình nhập vào một chuỗi gồm n2 ký tự (4   n2  255).
a) In ra màn hình các hàng có tổng mã ASCII của các ký tự là lớn nhất.
b) In giá trị tổng ở câu a ra màn hình.
Ví dụ:
Nhập chuỗi  
abcdefghi
Bảng
a d g
b e h
c f  i
Kết quả
a) c f  i
b) 306

Câu 3: (6.0 điểm) Khi đào hầm Thủ Thiêm người ta dùng một Robot để đào, ban đầu người ta đào đường hầm 1 đơn vị độ dài sau đó đặt Robot xuống. Robot này được điều khiển bởi 2 lệnh là: C1 và N2.
- Lệnh C1 là đào thêm 1 đơn vị độ dài thì tốn 2 đơn vị năng lượng.
- Lệnh N2 là đào thêm một đoạn đường hầm bằng độ dài đang có thì tốn 4 đơn vị năng lượng.
Hãy viết chương trình ra lệnh cho Robot đào một đường hầm có độ dài k đơn vị độ dài với các lệnh là ít nhất và sự tiêu tốn năng lượng là thấp nhất. Biết ban đầu đường hầm dài 1 đơn vị độ dài.
Yêu cầu:
- Dữ liệu vào trong tập tin Robot.inp gồm một số k là độ dài đường hầm cần đào.
- Dữ liệu ra trong tập tin Robot.out gồm hai dòng:
+ Dòng đầu là số năng lượng ít nhất đã tiêu tốn cho Robot đào hầm.
+ Dòng tiếp theo chứa các lệnh C1 hoặc N2, mỗi lệnh cách nhau 1 khoảng trắng.
Ví dụ:
Robot.inp
10
Robot.out
12
C1 N2 C1 N2




(Giám thị coi thi không giải thích gì thêm)
--- Hết---
Về Đầu Trang Go down
Xem lý lịch thành viên
Admin
Admin
avatar

Posts : 115
Danh tiếng : 5
Join date : 10/11/2014
Age : 17

Bài gửiTiêu đề: Re: đề thi hsg    25/1/2015, 15:59

Đáp án bài 3:
uses crt;
var q:array[1..100] of integer;
l,d,i,t: word;
begin
clrscr;
write(' Nhap do dai duong ham: '); readln(l);
d:= 0;
repeat
inc(d);
if l mod 2 = 1 then
begin
q[d]:= 2;
dec(l)
end
else
begin
q[d]:= 4;
l:= l div 2
end;
until l=2;
inc(d); q[d]:= 2;
t:= 0;
for i:= 1 to d do t:= t+q[i];
writeln(' Tong nang luong: ',t);
for i:= 1 to d do
if d=2 then write(' C1') else write(' N2');
readln
end.
Về Đầu Trang Go down
Xem lý lịch thành viên http://forumpascalvanlang.forumvi.com
Admin
Admin
avatar

Posts : 115
Danh tiếng : 5
Join date : 10/11/2014
Age : 17

Bài gửiTiêu đề: Re: đề thi hsg    25/1/2015, 16:01

Đáp án bài 1:
uses crt;
var n,i: word;
function snt(n: word): boolean;
var i: word;
d: byte;
begin
d:= 0;
for i:= 1 to n do if n mod i = 0 then inc(d);
if d=2 then snt:= true else snt:= false;
end;
function tcs(n: word): byte;
var s,t: word;
begin
s:= n; t:= 0;
repeat
t:= t+(s mod 10);
s:= s div 10;
until s=0;
tcs:= t;
end;
begin
clrscr;
write('Nhap vao mot so: '); readln(n);
if snt(n) and snt(tcs(n)) then writeln(n,' la so song to.')
else writeln(n,' khong phai la so song to.');
writeln('Cac so song to ko lon hon ',n,': ');
for i:= 1 to n do if snt(i) and snt(tcs(i)) then write(i:5);
writeln;
writeln('Cac cap so nguyen to sinh doi khong lon hon ',n,': ');
for i:= 3 to n-2 do if snt(i) and snt(i+2) then writeln(i,' ; ',i+2);
readln
end.
Về Đầu Trang Go down
Xem lý lịch thành viên http://forumpascalvanlang.forumvi.com
Admin
Admin
avatar

Posts : 115
Danh tiếng : 5
Join date : 10/11/2014
Age : 17

Bài gửiTiêu đề: Re: đề thi hsg    25/1/2015, 16:02

Đáp án bài 2:
uses crt;
var a:array[1..16] of word;
c:string;
i,j,n: byte;
max: word;
begin
clrscr;
write(' Nhap chuoi: '); readln(c);
n:= trunc(sqrt(length(c)));
writeln(' Bang la: ');
for i:= 1 to n do
begin
for j:= 1 to n do
begin
write(' ',c[n*(j-1)+i]);
a[i]:= a[i]+ ord(c[n*(j-1)+i]);
end;
writeln;
end;
max:= a[1]; j:= i;
for i:= 2 to n do if a[i]>max then max:= a[i];
writeln(' Ket qua: ');
writeln(' a/');
for i:= 1 to n do
if a[i]=max then
begin
for j:= 1 to n do write(' ',c[n*(j-1)+i]);
writeln
end;
writeln;
writeln(' b/ Tong ma ASCII cua cac ki tu: ',max);
readln
end.
Về Đầu Trang Go down
Xem lý lịch thành viên http://forumpascalvanlang.forumvi.com
Nhọn Sky M-tp(Anh Vũ)

avatar

Posts : 11
Danh tiếng : 0
Join date : 16/11/2014
Age : 17

Bài gửiTiêu đề: Re: đề thi hsg    5/2/2015, 16:30

uses crt;
var n,i,m,tong:integer;
begin
clrscr;
write('nhap so n=');readln(n);
if n<=1 then write('ko co so nguyen to nao nho hon ',n)
else writeln('cac so nguyen to nho hon ',n,' la ');
tong:=0;
for i:=2 to n do
begin
m:=2;
while i mod m<>0 do inc(m);
if m=i then
begin
writeln(m:3);
tong:=tong+m;
end;
end;
writeln('tong cac so nguyen to nho hon ',n,' la ',tong);
readln;
end.
Về Đầu Trang Go down
Xem lý lịch thành viên
anhtruong35



Posts : 6
Danh tiếng : 0
Join date : 16/11/2014

Bài gửiTiêu đề: Re: đề thi hsg    5/2/2015, 16:30

uses crt;
type mang=array[1..100]of integer;
var a,b,c:mang;
n,m,l:integer;
{******nhap******}
procedure nhap(var a:mang;n:integer);
var i:integer;
begin
for i:=1 to n do
begin
write('a[',i,']:=');readln(a[i]);
end;
end;
{******xuat******}
procedure xuat(var a:mang;m:integer);
var i:integer;
begin
for i:=1 to n do
write(a[i]:5);
writeln;
end;
{****************}
procedure sapxep(var a:mang;n:integer);
var i,j,t:integer;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]>a[j] then
begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
end;
end;
{*****************}
procedure tronmang(a,b:mang;var c:mang;n,m:integer;var l:integer);
var i,j,t:integer;
begin
i:=1;j:=1;t:=1;
while (i<=n) and (j<=m) do
if a[i]<=b[j] then
begin
c[t]:=a[i];
t:=t+1;
i:=i+1;
end
else
begin
c[t]:=b[j];
t:=t+1;
j:=j+1;
end;
while i<=n do
begin
c[t]:=a[i];
t:=t+1;
i:=i+1;
end;
while j<=m do
begin
c[t]:=b[j];
t:=t+1;
j:=j+1;
end;
l:=t-1;
end;
{***************}
begin
clrscr;
writeln('chuong trinh tron hai mang');
writeln('nhap du lieu cho day a:');
write('nhap so phan tu cua day a:');readln(n);
nhap(a,n);
writeln('nhap du lieu cho day b:');
write('nhap so phan tu cua day b:');readln(m);
nhap(b,m);
readln;
writeln('day a sau khi duoc sap xep tang dan la:');
sapxep(a,n);
xuat(a,n);
readln;
writeln('day b sau khi duoc sap xep tang dan la:');
sapxep(b,m);
xuat(b,m);
readln;
writeln('tron day a va day b la:');
tronmang(a,b,c,n,m,l);
xuat(c,l);
readln;
end.
Về Đầu Trang Go down
Xem lý lịch thành viên
Sponsored content




Bài gửiTiêu đề: Re: đề thi hsg    

Về Đầu Trang Go down
 
đề thi hsg
Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Diễn đàn tin học Văn Lang - Vạn Ninh :: Các bộ đề thi-
Chuyển đến