Đặt tên các bài làm và tên tệp dữ liệu theo quy định trong bảng sau: Stt Bài Quy định đặt tên tệp 1 Bài 1 Bai1.Pas Nhập từ bàn phím Xuất ra màn hình 2 Bài 2 Bai2.Pas Nhập từ bàn phím Xuấ
Trang 1HỘI THI TIN HỌC TRẺ KC ĐỀ THI PHẦN THỰC HÀNH
Thời gian làm bài: 120 phút
Ngày thi: 30-03-2012
YÊU CẦU CHUNG:
- Nếu thí sinh không sử dụng tệp dữ liệu vào ra, có thể nhập dữ liệu từ bànphím và xuất kết quả ra màn hình
- Tạo thư mục với tên theo quy định C2_SBD trong ổ D:\ (trong đó SBD là sốbáo danh của thí sinh) Các bài làm của thí sinh phải lưu trong thư mục này
- Sử dụng ngôn ngữ lập trình Turbo Pascal hoặc Free Pascal để viết chươngtrình Đặt tên các bài làm và tên tệp dữ liệu theo quy định trong bảng sau:
Stt Bài Quy định đặt tên tệp
1 Bài 1 Bai1.Pas Nhập từ bàn phím Xuất ra màn hình
2 Bài 2 Bai2.Pas Nhập từ bàn phím Xuất ra màn hình
3 Bài 3 Bai3.Pas Nhập từ bàn phím Xuất ra màn hình
4 Bài 4 Bai4.Pas Nhập từ bàn phím Xuất ra màn hình
Số chính phương là một số nguyên có căn bậc hai là một số nguyên (ví dụ: 9 là
số chính phương vì 9=3) Viết chương trình tìm, đếm và tính tổng các số chínhphương có trong dãy số nguyên dương gồm N phần tử A1, A2, …, AN
Dữ liệu vào: Nhập từ bàn phím
Kết quả ra: Xuất ra màn hình gồm 3 dòng:
- Dòng 1 ghi các số chính phương của dãy giữ nguyên thứ tự xuất hiện (mỗi sốcách nhau một dấu cách)
- Dòng 2 ghi số lượng số chính phương trong dãy
- Dòng 3 ghi tổng của các số chính phương trong dãy
165
Bài 3: (20 điểm)
Viết chương trình phân tích một số nguyên dương ra thừa số nguyên tố
Trang 2Dữ liệu vào: Nhập từ bàn phím số nguyên dương N
Kết quả ra: Xuất ra màn hình
Ví dụ:
Nhập từ bàn phím Xuất ra màn hình
50│2 25│5 5│5 1│
Bài 4: (20 điểm) TỔNG CÁC SỐ FIBONACI
Dãy Fibonaci là dãy gồm các số: 1, 1, 2, 3, 5, 8, được xác định bởi côngthức sau:
F1=1, F2=1, Fi=Fi-1+Fi-2 với i>2
Em hãy biểu diễn một số tự nhiên N thành tổng của ít nhất các số Fibonacikhác nhau
Trang 3WRITELN(CHUONG TRINH TINH TONG S=1+1.2+1.2.3+ +1.2.3 N LA');
WRITE(‘NHAP VAO MOT SO: ‘);READLN(N);
Số chính phương là một số nguyên có căn bậc hai là một số nguyên (ví dụ: 9 là
số chính phương vì 9=3) Viết chương trình tìm, đếm và tính tổng các số chínhphương có trong dãy số nguyên dương gồm N phần tử A1, A2, …, AN
Dữ liệu vào: Nhập từ bàn phím
Kết quả ra: Xuất ra màn hình gồm 3 dòng:
- Dòng 1 ghi các số chính phương của dãy giữ nguyên thứ tự xuất hiện (mỗi sốcách nhau một dấu cách)
- Dòng 2 ghi số lượng số chính phương trong dãy
- Dòng 3 ghi tổng của các số chính phương trong dãy
165program So_Chinh_Phuong;
uses crt;
var n,i,j,dem,tong,tam:integer;
a:array[1 100] of integer;
Trang 4Viết chương trình phân tích một số nguyên dương ra thừa số nguyên tố.
Dữ liệu vào: Nhập từ bàn phím số nguyên dương N
Kết quả ra: Xuất ra màn hình
Ví dụ:
Nhập từ bàn phím Xuất ra màn hình
50│2 25│5 5│5 1│
Trang 5Bài 4: (20 điểm) TỔNG CÁC SỐ FIBONACI
Dãy Fibonaci là dãy gồm các số: 1, 1, 2, 3, 5, 8, được xác định bởi côngthức sau:
F1=1, F2=1, Fi=Fi-1+Fi-2 với i>2
Em hãy biểu diễn một số tự nhiên N thành tổng của ít nhất các số Fibonacikhác nhau
write(‘NHAP VAO MOT SO: ’);READLN(N);
for i:=1 to 1000 do a[i]:=-1;
Trang 7( thi có 02 trang, g m 3 b i) Đề ồ a Th i gian : ờ 150 phút (không k th i gian giao ) ể ờ đề
Ng y thi : à 18/2/2011
C u truc thi: â đê
STT Tên b i a Tên file b i l m a a Tên file INPUT Tên file OUTPUT
K t qu ra:ế ả Xu t ra m n hình g m các dòngấ à ồ
- Dòng 1 ghi các s nguyên t c a dãy gi nguyên th t xu t hi n (m i số ố ủ ữ ứ ự ấ ệ ỗ ốcách nhau m t d u cách).ộ ấ
- Dòng 2 ghi s l ng s nguyên t trong dãy.ố ượ ố ố
- Dòng 3 ghi t ng c a các s nguyên t trong dãy.ổ ủ ố ố
Trang 8WRITE('NHAP VAO SO A = ');READLN(A);
WRITE('NHAP VAO SO B = ');READLN(B);
IF (A<>0) THEN
BEGIN
IF (A>0) THEN WRITELN('PT CO NGHIEM LA X >= ',-B/A:2:2)
ELSE WRITELN('PT CO NGHIEM LA X < ',-B/A:2:2);
END
ELSE
BEGIN
Trang 9IF (B>=0) THEN WRITELN('PT CO VO SO NGHIEM') ELSE WRITELN('PT VO NGHIEM');
for i:=2 to trunc(sqrt(k)) do
if k mod i = 0 then exit;
Trang 10for i:=2 to length(st) do
if st[i]=s[1] then s:=s+st[i]
if length (s)=1 then write(s)
else write (length(s),s[1]);
Write(‘Cho biet so cot: ‘);readln(n);
Write(‘Cho biet so dong: ‘);readln(m);
For i:=1 to n do
For j:=1 to m do
BEGIN
Write(‘a[‘,I,’]: ‘);Readln(A[i,j]); END;
Trang 11C u truc thi: â đê
STT Tên b i a Tên file b i l m a a Tên file INPUT Tên file OUTPUT
Vi t ch ng trình ki m tra xem m t m ng s nguyên cho tr c có l p th nh ế ươ ể ộ ả ố ướ ậ à
m t c p s c ng hay không ? N u có cho bi t công sai.ộ ấ ố ộ ế ế
Trang 12D li u v o:ữ ệ à Nh p t b n phím: ậ ừ à
+ Dòng u ghi s nguyên d ng N (N<=10000), đầ ố ươ
+ Dòng ti p theo ghi N s nguyên d ng (m i s cách nhau m t d u cách).ế ố ươ ỗ ố ộ ấ
5 11 9 15 13 7 17 LA CAP SO CONGCONG SAI 2
Vi t ch ng trình nh p v o m t chu i g m các ký t ‘a z’ v ‘A Z’ v ế ươ ậ à ộ ỗ ồ ự à à
‘0 9’ nh p liên t c không có kho ng tr ng v xen k nhau gi a các s v ch có ậ ụ ả ắ à ẻ ữ ố à ữ
d i L (4 ký t <L<40 ký t ) Sau ó tính t ng các ch s có trong chu i ó
Trang 13-H t -ế
B I GI I À Ả Bài 1:
Trang 16clrscr;
write('Nhap chuoi: ');readln(s);
writeln('Cac so co trong chuoi vua nhap la:');
C u truc thi: â đê
STT Tên b i a Tên file b i l m a a Tên file INPUT Tên file OUTPUT
Cho mảng 2 chiều A có kích thước MxN số nguyên Phần tử A[i,j] được gọi là phần
tử yên ngựa nếu nó là phần tử nhỏ nhất trong hàng i đồng thời là phần tử lớn nhất trong cột j.
Em hãy l p ch ng trình tìm ph n t yên ng a c a m ng A ậ ươ ầ ử ự ủ ả
Dữ liệu vào: Nhập từ bàn phím gồm:
- Dòng đầu tiên gồm 2 số M, N (0 ≤ M,N ≤100)
- M dòng tiếp theo, mỗi dòng gồm có N số nguyên của mảng A
(các giá trị cách nhau ít nhất 1 khoảng cách).
Dữ liệu ra: Xuất ra màn hình vị trí của các phần tử yên ngựa (nếu có) hoặc dòng
thông báo “Không có phần tử yên ngựa”.
Ví dụ:
Nhập từ bàn phím Xuất ra màn hình
3 3
Trang 17Em hãy vi t ch ng trình tìm các s siêu nguyên t có N ch s (0 < N <10) v s ế ươ ố ố ữ ố à ố
l ng các s tìm ượ ố đượ c.
D li u v o ư ê a : cho trong File SIEUNT.INP ch a s N.ứ ố
K t qu ê a: ghi ra file SIEUNT.OUT g m các dòng:ồ
- Dòng 1: s l ng các s siêu nguyên t có N ch s ố ượ ố ố ữ ố
- Dòng ti p theo li t kê các s siêu nguyên t tìm ế ệ ố ố đượ c.
-H T - Ế
H v tên thí sinh: ọ à S báo danh: ố Giám th 1: ị Ký tên: Giám th 2: ị Ký tên:
Trang 18CHƯƠNG TRÌNH MẪU BÀI 1:
Write(‘Cho biet so cot: ‘);readln(n);
Write(‘Cho biet so dong: ‘);readln(m);
for i := 1 to n do Min[i] := MaxLongInt;
for j := 1 to m do Max[j] := -MaxLongInt;
for i := 1 to n do
begin
for j := 1 to m do
begin
if Min[i] > a[i,j] then Min[i] := a[i,j];
if Max[j] < a[i,j] then Max[j] := a[i,j];
Trang 19Until (a>=m) and (b>=m);
if a<b then begin t:=a;a:=b;b:=t;end;
Repeat
a:=a-b;
b:=b-a;
Until ( (kt(a)) and (a<m)) or ( (kt(b)) and (b<m) );
If a>b then writeln(a);
if b>a then writeln(b);
Trang 21Viết chương trình tìm tất cả các số nguyên tố nhỏ hơn hoặc bằng số n cho trước
(n<=1000000) Tìm số lượng các số nguyên tố tìm được trong khoảng từ 1 đến n.
Yêu cầu:
− Dòng thứ nhất gồm các số nguyên tố tìm được ngăn cách bởi dấu cách
− Dòng thứ 2 là số lượng các số nguyên tố tìm được ngăn cách bởi dấu cách
Trang 23for i:=2 to trunc(sqrt(n)) do
if (n mod i=0) then exit;