Tải bản đầy đủ (.docx) (27 trang)

thi hsg tin tinh quang nam

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (491.02 KB, 27 trang )

<span class='text_page_counter'>(1)</span>SỞ GIÁO DỤC VÀ ĐÀO TẠO HÀ TĨNH ĐỀ CHÍNH THỨC (Đề thi có 2 trang). ĐỀ THI CHỌN HỌC SINH GIỎI TỈNH LỚP 9 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 1 Bài 2 Bài 3. Tên bài Dãy con lớn nhất 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 dữ liệu vào DAYSO.INP ROBOT.INP. Tệp dữ liệu ra 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 con lớn nhất 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 được gọi là dãy con của dãy số A. Tổng giá trị các số trong một dãy con được gọi là trọng lượng của dãy con đó. Hãy tìm dãy con có trọng lượng lớn nhất của dãy số A. Dữ liệu vào là tệp văn bả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 nhau ít nhất là một ký tự trống.. Dữ liệu ra là tệp văn bản dayso.out có cấu trúc như sau: - Dòng đầu tiên chứa hai số cách nhau ít nhất một ký tự trống là chỉ số của số đầu và số cuối của dãy con tìm được. - Dòng thứ hai chứa trọng lượng của dãy con tìm được. Ví dụ: Tệp dayso.inp Tệp dayso.out 5 13 3 -1 2 -2 1 4 Bài 2: Robot công nghiệp Trong một nhà máy có trang bị loại Robot công nghiệp để thực hiện 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 của Robot được thực hiện đồng thời trên hai sản phẩm cùng một lúc theo tiến trình: Với mỗi loại thao tác gia công được Robot thực hiện trên sản phẩm thứ nhất xong rồi chuyển sang thực hiện trên sản phẩm thứ hai. Để hoàn thành một sản phẩm, Robot có thể thực hiện tới N loại thao tác gia công (N≤ 24) và mỗi loại thao tác gia công đã thực hiện trên một sản phẩm nào đó rồi thì không thực hiện lại trên sản phẩm đó nữa. Robot hoạt động bằng lệnh là một dãy ký tự in hoa, mỗi ký tự là lệnh thực hiện cho một loại thao tác gia công. Lệnh thực hiện các loại thao tác gia công khác nhau là các ký tự khác nhau. 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 theo đọc ký tự thứ N, thực hiện 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 hiện lệnh tương ứng trên sản phẩm thứ nhất. Tiếp theo đọc ký tự thứ N-1, thực hiện lệnh tương ứng trên sản phẩm thứ hai. + Chu trình thứ ba: Đọc ký tự ba, thực hiện lệnh tương ứng trên sản phẩm thứ nhất. Tiếp theo đọc ký tự thứ N-2, thực hiện lệnh tương ứng trên sản phẩm thứ hai. ....

<span class='text_page_counter'>(2)</span> Tương tự với các chu trình còn lại để đọc hết dòng lệnh. Với một 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à một dòng lệnh của Robot đã nói ở trên hay không? Dữ liệu vào: Tệp văn bản ROBOT.INP có cấu trúc: - Dòng đầu tiên ghi 1 số là độ dài xâu S. - Dòng thứ 2 ghi xâu S. Dữ liệu ra: Tệp văn bản ROBOT.OUT ghi thông báo ‘CO’ nếu xâu S là dòng lệnh của Robot, ngược lại ghi thông báo ‘KHONG’ Ví dụ: Tệp ROBOT.INP 6 CBAABC Tệp ROBOT.INP 6 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 ra rất nhiều loại sơn tổng hợp khác nhau bằng cách trộn lẫn một số loại sơn nào đó lại với nhau theo một liều lượng nào đó của mỗi loại. Khi tham gia trộn để được một loại sơn tổng hợp nào đó, các loại sơn khác nhau được đưa vào từ các vị trí khác nhau và liều lượng của mỗi loại sơn là bao nhiêu phụ thuộc vào thứ tự vị trí đưa vào của loại sơn đó. Liều lượng của mỗi loại sơn mà khác nhau trong khi trộn thì cho ra các loại sơn tổng hợp khác nhau. Hãy liệt kê ra tất cả các phương án trộn M loại sơn (M≤N) trong N loại sơn đã cho để có được các loại sơn tổng hợp. Dữ liệu vào: Giá trị của các số N, M được đưa vào từ bàn phím. Dữ liệu ra là tệp văn bản SON.OUT có cấu trúc: Mỗi dòng ghi số hiệu của M loại sơn theo thứ tự khi đưa vào trộn để tạo ra một 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 ra.. Ví dụ:. Tệp son.out N=3 M=2. 12 13 21 23 31 32 6. ĐỀ THI HỌC SINH GIỎI TIN LỚP 9 Thời gian 90 phút kể cả thời gian phát đề Ngày thi: 28/10/2007.

<span class='text_page_counter'>(3)</span> Câu 1 : (8 Điểm) Viết trương trình nhập từ bàn phím một mảng một chiều gồm n phần tử (5<n<30) là các số nguyên dương.Đưa ra màn hình các dãy sau: - Dãy 1 là mảng vừa nhập - Dãy 2 là các phần tử liên tiếp nhiều nhất không giảm lấy từ mảng. - Dãy 3 là dãy các phần tử không tăng nhiều nhất lấy từ mảng mà không thay đổi vị trí các phần tử trong mảng. Ví dụ : Nhập n=14 và các phần tử là: 31 3 6 7 9 18 22 10 21 24 27 13 7 4 Dãy 1 là: 31 3 6 7 9 18 22 10 21 24 27 13 7 4 Dãy 2 là: 3 6 7 9 18 22 Dãy 3 là: 31 22 21 13 7 4 Câu 2 : (8 điểm) Nhập một số nguyên dương n (với 0<n<10 mũ 4) rồi phân tích số n ra thừa số nguyên tố và đưa kết quả ra màn hình. Ví dụ : Nhập n=7560 thì kết quả in ra là 7560= 2.2.2.3.3.3.5.7 Câu 3 : (4 điểm) Viết trương trình nhập từ bàn phím 2 số tự nhiên n,m (với 5<n<m<100) là hai kích thước của hình chữ nhật. Đưa ra màn hình phương án cắt hình chữ nhật trên thành các hình vuông sao cho số hình vuông là ít nhất có thể. Ví dụ cho n=5, m=6 thì kết quả cắt thành 5 hình vuông và trên màn hình được biểu diễn nhu sau: 56 33222 Link: %E1%BB%9Bp-9-n%C3%A8-ai-v%C3%A0o-gi%C3%BAp-v%E1%BB%9Bi#ixzz1pHD30VmR. dề thi của tỉnh Nam Định (lớp 9 năm học 2008-2009) 1: Số chia hết hoàn toàn là số có tất cả các chữ số đều là ước của 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 hơn 10 và nhỏ hơn N. Bài 2: Từ là một chuỗi kí tự liền nhau không có dấu cách. Đoạn văn bản là chuỗi gồm các từ cách nhau bởi ít nhất 1 dấu cách. Độ dài của từ là số lượng kí tự của từ. Cho đoạn văn bản, hãy cho biết số từ liền nhau có cùng độ dài lớn nhất. Ví dụ: DOAN.IN DOAN.OUT chuc cac thi sinh dat ket qua cao 4 Bài 3: Các nhân viên trong cơ quan có thể biết nhà nhau. Một cặp được 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 sẽ biết nhà nhân viên C nếu nhân viên B biết nhà nhân viên C. Độ quan trọng của một nhân viên được đánh giá bởi 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.

<span class='text_page_counter'>(4)</span> biết nhà, các cặp nhân viên biết nhà. Hãy tìm ra nhân viên quan trọng nhất (Nếu có nhiều lấy người có chỉ số nhỏ). Ví dụ: NHA.IN NHA.OUT 5 4 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ó 2 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 ra Giới hạn. Bài 1. Bài 2. Bài 3. Bài 4Bài 2. BL1.PAS. BL2.PAS. BL3.PAS. Nhập từ bàn phím. Nhập từ bàn phím. RECT.INP. In ra màn hình. In ra màn hình. RECT.OUT. 1 giây. 1 giây. 2 giây. BL4.PASX AU.PAS FIBO.INP XAU.INP FIBO.OUT XAU.OUT 2 giây1 giây. Tổng quan đề thi Tên bài làm Dữ liệu vào Dữ liệu ra Giới hạn. BL1.PAS Nhập từ bàn phím In ra màn hình 1 giây. BL2.PAS. BL3.PAS. 1 giây. 1 giây. Bài 1:(2,5 điểm) Viết chương trình nhập vào từ bàn phím một số N nguyên dương (1<=N<32767 32767 65535 ). In ra màn hình các thông tin sau: a) Số c C ác ước số nguyên dương của số N. b) Tổng số các ước số nguyên dương của N. Ví dụ: Nhập từ bàn phím N = 10 In ra màn hình: C o tat ca 4 uoc so Tong cac uoc la 18 Bài 2:( 2,52 điểm) Nhập từ bàn phím Cho một xâu kí ý tự S và một kýí tự tự K..

<span class='text_page_counter'>(5)</span> Hãy in ra màn hình số lượng kí tự K có trong xâu kí tự Sho biết trong xâu ký tự S có bao nhiêu ký tự K và các vị trí xuất hiện của kí tự K trong xâu Schúng . Nếu không có kí tự K trong xâu S thì in ra màn hình dòng thông báo: Khong co Dữ liệu vào : Cho trong file văn bản XAU.INP có cấu trúc như sau : Dòng đầu tiên ghi chuỗi ký tự S. Dòng thứ 2 ghi ký tự K. Dữ liệu ra : Ghi vào file văn bản XAU.OUT gồm 2 dòng: Dòng đầu tiên ghi 1 số là số ký tự K trong xâu ký tự S. Dòng thứ 2 ghi các số là vị trí ký tự K trong 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 ra màn hình 4 3 6 12 15 Khong co. Bài 3:RECTANGLE RECTANGLE (27,5 điểm) Trên giấy kẻ ô khổ N x N có vẽ một số hình chữ nhật. Mỗi hình chữ nhật được tạo ra từ các ô nguyên vẹn, các hình chữ nhật khác nhau không chồng lên nhau và không tiếp xúc nhau (Ví dụ : Hình vẽ dưới đây có 4 hình chữ nhật). RECT.OUT Cho mảng A có kích thước N x N, trong đó A[i,j]=1 nếu ô [i,j] thuộc một hình chữ nhật nào đó, còn A[i,j] =0 trong 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ó trong bảng. Dữ liệu vào: Từ File văn bản RECT.INP có cấu trúc như sau: - Dòng đầu tiên ghi số nguyên dương N (N<=250). - N dòng tiếp theo mỗi dòng ghi N số 0 hoặc 1 là các phần tử của mảng, mỗi số viết cách nhau ít nhất một dấu cách.trắng Dữ liệu ra: Ghi ra File văn bản RECT.OUT gồm duy nhất một số là số hình chữ nhật tìm được..

<span class='text_page_counter'>(6)</span> Ví dụ: RECT.INP aabbaaaabb2PA 3 LINDR.OUTbo bseesanna3FIB O.OUT94074 Bài 4:(3đ) FIBONACCI (7,5 điểm) Dãy số Fibonacci được định nghĩa như sau: U1 = U 2 = 1; Un+1 = Un + Un-1 (với mọ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 một số tự nhiên x bất kỳ khác 0 ta có thể phân tích thành tổng các số Fibonacci khác nhau (số số hạng của tổng có thể là từ 1 trở lên). Chẳng hạn x = 9, khi đó, ta có: = 1+ 8 ho ặc 9= 1+ 3+ 5 Trong hai cách phân tích trên thì cách thứ hai có số số hạng nhiều nhất. PALINDR.OUT Chú ý: Đề thi gồm có 2 trang Giám thị coi thi không được 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 đã được sắp xếp thành dãy tăng, hoặc giảm hoặc không tăng, không giảm? Thông báo kết quả trên màn hình. Ví dụ 1:.

<span class='text_page_counter'>(7)</span> (3 số hạng). Yêu cầu: Cho trước một số nguyên dương x (x <= 10000). Hãy cho biết, nếu biểu diễn x thành tổng của các số Fibonacci khác nhau thì số số hạng nhiều nhất của một tổng là bao nhiêu? Dữ liệu vào: Cho trong file văn bản FIBO.INP chỉ ghi một số nguyên dương x (x<=10000). Dữ liệu ra: Ghi ra file văn bản FIBO.OUT gồm một số nguyên dương n duy nhất là số số hạng của tổng có số số hạng nhiều nhất trong 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 thanh 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 thanh 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 trong dãy số A có K số dương đứng cạnh nhau hay không? Ví dụ 1: Dữ liệu vào: N = 8 A = 2 -2 5 7 3 0 2 -1 K = 4 Dữ liệu ra: Trong day khong co 4 so duong dung canh nhau Ví dụ 2: Dữ liệu vào: N= 9 A= 1 -2 3 7 9 1 2 -1 -7 K= 5.

<span class='text_page_counter'>(8)</span> Dữ liệu ra: Trong day co 5 so duong dung canh nhau BÀI 3 : (5 điểm) Mảng là kiểu dữ liệu có cấu trúc của ngôn ngữ lập trình Pascal, gồm một số hữu hạn các phần tử có cùng kiểu, có cùng một tên chung. Số phần tử của mảng được xác định khi mảng được định nghĩa, kiểu của các phần tử gọi là kiểu cơ bản của mảng. Ta có mảng một chiều, mảng hai chiều, ... Để khai báo một mảng hai chiều (còn gọi ma trận) có n hàng, m cột, ta viết như 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;.

<span class='text_page_counter'>(9)</span> Lúc đó biến X theo khai báo ở trên là một mảng (ma trận) gồm 3 hàng, 4 cột. Như vậy mảng này có tất cả 3*4 = 12 phần tử, mỗi phần tử là một số nguyên. Phần tử hàng i, cột j của mảng X được viết X[i,j]. Để nhập/xuất dữ liệu cho các phần tử của mảng X ta viết như sau : Nhập dữ liệu : For i := 1 to n do For j := 1 to m do Begin. Write(‘Nhap gia tri X[‘,i,’,’,j,’] = ’);. Read(X[i,j]); End; Xuất dữ liệu : For i := 1 to n do Begin or j: = 1 to m d o W ri te.

<span class='text_page_counter'>(10)</span> ( X [i, j] ); it el n; End; Ma trận vuông là ma trận có số hàng bằng số cột. Ma trận vuông cấp N là ma trận có số hàng bằng số cột đều bằng N. Hãy viết chương trình điền các phần tử của ma trận vuông cấp N (0 N  200) gồm các số –1, 0, 1 sao cho tổng các số của mọi hình vuông cấp 2 đều bằng 0 và tổng các số của ma trận cấp N là lớn nhất. BÀI 4 : (5 điểm) Palindrom e là xâu ký tự mà nếu đọc nó từ trái sang phải cũng như từ phải sang trái ta được cùng một xâu. Một xâu ký tự bất kỳ luôn có thể biểu diễn như là một dãy các palindrome nếu như ta coi xâu chỉ gồm một ký tự luôn là palindrome. Ví dụ: Xâu ‘bobseesanna’ có.

<span class='text_page_counter'>(11)</span> thể biểu diễn dưới 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ưới dạng một dãy gồm một số ít nhất các palindrome. Ví dụ: Cho s = ‘bobseesanna’, do ta có ‘bobseesanna’ = ‘bob’ + ‘sees’ + ‘anna’ và không thể biểu diễn ‘bobseesanna’ bởi ít hơn là 3 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 bản PALINDR.INP gồm một 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.

<span class='text_page_counter'>(12)</span> SINH LỚP 9 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 dữ liệu khi 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.

<span class='text_page_counter'>(13)</span> nhập chu vi của một hình chữ nhật sau đó in ra diện tích lớn nhất mà hình chữ nhật đó có thể có được. Ví dụ: Dữ liệu vào Dữ liệu ra 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: 8 Dien tich lon nhat ma HCN co the co duoc la: 4.00 Bài 2 : (6 điểm) Viết chương trình nhập từ bàn phím một số tự nhiên N (0 < N ≤ 100). Hãy liệt kê và đưa ra màn hình các cách phân tích số N thành tổng của ba số tự nhiên khác nhau. Nếu không có cách nào hãy in ra màn hình câu thông báo ‘KHONG CO’. Ví dụ: Dữ.

<span class='text_page_counter'>(14)</span> liệu Dữ liệu ra ap so N: KHONG CO ap so N: 6=1+2+3 ap so N: 8=1+2+5. vào Nh 4 Nh 6 Nh 8. 8=1+3+4 Bài 3: (7 điểm) Cho một hình vuông ABCD với độ dài cạnh là a (a là số nguyên dương, 1 ≤ a ≤ 50). Một điểm M chạy trên đoạn BC và một điểm N chạy trên đoạn CD với CN = BM = x (x là một số nguyên không âm, 0 ≤ x ≤ a). Viết chương trình tính giá trị lớn nhất và giá trị nhỏ nhất của diện tích tam giác AMN khi M, N di động , với độ dài cạnh hình vuông được nhập từ bàn phím. Ví dụ: Dữ liệu vào.

<span class='text_page_counter'>(15)</span> Dữ liệu ra Nhap do 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: 0 Gia tri nho nhat cua tam giac AMN: 37.5 Gia tri x de dien tich tam giac AMN dat gia tri nho nhat: 5 Nhap do dai canh cua hinh vuong ABCD: 8 Gia tri lon nhat cua tam giac AMN: 32.0 Gia tri x de dien tich tam giac AMN dat gia tri lon nhat: 0 Gia tri nho nhat cua tam giac AMN: 24.0 Gia tri x de dien tich tam giac AMN dat gia tri nho nhat: 4 Bài 4: (3 điểm) Nhập vào một 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.

<span class='text_page_counter'>(16)</span> đúng thì thông báo ra 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 ra. Dữ vào. Nh ap 1 so tu nhien: 37 37 la so nguyen to Nh ap 1 so tu nhien: 30 30 duoc tach thanh tich cac thua so nguyen to: 2. 3. 5 Nh ap 1 so tu nhien: 3456 3456 duoc tach thanh tich cac thua so nguyen to: 2. 2. 2. 2. 2. 2. 2. 3. 3. 3 Nh ap 1 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);.

<span class='text_page_counter'>(17)</span> (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 - 2 do for j:=i+1 to n-1 do f.

<span class='text_page_counter'>(18)</span> or k:=j+1 to n do 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 do dai canh a *) repea t cl rscr; w rite('Nhap do dai canh cua.

<span class='text_page_counter'>(19)</span> 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 := 0 to a do 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.

<span class='text_page_counter'>(20)</span> 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) do i: = i+1; if i=n then write ln(n,' la so nguyen to') else {tach so n thanh cac thua so nguyen to} begi n dem: =0;.

<span class='text_page_counter'>(21)</span> n;. m:=. Writ e(n,' duoc tach thanh cac thua so nguyen to = '); Whil e (m mod 2 = 0) do Begi n dem:=dem+1; m:=m div 2; write('2'); i f m>0 then write('.'); End; i:=3; Whil e (m > 2) do Beg in While (m mod i = 0) do 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 ra màn hình đồng thời ghi vào file văn bản PALINDR.OU T:.

<span class='text_page_counter'>(22)</span> - Dòng đầu tiên ghi k là số lượng ít nhất các palindrome trong biểu diễn tìm được; - Dòng thứ i trong số k dòng tiếp theo ghi palindrome pi (i = 1, 2, ..., k) sao 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 ra Bài 1-----------HUUNGHI.PAS---------------------------Màn hình Bài 2-----------XOACHUSO.PAS-------------------------Màn hình Bài 3-----------XOAYOC.PAS------------Bàn phím------Màn hình Bài 4-----------AMSTRONG.PAS-------------------------Màn hình Bài 5-----------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 được gọi là ''hữu nghị'' nếu số này bằng tổng các ước thực sự của số kia và ngược lại (ước thực sự của một số nguyên dương là ước nhỏ hơn số đó, ví dụ số 6 có các ước thực sự là 1,2,3). Hãy tìm các cặp số ''hữu nghị'' từ 100 đến 1000. ------Kết quả: Đưa ra màn hình, mỗi cặp số tìm được ghi trên một dòng, số bé viết trước, các số cách nhau tối thiểu một dấu cách. Bài 2: Xoá chữ số (2 điểm).

<span class='text_page_counter'>(23)</span> ------Tìm tất cả các số có 4 chữ số thoả mãn tính chất: Nếu xoá đi 1 chữ số nào đó thì số đó giảm đi 9 lần. ------Kết quả: Đưa ra màn hình, gồm nhiều dòng, mỗi dòng 2 số: số thứ nhất là số có 4 chữ số thoả mãn tính chất trên, số thứ hai là số có 3 chữ số có được từ số thứ nhất sau khi đã xoá đi 1 chữ số để được số bằng 1/9 số thứ nhất, các số cách nhau tối thiểu một dấu cách. Các kết quả ghi không được trùng nhau ------Dòng cuối ghi số các số tìm được 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 ra bảng A[N*N] ra màn hình. Ví dụ N=4 cấn nhập vào và in ra kết quả như sau: ---1--12-11-10 ---2--13-16--9 ---3--14-15--8 ---4---5--6--7 ---Dữ liệu vào: Nhập từ bàn phím số nguyên dương N<=20. ---Kết quả: Đưa ra màn hình bảng A[N*N] gồm các số tự nhiên sắp 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ố, được gọi là số Amstrong nếu N bằng tổng các luỹ thừa bậc k của các số của nó. -----Ví dụ: 153=1^3+5^3+3^3 -----Hãy tìm tất cả các số Amstrong có k chữ số, với 3<=k<=6 -----Kết quả: Đưa ra màn hình mỗi số tìm được viết trên một dòng. -----Dòng cuối cùng ghi số các số tìm được. Bài 5: Số độc đắc (1.5 điểm) ----- Viết các số tự nhiên từ 1 đến 2009 theo một vòng tròn cùng chiều quay kim đồng hồ. Cũng theo chiều đó, bắt đầu từ số 1, cứ đếm từ 1 đến số thứ 612 thì xoá số đó đi. Lại bắt đầu từ số còn lại đứng ngay sau số vừa bị xoá, lặp lại quá trình đến khi còn 1 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 ra màn hình theo qui cách: dòng thứ nhất là kết quả cho câu hỏi a); dòng thứ hai là kết quả cho câu hỏi b).. Bài 1: Viết chương trình tìm số nguyên dương T nhỏ nhất có N chữ số, biết rằng khi chia T cho 19 dư 13 , chia T cho 31 thì dư 12 Yêu cầu: Nhập N, in số nhỏ nhất 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 một vòng tròn theo chiều kim đồng hồ lần lượt từ a1,a2,… đến aN.Với mỗi vị trí thứ i của dãy ta có thể sinh ra 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 của dãy {aN}ban đầu sao cho tất cả tổng sinh ra theo cách trên đều khác 0. Yêu cầu: Nhập N số nguyên a1,a2,…aN.In ra màn hình vị trí thứ i của 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ờ 8 nhân 8 ô vuông mỗi ô đc đánh địa chỉ là cặp số (x;y), (trong đó :x là số thứ tự của hàng từ 1 đến 8- tính từ trên xuống; y số thứ tự của cột từ 1 đến 8 – tính từ trái qua phải).Trên bàn cờ có đặt trước các chú chuột máy ở một số.

<span class='text_page_counter'>(24)</span> ô.Một chú mèo máy có thể nhìn thấy các chú chuột này nếu chuột cùng nằm trên một đường với nó hoặc cùng một đường chéo với nó.Xác định vị trí để đặt 1 chú mèo máy sao cho nó có thể nhìn thấy tất cả 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ể hiện địa chỉ của các chú chuột máy đặt trên bàn cờ Viết ra 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 quả tọa độ củ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 8 do For j:=1 to 8 do a[i,j]:=0; Repeat Write('Nhap so chuot: '); Readln(n); Until n<=64; For c:=1 to n do 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 8 do For j:=1 to 8 do If max<a[i,j] then Begin max:=a[i,j]; x:=i; y:=j; End; If max=n then Writeln('Toa do 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.

<span class='text_page_counter'>(25)</span> ******************************************************/ #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 con 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; }.

<span class='text_page_counter'>(26)</span> if(max==so_chuot) { clrscr(); textcolor(10); cprintf("Sau day la toa do cua %d con chuot",so_chuot);printf("\n\n"); b[meo_hang-1][meo_cot-1]='M'; in_sodo(); textcolor(10); cprintf("Toa do 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;.

<span class='text_page_counter'>(27)</span> } /*----------------------------------------*/ } 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"); } /******************************************************/.

<span class='text_page_counter'>(28)</span>

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×