1. Trang chủ
  2. » Giáo Dục - Đào Tạo

de thi thu HSG tin hoc

5 119 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 54 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đa ra màn hình các yêu cầu sau: - Các số nguyên tố nếu có trong tệp, mối hàng chỉ đợc phép in 10 số mỗi số cách nhau 3 dấu cách.. - Các số hoàn hảo nếu có trong tệp, mỗi hàng cũng chỉ đợ

Trang 1

Đề thi chọn học sinh giỏi cấp trờng Môn: Tin học 12

Thời gian làm bài: 150 phút

Câu 1 Viết chơng trình đọc tệp có tên là SN.Dat chứa 100 số nguyên đợc chia

thành 10 hàng 10 cột mỗi số có giá trị tuyệt đối không vợt quá 1000 Đa ra màn hình các yêu cầu sau:

- Các số nguyên tố (nếu có trong tệp), mối hàng chỉ đợc phép in 10 số mỗi số cách nhau 3 dấu cách

- Các số hoàn hảo (nếu có trong tệp), mỗi hàng cũng chỉ đợc phép in 10 số mỗi

số cách nhau 3 dấu cách

- Kết quả đa vào tệp NT.DAT nếu là các số nguyên tố, đa vào tệp HH.DAT nếu

là số hoàn hảo Trên các tệp này mỗi dòng ghi 10 số

(Biết rằng số hoàn hảo là số mà tổng các ớc của nó bằng chính nó VD 6 = 3+2+1 vậy số 6 là số hoàn hảo)

Câu 2 Ngời ta xâu N viên đá quý kích thớc giống nhâu thành một vòng đeo cổ

(5� �N 120), mỗi viên có một màu trong số các màu đợc đánh số từ 1 đến 9 Để tăng tính độc đáo cho vòng trang sức quý này, ngời ta định lắp khoá đeo vào vị trí sao cho khi mở vòng ta đợc một dây đá quý có tính chất: không phụ thuộc vào việc cầm

đầu dây nào bên tay phải và đầu kia bên tay trái, ta đều đợc một chuỗi hạt giống nhau, tức là viên đá thứ i từ trái sang luôn có màu j không phụ thuộc vào cách cầm

Xâu S: 2 2 2 2 2 2 3 3 5 5 3 3

Yêu cầu:

- Nhập dữ liệu vào từ bàn phím số lợng hạt kim cơng thứ tự các hạt để xâu vào chuỗi hạt

- Tìm vị trí có thể để đặt khoá thoả mãn yêu cầu trên

Câu 3 Trong hệ trục toạ độ Oxy cho N đờng tròn bằng nhau có các tâm O1, O2,…,

ON , bán kính R Hệ đờng tròn trên đợc gọi là chuẩn nếu nếu các đờng tròn trên đôi một không chồng lên nhau(hai đờng tròn có thể tiếp xúc nhau)

Viết chơng trình kiểm tra hệ đờng tròn có chuẩn hay không?

Dữ liệu: cho trong File INP.DAT

+ Dòng 1: ghi số N là số lợng đờng tròn và bán kính R

+ N dòng tiếp theo mỗi dòng ghi hai số nguyên xi và yi là toạ độ của Oi

Dữ liệu là các số nguyên, các số nghi trên cùng một dòng cách nhau ít nhất 1 dấu cách

Ví dụ:

- INP.DAT Kết quả:

4 10 Hệ không chuẩn

0 0

1 1

10 10 -9 7

- Hết

-Giám thị không giải thích gì thêm

Cách đặt khoá thứ 1:

Cách đặt khoá thứ 2:

5

- INP.DAT Kết quả:

5 3 Hệ đờng tròn chuẩn:

0 0

0 6

10 20 -8 3 -2 -10

Trờng THPT Nguyễn Huệ

Năm học 2008 - 2009

Trang 2

Học sinh làm trên máy tính mỗi câu một chơng trình và lu vào đĩa mền.

Trang 3

Đề thi chọn học sinh giỏi trờng Năm học 2008 – 2009

-Đáp án và biểu điểm Câu 1 6đ

– Khai báo các biến hợp lệ, tổ chức đọc dữ liệu từ tệp đúng, song kết quả còn sai : 1đ

– Đọc tệp SN.DAT đa ra các số nguyên tố trên màn hình và ghi vào tệp NT.DAT : 2,5đ

– Đọc tệp SN.DAT đa ra các số hoàn hảo trên màn hình và ghi vào tệp HH.DAT : 2,5đ

Câu 2 7đ

– Khai báo các biến hợp lệ, nhập đợc dữ liệu từ bàn phím, song kết quả còn sai : 2đ

– Chỉ ra đợc các vị trí đặt khoá : 5đ

Câu 3 7 đ

– Khai báo các biến hợp lệ, tổ chức đọc dữ liệu từ tệp đúng, song kết quả còn sai : 2đ

– Thuật toán bằng NNLT Pascal thể hiện thuật toán cho kết quả đúng : 5 đ

Lời giả cụ thể cho các bài toán nh sau:

(Các bài toán đợc viêt trên NNLT Pascal)

Bài 1:

Program bai1;

Uses Crt;

Var A,b,c: Array[1 100] of integer;

N,i,j ,M,t,tong,k,l : Integer;

f1,f,f2: text;

Begin clrscr;

Assign(f,'C:\sn.dat');

reset(f);

Readln(f,N,M);

i:=0;

{$I+};

if IOresult <>0 then halt;

for i:=1 to N do Begin

for j:=1 to M do read(f,a[(i-1)*N+j]);

readln(f);

End;

close(f);

Assign(f1,'C:\HH.dat');

rewrite(f1);

t:=0;

WRITELN('KET QUA DOC TEP:');

For i:=1 to N do Begin

for j:=1 to M do Begin tong:=0;

write(A[(i-1)*N+j]:3);

for k:=1 to A[(i-1)*N+j]-1 do

if A[(i-1)*N+j] mod k =0 then tong:=tong+k;

Trang 4

if tong=A[(i-1)*N+j] then begin

t:=t+1;

c[t]:=A[(i-1)*N+j] ; write(f1,c[t]:5);

if t mod 10 =0 then writeln(f1);

end;

end;

writeln;

End;

Writeln('CAC SO HOAN HAO LA');

Assign(f2,'C:\NT.dat');

rewrite(f2);

for i:=1 to t do begin

Write(c[i]:3);

if i mod 10 = 0 then writeln;

end; l:=0;

For i:=1 to N do Begin

for j:=1 to M do

if abs(A[(i-1)*N+j])>1 then Begin

t:=2;

k:= TRUNc(SQRT(A[(i-1)*N+j]));

While (A[(i-1)*N+j] mod t<>0)and (t<=k) do t:=t+1;

if t>k then begin l:=l+1;

B[l]:=A[(i-1)*N+j] ; write(f2,B[l]:2);

if l mod 10 =0 then writeln(f2);

end;

end;

End;

Writeln('CAC SO NGUYEN TO LA:');

for i:=1 to L do begin

write(b[i]:3);

if i mod 10 = 0 then writeln;

end;

close(f1);

close(f2);

Readln End

Bµi 2.

Program cau2;

Uses crt;

Var A:array[1 50] of string;

ct:array[1 9]of byte;

i,j,n:byte; s,p:string[120]; h:string[240];

Begin clrscr;

Trang 5

write('So vien da quy: '); readln(n);

write('So chi thi mau: '); readln(s);

h:=s+s;

for i:=1 to 2*n do begin a[i]:=copy(h,i,n);

h:=s+s; end;

writeln('cac vi tri co then lap:');

for j:=1 to 2*n do begin p:='';

for i:=n downto 1 do p:=p+a[j][i];

if p=a[j] then writeln('giua ',j-1,' va ',j);

end;

readln end

Bµi 3

Program bai_3;

Uses Crt;

Var n: Byte;

R,i,j : Integer;

C: Array[1 2,1 100] of integer;

Procedure nhap;

Var f: text;

Begin

Assign(f, ‘INP.Dat’);

Reset(f);

Readln(f,n,R);

Fillchar(C,sizeOf(C),0);

For i:=1 to N do

Readln(f, C[1,i], C[2,i]);

Close(f);

End;

Funtion Kiemtra: Boolean;

Begin

Clrscr;

Kiemtra:=false;

If sqr(C[1,i] – C[2,i]) + sqr(C[1,i] – C[2,j])<4*R*R then exit;

Kiemtra:=true;

End;

Begin

Nhap;

IF kiemtra then Writeln(‘He duong tron chuan’)

Else Writeln(‘He duong tron khong chuan’);

Readln;

End

Ngày đăng: 21/01/2019, 16:08

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w