1. Trang chủ
  2. » Trung học cơ sở - phổ thông

thi hsg tin tinh quang nam

27 10 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Việc đọc dòng lệnh và thực hiện lệnh của Robot được tiến hành theo các chu trình như sau: + Chu trình thứ nhất: Đọc ký tự thứ nhất, thực hiện lệnh tương ứng trên sản phẩm thứ nhất.. Tiếp[r]

(1)SỞ GIÁO DỤC VÀ ĐÀO TẠO HÀ TĨNH ĐỀ CHÍNH THỨC (Đề thi có trang) ĐỀ THI CHỌN HỌC SINH GIỎI TỈNH LỚP THCS - NĂM HỌC 2010 - 2011 Môn thi: Tin học Thời gian 180 phút (Không kể thời gian giao đề) TỔNG QUAN BÀI THI Bài Bài Bài Tên bài Dãy lớn Robot công nghiệp Tạo sơn tổng hợp Tệp bài làm DAYSO.PAS ROBOT.PAS SON.PAS Tệp liệu vào DAYSO.INP ROBOT.INP Tệp liệu DAYSO.OUT ROBOT.OUT SON.OUT Sử dụng ngôn ngữ lập trình Pascal hãy lập chương trình giải các bài toán sau đây: Bài 1: Dãy lớn Cho dãy số A gồm N số nguyên A 1, A2, , AN Dãy số Ap, ,Aq với 1≤p,q≤N gọi là dãy dãy số A Tổng giá trị các số dãy gọi là trọng lượng dãy đó Hãy tìm dãy có trọng lượng lớn dãy số A Dữ liệu vào là tệp văn dayso.inp có cấu trúc: - Dòng đầu tiên chứa số N (N≤255) - Dòng thứ hai chứa dãy số A, các số ghi cách ít là ký tự trống Dữ liệu là tệp văn dayso.out có cấu trúc sau: - Dòng đầu tiên chứa hai số cách ít ký tự trống là số số đầu và số cuối dãy tìm - Dòng thứ hai chứa trọng lượng dãy tìm Ví dụ: Tệp dayso.inp Tệp dayso.out 13 -1 -2 Bài 2: Robot công nghiệp Trong nhà máy có trang bị loại Robot công nghiệp để thực việc tự động hoá gia công các sản phẩm Việc gia công các sản phẩm Robot thực đồng thời trên hai sản phẩm cùng lúc theo tiến trình: Với loại thao tác gia công Robot thực trên sản phẩm thứ xong chuyển sang thực trên sản phẩm thứ hai Để hoàn thành sản phẩm, Robot có thể thực tới N loại thao tác gia công (N≤ 24) và loại thao tác gia công đã thực trên sản phẩm nào đó thì không thực lại trên sản phẩm đó Robot hoạt động lệnh là dãy ký tự in hoa, ký tự là lệnh thực cho loại thao tác gia công Lệnh thực các loại thao tác gia công khác là các ký tự khác Việc đọc dòng lệnh và thực lệnh Robot tiến hành theo các chu trình sau: + Chu trình thứ nhất: Đọc ký tự thứ nhất, thực lệnh tương ứng trên sản phẩm thứ Tiếp theo đọc ký tự thứ N, thực lệnh tương ứng trên sản phẩm thứ hai + Chu trình thứ hai: Đọc ký tự thứ hai, thực lệnh tương ứng trên sản phẩm thứ Tiếp theo đọc ký tự thứ N-1, thực lệnh tương ứng trên sản phẩm thứ hai + Chu trình thứ ba: Đọc ký tự ba, thực lệnh tương ứng trên sản phẩm thứ Tiếp theo đọc ký tự thứ N-2, thực lệnh tương ứng trên sản phẩm thứ hai (2) Tương tự với các chu trình còn lại để đọc hết dòng lệnh Với xâu S các ký tự in hoa có số lượng các ký tự là chẵn và không quá N x 2, hãy xác định xem nó có phải là dòng lệnh Robot đã nói trên hay không? Dữ liệu vào: Tệp văn ROBOT.INP có cấu trúc: - Dòng đầu tiên ghi số là độ dài xâu S - Dòng thứ ghi xâu S Dữ liệu ra: Tệp văn ROBOT.OUT ghi thông báo ‘CO’ xâu S là dòng lệnh Robot, ngược lại ghi thông báo ‘KHONG’ Ví dụ: Tệp ROBOT.INP CBAABC Tệp ROBOT.INP ACBDCA Tệp ROBOT.OUT CO Tệp ROBOT.OUT KHONG Bài 3: Tạo sơn tổng hợp Từ N loại sơn ban đầu có số hiệu là 1, 2, , N (1≤N≤9), người ta có thể tạo nhiều loại sơn tổng hợp khác cách trộn lẫn số loại sơn nào đó lại với theo liều lượng nào đó loại Khi tham gia trộn để loại sơn tổng hợp nào đó, các loại sơn khác đưa vào từ các vị trí khác và liều lượng loại sơn là bao nhiêu phụ thuộc vào thứ tự vị trí đưa vào loại sơn đó Liều lượng loại sơn mà khác trộn thì cho các loại sơn tổng hợp khác Hãy liệt kê tất các phương án trộn M loại sơn (M≤N) N loại sơn đã cho để có các loại sơn tổng hợp Dữ liệu vào: Giá trị các số N, M đưa vào từ bàn phím Dữ liệu là tệp văn SON.OUT có cấu trúc: Mỗi dòng ghi số hiệu M loại sơn theo thứ tự đưa vào trộn để tạo loại sơn tổng hợp nào đó Dòng cuối cùng ghi số lượng các loại sơn tổng hợp tạo Ví dụ: Tệp son.out N=3 M=2 12 13 21 23 31 32 ĐỀ THI HỌC SINH GIỎI TIN LỚP Thời gian 90 phút kể thời gian phát đề Ngày thi: 28/10/2007 (3) Câu : (8 Điểm) Viết trương trình nhập từ bàn phím mảng chiều gồm n phần tử (5<n<30) là các số nguyên dương.Đưa màn hình các dãy sau: - Dãy là mảng vừa nhập - Dãy là các phần tử liên tiếp nhiều không giảm lấy từ mảng - Dãy là dãy các phần tử không tăng nhiều lấy từ mảng mà không thay đổi vị trí các phần tử mảng Ví dụ : Nhập n=14 và các phần tử là: 31 18 22 10 21 24 27 13 Dãy là: 31 18 22 10 21 24 27 13 Dãy là: 18 22 Dãy là: 31 22 21 13 Câu : (8 điểm) Nhập số nguyên dương n (với 0<n<10 mũ 4) phân tích số n thừa số nguyên tố và đưa kết màn hình Ví dụ : Nhập n=7560 thì kết in là 7560= 2.2.2.3.3.3.5.7 Câu : (4 điểm) Viết trương trình nhập từ bàn phím số tự nhiên n,m (với 5<n<m<100) là hai kích thước hình chữ nhật Đưa màn hình phương án cắt hình chữ nhật trên thành các hình vuông cho số hình vuông là ít có thể Ví dụ cho n=5, m=6 thì kết cắt thành hình vuông và trên màn hình biểu diễn nhu sau: 56 33222 Link: http://www.ddth.com/showthread.php/149244-%C4%90%E1%BB%81-thi-HSG-Tin-l %E1%BB%9Bp-9-n%C3%A8-ai-v%C3%A0o-gi%C3%BAp-v%E1%BB%9Bi#ixzz1pHD30VmR dề thi tỉnh Nam Định (lớp năm học 2008-2009) 1: Số chia hết hoàn toàn là số có tất các chữ số là ước số hình thành từ số chữ số đầu tiên đến chữ số đó Cho số nguyên N (N<30001), tìm số số chia hết hoàn toàn thoả mãn lớn 10 và nhỏ N Bài 2: Từ là chuỗi kí tự liền không có dấu cách Đoạn văn là chuỗi gồm các từ cách ít dấu cách Độ dài từ là số lượng kí tự từ Cho đoạn văn bản, hãy cho biết số từ liền có cùng độ dài lớn Ví dụ: DOAN.IN DOAN.OUT chuc cac thi sinh dat ket qua cao Bài 3: Các nhân viên quan có thể biết nhà Một cặp viết (A,B) có nghĩa là nhân viên A biết nhà nhân viên B, nhân viên A biết nhà nhân viên C nhân viên B biết nhà nhân viên C Độ quan trọng nhân viên đánh giá số nhân viên khác mà nhân viên này biết nhà Cho số nhân viên, số cặp nhân viên (4) biết nhà, các cặp nhân viên biết nhà Hãy tìm nhân viên quan trọng (Nếu có nhiều lấy người có số nhỏ) Ví dụ: NHA.IN NHA.OUT 4 31 32 43 53 HỘI THI TIN HỌC TRẺ THÀNH PHỐ ĐÀ NẴNG LẦN THỨ XII  NĂM 2009 Đề Thi Lập Trình Khối B (Trung học Cơ sở) (Đề thi gồm có trang) Thời gian làm bài: 120 phút (Không tính thời gian giao đề) ĐỀ CHÍNH THỨC : Tổng quan đề thi Tên bài làm Dữ liệu vào Dữ Dử liệu Giới hạn Bài Bài Bài Bài 4Bài BL1.PAS BL2.PAS BL3.PAS Nhập từ bàn phím Nhập từ bàn phím RECT.INP In màn hình In màn hình RECT.OUT giây giây giây BL4.PASX AU.PAS FIBO.INP XAU.INP FIBO.OUT XAU.OUT giây1 giây Tổng quan đề thi Tên bài làm Dữ liệu vào Dữ liệu Giới hạn BL1.PAS Nhập từ bàn phím In màn hình giây BL2.PAS BL3.PAS giây giây Bài 1:(2,5 điểm) Viết chương trình nhập vào từ bàn phím số N nguyên dương (1<=N<32767 32767 65535 ) In màn hình các thông tin sau: a) Số c C ác ước số nguyên dương số N b) Tổng số các ước số nguyên dương N Ví dụ: Nhập từ bàn phím N = 10 In màn hình: C o tat ca uoc so Tong cac uoc la 18 Bài 2:( 2,52 điểm) Nhập từ bàn phím Cho xâu kí ý tự S và kýí tự tự K (5) Hãy in màn hình số lượng kí tự K có xâu kí tự Sho biết xâu ký tự S có bao nhiêu ký tự K và các vị trí xuất kí tự K xâu Schúng Nếu không có kí tự K xâu S thì in màn hình dòng thông báo: Khong co Dữ liệu vào : Cho file văn XAU.INP có cấu trúc sau : Dòng đầu tiên ghi chuỗi ký tự S Dòng thứ ghi ký tự K Dữ liệu : Ghi vào file văn XAU.OUT gồm dòng: Dòng đầu tiên ghi số là số ký tự K xâu ký tự S Dòng thứ ghi các số là vị trí ký tự K xâu S Ví dụ: Xâu kí tự S và kí tự K nhập từ bàn phímAU.INP KITHITINHOCTRETHANHPHOKITHITI NHOCTRETHANHPHO T SOGIAODUC M XAU.OUTIn màn hình 12 15 Khong co Bài 3:RECTANGLE RECTANGLE (27,5 điểm) Trên giấy kẻ ô khổ N x N có vẽ số hình chữ nhật Mỗi hình chữ nhật tạo từ các ô nguyên vẹn, các hình chữ nhật khác không chồng lên và không tiếp xúc (Ví dụ : Hình vẽ đây có hình chữ nhật) RECT.OUT Cho mảng A có kích thước N x N, đó A[i,j]=1 ô [i,j] thuộc hình chữ nhật nào đó, còn A[i,j] =0 trường hợp ngược lại Hãy viết chương trình xác định số các hình chữ nhật có bảng Dữ liệu vào: Từ File văn RECT.INP có cấu trúc sau: - Dòng đầu tiên ghi số nguyên dương N (N<=250) - N dòng dòng ghi N số là các phần tử mảng, số viết cách ít dấu cách.trắng Dữ liệu ra: Ghi File văn RECT.OUT gồm số là số hình chữ nhật tìm (6) Ví dụ: RECT.INP aabbaaaabb2PA LINDR.OUTbo bseesanna3FIB O.OUT94074 Bài 4:(3đ) FIBONACCI (7,5 điểm) Dãy số Fibonacci định nghĩa sau: U1 = U = 1; Un+1 = Un + Un-1 (với số nguyên dương n, n > 1) Như vậy, dãy số Fibonacci có dạng sau: 1, 1, 2, 3, 5, 8, 13, 21, 34,… Với số tự nhiên x khác ta có thể phân tích thành tổng các số Fibonacci khác (số số hạng tổng có thể là từ trở lên) Chẳng hạn x = 9, đó, ta có: = 1+ ho ặc 9= 1+ 3+ Trong hai cách phân tích trên thì cách thứ hai có số số hạng nhiều PALINDR.OUT Chú ý: Đề thi gồm có trang Giám thị coi thi không giải thích gì thêm SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH KHÁNH HÒA NĂM HỌC 2009-2010   Môn thi : TIN HỌCĐỀ –THI THCS CHÍNH THỨC (Bảng A) Ngày thi : 06/4/2010 (Thời gian : 150 phút – không kể thời gian phát đề)   BÀI 1: (5 điểm) Viết chương trình nhập số nguyên dương N, và dãy số thực A gồm có N số Kiểm tra xem dãy vừa nhập đã xếp thành dãy tăng, giảm không tăng, không giảm? Thông báo kết trên màn hình Ví dụ 1: (7) (3 số hạng) Yêu cầu: Cho trước số nguyên dương x (x <= 10000) Hãy cho biết, biểu diễn x thành tổng các số Fibonacci khác thì số số hạng nhiều tổng là bao nhiêu? Dữ liệu vào: Cho file văn FIBO.INP ghi số nguyên dương x (x<=10000) Dữ liệu ra: Ghi file văn FIBO.OUT gồm số nguyên dương n là số số hạng tổng có số số hạng nhiều các tổng Ví dụ: FIBO.INP 1000000 0011100 1011100 1011100 0000000 0000111 0000111 0000 0000 0000 0000 Dữ liệu vào: N =8, A = 1.2 3.5 4.0 5.3 6.0 7.7 8.1 9.0 Dữ liệu ra: Day so da duoc sap xep day tang Ví dụ 2: Dữ liệu vào: N= 7, A = 9.0 8.5 7.3 6.0 5.5 4.7 3.0 Dữ liệu ra: Day so da duoc sap xep day giam BÀI 2: (5 điểm) Viết chương trình nhập các số nguyên dương N, K và dãy số thực A gồm có N số Xét xem dãy số A có K số dương đứng cạnh hay không? Ví dụ 1: Dữ liệu vào: N = A = -2 -1 K = Dữ liệu ra: Trong day khong co so duong dung canh Ví dụ 2: Dữ liệu vào: N= A= -2 -1 -7 K= (8) Dữ liệu ra: Trong day co so duong dung canh BÀI : (5 điểm) Mảng là kiểu liệu có cấu trúc ngôn ngữ lập trình Pascal, gồm số hữu hạn các phần tử có cùng kiểu, có cùng tên chung Số phần tử mảng xác định mảng định nghĩa, kiểu các phần tử gọi là kiểu mảng Ta có mảng chiều, mảng hai chiều, Để khai báo mảng hai chiều (còn gọi ma trận) có n hàng, m cột, ta viết sau : CONST n = ; m = ; TYPE Tên_mảng = ARRAY[1 n,1 m] OF Kiểu_phần_tử; VAR Tên_biến_mảng : Tên_mảng; Xem ví dụ sau : CONST n = 3; m=4; TYPE Ma_tran = ARRAY[1 n,1 m] Of Integer; VAR X : Ma_tran; (9) Lúc đó biến X theo khai báo trên là mảng (ma trận) gồm hàng, cột Như mảng này có tất 3*4 = 12 phần tử, phần tử là số nguyên Phần tử hàng i, cột j mảng X viết X[i,j] Để nhập/xuất liệu cho các phần tử mảng X ta viết sau : Nhập liệu : For i := to n For j := to m Begin Write(‘Nhap gia tri X[‘,i,’,’,j,’] = ’); Read(X[i,j]); End; Xuất liệu : For i := to n Begin or j: = to m d o W ri te (10) ( X [i, j] ); it el n; End; Ma trận vuông là ma trận có số hàng số cột Ma trận vuông cấp N là ma trận có số hàng số cột N Hãy viết chương trình điền các phần tử ma trận vuông cấp N (0 N  200) gồm các số –1, 0, cho tổng các số hình vuông cấp và tổng các số ma trận cấp N là lớn BÀI : (5 điểm) Palindrom e là xâu ký tự mà đọc nó từ trái sang phải từ phải sang trái ta cùng xâu Một xâu ký tự luôn có thể biểu diễn là dãy các palindrome ta coi xâu gồm ký tự luôn là palindrome Ví dụ: Xâu ‘bobseesanna’ có (11) thể biểu diễn dạng dãy các palindrome theo nhiều cách, chẳng hạn ‘bobseesan na’ = ‘bob’ + ‘sees’ + ‘anna’ ‘bobseesan na’ = ‘bob’ + ‘s’ + ‘ee’ + ’s’ + ‘anna’ ‘bobseesan na’ = ‘b’ +’o’ + ‘b’ + ‘sees’ + ‘a’ + ‘n’ + ‘n’ + ‘a’ Yêu cầu: Cho xâu ký tự s, cần tìm cách biểu diễn xâu s dạng dãy gồm số ít các palindrome Ví dụ: Cho s = ‘bobseesanna’, ta có ‘bobseesanna’ = ‘bob’ + ‘sees’ + ‘anna’ và không thể biểu diễn ‘bobseesanna’ ít là palindrome nên biểu diễn này chính là biểu diễn cần tìm Dữ liệu: Vào từ file văn PALINDR.INP gồm dòng chứa xâu ký tự s gồm không quá 255 ký tự SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI TUYỂN (12) SINH LỚP NĂM HỌC 2009 - 2010 KHÁ NH HÒA Môn thi: TIN HỌC (Đề chuyên) Ngày thi: 20/6/2009 ĐỀ CHÍNH THỨC (Thời gian: 150 phút – Không kể thời gian giao đề) Yêu cầu kỹ thuật: + Có kiểm tra liệu nhập từ bàn phím + Sử dụng ngôn ngữ lập trình Pascal + Các tập tin chương trình nguồn phải đặt tên tương ứng là: BL1.PAS, BL2.PAS, BL3.PAS và BL4.PAS ======== ============= ============= ============= ============= ======= = Bài 1: (4 điểm) Viết chương trình (13) nhập chu vi hình chữ nhật sau đó in diện tích lớn mà hình chữ nhật đó có thể có Ví dụ: Dữ liệu vào Dữ liệu Nhap chu vi hinh chu nhat: 34 Dien tich lon nhat ma HCN co the co duoc la: 72.25 Nhap chu vi hinh chu nhat: Dien tich lon nhat ma HCN co the co duoc la: 4.00 Bài : (6 điểm) Viết chương trình nhập từ bàn phím số tự nhiên N (0 < N ≤ 100) Hãy liệt kê và đưa màn hình các cách phân tích số N thành tổng ba số tự nhiên khác Nếu không có cách nào hãy in màn hình câu thông báo ‘KHONG CO’ Ví dụ: Dữ (14) liệu Dữ liệu ap so N: KHONG CO ap so N: 6=1+2+3 ap so N: 8=1+2+5 vào Nh Nh Nh 8=1+3+4 Bài 3: (7 điểm) Cho hình vuông ABCD với độ dài cạnh là a (a là số nguyên dương, ≤ a ≤ 50) Một điểm M chạy trên đoạn BC và điểm N chạy trên đoạn CD với CN = BM = x (x là số nguyên không âm, ≤ x ≤ a) Viết chương trình tính giá trị lớn và giá trị nhỏ diện tích tam giác AMN M, N di động , với độ dài cạnh hình vuông nhập từ bàn phím Ví dụ: Dữ liệu vào (15) Dữ liệu Nhap dai canh cua hinh vuong ABCD: 10 Gia tri lon nhat cua tam giac AMN: 50.0 Gia tri x de dien tich tam giac AMN dat gia tri lon nhat: Gia tri nho nhat cua tam giac AMN: 37.5 Gia tri x de dien tich tam giac AMN dat gia tri nho nhat: Nhap dai canh cua hinh vuong ABCD: Gia tri lon nhat cua tam giac AMN: 32.0 Gia tri x de dien tich tam giac AMN dat gia tri lon nhat: Gia tri nho nhat cua tam giac AMN: 24.0 Gia tri x de dien tich tam giac AMN dat gia tri nho nhat: Bài 4: (3 điểm) Nhập vào số tự nhiên N (1 < N ≤ 65355) Hãy kiểm tra số N vừa nhập có phải là số nguyên tố hay không? Nếu (16) đúng thì thông báo màn hình đây là số nguyên tố, ngược lại thì phân tích số N thành tích các thừa số nguyên tố Ví dụ: liệu Dữ liệu Dữ vào Nh ap so tu nhien: 37 37 la so nguyen to Nh ap so tu nhien: 30 30 duoc tach tich cac thua so nguyen to: Nh ap so tu nhien: 3456 3456 duoc tach tich cac thua so nguyen to: 2 2 2 3 Nh ap so tu nhien: 677 677 la so nguyen to Dap an Progra m Bai1; Uses Crt; Var cv, Smax: real ; begin repe at clrscr; write('Nhap chu vi hinh chu nhat: '); readln(cv); (17) (cv>0); until Sma x := sqr(cv/4); write ln('Dien tich lon nhat ma HCN co the co duoc la: ',Smax:0:2); readl n; end ====== =========== =========== =========== =========== =========== = ====== =========== =========== =========== =========== =========== = Progra m bai2; uses crt; var n,i,j,k:longint; kt:byt e; begin clrscr ; kt:=0 ; repea t cl rscr; w rite('Nhap so N:'); re adln(n); until n <= 100; for i:=1 to n - for j:=i+1 to n-1 f (18) or k:=j+1 to n i f ((i + j + k) = n) and (i<>j) and (j<>k) then begin writeln(n,' = ',i, ' + ',j, ' + ',k); kt:=kt+1; nd; e if kt=0 then write('KHON G CO'); readl n; end ====== =========== =========== =========== =========== =========== = ====== =========== =========== =========== =========== =========== = progra m bai3; uses crt; var x,j,a,S_abcd,lu u,luu1:longint; Max, Min,Dt_amn:r eal; begin (* Nhap dai canh a *) repea t cl rscr; w rite('Nhap dai canh cua (19) hinh vuong ABCD: '); readln(a); until (a>1) and (a<=50); S_abc d := a*a; {Dien tich hinh vuong} Max : = S_abcd/2; Min := Max; for x := to a begin {D ien tich tam giac AMN} Dt_ amn := S_abcd(a*x)/2-((ax)*x)/2-((ax)*a)/2; if Dt_amn<Min then be gin l uu := x; Min := Dt_amn; en d; if Dt_amn > Max then be gin Max Dt_amn; luu1 := x; := en d; end; writel n('Gia tri lon nhat cua dien tich tam giac AMN: ',Max:0:1); writel n('Gia tri x de dien tich tam (20) giac AMN dat gia tri lon nhat: ',luu1); writel n('Gia tri nho nhat cua dien tich tam giac AMN: ',Min:0:1); writel n('Gia tri x de dien tich tam giac AMN dat gia tri nho nhat: ',luu); readln ; end Progra m bai4; uses crt; Var m, n: longint; dem,i :integer; Begin repeat clrs cr; Wri te('Nhap mot so tu nhien:'); readln(n); Until (n>1) and (n<=65355); i:=2; while (n mod i <> 0) i: = i+1; if i=n then write ln(n,' la so nguyen to') else {tach so n cac thua so nguyen to} begi n dem: =0; (21) n; m:= Writ e(n,' duoc tach cac thua so nguyen to = '); Whil e (m mod = 0) Begi n dem:=dem+1; m:=m div 2; write('2'); i f m>0 then write('.'); End; i:=3; Whil e (m > 2) Beg in While (m mod i = 0) B egin dem:=dem+1; m:=m div i; write(i); if m>2 then write('.'); E nd; i: =i+2; En d; End; kết quả: Đưa màn hình đồng thời ghi vào file văn PALINDR.OU T: (22) - Dòng đầu tiên ghi k là số lượng ít các palindrome biểu diễn tìm được; - Dòng thứ i số k dòng ghi palindrome pi (i = 1, 2, , k) cho : s = p1p2 pk Ví dụ PALINDR.INP PALINDR.INP  HẾT  Ghi chú : - Các tập tin bài làm phải đặt theo qui định BL1.PAS, BL2.PAS, BL3.PAS, BL4.PAS; - Đề thi có 03 trang; - Giám thị không giải thích gì thêm Đề thi HSG tỉnh môn Tin học năm 2009-2010 TỔNG QUAN VỀ CÁC BÀI THI Tên file chương trình Dữ liệu vào -Dữ liệu Bài -HUUNGHI.PAS -Màn hình Bài -XOACHUSO.PAS -Màn hình Bài -XOAYOC.PAS Bàn phím Màn hình Bài -AMSTRONG.PAS -Màn hình Bài -SODOCDAC.PAS -Bàn phím Màn hình Bài 1: Cặp số ''hữu nghị'' (2 điểm) Hai số nguyên dương gọi là ''hữu nghị'' số này tổng các ước thực số và ngược lại (ước thực số nguyên dương là ước nhỏ số đó, ví dụ số có các ước thực là 1,2,3) Hãy tìm các cặp số ''hữu nghị'' từ 100 đến 1000 Kết quả: Đưa màn hình, cặp số tìm ghi trên dòng, số bé viết trước, các số cách tối thiểu dấu cách Bài 2: Xoá chữ số (2 điểm) (23) Tìm tất các số có chữ số thoả mãn tính chất: Nếu xoá chữ số nào đó thì số đó giảm lần Kết quả: Đưa màn hình, gồm nhiều dòng, dòng số: số thứ là số có chữ số thoả mãn tính chất trên, số thứ hai là số có chữ số có từ số thứ sau đã xoá chữ số để số 1/9 số thứ nhất, các số cách tối thiểu dấu cách Các kết ghi không trùng Dòng cuối ghi số các số tìm Bài 3: Xoáy ốc (2 điểm) Lập chương trình nhập các số tự nhiên liên tiếp 1,2,3,4, ,N*N vào bảng A[N*N] theo chiều xoáy ốc ngược chiều kim đồng hồ Sau đó in bảng A[N*N] màn hình Ví dụ N=4 cấn nhập vào và in kết sau: -1 12-11-10 -2 13-16 -3 14-15 -4 -5 -Dữ liệu vào: Nhập từ bàn phím số nguyên dương N<=20 -Kết quả: Đưa màn hình bảng A[N*N] gồm các số tự nhiên xếp theo yêu cầu trên Bài 4: Số Amstrong (2.5 điểm) -Số tự nhiên N có k chữ số, gọi là số Amstrong N tổng các luỹ thừa bậc k các số nó -Ví dụ: 153=1^3+5^3+3^3 -Hãy tìm tất các số Amstrong có k chữ số, với 3<=k<=6 -Kết quả: Đưa màn hình số tìm viết trên dòng -Dòng cuối cùng ghi số các số tìm Bài 5: Số độc đắc (1.5 điểm) - Viết các số tự nhiên từ đến 2009 theo vòng tròn cùng chiều quay kim đồng hồ Cũng theo chiều đó, số 1, đếm từ đến số thứ 612 thì xoá số đó Lại số còn lại đứng sau số vừa bị xoá, lặp lại quá trình đến còn số thì dừng lại -a) Hỏi số còn lại là số nào? -b) Muốn số còn lại là số thứ L (0<L<2010) thì ban đầu cần xuất phát từ số nào? Dữ liệu vào: Nhập từ bàn phím số nguyên dương L (0<L<2010) -Kết quả: Đưa màn hình theo qui cách: dòng thứ là kết cho câu hỏi a); dòng thứ hai là kết cho câu hỏi b) Bài 1: Viết chương trình tìm số nguyên dương T nhỏ có N chữ số, biết chia T cho 19 dư 13 , chia T cho 31 thì dư 12 Yêu cầu: Nhập N, in số nhỏ có N chữ số thỏa mãn dk trên Bài 2: Ta xếp dãy số nguyên {aN} trên vòng tròn theo chiều kim đồng hồ từ a1,a2,… đến aN.Với vị trí thứ i dãy ta có thể sinh N tổng theo qui tắc sau: S1=ai; S2=ai+ai+1; S3=ai+ai+1+ai+2;… SN= ai+ai+1+ai+2+…+aN+a1+…ai-1 Xác định vị trí thứ i dãy {aN}ban đầu cho tất tổng sinh theo cách trên khác Yêu cầu: Nhập N số nguyên a1,a2,…aN.In màn hình vị trí thứ i dãy thỏa mãn đề bài Trong TH ko có thì thông báo ‘Ko tim thay’ Bài 3: Một bàn cờ nhân ô vuông ô đc đánh địa là cặp số (x;y), (trong đó :x là số thứ tự hàng từ đến 8- tính từ trên xuống; y số thứ tự cột từ đến – tính từ trái qua phải).Trên bàn cờ có đặt trước các chú chuột máy số (24) ô.Một chú mèo máy có thể nhìn thấy các chú chuột này chuột cùng nằm trên đường với nó cùng đường chéo với nó.Xác định vị trí để đặt chú mèo máy cho nó có thể nhìn thấy tất chú chuột máy đã có trên bàn cờ Yêu cầu: Nhập N cặp số nguyên (x,y) thể địa các chú chuột máy đặt trên bàn cờ Viết vị trí đặt chú mèo máy thỏa mãn dk trên c c c c m Ví dụ Với N=4 và vị trí chuột (xem hình bên ;C là chuột, M là mèo) Thì kết tọa độ mèo là (6;3) Dap an clrscr; Writeln('Le Manh Chuc - Lop 9/1 - Truong THCS Kim Dong'); Writeln(' -'); For i:=1 to For j:=1 to a[i,j]:=0; Repeat Write('Nhap so chuot: '); Readln(n); Until n<=64; For c:=1 to n Begin Repeat Write('Nhap so hang cua chuot ',c,':'); Readln(hang); Until (1<=hang) and (hang<=8); Repeat Write('Nhap so cot cua chuot ',c,':'); Readln(cot); Until (1<=cot) and (cot<=8); chuyen(hang,cot); End; Max:=a[1,1]; For i:=1 to For j:=1 to If max<a[i,j] then Begin max:=a[i,j]; x:=i; y:=j; End; If max=n then Writeln('Toa cua meo la (',x,';',y,')') Else Writeln(#7,'Ko tim thay'); Writeln; Write('Ban co muon tiep tuc nua khong (c/k):'); Readln(ch); Until Upcase(ch)='K'; DEP HON (25) ******************************************************/ #include <stdio.h> #include <conio.h> #include <string.h> int a[8][8],max,meo_cot,meo_hang; char b[8][8]; void chuyen(int hang, int cot); void in_sodo(); main() { int i,j,hang,cot,so_chuot; for(i=0;i<8;i++) for(j=0;j<8;j++) { a[i][j]=0; b[i][j]='*'; } printf("Nhap so chuot be hon hoac bang 64:"); scanf("%d",&so_chuot); if(so_chuot<=64) { printf("Nhap dia chi cua %d chuot can kill!\n",so_chuot); for(i=1;i<=so_chuot;i++) { printf("Chuot thu %d:",i); scanf("%d%d",&hang,&cot); if((1<=hang)&&(hang<=8)&&(1<=cot)&&(cot<=8)) { hang=hang-1;cot=cot-1; b[hang][cot]='C'; chuyen(hang,cot); } else { printf("Nhap sai! Vui long nhap lai!\n"); i=i-1; } } /* tim dia chi cua Meo*/ max=a[0][0]; for(i=0;i<8;i++) for(j=0;j<8;j++) if(max<=a[i][j]) { max=a[i][j]; meo_hang=i+1; meo_cot=j+1; } (26) if(max==so_chuot) { clrscr(); textcolor(10); cprintf("Sau day la toa cua %d chuot",so_chuot);printf("\n\n"); b[meo_hang-1][meo_cot-1]='M'; in_sodo(); textcolor(10); cprintf("Toa cua Meo la:"); textcolor(14); printf("\n"); cprintf("Hang %d",meo_hang); printf("\n"); cprintf("Cot %d",meo_cot); } else { in_sodo(); textcolor(14); cprintf("\nKhong tim thay dia chi phu hop cua Meo!"); } } else printf("So chuot qua muc cho phep!"); getch(); } /*****************************************/ void chuyen(int hang, int cot) { int i,j,htam1,ctam1,htam2,ctam2; htam1=htam2=hang; ctam1=ctam2=cot; /*chuyen hang*/ for(i=0;i<8;i++) a[hang][i]=a[hang][i]+1; /*chuyen cot*/ for(i=0;i<8;i++) a[i][cot]=a[i][cot]+1; a[hang][cot]=a[hang][cot]-1; /*chuyen duong cheo / */ /* */ while((htam1!=0)&&(ctam1!=7)) { htam1=htam1-1; ctam1=ctam1+1; a[htam1][ctam1]=a[htam1][ctam1]+1; } while((ctam2!=0)&&(htam2!=7)) { htam2=htam2+1; ctam2=ctam2-1; a[htam2][ctam2]=a[htam2][ctam2]+1; } /* */ /*chuyen duong cheo \ */ /* */ htam1=htam2=hang;ctam1=ctam2=cot; while((htam1!=0)&&(ctam1!=0)) { htam1=htam1-1; ctam1=ctam1-1; a[htam1][ctam1]=a[htam1][ctam1]+1; } while((htam2!=7)&&(ctam2!=7)) { htam2=htam2+1; ctam2=ctam2+1; a[htam2][ctam2]=a[htam2][ctam2]+1; (27) } /* */ } void in_sodo() { int i,j; textcolor(14); cprintf("%c",218); for(i=0;i<15;i++) cprintf("%c",196);cprintf("%c",170);printf("\n"); for(i=0;i<8;i++) { for(j=0;j<8;j++) { if(b[i][j]=='*') textcolor(15); if(b[i][j]=='C') textcolor(10); if(b[i][j]=='M') textcolor(12); cprintf("%2c",b[i][j]); } printf("\n"); } textcolor(14); cprintf("%c",192); for(i=0;i<15;i++) cprintf("%c",196);cprintf("%c",217);printf("\n"); } /******************************************************/ (28)

Ngày đăng: 08/06/2021, 17:16

TỪ KHÓA LIÊN QUAN

w