Cộng đồng chia sẻ tri thức Lib24.vn

Đề thi HSG Tin 9 tỉnh Bình Định năm 2015-2016

e2c47b2aed18b8b1869d65fd6d3242ba
Gửi bởi: Nguyễn Minh Lệ 31 tháng 10 2021 lúc 22:36:06 | Được cập nhật: 13 tháng 5 lúc 6:47:59 | IP: 14.165.7.152 Kiểu file: DOC | Lượt xem: 308 | Lượt Download: 1 | File size: 0.052224 Mb

Nội dung tài liệu

Tải xuống
Link tài liệu:
Tải xuống

Các tài liệu liên quan


Có thể bạn quan tâm


Thông tin tài liệu

SỞ GIÁO DỤC ĐÀO TẠO BÌNH ĐỊNH ĐỀ CHÍNH THỨC KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH LỚP 9 THCS KHÓA NGÀY: 18-3-2015 Môn thi: TIN HỌC Thời gian: 150 phút (không kể thời gian phát đề) Ngày thi: 18/3/2015 Tổng quan bài thi: Bài Tên bài Tên tệp chương trình 1 Liên phân số LIENPS.PAS 2 3 Số nguyên tố cùng nhau Tìm đường hái quả NTCN.PAS HAIQUA.PAS Tên tệp dữ liệu vào Nhập từ bàn phím NTCN.INP HAIQUA.INP Tên tệp dữ liệu ra Xuất trên màn hình NTCN.OUT HAIQUA.OUT Bài 1: Liên phân số (7,0 điểm): Số hữu tỉ dương a/b luôn được biểu diễn dưới dạng một liên phân số hữu hạn: Liên phân số này ký hiệu là [q 0,q1,q2,...,qn], trong đó q00; q1,q2,...,qn là những số nguyên dương; qn>1; n gọi là độ dài của liên phân số. Hãy viết chương trình biến đổi một phân số a/b thành liên phân số hữu hạn. Dữ liệu vào là hai số nguyên dương a, b nhập từ bàn phím để biểu diễn phân số a/b. Dữ liệu ra là một dòng gồm các số q0,q1,q2,...,qn biểu diễn dạng liên phân số của phân số a/b. Các số viết cách nhau ít nhất một khoảng cách. Ví dụ: Input Output a=7 122 b=5 Bài 2: Số nguyên tố cùng nhau: (7,0 điểm): Hai số nguyên dương được gọi là nguyên tố cùng nhau nếu ước số chung lớn nhất của chúng bằng 1. Cho N số nguyên dương A1,A2,...,AN. Gọi M là giá trị lớn nhất trong các số A1,A2,...,AN. Viết chương trình tìm số nguyên dương X lớn nhất không vượt quá M mà X nguyên tố cùng nhau với tất cả các số A1,A2,...,AN. Dữ liệu vào là tệp NTCN.Inp có cấu trúc như sau: - Dòng đầu là số nguyên dương N (N100). - N dòng tiếp theo, mỗi dòng chứa một giá trị tương ứng A1,A2,...,AN (Ai1000;i=1,2,...,N). Dữ liệu ra là tệp NTCN.Out chứa số nguyên X tìm được thỏa mãn điều kiện của bài toán. Ví dụ: NTCN.Inp NTCN.Out 3 13 4 12 15 Bài 3: Tìm đường hái quả (6,0 điểm): Một khu vườn hình chữ nhật kích thước MxN được chia thành các ô vuông đơn vị để trồng một loại cây ăn quả. Trên mỗi ô thì số quả tương ứng có thể hái được là A[i,j] (1iM; 1jN). Một người khách dạo qua vườn và hái tất cả các quả trên những ô đi qua. Vị trí xuất phát từ ô [1,1] và kết thúc tại ô [M,N] với hành trình là sang ô chung cạnh theo hướng tăng của i hoặc j (sang phải hoặc đi xuống – như hình vẽ). Hãy viết chương trình tìm lộ trình đi của người đó để hái được nhiều quả nhất. 1 3 5 7 2 7 9 4 2 2 2 3 1 6 7 7 4 6 2 5 Dữ liệu vào là tệp HAIQUA.INP có cấu trúc như sau: - Dòng đầu tiên là hai số M, N nguyên dương cách nhau một khoảng cách (0
0 do Begin r:=x mod y; x:=y; y:=r; End; Uc:=x; End; Procedure Psrg; Var m:Word; Begin m:=Uc(a,b); a:=a div m; b:=b div m; End; Procedure Xuli; Begin k:=0; Repeat If a>b then Begin q[k]:= a div b; a:= a mod b; End Else Begin q[k]:= b div a; b:= b mod a; End; inc(k); Until (a=1) or (b=1); If a
1 then q[k]:=a Else q[k]:=b; For i:=0 to k do Write(q[i],' '); End; Begin Clrscr; Repeat Write('Nhap a: '); Readln(a); Write('Nhap b: '); Readln(b); Until (a>0) and (b>0); Psrg; If a<=b then Write(0,' ',b) Else Xuli; Readln End. Câu 2: NTCN.Pas: Uses Type Const Crt; mmc=Array[1..100] of Word; fi='D:\Ntcn.Inp'; fo='D:\Ntcn.Out'; Var i,n,m:Byte; a:mmc; f,g:Text; Function Uc(x,y:Word):Boolean; Var r:Word; Begin While y
0 do Begin r:=x mod y; x:=y; y:=r; End; If x=1 then Uc:=True Else Uc:=False; End; Function mUc(c:mmc;k:Byte;m:Word):Boolean; Var i:Byte; kt:Boolean; Begin Kt:=True; For i:=1 to k do Kt:=(Uc(m,c[i]) and Kt); mUc:=Kt; End; Function Max(c:mmc;k:Byte):Word; Var i:Byte; m:Word; Begin m:=a[1]; For i:=2 to k do If mj then vMax:=i Else vMax:=j; End; Procedure Optimize; Var i,j:Word; Begin For i:=1 to n-1 do Begin L[i,0]:=0; L[0,j]:=0; End; L[0,0]:=0; L[1,1]:=A[1,1]; For i:=1 to m do For j:=1 to n do L[i,j]:=vMax(L[i,j-1],L[i-1,j]) + A[i,j]; End; Procedure Trace(i,j:Word); Begin If (L[i,j]=L[i,j-1] + A[i,j]) then Dec (j) Else Dec(i); If (i>0) and (j>0) then Begin Trace(i,j); Write(f,A[i,j],' '); End; End; Procedure Result; Begin Assign(f,fo); Rewrite(f); Writeln(f,L[m,n]); Trace(m,n); Writeln(f,A[m,n]); End; Begin Time:=Times; Enter; Optimize; Result; Write(f,(Times-Time)/18.2:0:2); Close(f); End.