100 Học Python - Số Hoàn Hảo Hai Cách Kiểm Tra và So Sánh Hiệu Suất
DANH SÁCH TÓM TẮT:
SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH TIỀN GIANG TRUNG HỌC cơ SỞ
Năm học 2012-2013 Môn: TIN HỌC
Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 27/3/2013 (Đề thi có 02 trang, gồm 05 bài)
Hãy ỉập trình giải các bài toán sau:
Bài 1: Chuyển đổi thang đo (5 điểm) Tên chương trình: DOI.PAS
Một nhà khoa học có ba loại nhiệt kế sử dụng các thang đo nhiệt độ khác nhau: một chỉ độ Celsius (C), một chỉ độ Fahrenheit (F) và một chỉ độ Kelvin (K). Trong thí nghiệm của mình, ông đã sử dụng cả ba loại nhiệt kế và ông cần một máy tính để nhanh chóng chuyển đổi giữa các loại này. Biết công thức chuyển đổi là:
F = –C + 32
5
K = c + 273.15
Yêu cầu: Đọc vào số đo và đơn vị đo nhiệt độ, hãy chuyển đổi sang các đơn vị đo còn lại.
Dữ liệu: Vào từ file văn bản DOI.INP gồm 1 dòng chứa số thực (biểu diễn số đo nhiệt độ) và đơn vị đo nhiệt độ cần chuyển (là một trong các chữ cái F, c, K). Các số này cách nhau bởi dấu cách.
Kết quả: Ghi ra file văn bản DOI.OUT gồm 3 dòng chứa các thông tin theo thứ tự: Nhiệt độ F, Nhiệt độ c, Nhiệt độ K.
DOI.INP | DOI.OUT | |
20 c | Nhiet do F Nhiet do c Nhiet do K | 68 20 293.15 |
Bài 2: Đếm số 0 (3 điểm) Tên chương trình: ZERO.PAS
Tìm độ dài xâu con dài nhất chứa các số 0 liên tiếp trong 1 xâu cho trước.
Dữ liệu: Vào từ file văn bản ZERO.INP gồm 1 dòng chứa xâu chỉ gồm các kí tự 0 và 1 (không cách nhau bởi dấu cách). Độ dài xâu không quá 100.
Kết quả: Ghi ra file văn bản ZERO.OƯT chứa độ dài xâu con dài nhất chứa các số 0 liên tiếp.
|
Bài 3: Xóa kí tự (5 điểm) Tên chương trình: XOAKT.PAS
Viết chương trình xóa kí tự thứ n của xâu s cho trước. Các kí tự trong xâu s được đánh số thứ tự từ 1, từ trái sang phải.
Dữ liệu: Vào từ file văn bản XOAKT.INP chứa 1 dòng theo thứ tự gồm 1 số nguyên N, dấu cách, xâu s chỉ chứa các kí tự ‘a\.’z’, ‘A\.’Z\ số N không vượt quá độ dài của xâu s đã cho. Độ dài của xâu s không vượt quá 80.
Bài 4: Tìm số âm (5 điểm) Tên chương trìnhỉ SOAM.PAS
Tìm vị trí của số nguyên âm lớn nhất trong dãy số nguyên cho trước. Nếu tìm được nhiều hơn 2 vị trí thì chỉ ra vị trí đầu tiên xuất hiện (dãy số nguyên được đánh số bất đầu từ 1).
Dữ liệu: Vào từ file văn bản SOAM.INP gồm:
Kết quả: Ghi ra file văn bản SOAM.OUT chứa vị trí của số nguyên âm lớn nhất trong dãy, nếu không tìm dược thì ghi -1.________________________________________ ________________________________________
Bài 5: Dãy số (2 điểm) Tên chương trình: DAYSO.PAS
Số nguyên f được gọi là ước số (dương) của số nguyên d nếu f lớn hơn 0 và tồn tại số nguyên n sao cho f X n = d. Ví dụ, số 12 là ước số của 60 vì 12 X 5 = 60.
Dãy số nguyên Xi, X2, …, Xn được gọi là dãy DDF nếu:
Ví dụ
Dãy số 17, 9, 13, 5, 6, … là dãy DDF được hình thành theo cách sau:
Biết rằng, với dãy số DDF bắt đầu bằng XI thì đến một lúc nào đó sẽ tồn tại Xn sao cho Xj = Xn, với mọi j>n. số Xn sẽ được gọi là so hạng cuối của dãy.
Yêu cầu: Xác định chiều dài của dãy DDF với số hạng đầu cho trước. Chiều dài của dãy DDF là giá trị của n, với Xn là giá trị cuối của dãy.
Dữ liệu: Vào từ file văn bản DAYSO.INP gồm 1 dòng chứa số hạng đầu XI (xi < 2000).
Kết quả: Ghi ra file văn bản DAYSO.OƯT chứa chiều dãi của dãy DDF.
———— hết——————
SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TIỀN GIANG TRƯNG HỌC cơ SỞ
Năm học 2014-2015 Môn: TIN HỌC
Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 25/3/2015 (Đề thi có 03 trang, gồm 05 bài)
Hãy lập trình giải các bài toán sau:
Bài 1: Tìm từ (5 điểm) Tên chương trình: ỊVORD.PAS
Cho trước một xâu kí tự. Một từ được định nghĩa là một xâu con liên tiếp chứa các chữ cái (,al…,zl hoặc ‘A’..’Z’). Một từ có thế được giới hạn giữa các dấu cách hoặc chấm câu. Dấu chấm câu là một trong các kí tự sau: dấu chấm (.), dấu phẩy (,), dấu chấm phẩy (;), dấu chấm than (!) hoặc dấu chấm hỏi (?).
Yêu cầu: Hãy tìm tất cả các từ có trong xâu mà có kí tự bắt đầu và kí tự kết thúc giống nhau (có phân biệt giữa chữ in hoa và chữ in thường).
Dữ liệu: Vào từ file văn bản WORD.INP chứa xâu kí tự gồm các chữ cái (‘a’…^’ hoặc ‘A’..’Z’), dấu cách, hoặc dấu chấm câu. Độ dài xâu không quá 100 kí tự.
Kết quả: Ghi ra file văn bản WORD.OƯT danh sách các từ mà có kí tự bắt đầu và kí tự kết thúc giống nhau, mỗi từ trên 1 dòng. Nếu không tìm thấy thì ghi -1.
WORD.INP | WORD.OUT |
dawd | |
Jun dawd gog, vex symphs. | gog |
symphs |
Bài 2: Số thử tự (5 điểm) Tên chương trình: INDEX.PAS
|
Một file văn bản chứa thông tin về học sinh của một lớp học gồm số thứ tự của học sinh và theo sau là tên của học sinh đó. Do lóp vừa nhận thêm một học sinh chuyển đến và giáo viên chủ nhiệm xếp học sinh này vào đầu danh sách nên cần đánh lại số thứ tự của các học sinh trong danh sách lóp.
Yêu cầu: Đánh lại số thứ tự của tất cả học sinh có trong danh sách bằng cách tăng số thứ tự của mỗi học sinh lên 1 đơn vị và giữ nguyên danh sách theo trật tự ban đầuT
Dữ liệu: Vào từ file văn bản INDEX.INP gồm:
Kết quả: Ghi ra file văn bản INDEX.OƯT danh sách học sinh nhu định dạng ban đầu nhung đã tăng số thứ tự của mỗi học sinh lên 1 đơn vị.
INDEX.INP | INDEX.OUT |
2 | 2 |
14 Nam | 15 Nam |
42 Thanh | 43 Thanh |
Bài 3: Dãy Min-Max (5 điểm) Tên chương trình: MINMAX.PAS
Cho trước dãy s chứa các số nguyên, vị trí các phần tử được đánh số từ 1 trở đi và từ trái sang phải.
Yêu cầu: Hãy tìm 2 dãy số nguyên dương, trong đó dãy số thứ nhất biểu diễn các vị trí trong s tại đó chứa số hạng nhỏ nhất của dãy s và dãy số thứ hai biếu diễn các vị trí trong s tại đó chứa số hạng lớn nhất của dãy s.
Dữ liệu: Vào từ file văn bản MINMAX.INP gồm :
Kết quả: Ghi ra file văn bản MINMAX.OƯT lần lượt chứa 2 dòng:
Các số trên cùng 1 dòng cách nhau bởi dấu cách.
MINMAX. INP | MINMAX.OUT | |
7 | 3 | |
3 6 | -14653 | 2 5 |
Bài 4: Số gốc (3 điểm) Tên chương trình: ROOT.PAS
Cho trước số tư nhiên a có biểu diễn trong hê cơ số 10 là a = a a _H … an SỐ gốc của số tự nhiên a được xác định như sau:
o Nếu s <10 thì thay 2 số vừa chọn trong biểu diễn của a bằng s. o Nếu s >10 thì thay 2 số vừa chọn trong biểu diễn của a bằng S-9.
Ví dụ: Tìm số gốc của số a= 87345691. Đầu tiên, cộng 2 số 8 và 7. Ta được số 15. Vì tổng tìm được lớn hơn 10 nên ta thay 2 số đầu của a bằng 15-9, khi đó a sẽ là 6345691. Tiếp tục, cộng 2 số 6 và 3 được 9, sau khi thay thế a sẽ là 945691. Cộng 2 số 9 và 4 được 13, sau khi thay thế a sẽ là 45691. Cộng 2 số 4 và 5 được 9, sau khi thay thế a sẽ là 9691. Cộng 2 số 9 và 6 được 15, sau khi thay thế a sẽ là 691. Cộng 2 số 6 và 9 được 15, sau khi thay thế a sẽ là 61. Cộng 2 số 6 và 1 được 7, sau khi thay thế a sẽ là 7. Sơ đồ thay thế như sau:
8+7=15^15-9=6->6+3=9->9+4=13^13-9=4->4+5=9->9+6=15^15-9=6^6+9=15^ 15-9=6^6+1=7 SỐ gốc tìm được là 7.
Yêu cầu: Viết chương trình xác định số gốc của số nguyên a cho trước.
Dữ liệu: Vào từ file văn bản ROOT.INP chứa số nguyên a (< maxlongint).
Kết quả: Ghi ra file văn bản ROOT.OƯT chứa số gốc của số nguyên a.
ROOT.INP | ROOT.OUT |
87345691 | 7 |
Bài 5: Xâu SubsThree (2 điểm) Tên chương trình: SƯBSTH.PAS
Xâu con của xâu s được hiểu là một dãy các ký tự liên tiếp của s.
Xâu SubsThree của s là xâu con thỏa mãn:
Ví dụ, xâu “130a303” chứa 9 xâu Substhree như sau: ba xâu “3”, hai xâu “30”, hai xâu “0”, một xâu “303” và một xâu “03”. Xâu “30a3” không là xâu Substhree vì có chứa chữ cái, còn xâu “13” không xâu Substhree vì số 13 không chia hết cho 3.
Lưu ý rằng hai xâu Substhree được xem là khác nhau nếu chúng khác nhau về độ dài hoặc vị trí bắt đầu của chúng trong xâu s (mặc dù các kí tự của chúng giống nhau)
Yêu cầu: Cho trước xâu s, hãy đếm số lượng xâu Substhree chứa trong s.
Dữ liệu: Vào từ file văn bản SƯBSTH.INP chứa xâu khác rỗng s có tối đa 106 kí tự. Môi kí tự của s chỉ có thể là chữ số ‘0’..’9′ hoặc chữ in thường ‘aVy.
Kêt quả: Ghi ra fìle văn bản SƯBSTH.OƯT chứa nguyên biểu diễn số lượng xâu Substhree chứa trong s.
SUBSTH.INP | SUBSTH.OUT |
130a303 | 9 |
————— hết————————-
SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH TIÈN GIANG TRUNG HỌC co SỞ
Năm học 2013-2014 Môn: TIN HỌC
Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 26/3/2014 (Đề thi có 03 trang, gồm 05 bài)
Hãy lập trình giải các bài toán sau:
Bài 1: Dãy Subtra (5,0 điểm) Tên chương trình: SUBTRA.PAS
Dãy số ti, t2,…tm được gọi là dãy Subtra nếu:
Ví dụ, nếu bắt đầu bằng hai số 120 và 71 thì dãy Subtra được phát sinh
như sau: 120; 71; 49; 22; 27. Dãy kết thúc ở số 27, độ dài của dãy là 5.
Yêu cầu: Đọc vào hai số ti và Í2, hãy tìm độ dài của dãy Subừa với hai sổ bắt đầu là ti và t2.
Dữ liệu: Vào từ fíle văn bản SƯBTRA.INP chứa hai số nguyên dương ti và t2, 0<Í2<ti< 10000, mỗi số nằm trên 1 dòng.
Kết quả: Ghi ra file văn bản SUBTRA.OƯT độ dài của dãy Subtra với hai số bắt đau là ti và t2-
SUBTRA.INP | SUBTRA.OUT |
120 71 | 5 |
Bài 2: Đọc văn bản (3,0 điểm) Tên chương trình: ARAP.PAS
Tiếng Ả Rập, tiếng Ba Tư và tiếng Do Thái là các ngôn ngừ rất đặc biệt không giống như tiếng Anh và nhiều thứ tiếng khác, nó được viết từ phải sang trái. Tuy nhiên, những con số vẫn giừ nguyên (viêt từ trái sang phải). Ví dụ,
câu “manteiv fo tsaoc ffo deraeppasìd sregnessap 221 gniyrrac 777 gnieoB” sẽ được viết theo tiếng Anh là: “Boeing 777 carrying 221 passengers disappeared off coast of Vietnam
Yêu cầu: Chuyển xâu văn bản tiếng Ả Rập sang văn bản Tiếng Anh.
Dữ liệu: Vào từ file văn bản ARAP.INP chứa xâu văn bản theo tiếng Ả rập gồm các từ, mồi từ chứa các kí tự (a-z, A-Z, 0-9) ngăn cách nhau bởi dấu cách.
Kết quả: Ghi ra file văn bản ARAP.OUT chứa xâu văn bản theo tiếng Anh.
ARAP.INP | ARAP.OUT |
manteiv fo tsaoc ffo deraeppasid sregnessap 227 gniyrrac 777 gnieoB | Boeing 777 carrying 227 passengers disappeared off coast of Vietnam |
Bài 3: Độ cao (5,0 điểm) Tên chương trình: HEIGHT.PAS
Bạn được giới thiệu một số địa điểm để tham quan. Mỗi địa điểm được giới thiệu bao gồm tên địa điểm và độ cao của nó.
Yêu cầu: Hãy xác định trong các địa điểm đã cho, một địa điểm có độ cao gần nhất với độ cao của bạn ưa thích.
Dữ liệu: Vào từ file văn bản HEIGHT.INP gồm:
Kết quả: Ghi ra file văn bản HEIGHT.OUT chứa tên địa điểm mà bạn chọn. Nếu có 2 địa điểm được chọn thỏa mãn yêu cầu đề ra, hãy in ra tên địa điểm có độ cao lớn hon.
HEIGHT.INP | HEIGHT.OUT |
5 Everest 8850 Kamet 7756 Bahamas 10 Maldives 0 Mariana -11521 | Bahamas |
Bài 4: Tính thời gian chênh lệch (5,0 điểm) Tên chương trình: TIME.PAS
Để xây dựng các công trình thủy lợi đôi khi cần phải khoan nổ mìn đào đá. Việc tính toán thời gian nổ phải thật chính xác để đảm bảo an toàn cho người lao động.
Yêu cầu: Biết thời điểm hiện tại và thời điểm sẽ xảy ra vụ nổ. Hãy xác định khoảng thời gian chênh lệch giữa 2 thời điểm nói ưên.
Dữ liệu: Vào từ file văn bản TIME.INP gồm:
TIME.INP | TIME.OUT |
20:00:00 04:00:00 | 08:00:00 |
12:34:56 14:36:22 | 02:01:26 |
Bài 5: Số mát mẻ (2,0 điểm) Tên chương trình: COOL.PAS
|
Theo định nghĩa của một nhóm nghiên cứu Tin học, 0 là một chừ số mát mẻ. Họ gọi độ mát của một số là số lượng 0 trong biểu biễn thập phân của nó. Ví dụ: độ mát của số 100 là 2, độ mát của số 1 là 0.
Yêu cầu: Tìm tổng độ mát của các số từ 0 đến sổ nguyên N cho trước.
Dữ liệu: Vào từ file văn bản COOL.INP chứa số nguyên N (0< N < 10 000
000).
Kết qỊuả: Ghi ra fíle văn bản COOL.OUT chứa tổng độ mát của các số từ 0 đến sổ nguyên N.
———– hét—————— • Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng). • Thí sinh không được sử dụng tài liệu. • Giám thị không giải thích gì thêm.
|
Cho trước số nguyên N. Hãy tìm số nguyên lớn nhất nhỏ han N sao cho tổng các chữ số của nó nhỏ hơn tổng các chữ số của số nguyên N một đơn vị.
Dữ liệu: Vào từ fíle văn bản NUMBER.INP chứa số nguyên N(1<N<100
000) ‘
Kết quả: Ghi ra file văn bản NUMBER.OƯT chứa số nguyên cần tìm.
NUMBER.INP | NUMBER.OUT |
1520 | 1510 |
Bài 3: Báo cáo tài chính (5 điểm) Tên chươiĩg trình: REPORTPAS
Nhân dịp tổng kết cuối năm, bạn được giao nhiệm vụ thống kê tổng số chi phí của từng nhân viên của một công ty sau các chuyến du lịch trong năm. Mỗi nhân viên phải nộp báo cáo chi phí cá nhân cho bạn sau mỗi chuyến đi.
Yêu cầu: Viết một chương trình đọc vào danh sách gồm tên từng người và chi phí của họ, sau đó tạo ra một danh sách được sắp xếp theo tên nhân viên, kèm theo tống số chi phí của mỗi cá nhân.
Dữ liệu: Vào từ file văn bản REPORT.INP có:
Kết quả: Ghi ra file văn bản REPORT.OUT chứa danh sách các nhân viên trong công ty kèm theo tổng chi phí của họ trong năm, trong đó tổng chi phí được làm tròn hai số lẻ. Danh sách cần được sắp xếp alphabet theo tên người. Tên người phải được viết hoa chữ cái đầu tiên, các chữ cái còn lại là chữ thường.
REPORT.INP | REPORT.OUT |
5 trung 450.55 binh 1034.56 trUNg 1000.00 daNn 530.00 danH 470.00 | Binh 1034.56 Danh 1000.00 Trung 1450.55 |
Cho trước hai sổ nguyên N và D. Hãy tỉm N số nguyên dương X]…XN sao cho hiệu số giữa tích của chúng và tổng của chúng bằng với D.
Dữ liệu: Vào từ file văn bản SUMPRO.INP chứa hai số nguyên dương N (2<N< 1000) và D (0 <D < 1000).
Kết quả: Ghi ra file văn bản SUMPRO.OUT chứa N số nguyên dương thỏa mãn yêu cầu nói trên theo thứ tự không giảm. Lưu ý rằng các số tìm được có thể bằng nhau. Giá trị các số được in không vượt quá 1 o6.
Các số trên cùng 1 dòng cách nhau bởi dấu cách
|
Bài 5: Cân bằng bit (2,0 điểm) Tên chương trình: BỈT.PAS
Đọc vào 2 xâu khác rỗng s và T có độ dài bằng nhau, s chứa các kí tự ‘0’,
‘1’và ‘?\ còn T chỉ chứa các kí tự ‘0’ và ‘1\
Yêu cầu: Hãy chuyển đổi xâu s thành xâu T với số bước nhỏ nhất. Biết rằng môi bước có thế thực hiện một trong các thao tác sau:
Ví dụ: Với xâu s = ‘0?1?’ và T = ‘1001’. Ta có thể chuyển s thành T trong vòng 3 bước sau:
Dữ liệu: Vào từ file văn bản BIT.INP gồm 2 dòng chứa 2 xâu s và T, mỗi dòng có độ dài không quá 100.
Kết quả: Ghi ra fỉle văn bản BIT.OUT chứa số bước nhỏ nhất để chuyển đổi s thành T. Nếu không chuyển đổi được thì ghi số -1.
————- HẾT—————— • Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng). • Thỉ sình không được sử dụng tài liệu. • Giám thị không giải thích gì thêm.
|
Họ và tên thí sinh:…………………………………… số báo danh:……………………………………………………………
SỎ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TIẺN GIANG TRƯNG HỌC co SỎ
Năm học 2016-2017 Môn: TIN HỌC
Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi : 22/3/2017 (Đe thi có 04 trang, gồm 05 bài)
Hãy lập trình giải các bài toán sau:
Bài 1: Giai thừa ngược (5 điểm) Tên chưong trình: PINV.PAS
Trong toán học, n! (đọc là n giai thừa) được định nghĩa như sau:
n! =1x2x3x … X (n-1) X n (n là số nguyên không âm) Ví dụ: 3! = 1 X 2 X 3 = 6
Đặc biệt: với n = 0, người ta quy ước 0! = 1. Ký hiệun! được dùng lần đầu bởi Christian Kramp vào năm 1808.
Yêu càu: Biết trước giá trị của n!, hãy tìm sô nguyên n.
Dữ liệu: Vào từ file văn bản FINV.INP chứa giá trị của n!. Biết rằng số chữ số của n! không vượt quá 1 o6.
Kết quả: Ghi ra file văn bản FlNV.OƯT chua số tự nhiên n tìm được. Nêu không tìm được số nauvên n thì ghi -1.
FINV.INP | FINV.OUT |
3628800 | 10 |
Bài 2Í Chu kỳ dự đoán (5 điểm) Tên chương trình: PẼRI.PAS
Ngày nay, có nhiều mô hình dự báo nhăm để biết trước những điều có thể xảy ra trong tương lai. Một mô hình thường dự báo, dự đoán giá trị của biến số (hoặc một dãy biến số) tại một số diêm trong tương lai căn cứ vào những dữ liệu trong quá khứ.
Dãy số nguyên ai. a2, …,an được gọi là dãy dự đoản chu kỳ k nếu tồn tại số nguycn dương k (IV k<n) sao cho mọi phần tử a; của dãy đều thỏa mãn a, a;+k với 1< i< n (nếu phần ai+k nằm ngoài dãy thì xem như nó nhận giá trị tùy chọn), số nguyên dương nhỏ nhất k thỏa mãn tính chất trên được gọi chu kỳ dự đoán của dãv số.
Một lập trình viên được đặt hàng viết chương trình phân tích chuỗi giá trị cho trước và cho biêt chuỗi này có khả năng tạo chu kỳ dự đoán k=3 hay không?
Yêu cầu: Đọc vào 1 dãy số nguvên và cho biết có là dãv dự đoán chu kỳ k=3 không?
Dữ liệu: Vào từ file văn bản PERI.INP
Ket quả: Ghi ra file văn bản PERI.OUT chứa chữ “YES” nếu dãy đã cho là dãy dự đoán chu kỳ k=3, ngược lại ghi chữ “NO”.
PERI.INP | PERI.OUT |
12 12 3′ 123123123 | YES |
11 123123 t 2312 | YES |
7 7 3 6 7 2 3 9 | NO |
Bài 3: Tên mã (4 điểm) Tên chương trình: CODE.PAS
Ngoài tên gọi chính, một hệ điều hành còn có tên phiên bản và tên mã (codename), tất cả đều được đặt theo một quy luật hay lý do nào đó. Ví dụ, hệ điều hành Android 4.4 có tên mã là KITKAT, Windows Phone có tên mã PHOTON, Fedora 14 có tên là LAƯGHLIN.
Tại Hội nghị triến lãm sản phẩm phần mềm, Ban Tổ chức quy định rằng tên mã đạt siải cao nhất là tên mã có số lượng chữ cái khác nhau nhiều nhất. Ví dụ: Tên mã K1TKAT có 4 chữ cái khác nhau: A, I, K và T; Tên mã JELLY BEAN có 7 chữ cái khác nhau A, B, E, J, L, N và Y; nên tên mã JELLY BEAN đạt giải cao nhất.
Ngoài ra cũng lưu ý rằng, nếu hai tên mã có cùng số chữ cái khác nhau thì tên mã nhỏ hơn sẽ đạt giải cao nhất. Biêt rằng phép so sánh hai tên mã được thực hiện theo quy tăc như sau:
+ Tên mã A gọi là nhỏ hơn tên mã B (B lớn hơn A) nếu như kí tự dầu tiên khác nhau giữa chúng kể từ trái sang phải trong tên mã A có mã ASCII nhỏ hơn.
+ Nếu A và B là các tên mã có độ dài khác nhau và A là đoạn đầu của B thì A là nhỏ hơn B.
Yêu cầu: Được biết danh sách liệt kê tên mã của các hệ điều hành, hãy xác định tên mã của hệ điều hành đạt giải cao nhất?
Dữ liệu: Vào từ fìle văn bản CODE.INP gồm:
Ket quả: Ghi ra ílle văn bản CODE.OUT chứa tên mã đạt giải cao nhất.
CODE.INP | CODE.OUT |
3 OREO | KITKAT |
SID
KĨTKAT _____________________
Bài 4: Xổ số điện toán (4 điểm) Tên chương trình: LOT.PAS
Người chơi tham gia được tự chọn n vé số để dự thưởng, mỗi vé số là một chuồi số gồm 6 bộ số phân biệt, mỗi bộ số là 1 số nguyên có 2 chữ số (có giá trị từ 01, 02,…,45).
trên.
Sau khi so từng vé số với chuỗi số kết quả quay thưởng của Ban Tổ chức công bô, người chơi sẽ biêt được có trúng thưởng hay không. Tổng sô tiền thưởng của người chơi là tống số tiền thưởng nhận được của từng vé số trúng thưởng.
Cơ cấu giải thưởng được xác định như sau:
Lưu ý:
22
thì người này sẽ trúng thưởng 60000 đồng Dữ liệu: Vào từ file văn bản LOT.INP gồm:
Các bộ số trong chuỗi số kết quả quay thưởng và trong 1 vé số cách nhau bởi dấu cách.
Ket quả: Ghi ra file văn bản LOT.OUT chứa tổng số tiền thưởng nhận được. Nếu không trúng thưởng thì ghi số 0. Neu trúng giải đặc biệt thì ghi ‘JACKPOT’.
LOT.INP | LOT.OUT |
03 02 07 41 36 22 5 | 60000 |
Bài 5: Số bội của 3 (2 điểm)
Hệ thông lưới điện có thê bị gây hại bởi nhiêu tác nhân, trong đo một nguy cơ tiềm ẩn làm cản trở hoạt động và làm hao mòn thiết bị nhưng ít người nhận biết được chính là sóng hài – mối nguy cơ tiềm ẩn được phát hiện ngay đầu thập niên 1890.
Sóng hài (harmonic) là dòng điện không mong muốn làm quá tải đường dây và biến áp, làm tăng nhiệt độ hệ thống (hoặc thậm chí gây hỏa hoạn) và gây nhiễu lên lưới điện. Sóng hài là các điện áp hay dòng điện hình sin có tần số là bội số của tần số công nghiệp (tần số cơ bản), do hiện diện của các tải phi tuyến trong lưới điện. Ví dụ dòng điện hài có tần số 150HZ trên lưới điện 50HZ là sóng hài bậc 3. Thường chỉ có sóng hài bậc lẻ 3, 5, 7, 9 là xuất hiện trong lưới điện 3 pha.
Với tần số của 1 dòng điện đã cho, cần tìm sóng hài bậc 3 có ảnh hưởng đối với tân số của dòng điện đã cho.
Yêu cầu: Cho trước tự nhiên n. Hãy thay đổi 1 chữ số của n để được số chia hết cho 3 và là số lớn nhất trong các so tìm được (kể cả trường hợp ban đâu n chia hết cho 3).
Dữ liệu: Vào từ file văn bản MUL3.INP chứa số tự nhiên n có tối đa 100 chữ số.
Kết quả: Ghi ra file văn bản MUL3.0UT chứa số tự nhiên tìm được theo yêu cầu trên.
MUL3.INP | MUL3.OUT |
123 | 723 |
9 | 6 |
HÉT
|
Họ và tên thí sinh:……………………………………………… số báo danh:……………………………………………………………….
KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TRUNG HỌC CO SỞ Năm học 2017-2018 Môn: TIN HỌC
Thời gian: 150 phút (khổng kể thời gian giao đề)
Ngày thi: 30/3/2018
(Đê thi có 03 trang, gồm 05 bài)
Hãy lập trình giải các hài toán sau:
Bài 1: Chỉ số BMR (5 điểm) Tên chương trình: BMR.PAS
‘BM&Ợìasal Metabolic Rate) là chỉ số năng lượng cơ bản của cơ thể cho biết mức năng lượng tối thiểu mà cơ thế cần để duy trì các hoạt động bình thường.
Nừ giới: BMR = 655 + (9.6 X kg) -f (1.8 X cm) – (4.7 X tu ổi) Nam giới: BMR = 66 + (13.7 X kg) -h (5 X cm) – (6.8 X tuồi)
Yẽu cầu: Đọc vào thông tin của 1 người bao gồm giới tính, tuổi, chiều cao, cân nặng và mức độ hoạt động của người đó. hãy tính lượng calo cần thiết.
Dữ liệu: Vào từ file văn bản BMRHNP gồm 5 dòng:
S: quá ít hoạt động (ít hoặc không tập luyện); L: ít hoạt động; M: hoạt động vừa; A: hoạt động nhiều; E: hoạt động cường độ cao.
Kết quả: Ghi ra file văn bản BMR.OUT chứa lượng calo cần thiết cho người đó. Kết quả là một số nguyên không lấy phán thập phân.
BMR.INP | BMR. OUT |
NAM | 1713 |
52 | |
1 65 | |
65 | |
s |
Bài 2: Số Emỉrp (5 điểm) Tên chương trình: EMỈRP.PAS
Số Emirp là một số nguyên tố mà khi đảo ngược vị trí các chữ số của nó, ta cũng được một số nguyên tố. Định nghĩa này không bao gồm các số nguyên tố xuôi ngược (đọc ngược hay xuôi cũng là số nguyên tố chính nó), như 151 hoặc 787) và không bao gồm các số nguyên tố có một 1 chữ số. Biêt rằng, số nguyên tố là số tự nhiên chỉ có hai ước sô dương phân biệt là 1 và chính nó.
Yêu cầu: Đọc vào số nguyên n, hãy cho biết n có là số Emirp không?
Dữ liệu: Vào từ file văn bản EM3RP.INP chứa số nguyên n (1< n < 10000).
Kết quả: Ghi ra file văn bản EMIRP.OUT chứa chứa chữ “YES” nếu n là số Emirp, ngược lại ghi chữ “NO”.
EMIRP . INP | EMIRP.OUT |
149 | YES |
Bài 3: Số thân thiện (4 điểm) Tên chương trình: FRIEND.PAS
Người ta gọi bộ 3 số nguyên dương là thăn thiện nếu chúng khác nhau đôi một và tích của hai trong số chúng chia hết cho số thứ ba.
Yêu cầu: Đọc vào hai số nguyên dương phân biệt, hãy đếm xcm có bao nhiêu số nguyên tạo với hai số dã cho thành bộ 3 số thăn thiện.
Dữ liệu: Vào từ file văn bản FRIEND.INP chứa 2 số nguyên dương phân biệt cách nhau bởi dấu cách, mỗi số có giá trị không vượt quá 40000.
Kết quả: Ghi ra file văn bản ERIEND.OUT chứa số lượng số nguyên tạo với hai số đã cho thành bộ 3 sô thân thiện.
FRIEND.INP | FRIEND.OUT |
5 15 | õ |
Giải thích: Có đúng hơi số cùng với số 5 và số ỉ5 tạo thành bộ 3 thân thiện là số 3 (vì 3×5 chia hết cho 15, 3×15 chia hết cho 5 và 5 X 15 là chia hết cho 3) và số 75 (vì 5 X 15 chia hết cho 75, 5 x 75 chia hết cho 15 và 15 X 75 chia hết cho 5).
|
Bài 4: Giải mã Email (3 điểm) Tên chương trình: EMAIL.PAS
Một người dùng giấu một mật khẩu trong một email đâ gửi. Email đã gửi bao gồm một số dòng văn bản. Mỗi dòng chứa một số từ. Từ là dãy liên tiếp các chữ cái 6a\.’z\ Mật khẩu được thành lập bằng cách ghép theo thứ tự các từ lấy trong nội dung email đã gửi.
Mật khẩu được tìm thấy dựa theo quy luật sau:
Và tiếp tục như thể…
Luu ý: Nếu trên một dòng nào của email khòng tìm được từ nào của mật khẩu theo quy luật trên thì lừ tìm được là rỗng và không đưa từ rỗng vào mật khẩu.
Dữ liệu: Vào từ file văn bản EMAIL.INP gồm:
Kết quả: Ghi ra file văn bản EMAIL.OUT chứa mật khẩu tìm được theo quy luật trên. Mỗi từ cua mật khâu nằm trcn 1 dòng. Dữ liẹu vào đain bảo mật khẩu tìm được luôn khác rỗng.
EMAIL.INP | EMAIL,OƯT |
5 | toi |
viet nam la quoc gia thuoc khu vuc dong nam a | dang |
toi thay hoa vang tren co xanh | o |
tet dang vao nha | nga |
tim nha o | |
bay chim thien nga |
Bái 5: Dãy con (3 điểrii) Tên chương trình: SƯBSEQ.PAS
|
Cho dãy A có n phần tử. mỗi phần tử là một số nguyên (có thể âm, bàng 0 hoặc dương). Hãy tim dãy con khác rỗng các phần tử liên tiép của A sao cho:
Hay nói cách khúc: Tìm 2 số nguvên / và /• (1 <l<r<n) sao cho a/ = ar và tổng a/ + ÍU+I + • • • + ar là lớn nhất.
Dữ liệu: Vào từ file văn bản SUBSEQ.INP gồm:
Kết quả: Ghi ra file văn bản SUBSEQ.OUT gồm:
Các số trên cùng một dòng cách nhau bởi dấu cách. Neu tìm được hơn 1 lời giải thì xuất ra bát kỳ một trong số chúng.
SƯBSEQ.INP | SƯBSEQ.OƯT |
5 | 5 |
12 12 3 | 2 4 |
…………… HÉT………………….. • Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng). • Thí sinh không được sử dụng tài liệu. • Giám thị không giải thích gì thêm.
|
KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TRUNG HỌC CO SỞ Năm học 2018-2019 Môn: TIN HỌC
Thời gian: 1.50 phút (không kể thời gian giao đề)
Ngày thi: 20/3/2019
(Đề thi có 04 trang, gồm 05 bài)
TONG QUAN CÁC BÀI THI
(Dấu * đưọc thay bỏi PAS hoặc CPP của ngôn ngũ’ lập trình đuọc sử dụng tuoìig ứng vỏ’i Pascal hoặc C++). Hãy lập trình giải các bài toán sau:
|
Bài 1: Lễ hội Cà phê (5 điểm)
Ban To chức Lễ hội Cà phê năm 2019 vạch ra một kế hoạch cho các sự kiện sẽ diễn ra trong Le hội. Mỗi sụ’ kiện được Ban Tổ chức dự kiến thời gian diễn ra bao gồm thời gian bắt đầu và thời gian kết thúc.
Yêu cầu: Căn cứ thông tin của Ban Tố chức, hãy xác định thời gian bắt đầu (thời gian bắt đầu của SỊT kiện sớm nhất) và kểt thúc (thòi gian kết thúc sự kiện cuối cùng) của Lề hội, tông thời lượng của các sự kiện (không bao gồm thời gian nghỉ) và tông thòi gian nghỉ.
Dữ liệu: Vào từ file văn bán CAFE.INP có:
Kết qua: Ghi ra file văn bản CAFE.OƯT chứa bổn dòng:
Dòng ĩ: Thời gian bắt đầu (thòi gian bắt đầu của sự kiện sớm nhất).
Dòng 2: Thời gian kết thúc (thời gian kết thúc sự kiện cuối cùng).
Dùng 3: Tổng thời lượng của các sự kiện (không bao gồm thời gian nghỉ). Dòng 4: Tống thời gian nghỉ.
Tất cả dữ liệu đầu ra theo định dạng hh:mm.
CAFE.INP | CAFE.OUT |
3 | 10 : 00 |
Opening 15:20-17:20 | 17 : 20 |
Speech 10:00-11:00 | 05 : 00 |
Festival 12:00-14:00 | 02:20 |
Bài 2: Số ua thích (5 điểm)
Bình rất thích các số trong đó không có hai chữ số liên tiếp giống nhau.
Yêu cầu: Với một số nguyên n được cho, hãy giúp Bình tìm sổ nguyên nhỏ nhất, lớn han hon n, mà Bỉnh thích.
l)ữ liệu: Vào từ file văn bản LIKE.INP chứa số nguyên n (1 < n < 1018).
Kết quả: Ghi ra ílle văn bản L1KE.OUT chứa sô nguyên nhỏ nhất lớn hơn n, trong đó không có hai chừ sô liên tiếp giông nhau.
|
Bài 3: Phục hồi dãy số (4 điểm)
Trong 1 tiết dạv toán, các học sinh đang được giới thiệu về các số nguyên dương. Đê chuân bị cho tiết học, giáo viên viết sẵn các số từ 1 đến n theo thứ tự tăng dần (từ trái sang phải) trên bảng.
Tuy nhiên, có một học sinh nghịch ngợm đã chạy vào lóp học và đã xóa đi một số đã đưọ’c giáo viên viết trên bảng. Đứng trước Hiệu trưởng, học sinh này xưng tên là Nam, học sinh này rất hối hận và nói rằng mình chỉ xóa đúng một số trong dãy số.
Yêu cầu: Hãy giúp giáo viên tìm hiểu xem điều này có đúng không, và nếu có thế, hãy cho biết số nào đã bị xóa.
Dfr liệu: Vào từ file vãn bản SEQ.INP gồm:
Kết quả: Ghi ra fde văn ban SEQ.OƯT theo định dạng sau:
SEQ.INP | SEQ.OUT |
4 | Yes |
3 | 2 |
13 4 |
Bài 4: Số nguyên tố ló’n nhất (4 điểm)
Một giáo viên Toán muốn kiếm tra kiến thức số học của học sinh lóp mình đang dạy bằng cách như sau: Đầu tiên Ồng giới thiệu với học sinh hai số tự nhiên a vàb. Sau đó yêu cầu học sinh hình thành các sô mới theo quy tăc:
Tiếp tục tạo các số khác theo quy tắc trên cho đến hết chữ số cuối cùng của số a. (nếu số a có 3 chừ sổ thì sẽ có 6 sổ được tạo thành).
Yêu cầu: Biết hai số a và b, hãy tìm sổ nguyên tố lớn nhất trong các số được hình thành theo quy tắc trẻn (kể cả hai số ban đầu a và b). Neu không tìm được số nguyên tố lớn nhất như yêu cầu ở trên thì hiển thị số lớn nhất có thể (kể cả hai số ban đau a và b).
Dữ liệu: Vào từ fiỉe văn bủn PRIME.INP chứa hai số nguyên a vàb (10 < a, b
< ỉ000000).
Kết quả: Ghi ra tìle văn bản PRIME.OIT chứa số nguyên tìm được theo yêu cầu ở trên.
Ví dụ:
_____ *__________________________________________________ ______________________________________ _
Bài 5: Dãy số điểu hòa (2 điểm)
Trung bình điểu hòa là một trong ba trung bình Pythagoras, hai trung bình kia lả trung bình nhân và trung bình cộng (trong Excel có hàm HARMEAN trả về trung bình điều hòa của một tập hợp dữ liệu)
Ta nói rằng ba số a, b, c theo thứ tự tạo thành dãy số điểu hòa nêu b là trung bình điều hòa của a và c, nghĩa là:
2
a c
Yêu cầu: Biết trước số tụ– nhiên b, hãy xác định tất cả các cặp số tự nhiên (a, c) sao cho a, b, c tạo thành dãy số điều hòa.
Dữ liệu: Vào từ file văn bản HARMONIC.INP in chứa một số tự nhiên b.
Kết quả: Ghi ra lìlc văn bản HARMONIC.OUT chứa ở dòng đẩu tiên một số tự nhiên n cho biết cho số cặp số tự nhiên (a, c) trong đó b là giá trị trung bình diều hòa. n dòng tiếp theo sẽ hiến thị các cặp số (a, c) tìm được (chúng cách nhau bởi một dấu cách).
Hạn chế và hru ỷ:
HARMONIC.INP | HARMONIC.OƯT | Giải thich |
3 | 3 | số 3 là trung bình điều |
3 3 | hòa của số 3 và 3. Ta có | |
dãy số điều hòa (3, 3, | ||
2 6 | 3) | |
6 2 | Số 3 là trung bình điều | |
hòa của số 2 và 6. Ta có | ||
các các dãy số điều hòa | ||
(2,3,6) và (6,3,2) |
————- Hét ——————– • Các tập tin chuvng trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng). • Thí sinh không được sử dụng tài liệu. • Giảm thị không giải thích gì thêm.
|
KỲ THI CHỌN HỌC SINH GIỎI CẢP TINH TRƯNG HỌC CO SỞ, NÃM HỌC 2020-2021
Môn: TIN HỌC
Thời gian: 150 phút (không kê thời gian giao để)
Ngày thi: 31/3/2021
(Đê thi có 04 trang, gồm 05 bài)
TỎNG QUAN CÁC BÀI THI
|
Dấu * được thay thế bời PAS, CPP hoặc PY cứa ngôn ngữ lập trình được sử dụng tương ứng là Pascal, C++ hoặc Python.
Bài 1: Số kết đôi (5.0 điểm)
Số nguyên dươna X được gọi là số kết đôi nếu như có thê tim thấy hai số nguyên a, b thoa mãn các điều kiện:
, _ , a 1
b 2
Yêu cầu: Hãy xác định một số nguyên cho trước có là số kết đôi hay không?
Dữ liệu: Vào từ file văn bản NUM.INP chứa số nguyên X (1 < X < 215).
Kết quả: Ghi ra file văn bản NUM.OƯT chứa số 1 nếu X là số kết đôi, ngược lại ghi số 0.
Bài 2: VVorld cup (5.0 điêm)
Liên đoàn Bóng đá Ọuốc tế (FIFA) đã ấn định ngày khai mạc World Cup 2022. Đội chủ nhà Qatar sẽ đá trận đầu tiên trong ngày khai mạc là ngày 21/11/2022.
Phương đang sống ờ Việt Nam, rất dam mê bóng đá và mong chờ được xem lễ khai mạc.
Yêu cầu: Hãy giúp Phương tính xem kể từ một mốc thời gian ngày, còn bao nhiêu ngày nữa là đến lễ khai mạc. Ví dụ, mốc thời gian là ngày hôm nay, nếu lễ khai mạc là ngày mai, thì sẽ còn 1 ngày nữa. Cho biết:
a) Số ngày trong 1 tháng:
b) Năm nhuận:
|
Năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 mà không chia hết cho 100. Ví dụ, năm 1800 không phải là năm nhuận; năm 2016, 2000 là năm nhuận.
Dữ liệu: Vào từ íile văn bản CUP.INP chứa 1 xâu cho biết mốc thời gian ngày cần tính theo định dạng “dd.mm.vyyy”. Trong đó dd là ngày có giá trị từ 01 đến 31, nim là tháng có giá trị từ 01 đến 12, yyyy là năm có 4 chữ số. Dừ liệu ngày cho là hợp lệ. Kết quả: Ghi ra tìle văn bản CƯP.OUT chứa số ngày sẽ đến lễ khai mạc FIFA World Cup 2022.
Bài 3: Phần tử điển hình (4.0 điềm)
Cho trước một mảng có n phần tử A = [ai, a2,…, an]. Phần tử a, được gọi là điển hình nếu tồn tại một cặp chí số L và R (1 < L < R < n) sao cho aj = aL + aL+i +…+ aR. Nói cách khác, một phần tử được gọi là điển hình nếu nó có thể được biếu diễn dưới dạng tông của hai hoặc nhiều hơn các phần tử liên tiếp của một mảng.
Yêu cầu: Đem số phần tử điển hình cua mảng đã cho A.
Ví dụ, nếu n = 9 và A = [3, 1,4, 1, 5, 9, 2, 6, 5] thì số phần tứ điển hình của A là 5, cụ thê:
Lun ý rằng các phần tử của mảng A có thế bằng nhau nên nếu có một số phần tử điển hình mà bằng nhau thì tất cả chúng sẽ được đếm.
Dữ liệu: Vào từ íìle văn bản PART.INP gồm:
(1 < al < n).
Kết quả: Ghi ra file văn ban PART.OUT chứa số phần tử điển hình cua mang đã cho.
PART.INP | PART.OUT |
9 314159265 | 5 |
Bài 4: Đặt mật khấu (4.0 điểm)
Quên mật khẩu Facebook, Gmail, Zalo… là việc thuờng xảy ra khi chúng ta phải đàng nhập rất nhiều tài khoản hằng ngày. Bên cạnh việc tạo mật khẩu mạnh là việc làm thế nào mà bạn có thế nhớ nhùng mật khâu đã tạo. Một người dùng internet nghĩ ra cách tạo một mật khấu mới như sau: Mật khẩu mới là mật khâu chỉ khác các mật khẩu mà anh ta đã có (tạo ra hoặc được cung cấp) nhiều nhất 1 vị trí.
Yêu cầu: Với n xâu s 1 ,s2,- – •, Sn cho trước, các xâu đêu có cùng độ dài m. Hãy tạo xâu mật khấu mới p sao cho mỗi xâu tronc sô n xâu đã cho khác xâu p không hơn một vị trí. Hay nói cách khác, với mồi xâu Si không có hơn 1 vị trí j sao cho Sj[j] V
PDL
Lưu ý: Xâu p mong muốn có thê bằng một trong các xâu Si đã cho, hoặc nó có thể khác với tất cả các xâu Si đã cho.
Dữ liệu: Vào từ file văn bản PW.INP gồm:
Kết quả: Ghi ra file văn bản PVV.OƯT
PW.INP | PW. OUT |
2 4 | abab |
abac | |
zbab |
Bài 5: Sụ– lây lan (2.0 điểm)
Covid-19 lây lan phô biến nhất khi tiếp xúc gần. Những người ớ gần với người mắc Covid-19 hoặc tiếp xúc trực tiếp với người đó sẽ có nguy cơ lây nhiễm cao nhất.
Giả sử có n người (được đánh số từ 1 đến n) đang ở trên 1 con đưòng trong thành phố. Có thê xem vị trí của họ là những điểm trên trục tọa độ Ox. Với mồi chỉ số i, vị trí cua người thứ i là Uj.
o a, a: aj 34 X
0 1234 5 6789
Theo thông báo của cơ quan Y tế , trong n người này có đúng một người đã bị nhiễm Covid-19, nhưng chưa biết đó là ai. Biết rằng, vi-rút sẽ lây lan từ người bị nhiễm sang người không nhiễm bệnh khi khoảng cách tối đa giữa họ bằng 2.
Một người bị nhiễm bệnh sẽ lây nhiễm cho người khác theo hiệu úng tiếp xúc gần. Nhóm người bị nhiễm bệnh này được gọi là tập hợp ngưòi nhiễm bệnh cuối cùng.
Yêu cầu: Hây tìm ra số nhỏ nhất và số lớn nhất những người bị nhiễm cuối cùng, tức là tìm ra con số này trong trường hợp tốt nhất và trong trường hợp xấu nhất có thể
xảy ra.
Dữ liệu: Vào từ file văn bản COVID.INP gồm:
Kết quả: Ghi ra file văn bản COVID.OƯT chứa hai số nguyên cách nhau bởi dấu cách cho biết số nhỏ nhất và số lớn nhất những người có thê bị nhiễm cuối cùng.
COVID.INP | COVID.OUT |
2 | 1 1 |
3 6 | |
3 | 3 3 |
13 5 |
———————————————— HẾT———————————————— ——– :
■ Các tập tin, chương trình phai đặt theo đúng quy định (ca phần tên và phần mở rộng).
Thí sinh không được sử dụng tài liệu. Cán bộ coi thi không giải thích gì thêm.
Họ và tên thí sinh:…………………………….. số báo danh:………………………………………………………
KỶ THI CHỌN HỌC SINH GIỘI CÀP TỈNH [RUNG HỌC Cơ Sớ NSm liợc 2021-2022
Môn: TIN HỌC
Thòi gian lảm bài: 15(1 Ịiluìt íkhông kẽ ỉ hởi gian giao đè) Ngáy ihi: 22/03/2022 ị De thi cỏ 04 trang, gồm 05 bùi)
tông ouàn cắc bãi thi
Tèil bài | ỉ ilt thương trình | Kilt dữ liựu vào | Hiu két quỉ | |
Bâi 1. | SỚ NGUYÊN TỒ DÃY DỨ | KULLPRIMA | KULLPH.JM.LNP | í ULLPR.IM.OUT |
lỉúi 2. | MẶT MẢ | SIiCRCODE* | SECRƠODL.INP | SLCRCODL.OUT |
Bài 3, | CHON PHẢN THƯỞNG | BONUSSiiL-* | BONLSSLL.INP | BỜNUS.SEL.OUT |
Bài 4, | TAM GIAC | TR1ANGLE. | IRÍANGLL 1NP | TR1ANGLL.OUT |
tỉai 5. | LẢI KLP NGAN HÀNG | COM PIN TA | COMPlNTdNP | COMPLNT.OUT |
Dổu * dược thay thề bới PAS, CPPt py cún ngôn ngừ tập trình được Sti dạng tương ứng tù PùỊCữl, £.’++, Pyihún hoặc phần mớ rộng tương ửng v&ĩ M:\LT khác.
|
Dải I: SỎ NGUYÊN TỞ BẦY DV (4.Ộđiềm)-TỄn thương trhMỈa: FULLP(tlM/ hỉuìỉ niệm:
Yeu tầu: Hăy vhk chương ưinh kicm tra trang dằy 5′ sả nguyên dương ù ị cho ưước cù nhữn£ sỏ
náo Lá **Í1Ử ngiẹyẽn lủ đảv đu’.
I)ữ litií vầo: Đtíợc cbo traÉỊg lộp văn ban KULLPRIM.ÍNPị gồm 2 dóng.
cách.
Dứ iiệu ra: Tệp văn hán KULLPKI.M.OI T gốm một dóng thừa dảy ,li’L> nguỳện té đầy du” trơn lì LÍp dừ liệu vào. NẾu trang diy ùi khớmì cộ “iYJ lĩgưyỂn té đầy du” [hi gbi lá 0,
Ví dụ:
Mòn Tín taọẹ_22WV2tì22_Tr»ns 1/4
Bàl 1: MẠ í MÃ (4,0 điểm) – TỀH chương trình: SECRCODE.*
]’rong đợt căm trại Mừng Dáng Mừng Xuân, trưùựg THCS 26/3 lủ chức phát thướng cho nhừna học sinh có ihãnh tích cao trong cuộc thi rin học líé. Bạn An dược mọt cỏniĩ ty ABG thưởng phẩn iỊjềm diẹt viniB 1A một thè cù chùa mà hán quyền. Tiên thê cỏ ghi một ỊÍẾU hi tự, mả bán quyền lủ so lượng ki Lự xuái hiện ưong xâu dó theo thứ tự uiphabet (thử tụ lir đien).
Vi dụ: Neư xâu ghi trên ihc lá abzaabbbbbzbbbb [hi có 3 kỉ lự ít, ]|j kỉ tự b vả 2 ki lự r. Nên mà bán quyẾũ lá 3 102.
YÊU cầu: Bạn lú chuvdn VÍCII về lập trinh Lin học, hây ưiÍLp An tim mâ hun quyỂn trẽn [hè.
L>ữ liệu váo: Dược cho trưng tcp ván bán SECItCODE.INP lá một xâu (chửa ki lự thướng ‘Ả.:i trong bâng chữ cái ‘L iệng Anh, chiều dái của xáu khỏng quá lữ1)
Dứ liệu ra: Tệp vãn bán SECkCODE.OUT, ưhi chuồi sắ Lú mã bún quyên.
Vi dụ í
SECRCODE.1NP | SECRCODE.OLT |
bcỉi{hiiicfxyzhbbcccccỉỉceeex\:xyzzz | 246351334 |
Giúi thích. Chuồi củ 1 kỉ lự ÚT, 4 ki tự b. 6 k[ Lự c> 3 ki lự íỉf 5 ki Lự e, 1 ki tư£ 3 ki lự JC, 3 kE [ự y vá A kí lự z ncn mả bán quyên Lú 246351334.
Bùi 3: CHỌN THAN THƯỞNG (4.0 điếm) – TỄn chương trinh: BQMlSSEL.*
Trong ký thi học sinh gioi L HCS cáp huyện mủn Toán, trong nỏi dung dề có nói VẺ Lí$fỉ chính ph ương ‘ lá sỏ bãỉig bình phương đúng cua một sổ nguyên. i ỉar hỉàíi đơn gúin, sổ chinh phìỉiĩỉỉg lả một sổ tự nhiên cỏ căn bậc hai cùng ià mật sâ tự nhiên. Bạn An dược giái nhất trong kỷ thi đó, thày Thú giáo viẻn dạy toán hoi dưrtng cho An cỏ phằn ihuứng dặc hiệt cho An, dòng ihới cũng muốn kiềm tra kiến thức toản và lư duy vc lập Irinh tin học cũa An như the nèo đẻ dịnh hướng bạn di ngành CNTT Lrong thửi dại cồng mìhc 4.0. ĩhầy yẾu cẳu An chọn nhừng phần thướng má thấy dã xếp ưèn bán thánh l bán tỉ ịĩỉiíỉ trận) gom m dóntĩ vả n CỘI, mi^i phản ihướniì có aiá trị neuvén dương pỊị, (ỉ< Oỹ<Ị0 Phần thưởng An nhặn dưực lá piông tát cá các “Só chỉnh pỉnrơng” cũa báng,
YẾU càu: Hạn bây Lặp trinh eiũp An nhịn phẩn thướng.
DữUệu vàn: Được cho Lrong tọp vin hun BQNUSSEL.INP gèm:
Dử ILẹu ra: Tệp vân bán BONLiSâEL.QUT ghi mộl sả, Lá phần ihướng mả An được ihảy thương
Vỉ dụ:
BONUSSEL.INP | BỘN USSEL.ÓƯT |
23 | 4 |
2 3 4 | |
357 |
35 | 35 |
123 | |
í 5 16 | |
7H9 |
Hài 4: TAM GIÁC (4.Ũ đìẻtìi) – TỄn chương trình: TKIANGLE.*
|
Kỉìủĩ nĩệiìt :
VI dự:
YẾU cầu: Lrẻn mầl phàng tọa dụ (OXY) chu 3 dicmẢ, Bị c cũ Lọa dt) lần lượt hì (íi.Xth (xstysị, ‘ệtc;yc)- Bạn hây lập trinh kiểm tra 3 đinh đó tạo thánh tam giác V uũng không?
|
Líừ IĨCIL vào: Buợc chu ưung ọp vàn hán TRlANGLL.INP gầm:
L>ừ licu ra: Tệp vãn ban TỉtlANGLb.OlJ l, yhi T dùng, mui dỏng gbi ưYES” nẺu lá tam giảc vuông hí lặc “NIO'” nẾu không hi Lam giác vuông.
Ví dụ:
TRIANGLE.INP | triangle,out |
i | NO |
0.0 0.0 LO l.u 2.0 2.0 | YES |
ềJữ 0.0 0.0 iừ.o 0.0 0.0 | NO |
1.0 2.0 3.5 ktì 1.0 2.0 |
Lim Ỷ’ + Binh phương khơáns cách giừa 2 di êm A(XÀy\i) vả lì(.\-B;vsỉ lá
>íBi = (jra-íJ>;!+(yJ->’J>1
+ Oc hạn ehc sai sớ Ironiĩ [inh toán ki cu sà thục, học sinh nành việc lẩy cần bậc 2 rơi binh phương cùa cfin bậc 2.
Bài 5: LÃI KÉP NGÂN HÀNG (4.0 điểm) – Tên chương trình: COMPINT.*
Khái niệm: “Lãi kép” trong tiếng Anh là Compound interest. Đó là số tiền lãi được xác định dựa trên cơ sở số tiền lãi của các thời kì trước đó được gộp vào vốn gốc để làm căn cứ tính tiền lãi cho các thời kì tiếp theo.
Ông Ba sau khi tích lũy làm ăn nhiều năm dư được 1 số tiền lớn, để tiêu vặt và đóng tiền học phí hàng tháng cho An, Ông đã gửi ngân hàng với lãi suất nhận hàng tháng (Lãi đơn). Do trong đợt dịch Covid-19 vừa qua, để hạn chế tiếp xúc và ra ngân hàng đông người, Ông đã thay đổi hình thức gửi ngân hàng thành hình thức “Lãi kép’’”.
Yêu cầu: Với số vốn ban đầu là M, lãi suất hàng tháng là r%. Bạn hãy lập trình tính tổng số vốn và tiền lãi sau n tháng mà ông Ba nhận được theo hình thức “Lãi kép”.
Dữ liệu vào: Được cho trong tệp văn bản COMPINT.INP:
Dữ liệu ra: Tệp văn bản COMPINT.OUT ghi một số thực, định dạng 1 chữ số thập phân, là tổng số tiền nhận được sau n tháng.
Ví dụ:
Giải thích. Ông Ba gửi 2 khoản tiết kiệm như sau:
Ở khoản tiết kiệm 1: Ông Ba gửi 1000000, với lãi suất 0.7%:
———————————————– hét———————————————–
Thí sinh không đqợc sử dụng tài liệu. Cán bộ coi thi không giải thích gì thêm.
Họ và tên thí sinh. …………………………………………… Số báo danh : ……………………………………………………………
Tên và chữ ký Cán bộ coi thi 1
Tên và chữ ký Cán bộ coi thi 2
KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH
TRUnG học Cơ Sở
Năm học 2022-2023 Môn: TIN HỌC
Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 21/3/2023 ^
(Đề thi có 5 trang, gồm 5 bài)
TỔNG quan các BÀi thi
Thứ tự | rpA I A • Tên bài | File chương trình | File dữ liệu vào | File kết quả |
Bài 1 | Tương đồng | SAME.* | SAME.INP | SAME.OUT |
Bài 2 | Tách xâu | STRING.* | STRING.INP | STRING.OUT |
Bài 3 | May mắn | LUCKY.* | LUCKY.INP | LUCKY.OUT |
Bài 4 | Tam giác | TRIANGLE.* | TRIANGLE.INP | TRIANGLE.OUT |
Bài 5 | Chở hàng | GOOD.* | GOOD.INP | GOOD.OUT |
Dấu * được thay thế bởi PAS, CPP, PY của ngôn ngữ lập trình được sử dụng tương ứng là Free Pascal, C++, Python hoặc phần mở rộng tương ứng với NNLT khác.
|
Bài 1: (4 điểm) Tương đồng Tên chương trình: SAME.*
Vườn bưởi nhà Alice có n cây. Để theo dõi sự phát triển của các cây bưởi của mình, Alice thường xuyên đo và ghi lại chiều cao của chúng. Trong tuần này, Alice có được bảng chiều cao của các cây bưởi là một dãy số nguyên a[1], a[2],…, a[n], trong đó a[i] là chiều cao của cây bưởi thứ i. Nhìn vào dãy số, Alice biết có những cây có chiều cao trùng nhau và Alice gọi mỗi tần số trùng nhau là tần số “tương đồng”.
Do số lượng cây bưởi nhiều nên Alice muốn nhờ các bạn lập trình tìm tần số tương đồng lớn nhất của các cây bưởi là bao nhiêu?
Dữ liệu vào: Đọc từ file SAME. INP gồm 2 dòng:
Kết quả: Ghi ra file SAME.OUT gồm duy nhất một số nguyên dương là tần số tương đồng lớn nhất.
Ví dụ:
SAME.INP | same.out |
7 9 8 6 8 5 6 10 | 2 |
2 3 10 | 1 |
Giải thích bộ test 1:
Có 1 chiều cao: 5;
Có 2 chiều cao: 6;
Có 2 chiều cao: 8;
Có 1 chiều cao: 9;
Có 1 chiều cao: 10
->Tần số tương đồng lớn nhất là: 2
Bài 2: (4 điểm) Tách xâu Tên chương trình: STRING.*
Hôm nay, mẹ và Cám đi dự dạ hội. Tấm cũng rất muốn được đi. Nhưng trước khi đi, mẹ Cám giao cho Tấm một công việc để làm khó Tấm như sau:
Cho một xâu s gồm các ký tự là các chữ cái in hoa hoặc in thường (trong bảng chữ cái Tiếng Anh) và các kí tự số. Mẹ kế yêu cầu Tấm hãy tách các ký tự trong xâu s thành hai phần như sau:
Phần 1: gồm các chữ cái có mặt trong s nhưng viết theo thứ tự ngược lại.
Phần 2: gồm các chữ số có mặt trong xâu s nhưng phải được sắp xếp theo thứ tự từ nhỏ đến lớn.
Nếu Tấm thực hiện xong công việc thì mới được đi dự tiệc. Nhưng Tấm có thời gian rất ít nên chưa giải được bài toán. Các bạn đội tuyển Tin học hãy giúp đỡ Tấm giải bài toán để Tấm còn được đi dự tiệc nhé!
Dữ liệu vào: Đọc từ file STRING.INP gồm 1 dòng chứa xâu s có độ dài không quá 103 ký tự. Dữ liệu vào đảm trong xâu s luôn có kí tự chữ cái và kí tự chữ số. Kết quả: Ghi ra fíle STRING.OUT gồm 2 dòng:
Ví dụ:
STRING.INP | STRING.OUT |
m2aC0ma2T3 | TamCam 0223 |
Bài 3: (4 điểm) May mắn Tên chương trình: LUCKY.*
Trong buổi tiệc liên hoan cuối năm của công ty cung cấp điện thoại Thế Giới Trẻ, ghế ngồi trong hội trường của khách mời được bố trí thành một ma trận hình chữ nhật gồm m hàng và n cột. Để buổi liên hoan thêm vui vẻ, ban tổ chức cho mỗi khách mời rút ngẫu nhiên một phiếu, trên phiếu có ghi một số nguyên dương trong phạm vi từ 1 đến 109.
Ban tổ chức sẽ trao cho những người may mắn mỗi người một phần quà là một chiếc điện thoại. Biết rằng người may mắn là người có số ghi trong phiếu của
mình lớn hơn trung bình cộng của số trong phiếu của những người ngồi xung quanh người đó.
Xung quanh một người được định nghĩa như sau:
Trường hợp 1: Người ngồi ở vị trí góc (trên trái, dưới trái, trên phải, dưới
phải) của hình chữ nhật thì chỉ có 2 người ngồi xung quanh. Trường hợp 2: Người ngồi ở vị trí bìa (trừ góc) thì có 3 người xung quanh. Trường hợp 3: Người ngồi ở các vị trí còn lại có 4 người xung quanh. |
Trường hợp 1 Trường hợp 2 Trường hợp 3
Ô gạch sọc chỉ vị trí xung quanh của vị trí được tô đen.
Bạn hãy giúp ban tổ chức xác định số lượng điện thoại cần phải chuẩn bị để trao cho những người may mắn.
Dữ liệu vào: Đọc từ file LUCKY.INP gồm:
Kết quả: Ghi ra file LUCKY.OUT gồm một số nguyên là số điện thoại ban tổ chức cần chuẩn bị.
Ví dụ:
LUCKY.INP | LUCKY.OUT |
3 4 | 3 |
1 4 3 1 | |
1 1 5 2 | |
2 1 2 1 |
Giải thích:
Số lượng điện thoại cần chuẩn bị là 3, vì có ba người may mắn:
+ Người thứ nhất ngồi ở hàng 1, cột 2, có số phiếu là 4 (có 3 người xung quanh) + Người thứ hai ngồi ở hàng 2, cột 3, có số phiếu là 5 (có 4 người xung quanh) + Người thứ ba ngồi ở hàng 3, cột 1, có số phiếu là 2 (có 2 người xung quanh)
Bài 4: (4 điểm) Tam giác Tên chương trình: TRIANGLE.*
Alice có n que tính, mỗi que có độ dài là một số nguyên dương. Alice muốn tạo ra các tam giác bằng cách ghép ba que tính lại với nhau, độ dài mỗi cạnh là một que tính.
Em hãy giúp Alice đếm xem có bao nhiêu tam giác được tạo thành từ các que tính này và cho biết diện tích lớn nhất trong các diện tích của các tam giác ghép được là bao nhiêu?
Biết rằng:
+ Hai tam giác được gọi là khác nhau nếu có ít nhất một que tính khác nhau.
+ Ta có thể tính diện tích tam giác theo công thức sau :
s=Vp * (p — à) * (p — b) * (p — c)
Trong đó a,b,c là độ dài 3 cạnh của tam giác, và p là nửa chu vi của tam giác.
Dữ liệu vào: Đọc từ file TRIANGLE.INP gồm:
Kết quả: Ghi ra file TRIANGLE.OUT gồm:
TRIANGLE.INP | TRIANGLE.OUT | Giải thích |
5 | 3 | Có 3 tam giác được tạo từ 5 que tính trên: |
1 4 5 2 3 | 6.00 | Tam giác 1: Que thứ 2, 3, 4 Tam giác 2: Que thứ 2, 3, 5 Tam giác 3: Que thứ 2, 4, 5 Trong đó tam giác thứ 2 có 3 độ dài là 4 5 3 có có diện tích lớn nhất là 6.00 |
4 | 4 | Có 4 tam giác được tạo từ 4 que tính trên: |
2 2 2 2 | 1.73 | Tam giác 1: Que thứ 1, 2, 3 Tam giác 2: Que thứ 1, 2, 4 Tam giác 3: Que thứ 1, 3, 4 Tam giác 4: Que thứ 2, 3, 4 Trong đó 4 tam giác đều có cùng diện tích là: 1.73 |
3 | 0 | Không ghép được tam giác nào |
1 2 3 | -1 |
Bài 5: (4 điểm) Hàng hóa Tên chương trình: GOOD.*
Cửa hàng tạp hóa XYZ cần chở n kiện hàng giao cho khách. Kiện hàng thứ i có trọng lượng là a[i] tấn. Cửa hàng có một xe tải có trọng tải là m tấn. Trong
chuyến hàng đầu tiên, cửa hàng muốn chở những kiện hàng đi giao thỏa mãn các yêu cầu sau:
Em hãy lập trình giúp cửa hàng xác định trọng lượng các kiện hàng của chuyến xe đầu tiên.
Dữ liệu vào: Đọc từ file GOOD.INP gồm hai dòng:
Kết quả: Ghi ra file GOOD.OUT các số nguyên dương là trọng lượng của các kiện hàng trong chuyến xe đầu tiên theo trọng lượng giảm dần.
GOOD.INP | GOOD.OUT |
5 10 7 5 1 3 8 | 8 1 |
5 12 2 8 2 4 1 | 8 4 |
Giải thích bộ test 1:
Có n = 5 kiện hàng và xe có trọng tải m = 10 tấn Các kiện hàng có trọng lượng lần lượt là: 7 5 1 3 8 Vậy các kiện hàng được chở đi trong chuyến đầu tiên có trọng lượng lần lượt là 8 và 1.
Vì kiện hàng có trọng lượng là 8 lớn hơn trọng lượng các kiện hàng còn lại và 8 < m=10 nên được ưu tiên chọn. Trọng tải xe còn có thể chứa được là 10 – 8 = 2, nên chọn tiếp kiện hàng có trọng lượng là 1.
………………………………………………….. HẾT…………………………………………………..
Thí sinh không được sử dụng tài liệu. Giám thị không giải thích gì thêm.
Họ và tên thí sinh: ……………………………………………………………………………….. Số báo danh:……………………………………………………………………..
SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH TIỀN GIANG TRUNG HỌC cơ SỞ
Năm học 2012-2013 Môn: TIN HỌC
Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 27/3/2013 (Đề thi có 02 trang, gồm 05 bài)
Hãy ỉập trình giải các bài toán sau:
Bài 1: Chuyển đổi thang đo (5 điểm) Tên chương trình: DOI.PAS
Một nhà khoa học có ba loại nhiệt kế sử dụng các thang đo nhiệt độ khác nhau: một chỉ độ Celsius (C), một chỉ độ Fahrenheit (F) và một chỉ độ Kelvin (K). Trong thí nghiệm của mình, ông đã sử dụng cả ba loại nhiệt kế và ông cần một máy tính để nhanh chóng chuyển đổi giữa các loại này. Biết công thức chuyển đổi là:
F = –C + 32
5
K = c + 273.15
Yêu cầu: Đọc vào số đo và đơn vị đo nhiệt độ, hãy chuyển đổi sang các đơn vị đo còn lại.
Dữ liệu: Vào từ file văn bản DOI.INP gồm 1 dòng chứa số thực (biểu diễn số đo nhiệt độ) và đơn vị đo nhiệt độ cần chuyển (là một trong các chữ cái F, c, K). Các số này cách nhau bởi dấu cách.
Kết quả: Ghi ra file văn bản DOI.OUT gồm 3 dòng chứa các thông tin theo thứ tự: Nhiệt độ F, Nhiệt độ c, Nhiệt độ K.
DOI.INP | DOI.OUT | |
20 c | Nhiet do F Nhiet do c Nhiet do K | 68 20 293.15 |
Bài 2: Đếm số 0 (3 điểm) Tên chương trình: ZERO.PAS
Tìm độ dài xâu con dài nhất chứa các số 0 liên tiếp trong 1 xâu cho trước.
Dữ liệu: Vào từ file văn bản ZERO.INP gồm 1 dòng chứa xâu chỉ gồm các kí tự 0 và 1 (không cách nhau bởi dấu cách). Độ dài xâu không quá 100.
Kết quả: Ghi ra file văn bản ZERO.OƯT chứa độ dài xâu con dài nhất chứa các số 0 liên tiếp.
|
Bài 3: Xóa kí tự (5 điểm) Tên chương trình: XOAKT.PAS
Viết chương trình xóa kí tự thứ n của xâu s cho trước. Các kí tự trong xâu s được đánh số thứ tự từ 1, từ trái sang phải.
Dữ liệu: Vào từ file văn bản XOAKT.INP chứa 1 dòng theo thứ tự gồm 1 số nguyên N, dấu cách, xâu s chỉ chứa các kí tự ‘a\.’z’, ‘A\.’Z\ số N không vượt quá độ dài của xâu s đã cho. Độ dài của xâu s không vượt quá 80.
Bài 4: Tìm số âm (5 điểm) Tên chương trìnhỉ SOAM.PAS
Tìm vị trí của số nguyên âm lớn nhất trong dãy số nguyên cho trước. Nếu tìm được nhiều hơn 2 vị trí thì chỉ ra vị trí đầu tiên xuất hiện (dãy số nguyên được đánh số bất đầu từ 1).
Dữ liệu: Vào từ file văn bản SOAM.INP gồm:
Kết quả: Ghi ra file văn bản SOAM.OUT chứa vị trí của số nguyên âm lớn nhất trong dãy, nếu không tìm dược thì ghi -1.________________________________________ ________________________________________
Bài 5: Dãy số (2 điểm) Tên chương trình: DAYSO.PAS
Số nguyên f được gọi là ước số (dương) của số nguyên d nếu f lớn hơn 0 và tồn tại số nguyên n sao cho f X n = d. Ví dụ, số 12 là ước số của 60 vì 12 X 5 = 60.
Dãy số nguyên Xi, X2, …, Xn được gọi là dãy DDF nếu:
Ví dụ
Dãy số 17, 9, 13, 5, 6, … là dãy DDF được hình thành theo cách sau:
Biết rằng, với dãy số DDF bắt đầu bằng XI thì đến một lúc nào đó sẽ tồn tại Xn sao cho Xj = Xn, với mọi j>n. số Xn sẽ được gọi là so hạng cuối của dãy.
Yêu cầu: Xác định chiều dài của dãy DDF với số hạng đầu cho trước. Chiều dài của dãy DDF là giá trị của n, với Xn là giá trị cuối của dãy.
Dữ liệu: Vào từ file văn bản DAYSO.INP gồm 1 dòng chứa số hạng đầu XI (xi < 2000).
Kết quả: Ghi ra file văn bản DAYSO.OƯT chứa chiều dãi của dãy DDF.
———— hết——————
SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TIỀN GIANG TRƯNG HỌC cơ SỞ
Năm học 2014-2015 Môn: TIN HỌC
Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 25/3/2015 (Đề thi có 03 trang, gồm 05 bài)
Hãy lập trình giải các bài toán sau:
Bài 1: Tìm từ (5 điểm) Tên chương trình: ỊVORD.PAS
Cho trước một xâu kí tự. Một từ được định nghĩa là một xâu con liên tiếp chứa các chữ cái (,al…,zl hoặc ‘A’..’Z’). Một từ có thế được giới hạn giữa các dấu cách hoặc chấm câu. Dấu chấm câu là một trong các kí tự sau: dấu chấm (.), dấu phẩy (,), dấu chấm phẩy (;), dấu chấm than (!) hoặc dấu chấm hỏi (?).
Yêu cầu: Hãy tìm tất cả các từ có trong xâu mà có kí tự bắt đầu và kí tự kết thúc giống nhau (có phân biệt giữa chữ in hoa và chữ in thường).
Dữ liệu: Vào từ file văn bản WORD.INP chứa xâu kí tự gồm các chữ cái (‘a’…^’ hoặc ‘A’..’Z’), dấu cách, hoặc dấu chấm câu. Độ dài xâu không quá 100 kí tự.
Kết quả: Ghi ra file văn bản WORD.OƯT danh sách các từ mà có kí tự bắt đầu và kí tự kết thúc giống nhau, mỗi từ trên 1 dòng. Nếu không tìm thấy thì ghi -1.
WORD.INP | WORD.OUT |
dawd | |
Jun dawd gog, vex symphs. | gog |
symphs |
Bài 2: Số thử tự (5 điểm) Tên chương trình: INDEX.PAS
|
Một file văn bản chứa thông tin về học sinh của một lớp học gồm số thứ tự của học sinh và theo sau là tên của học sinh đó. Do lóp vừa nhận thêm một học sinh chuyển đến và giáo viên chủ nhiệm xếp học sinh này vào đầu danh sách nên cần đánh lại số thứ tự của các học sinh trong danh sách lóp.
Yêu cầu: Đánh lại số thứ tự của tất cả học sinh có trong danh sách bằng cách tăng số thứ tự của mỗi học sinh lên 1 đơn vị và giữ nguyên danh sách theo trật tự ban đầuT
Dữ liệu: Vào từ file văn bản INDEX.INP gồm:
Kết quả: Ghi ra file văn bản INDEX.OƯT danh sách học sinh nhu định dạng ban đầu nhung đã tăng số thứ tự của mỗi học sinh lên 1 đơn vị.
INDEX.INP | INDEX.OUT |
2 | 2 |
14 Nam | 15 Nam |
42 Thanh | 43 Thanh |
Bài 3: Dãy Min-Max (5 điểm) Tên chương trình: MINMAX.PAS
Cho trước dãy s chứa các số nguyên, vị trí các phần tử được đánh số từ 1 trở đi và từ trái sang phải.
Yêu cầu: Hãy tìm 2 dãy số nguyên dương, trong đó dãy số thứ nhất biểu diễn các vị trí trong s tại đó chứa số hạng nhỏ nhất của dãy s và dãy số thứ hai biếu diễn các vị trí trong s tại đó chứa số hạng lớn nhất của dãy s.
Dữ liệu: Vào từ file văn bản MINMAX.INP gồm :
Kết quả: Ghi ra file văn bản MINMAX.OƯT lần lượt chứa 2 dòng:
Các số trên cùng 1 dòng cách nhau bởi dấu cách.
MINMAX. INP | MINMAX.OUT | |
7 | 3 | |
3 6 | -14653 | 2 5 |
Bài 4: Số gốc (3 điểm) Tên chương trình: ROOT.PAS
Cho trước số tư nhiên a có biểu diễn trong hê cơ số 10 là a = a a _H … an SỐ gốc của số tự nhiên a được xác định như sau:
o Nếu s <10 thì thay 2 số vừa chọn trong biểu diễn của a bằng s. o Nếu s >10 thì thay 2 số vừa chọn trong biểu diễn của a bằng S-9.
Ví dụ: Tìm số gốc của số a= 87345691. Đầu tiên, cộng 2 số 8 và 7. Ta được số 15. Vì tổng tìm được lớn hơn 10 nên ta thay 2 số đầu của a bằng 15-9, khi đó a sẽ là 6345691. Tiếp tục, cộng 2 số 6 và 3 được 9, sau khi thay thế a sẽ là 945691. Cộng 2 số 9 và 4 được 13, sau khi thay thế a sẽ là 45691. Cộng 2 số 4 và 5 được 9, sau khi thay thế a sẽ là 9691. Cộng 2 số 9 và 6 được 15, sau khi thay thế a sẽ là 691. Cộng 2 số 6 và 9 được 15, sau khi thay thế a sẽ là 61. Cộng 2 số 6 và 1 được 7, sau khi thay thế a sẽ là 7. Sơ đồ thay thế như sau:
8+7=15^15-9=6->6+3=9->9+4=13^13-9=4->4+5=9->9+6=15^15-9=6^6+9=15^ 15-9=6^6+1=7 SỐ gốc tìm được là 7.
Yêu cầu: Viết chương trình xác định số gốc của số nguyên a cho trước.
Dữ liệu: Vào từ file văn bản ROOT.INP chứa số nguyên a (< maxlongint).
Kết quả: Ghi ra file văn bản ROOT.OƯT chứa số gốc của số nguyên a.
ROOT.INP | ROOT.OUT |
87345691 | 7 |
Bài 5: Xâu SubsThree (2 điểm) Tên chương trình: SƯBSTH.PAS
Xâu con của xâu s được hiểu là một dãy các ký tự liên tiếp của s.
Xâu SubsThree của s là xâu con thỏa mãn:
Ví dụ, xâu “130a303” chứa 9 xâu Substhree như sau: ba xâu “3”, hai xâu “30”, hai xâu “0”, một xâu “303” và một xâu “03”. Xâu “30a3” không là xâu Substhree vì có chứa chữ cái, còn xâu “13” không xâu Substhree vì số 13 không chia hết cho 3.
Lưu ý rằng hai xâu Substhree được xem là khác nhau nếu chúng khác nhau về độ dài hoặc vị trí bắt đầu của chúng trong xâu s (mặc dù các kí tự của chúng giống nhau)
Yêu cầu: Cho trước xâu s, hãy đếm số lượng xâu Substhree chứa trong s.
Dữ liệu: Vào từ file văn bản SƯBSTH.INP chứa xâu khác rỗng s có tối đa 106 kí tự. Môi kí tự của s chỉ có thể là chữ số ‘0’..’9′ hoặc chữ in thường ‘aVy.
Kêt quả: Ghi ra fìle văn bản SƯBSTH.OƯT chứa nguyên biểu diễn số lượng xâu Substhree chứa trong s.
SUBSTH.INP | SUBSTH.OUT |
130a303 | 9 |
————— hết————————-
SỞ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH TIÈN GIANG TRUNG HỌC co SỞ
Năm học 2013-2014 Môn: TIN HỌC
Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 26/3/2014 (Đề thi có 03 trang, gồm 05 bài)
Hãy lập trình giải các bài toán sau:
Bài 1: Dãy Subtra (5,0 điểm) Tên chương trình: SUBTRA.PAS
Dãy số ti, t2,…tm được gọi là dãy Subtra nếu:
Ví dụ, nếu bắt đầu bằng hai số 120 và 71 thì dãy Subtra được phát sinh
như sau: 120; 71; 49; 22; 27. Dãy kết thúc ở số 27, độ dài của dãy là 5.
Yêu cầu: Đọc vào hai số ti và Í2, hãy tìm độ dài của dãy Subừa với hai sổ bắt đầu là ti và t2.
Dữ liệu: Vào từ fíle văn bản SƯBTRA.INP chứa hai số nguyên dương ti và t2, 0<Í2<ti< 10000, mỗi số nằm trên 1 dòng.
Kết quả: Ghi ra file văn bản SUBTRA.OƯT độ dài của dãy Subtra với hai số bắt đau là ti và t2-
SUBTRA.INP | SUBTRA.OUT |
120 71 | 5 |
Bài 2: Đọc văn bản (3,0 điểm) Tên chương trình: ARAP.PAS
Tiếng Ả Rập, tiếng Ba Tư và tiếng Do Thái là các ngôn ngừ rất đặc biệt không giống như tiếng Anh và nhiều thứ tiếng khác, nó được viết từ phải sang trái. Tuy nhiên, những con số vẫn giừ nguyên (viêt từ trái sang phải). Ví dụ,
câu “manteiv fo tsaoc ffo deraeppasìd sregnessap 221 gniyrrac 777 gnieoB” sẽ được viết theo tiếng Anh là: “Boeing 777 carrying 221 passengers disappeared off coast of Vietnam
Yêu cầu: Chuyển xâu văn bản tiếng Ả Rập sang văn bản Tiếng Anh.
Dữ liệu: Vào từ file văn bản ARAP.INP chứa xâu văn bản theo tiếng Ả rập gồm các từ, mồi từ chứa các kí tự (a-z, A-Z, 0-9) ngăn cách nhau bởi dấu cách.
Kết quả: Ghi ra file văn bản ARAP.OUT chứa xâu văn bản theo tiếng Anh.
ARAP.INP | ARAP.OUT |
manteiv fo tsaoc ffo deraeppasid sregnessap 227 gniyrrac 777 gnieoB | Boeing 777 carrying 227 passengers disappeared off coast of Vietnam |
Bài 3: Độ cao (5,0 điểm) Tên chương trình: HEIGHT.PAS
Bạn được giới thiệu một số địa điểm để tham quan. Mỗi địa điểm được giới thiệu bao gồm tên địa điểm và độ cao của nó.
Yêu cầu: Hãy xác định trong các địa điểm đã cho, một địa điểm có độ cao gần nhất với độ cao của bạn ưa thích.
Dữ liệu: Vào từ file văn bản HEIGHT.INP gồm:
Kết quả: Ghi ra file văn bản HEIGHT.OUT chứa tên địa điểm mà bạn chọn. Nếu có 2 địa điểm được chọn thỏa mãn yêu cầu đề ra, hãy in ra tên địa điểm có độ cao lớn hon.
HEIGHT.INP | HEIGHT.OUT |
5 Everest 8850 Kamet 7756 Bahamas 10 Maldives 0 Mariana -11521 | Bahamas |
Bài 4: Tính thời gian chênh lệch (5,0 điểm) Tên chương trình: TIME.PAS
Để xây dựng các công trình thủy lợi đôi khi cần phải khoan nổ mìn đào đá. Việc tính toán thời gian nổ phải thật chính xác để đảm bảo an toàn cho người lao động.
Yêu cầu: Biết thời điểm hiện tại và thời điểm sẽ xảy ra vụ nổ. Hãy xác định khoảng thời gian chênh lệch giữa 2 thời điểm nói ưên.
Dữ liệu: Vào từ file văn bản TIME.INP gồm:
TIME.INP | TIME.OUT |
20:00:00 04:00:00 | 08:00:00 |
12:34:56 14:36:22 | 02:01:26 |
Bài 5: Số mát mẻ (2,0 điểm) Tên chương trình: COOL.PAS
|
Theo định nghĩa của một nhóm nghiên cứu Tin học, 0 là một chừ số mát mẻ. Họ gọi độ mát của một số là số lượng 0 trong biểu biễn thập phân của nó. Ví dụ: độ mát của số 100 là 2, độ mát của số 1 là 0.
Yêu cầu: Tìm tổng độ mát của các số từ 0 đến sổ nguyên N cho trước.
Dữ liệu: Vào từ file văn bản COOL.INP chứa số nguyên N (0< N < 10 000
000).
Kết qỊuả: Ghi ra fíle văn bản COOL.OUT chứa tổng độ mát của các số từ 0 đến sổ nguyên N.
———– hét—————— • Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng). • Thí sinh không được sử dụng tài liệu. • Giám thị không giải thích gì thêm.
|
Cho trước số nguyên N. Hãy tìm số nguyên lớn nhất nhỏ han N sao cho tổng các chữ số của nó nhỏ hơn tổng các chữ số của số nguyên N một đơn vị.
Dữ liệu: Vào từ fíle văn bản NUMBER.INP chứa số nguyên N(1<N<100
000) ‘
Kết quả: Ghi ra file văn bản NUMBER.OƯT chứa số nguyên cần tìm.
NUMBER.INP | NUMBER.OUT |
1520 | 1510 |
Bài 3: Báo cáo tài chính (5 điểm) Tên chươiĩg trình: REPORTPAS
Nhân dịp tổng kết cuối năm, bạn được giao nhiệm vụ thống kê tổng số chi phí của từng nhân viên của một công ty sau các chuyến du lịch trong năm. Mỗi nhân viên phải nộp báo cáo chi phí cá nhân cho bạn sau mỗi chuyến đi.
Yêu cầu: Viết một chương trình đọc vào danh sách gồm tên từng người và chi phí của họ, sau đó tạo ra một danh sách được sắp xếp theo tên nhân viên, kèm theo tống số chi phí của mỗi cá nhân.
Dữ liệu: Vào từ file văn bản REPORT.INP có:
Kết quả: Ghi ra file văn bản REPORT.OUT chứa danh sách các nhân viên trong công ty kèm theo tổng chi phí của họ trong năm, trong đó tổng chi phí được làm tròn hai số lẻ. Danh sách cần được sắp xếp alphabet theo tên người. Tên người phải được viết hoa chữ cái đầu tiên, các chữ cái còn lại là chữ thường.
REPORT.INP | REPORT.OUT |
5 trung 450.55 binh 1034.56 trUNg 1000.00 daNn 530.00 danH 470.00 | Binh 1034.56 Danh 1000.00 Trung 1450.55 |
Cho trước hai sổ nguyên N và D. Hãy tỉm N số nguyên dương X]…XN sao cho hiệu số giữa tích của chúng và tổng của chúng bằng với D.
Dữ liệu: Vào từ file văn bản SUMPRO.INP chứa hai số nguyên dương N (2<N< 1000) và D (0 <D < 1000).
Kết quả: Ghi ra file văn bản SUMPRO.OUT chứa N số nguyên dương thỏa mãn yêu cầu nói trên theo thứ tự không giảm. Lưu ý rằng các số tìm được có thể bằng nhau. Giá trị các số được in không vượt quá 1 o6.
Các số trên cùng 1 dòng cách nhau bởi dấu cách
|
Bài 5: Cân bằng bit (2,0 điểm) Tên chương trình: BỈT.PAS
Đọc vào 2 xâu khác rỗng s và T có độ dài bằng nhau, s chứa các kí tự ‘0’,
‘1’và ‘?\ còn T chỉ chứa các kí tự ‘0’ và ‘1\
Yêu cầu: Hãy chuyển đổi xâu s thành xâu T với số bước nhỏ nhất. Biết rằng môi bước có thế thực hiện một trong các thao tác sau:
Ví dụ: Với xâu s = ‘0?1?’ và T = ‘1001’. Ta có thể chuyển s thành T trong vòng 3 bước sau:
Dữ liệu: Vào từ file văn bản BIT.INP gồm 2 dòng chứa 2 xâu s và T, mỗi dòng có độ dài không quá 100.
Kết quả: Ghi ra fỉle văn bản BIT.OUT chứa số bước nhỏ nhất để chuyển đổi s thành T. Nếu không chuyển đổi được thì ghi số -1.
————- HẾT—————— • Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng). • Thỉ sình không được sử dụng tài liệu. • Giám thị không giải thích gì thêm.
|
Họ và tên thí sinh:…………………………………… số báo danh:……………………………………………………………
SỎ GIÁO DỤC VÀ ĐÀO TẠO KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TIẺN GIANG TRƯNG HỌC co SỎ
Năm học 2016-2017 Môn: TIN HỌC
Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi : 22/3/2017 (Đe thi có 04 trang, gồm 05 bài)
Hãy lập trình giải các bài toán sau:
Bài 1: Giai thừa ngược (5 điểm) Tên chưong trình: PINV.PAS
Trong toán học, n! (đọc là n giai thừa) được định nghĩa như sau:
n! =1x2x3x … X (n-1) X n (n là số nguyên không âm) Ví dụ: 3! = 1 X 2 X 3 = 6
Đặc biệt: với n = 0, người ta quy ước 0! = 1. Ký hiệun! được dùng lần đầu bởi Christian Kramp vào năm 1808.
Yêu càu: Biết trước giá trị của n!, hãy tìm sô nguyên n.
Dữ liệu: Vào từ file văn bản FINV.INP chứa giá trị của n!. Biết rằng số chữ số của n! không vượt quá 1 o6.
Kết quả: Ghi ra file văn bản FlNV.OƯT chua số tự nhiên n tìm được. Nêu không tìm được số nauvên n thì ghi -1.
FINV.INP | FINV.OUT |
3628800 | 10 |
Bài 2Í Chu kỳ dự đoán (5 điểm) Tên chương trình: PẼRI.PAS
Ngày nay, có nhiều mô hình dự báo nhăm để biết trước những điều có thể xảy ra trong tương lai. Một mô hình thường dự báo, dự đoán giá trị của biến số (hoặc một dãy biến số) tại một số diêm trong tương lai căn cứ vào những dữ liệu trong quá khứ.
Dãy số nguyên ai. a2, …,an được gọi là dãy dự đoản chu kỳ k nếu tồn tại số nguycn dương k (IV k<n) sao cho mọi phần tử a; của dãy đều thỏa mãn a, a;+k với 1< i< n (nếu phần ai+k nằm ngoài dãy thì xem như nó nhận giá trị tùy chọn), số nguyên dương nhỏ nhất k thỏa mãn tính chất trên được gọi chu kỳ dự đoán của dãv số.
Một lập trình viên được đặt hàng viết chương trình phân tích chuỗi giá trị cho trước và cho biêt chuỗi này có khả năng tạo chu kỳ dự đoán k=3 hay không?
Yêu cầu: Đọc vào 1 dãy số nguvên và cho biết có là dãv dự đoán chu kỳ k=3 không?
Dữ liệu: Vào từ file văn bản PERI.INP
Ket quả: Ghi ra file văn bản PERI.OUT chứa chữ “YES” nếu dãy đã cho là dãy dự đoán chu kỳ k=3, ngược lại ghi chữ “NO”.
PERI.INP | PERI.OUT |
12 12 3′ 123123123 | YES |
11 123123 t 2312 | YES |
7 7 3 6 7 2 3 9 | NO |
Bài 3: Tên mã (4 điểm) Tên chương trình: CODE.PAS
Ngoài tên gọi chính, một hệ điều hành còn có tên phiên bản và tên mã (codename), tất cả đều được đặt theo một quy luật hay lý do nào đó. Ví dụ, hệ điều hành Android 4.4 có tên mã là KITKAT, Windows Phone có tên mã PHOTON, Fedora 14 có tên là LAƯGHLIN.
Tại Hội nghị triến lãm sản phẩm phần mềm, Ban Tổ chức quy định rằng tên mã đạt siải cao nhất là tên mã có số lượng chữ cái khác nhau nhiều nhất. Ví dụ: Tên mã K1TKAT có 4 chữ cái khác nhau: A, I, K và T; Tên mã JELLY BEAN có 7 chữ cái khác nhau A, B, E, J, L, N và Y; nên tên mã JELLY BEAN đạt giải cao nhất.
Ngoài ra cũng lưu ý rằng, nếu hai tên mã có cùng số chữ cái khác nhau thì tên mã nhỏ hơn sẽ đạt giải cao nhất. Biêt rằng phép so sánh hai tên mã được thực hiện theo quy tăc như sau:
+ Tên mã A gọi là nhỏ hơn tên mã B (B lớn hơn A) nếu như kí tự dầu tiên khác nhau giữa chúng kể từ trái sang phải trong tên mã A có mã ASCII nhỏ hơn.
+ Nếu A và B là các tên mã có độ dài khác nhau và A là đoạn đầu của B thì A là nhỏ hơn B.
Yêu cầu: Được biết danh sách liệt kê tên mã của các hệ điều hành, hãy xác định tên mã của hệ điều hành đạt giải cao nhất?
Dữ liệu: Vào từ fìle văn bản CODE.INP gồm:
Ket quả: Ghi ra ílle văn bản CODE.OUT chứa tên mã đạt giải cao nhất.
CODE.INP | CODE.OUT |
3 OREO | KITKAT |
SID
KĨTKAT _____________________
Bài 4: Xổ số điện toán (4 điểm) Tên chương trình: LOT.PAS
Người chơi tham gia được tự chọn n vé số để dự thưởng, mỗi vé số là một chuồi số gồm 6 bộ số phân biệt, mỗi bộ số là 1 số nguyên có 2 chữ số (có giá trị từ 01, 02,…,45).
trên.
Sau khi so từng vé số với chuỗi số kết quả quay thưởng của Ban Tổ chức công bô, người chơi sẽ biêt được có trúng thưởng hay không. Tổng sô tiền thưởng của người chơi là tống số tiền thưởng nhận được của từng vé số trúng thưởng.
Cơ cấu giải thưởng được xác định như sau:
Lưu ý:
22
thì người này sẽ trúng thưởng 60000 đồng Dữ liệu: Vào từ file văn bản LOT.INP gồm:
Các bộ số trong chuỗi số kết quả quay thưởng và trong 1 vé số cách nhau bởi dấu cách.
Ket quả: Ghi ra file văn bản LOT.OUT chứa tổng số tiền thưởng nhận được. Nếu không trúng thưởng thì ghi số 0. Neu trúng giải đặc biệt thì ghi ‘JACKPOT’.
LOT.INP | LOT.OUT |
03 02 07 41 36 22 5 | 60000 |
Bài 5: Số bội của 3 (2 điểm)
Hệ thông lưới điện có thê bị gây hại bởi nhiêu tác nhân, trong đo một nguy cơ tiềm ẩn làm cản trở hoạt động và làm hao mòn thiết bị nhưng ít người nhận biết được chính là sóng hài – mối nguy cơ tiềm ẩn được phát hiện ngay đầu thập niên 1890.
Sóng hài (harmonic) là dòng điện không mong muốn làm quá tải đường dây và biến áp, làm tăng nhiệt độ hệ thống (hoặc thậm chí gây hỏa hoạn) và gây nhiễu lên lưới điện. Sóng hài là các điện áp hay dòng điện hình sin có tần số là bội số của tần số công nghiệp (tần số cơ bản), do hiện diện của các tải phi tuyến trong lưới điện. Ví dụ dòng điện hài có tần số 150HZ trên lưới điện 50HZ là sóng hài bậc 3. Thường chỉ có sóng hài bậc lẻ 3, 5, 7, 9 là xuất hiện trong lưới điện 3 pha.
Với tần số của 1 dòng điện đã cho, cần tìm sóng hài bậc 3 có ảnh hưởng đối với tân số của dòng điện đã cho.
Yêu cầu: Cho trước tự nhiên n. Hãy thay đổi 1 chữ số của n để được số chia hết cho 3 và là số lớn nhất trong các so tìm được (kể cả trường hợp ban đâu n chia hết cho 3).
Dữ liệu: Vào từ file văn bản MUL3.INP chứa số tự nhiên n có tối đa 100 chữ số.
Kết quả: Ghi ra file văn bản MUL3.0UT chứa số tự nhiên tìm được theo yêu cầu trên.
MUL3.INP | MUL3.OUT |
123 | 723 |
9 | 6 |
HÉT
|
Họ và tên thí sinh:……………………………………………… số báo danh:……………………………………………………………….
KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TRUNG HỌC CO SỞ Năm học 2017-2018 Môn: TIN HỌC
Thời gian: 150 phút (khổng kể thời gian giao đề)
Ngày thi: 30/3/2018
(Đê thi có 03 trang, gồm 05 bài)
Hãy lập trình giải các hài toán sau:
Bài 1: Chỉ số BMR (5 điểm) Tên chương trình: BMR.PAS
‘BM&Ợìasal Metabolic Rate) là chỉ số năng lượng cơ bản của cơ thể cho biết mức năng lượng tối thiểu mà cơ thế cần để duy trì các hoạt động bình thường.
Nừ giới: BMR = 655 + (9.6 X kg) -f (1.8 X cm) – (4.7 X tu ổi) Nam giới: BMR = 66 + (13.7 X kg) -h (5 X cm) – (6.8 X tuồi)
Yẽu cầu: Đọc vào thông tin của 1 người bao gồm giới tính, tuổi, chiều cao, cân nặng và mức độ hoạt động của người đó. hãy tính lượng calo cần thiết.
Dữ liệu: Vào từ file văn bản BMRHNP gồm 5 dòng:
S: quá ít hoạt động (ít hoặc không tập luyện); L: ít hoạt động; M: hoạt động vừa; A: hoạt động nhiều; E: hoạt động cường độ cao.
Kết quả: Ghi ra file văn bản BMR.OUT chứa lượng calo cần thiết cho người đó. Kết quả là một số nguyên không lấy phán thập phân.
BMR.INP | BMR. OUT |
NAM | 1713 |
52 | |
1 65 | |
65 | |
s |
Bài 2: Số Emỉrp (5 điểm) Tên chương trình: EMỈRP.PAS
Số Emirp là một số nguyên tố mà khi đảo ngược vị trí các chữ số của nó, ta cũng được một số nguyên tố. Định nghĩa này không bao gồm các số nguyên tố xuôi ngược (đọc ngược hay xuôi cũng là số nguyên tố chính nó), như 151 hoặc 787) và không bao gồm các số nguyên tố có một 1 chữ số. Biêt rằng, số nguyên tố là số tự nhiên chỉ có hai ước sô dương phân biệt là 1 và chính nó.
Yêu cầu: Đọc vào số nguyên n, hãy cho biết n có là số Emirp không?
Dữ liệu: Vào từ file văn bản EM3RP.INP chứa số nguyên n (1< n < 10000).
Kết quả: Ghi ra file văn bản EMIRP.OUT chứa chứa chữ “YES” nếu n là số Emirp, ngược lại ghi chữ “NO”.
EMIRP . INP | EMIRP.OUT |
149 | YES |
Bài 3: Số thân thiện (4 điểm) Tên chương trình: FRIEND.PAS
Người ta gọi bộ 3 số nguyên dương là thăn thiện nếu chúng khác nhau đôi một và tích của hai trong số chúng chia hết cho số thứ ba.
Yêu cầu: Đọc vào hai số nguyên dương phân biệt, hãy đếm xcm có bao nhiêu số nguyên tạo với hai số dã cho thành bộ 3 số thăn thiện.
Dữ liệu: Vào từ file văn bản FRIEND.INP chứa 2 số nguyên dương phân biệt cách nhau bởi dấu cách, mỗi số có giá trị không vượt quá 40000.
Kết quả: Ghi ra file văn bản ERIEND.OUT chứa số lượng số nguyên tạo với hai số đã cho thành bộ 3 sô thân thiện.
FRIEND.INP | FRIEND.OUT |
5 15 | õ |
Giải thích: Có đúng hơi số cùng với số 5 và số ỉ5 tạo thành bộ 3 thân thiện là số 3 (vì 3×5 chia hết cho 15, 3×15 chia hết cho 5 và 5 X 15 là chia hết cho 3) và số 75 (vì 5 X 15 chia hết cho 75, 5 x 75 chia hết cho 15 và 15 X 75 chia hết cho 5).
|
Bài 4: Giải mã Email (3 điểm) Tên chương trình: EMAIL.PAS
Một người dùng giấu một mật khẩu trong một email đâ gửi. Email đã gửi bao gồm một số dòng văn bản. Mỗi dòng chứa một số từ. Từ là dãy liên tiếp các chữ cái 6a\.’z\ Mật khẩu được thành lập bằng cách ghép theo thứ tự các từ lấy trong nội dung email đã gửi.
Mật khẩu được tìm thấy dựa theo quy luật sau:
Và tiếp tục như thể…
Luu ý: Nếu trên một dòng nào của email khòng tìm được từ nào của mật khẩu theo quy luật trên thì lừ tìm được là rỗng và không đưa từ rỗng vào mật khẩu.
Dữ liệu: Vào từ file văn bản EMAIL.INP gồm:
Kết quả: Ghi ra file văn bản EMAIL.OUT chứa mật khẩu tìm được theo quy luật trên. Mỗi từ cua mật khâu nằm trcn 1 dòng. Dữ liẹu vào đain bảo mật khẩu tìm được luôn khác rỗng.
EMAIL.INP | EMAIL,OƯT |
5 | toi |
viet nam la quoc gia thuoc khu vuc dong nam a | dang |
toi thay hoa vang tren co xanh | o |
tet dang vao nha | nga |
tim nha o | |
bay chim thien nga |
Bái 5: Dãy con (3 điểrii) Tên chương trình: SƯBSEQ.PAS
|
Cho dãy A có n phần tử. mỗi phần tử là một số nguyên (có thể âm, bàng 0 hoặc dương). Hãy tim dãy con khác rỗng các phần tử liên tiép của A sao cho:
Hay nói cách khúc: Tìm 2 số nguvên / và /• (1 <l<r<n) sao cho a/ = ar và tổng a/ + ÍU+I + • • • + ar là lớn nhất.
Dữ liệu: Vào từ file văn bản SUBSEQ.INP gồm:
Kết quả: Ghi ra file văn bản SUBSEQ.OUT gồm:
Các số trên cùng một dòng cách nhau bởi dấu cách. Neu tìm được hơn 1 lời giải thì xuất ra bát kỳ một trong số chúng.
SƯBSEQ.INP | SƯBSEQ.OƯT |
5 | 5 |
12 12 3 | 2 4 |
…………… HÉT………………….. • Các tập tin chương trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng). • Thí sinh không được sử dụng tài liệu. • Giám thị không giải thích gì thêm.
|
KỲ THI CHỌN HỌC SINH GIỎI CÁP TỈNH TRUNG HỌC CO SỞ Năm học 2018-2019 Môn: TIN HỌC
Thời gian: 1.50 phút (không kể thời gian giao đề)
Ngày thi: 20/3/2019
(Đề thi có 04 trang, gồm 05 bài)
TONG QUAN CÁC BÀI THI
(Dấu * đưọc thay bỏi PAS hoặc CPP của ngôn ngũ’ lập trình đuọc sử dụng tuoìig ứng vỏ’i Pascal hoặc C++). Hãy lập trình giải các bài toán sau:
|
Bài 1: Lễ hội Cà phê (5 điểm)
Ban To chức Lễ hội Cà phê năm 2019 vạch ra một kế hoạch cho các sự kiện sẽ diễn ra trong Le hội. Mỗi sụ’ kiện được Ban Tổ chức dự kiến thời gian diễn ra bao gồm thời gian bắt đầu và thời gian kết thúc.
Yêu cầu: Căn cứ thông tin của Ban Tố chức, hãy xác định thời gian bắt đầu (thời gian bắt đầu của SỊT kiện sớm nhất) và kểt thúc (thòi gian kết thúc sự kiện cuối cùng) của Lề hội, tông thời lượng của các sự kiện (không bao gồm thời gian nghỉ) và tông thòi gian nghỉ.
Dữ liệu: Vào từ file văn bán CAFE.INP có:
Kết qua: Ghi ra file văn bản CAFE.OƯT chứa bổn dòng:
Dòng ĩ: Thời gian bắt đầu (thòi gian bắt đầu của sự kiện sớm nhất).
Dòng 2: Thời gian kết thúc (thời gian kết thúc sự kiện cuối cùng).
Dùng 3: Tổng thời lượng của các sự kiện (không bao gồm thời gian nghỉ). Dòng 4: Tống thời gian nghỉ.
Tất cả dữ liệu đầu ra theo định dạng hh:mm.
CAFE.INP | CAFE.OUT |
3 | 10 : 00 |
Opening 15:20-17:20 | 17 : 20 |
Speech 10:00-11:00 | 05 : 00 |
Festival 12:00-14:00 | 02:20 |
Bài 2: Số ua thích (5 điểm)
Bình rất thích các số trong đó không có hai chữ số liên tiếp giống nhau.
Yêu cầu: Với một số nguyên n được cho, hãy giúp Bình tìm sổ nguyên nhỏ nhất, lớn han hon n, mà Bỉnh thích.
l)ữ liệu: Vào từ file văn bản LIKE.INP chứa số nguyên n (1 < n < 1018).
Kết quả: Ghi ra ílle văn bản L1KE.OUT chứa sô nguyên nhỏ nhất lớn hơn n, trong đó không có hai chừ sô liên tiếp giông nhau.
|
Bài 3: Phục hồi dãy số (4 điểm)
Trong 1 tiết dạv toán, các học sinh đang được giới thiệu về các số nguyên dương. Đê chuân bị cho tiết học, giáo viên viết sẵn các số từ 1 đến n theo thứ tự tăng dần (từ trái sang phải) trên bảng.
Tuy nhiên, có một học sinh nghịch ngợm đã chạy vào lóp học và đã xóa đi một số đã đưọ’c giáo viên viết trên bảng. Đứng trước Hiệu trưởng, học sinh này xưng tên là Nam, học sinh này rất hối hận và nói rằng mình chỉ xóa đúng một số trong dãy số.
Yêu cầu: Hãy giúp giáo viên tìm hiểu xem điều này có đúng không, và nếu có thế, hãy cho biết số nào đã bị xóa.
Dfr liệu: Vào từ file vãn bản SEQ.INP gồm:
Kết quả: Ghi ra fde văn ban SEQ.OƯT theo định dạng sau:
SEQ.INP | SEQ.OUT |
4 | Yes |
3 | 2 |
13 4 |
Bài 4: Số nguyên tố ló’n nhất (4 điểm)
Một giáo viên Toán muốn kiếm tra kiến thức số học của học sinh lóp mình đang dạy bằng cách như sau: Đầu tiên Ồng giới thiệu với học sinh hai số tự nhiên a vàb. Sau đó yêu cầu học sinh hình thành các sô mới theo quy tăc:
Tiếp tục tạo các số khác theo quy tắc trên cho đến hết chữ số cuối cùng của số a. (nếu số a có 3 chừ sổ thì sẽ có 6 sổ được tạo thành).
Yêu cầu: Biết hai số a và b, hãy tìm sổ nguyên tố lớn nhất trong các số được hình thành theo quy tắc trẻn (kể cả hai số ban đầu a và b). Neu không tìm được số nguyên tố lớn nhất như yêu cầu ở trên thì hiển thị số lớn nhất có thể (kể cả hai số ban đau a và b).
Dữ liệu: Vào từ fiỉe văn bủn PRIME.INP chứa hai số nguyên a vàb (10 < a, b
< ỉ000000).
Kết quả: Ghi ra tìle văn bản PRIME.OIT chứa số nguyên tìm được theo yêu cầu ở trên.
Ví dụ:
_____ *__________________________________________________ ______________________________________ _
Bài 5: Dãy số điểu hòa (2 điểm)
Trung bình điểu hòa là một trong ba trung bình Pythagoras, hai trung bình kia lả trung bình nhân và trung bình cộng (trong Excel có hàm HARMEAN trả về trung bình điều hòa của một tập hợp dữ liệu)
Ta nói rằng ba số a, b, c theo thứ tự tạo thành dãy số điểu hòa nêu b là trung bình điều hòa của a và c, nghĩa là:
2
a c
Yêu cầu: Biết trước số tụ– nhiên b, hãy xác định tất cả các cặp số tự nhiên (a, c) sao cho a, b, c tạo thành dãy số điều hòa.
Dữ liệu: Vào từ file văn bản HARMONIC.INP in chứa một số tự nhiên b.
Kết quả: Ghi ra lìlc văn bản HARMONIC.OUT chứa ở dòng đẩu tiên một số tự nhiên n cho biết cho số cặp số tự nhiên (a, c) trong đó b là giá trị trung bình diều hòa. n dòng tiếp theo sẽ hiến thị các cặp số (a, c) tìm được (chúng cách nhau bởi một dấu cách).
Hạn chế và hru ỷ:
HARMONIC.INP | HARMONIC.OƯT | Giải thich |
3 | 3 | số 3 là trung bình điều |
3 3 | hòa của số 3 và 3. Ta có | |
dãy số điều hòa (3, 3, | ||
2 6 | 3) | |
6 2 | Số 3 là trung bình điều | |
hòa của số 2 và 6. Ta có | ||
các các dãy số điều hòa | ||
(2,3,6) và (6,3,2) |
————- Hét ——————– • Các tập tin chuvng trình phải đặt theo đúng quy định (cả phần tên và phần mở rộng). • Thí sinh không được sử dụng tài liệu. • Giảm thị không giải thích gì thêm.
|
KỲ THI CHỌN HỌC SINH GIỎI CẢP TINH TRƯNG HỌC CO SỞ, NÃM HỌC 2020-2021
Môn: TIN HỌC
Thời gian: 150 phút (không kê thời gian giao để)
Ngày thi: 31/3/2021
(Đê thi có 04 trang, gồm 05 bài)
TỎNG QUAN CÁC BÀI THI
|
Dấu * được thay thế bời PAS, CPP hoặc PY cứa ngôn ngữ lập trình được sử dụng tương ứng là Pascal, C++ hoặc Python.
Bài 1: Số kết đôi (5.0 điểm)
Số nguyên dươna X được gọi là số kết đôi nếu như có thê tim thấy hai số nguyên a, b thoa mãn các điều kiện:
, _ , a 1
b 2
Yêu cầu: Hãy xác định một số nguyên cho trước có là số kết đôi hay không?
Dữ liệu: Vào từ file văn bản NUM.INP chứa số nguyên X (1 < X < 215).
Kết quả: Ghi ra file văn bản NUM.OƯT chứa số 1 nếu X là số kết đôi, ngược lại ghi số 0.
Bài 2: VVorld cup (5.0 điêm)
Liên đoàn Bóng đá Ọuốc tế (FIFA) đã ấn định ngày khai mạc World Cup 2022. Đội chủ nhà Qatar sẽ đá trận đầu tiên trong ngày khai mạc là ngày 21/11/2022.
Phương đang sống ờ Việt Nam, rất dam mê bóng đá và mong chờ được xem lễ khai mạc.
Yêu cầu: Hãy giúp Phương tính xem kể từ một mốc thời gian ngày, còn bao nhiêu ngày nữa là đến lễ khai mạc. Ví dụ, mốc thời gian là ngày hôm nay, nếu lễ khai mạc là ngày mai, thì sẽ còn 1 ngày nữa. Cho biết:
a) Số ngày trong 1 tháng:
b) Năm nhuận:
|
Năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 mà không chia hết cho 100. Ví dụ, năm 1800 không phải là năm nhuận; năm 2016, 2000 là năm nhuận.
Dữ liệu: Vào từ íile văn bản CUP.INP chứa 1 xâu cho biết mốc thời gian ngày cần tính theo định dạng “dd.mm.vyyy”. Trong đó dd là ngày có giá trị từ 01 đến 31, nim là tháng có giá trị từ 01 đến 12, yyyy là năm có 4 chữ số. Dừ liệu ngày cho là hợp lệ. Kết quả: Ghi ra tìle văn bản CƯP.OUT chứa số ngày sẽ đến lễ khai mạc FIFA World Cup 2022.
Bài 3: Phần tử điển hình (4.0 điềm)
Cho trước một mảng có n phần tử A = [ai, a2,…, an]. Phần tử a, được gọi là điển hình nếu tồn tại một cặp chí số L và R (1 < L < R < n) sao cho aj = aL + aL+i +…+ aR. Nói cách khác, một phần tử được gọi là điển hình nếu nó có thể được biếu diễn dưới dạng tông của hai hoặc nhiều hơn các phần tử liên tiếp của một mảng.
Yêu cầu: Đem số phần tử điển hình cua mảng đã cho A.
Ví dụ, nếu n = 9 và A = [3, 1,4, 1, 5, 9, 2, 6, 5] thì số phần tứ điển hình của A là 5, cụ thê:
Lun ý rằng các phần tử của mảng A có thế bằng nhau nên nếu có một số phần tử điển hình mà bằng nhau thì tất cả chúng sẽ được đếm.
Dữ liệu: Vào từ íìle văn bản PART.INP gồm:
(1 < al < n).
Kết quả: Ghi ra file văn ban PART.OUT chứa số phần tử điển hình cua mang đã cho.
PART.INP | PART.OUT |
9 314159265 | 5 |
Bài 4: Đặt mật khấu (4.0 điểm)
Quên mật khẩu Facebook, Gmail, Zalo… là việc thuờng xảy ra khi chúng ta phải đàng nhập rất nhiều tài khoản hằng ngày. Bên cạnh việc tạo mật khẩu mạnh là việc làm thế nào mà bạn có thế nhớ nhùng mật khâu đã tạo. Một người dùng internet nghĩ ra cách tạo một mật khấu mới như sau: Mật khẩu mới là mật khâu chỉ khác các mật khẩu mà anh ta đã có (tạo ra hoặc được cung cấp) nhiều nhất 1 vị trí.
Yêu cầu: Với n xâu s 1 ,s2,- – •, Sn cho trước, các xâu đêu có cùng độ dài m. Hãy tạo xâu mật khấu mới p sao cho mỗi xâu tronc sô n xâu đã cho khác xâu p không hơn một vị trí. Hay nói cách khác, với mồi xâu Si không có hơn 1 vị trí j sao cho Sj[j] V
PDL
Lưu ý: Xâu p mong muốn có thê bằng một trong các xâu Si đã cho, hoặc nó có thể khác với tất cả các xâu Si đã cho.
Dữ liệu: Vào từ file văn bản PW.INP gồm:
Kết quả: Ghi ra file văn bản PVV.OƯT
PW.INP | PW. OUT |
2 4 | abab |
abac | |
zbab |
Bài 5: Sụ– lây lan (2.0 điểm)
Covid-19 lây lan phô biến nhất khi tiếp xúc gần. Những người ớ gần với người mắc Covid-19 hoặc tiếp xúc trực tiếp với người đó sẽ có nguy cơ lây nhiễm cao nhất.
Giả sử có n người (được đánh số từ 1 đến n) đang ở trên 1 con đưòng trong thành phố. Có thê xem vị trí của họ là những điểm trên trục tọa độ Ox. Với mồi chỉ số i, vị trí cua người thứ i là Uj.
o a, a: aj 34 X
0 1234 5 6789
Theo thông báo của cơ quan Y tế , trong n người này có đúng một người đã bị nhiễm Covid-19, nhưng chưa biết đó là ai. Biết rằng, vi-rút sẽ lây lan từ người bị nhiễm sang người không nhiễm bệnh khi khoảng cách tối đa giữa họ bằng 2.
Một người bị nhiễm bệnh sẽ lây nhiễm cho người khác theo hiệu úng tiếp xúc gần. Nhóm người bị nhiễm bệnh này được gọi là tập hợp ngưòi nhiễm bệnh cuối cùng.
Yêu cầu: Hây tìm ra số nhỏ nhất và số lớn nhất những người bị nhiễm cuối cùng, tức là tìm ra con số này trong trường hợp tốt nhất và trong trường hợp xấu nhất có thể
xảy ra.
Dữ liệu: Vào từ file văn bản COVID.INP gồm:
Kết quả: Ghi ra file văn bản COVID.OƯT chứa hai số nguyên cách nhau bởi dấu cách cho biết số nhỏ nhất và số lớn nhất những người có thê bị nhiễm cuối cùng.
COVID.INP | COVID.OUT |
2 | 1 1 |
3 6 | |
3 | 3 3 |
13 5 |
———————————————— HẾT———————————————— ——– :
■ Các tập tin, chương trình phai đặt theo đúng quy định (ca phần tên và phần mở rộng).
Thí sinh không được sử dụng tài liệu. Cán bộ coi thi không giải thích gì thêm.
Họ và tên thí sinh:…………………………….. số báo danh:………………………………………………………
KỶ THI CHỌN HỌC SINH GIỘI CÀP TỈNH [RUNG HỌC Cơ Sớ NSm liợc 2021-2022
Môn: TIN HỌC
Thòi gian lảm bài: 15(1 Ịiluìt íkhông kẽ ỉ hởi gian giao đè) Ngáy ihi: 22/03/2022 ị De thi cỏ 04 trang, gồm 05 bùi)
tông ouàn cắc bãi thi
Tèil bài | ỉ ilt thương trình | Kilt dữ liựu vào | Hiu két quỉ | |
Bâi 1. | SỚ NGUYÊN TỒ DÃY DỨ | KULLPRIMA | KULLPH.JM.LNP | í ULLPR.IM.OUT |
lỉúi 2. | MẶT MẢ | SIiCRCODE* | SECRƠODL.INP | SLCRCODL.OUT |
Bài 3, | CHON PHẢN THƯỞNG | BONUSSiiL-* | BONLSSLL.INP | BỜNUS.SEL.OUT |
Bài 4, | TAM GIAC | TR1ANGLE. | IRÍANGLL 1NP | TR1ANGLL.OUT |
tỉai 5. | LẢI KLP NGAN HÀNG | COM PIN TA | COMPlNTdNP | COMPLNT.OUT |
Dổu * dược thay thề bới PAS, CPPt py cún ngôn ngừ tập trình được Sti dạng tương ứng tù PùỊCữl, £.’++, Pyihún hoặc phần mớ rộng tương ửng v&ĩ M:\LT khác.
|
Dải I: SỎ NGUYÊN TỞ BẦY DV (4.Ộđiềm)-TỄn thương trhMỈa: FULLP(tlM/ hỉuìỉ niệm:
Yeu tầu: Hăy vhk chương ưinh kicm tra trang dằy 5′ sả nguyên dương ù ị cho ưước cù nhữn£ sỏ
náo Lá **Í1Ử ngiẹyẽn lủ đảv đu’.
I)ữ litií vầo: Đtíợc cbo traÉỊg lộp văn ban KULLPRIM.ÍNPị gồm 2 dóng.
cách.
Dứ iiệu ra: Tệp văn hán KULLPKI.M.OI T gốm một dóng thừa dảy ,li’L> nguỳện té đầy du” trơn lì LÍp dừ liệu vào. NẾu trang diy ùi khớmì cộ “iYJ lĩgưyỂn té đầy du” [hi gbi lá 0,
Ví dụ:
Mòn Tín taọẹ_22WV2tì22_Tr»ns 1/4
Bàl 1: MẠ í MÃ (4,0 điểm) – TỀH chương trình: SECRCODE.*
]’rong đợt căm trại Mừng Dáng Mừng Xuân, trưùựg THCS 26/3 lủ chức phát thướng cho nhừna học sinh có ihãnh tích cao trong cuộc thi rin học líé. Bạn An dược mọt cỏniĩ ty ABG thưởng phẩn iỊjềm diẹt viniB 1A một thè cù chùa mà hán quyền. Tiên thê cỏ ghi một ỊÍẾU hi tự, mả bán quyền lủ so lượng ki Lự xuái hiện ưong xâu dó theo thứ tự uiphabet (thử tụ lir đien).
Vi dụ: Neư xâu ghi trên ihc lá abzaabbbbbzbbbb [hi có 3 kỉ lự ít, ]|j kỉ tự b vả 2 ki lự r. Nên mà bán quyẾũ lá 3 102.
YÊU cầu: Bạn lú chuvdn VÍCII về lập trinh Lin học, hây ưiÍLp An tim mâ hun quyỂn trẽn [hè.
L>ữ liệu váo: Dược cho trưng tcp ván bán SECItCODE.INP lá một xâu (chửa ki lự thướng ‘Ả.:i trong bâng chữ cái ‘L iệng Anh, chiều dái của xáu khỏng quá lữ1)
Dứ liệu ra: Tệp vãn bán SECkCODE.OUT, ưhi chuồi sắ Lú mã bún quyên.
Vi dụ í
SECRCODE.1NP | SECRCODE.OLT |
bcỉi{hiiicfxyzhbbcccccỉỉceeex\:xyzzz | 246351334 |
Giúi thích. Chuồi củ 1 kỉ lự ÚT, 4 ki tự b. 6 k[ Lự c> 3 ki lự íỉf 5 ki Lự e, 1 ki tư£ 3 ki lự JC, 3 kE [ự y vá A kí lự z ncn mả bán quyên Lú 246351334.
Bùi 3: CHỌN THAN THƯỞNG (4.0 điếm) – TỄn chương trinh: BQMlSSEL.*
Trong ký thi học sinh gioi L HCS cáp huyện mủn Toán, trong nỏi dung dề có nói VẺ Lí$fỉ chính ph ương ‘ lá sỏ bãỉig bình phương đúng cua một sổ nguyên. i ỉar hỉàíi đơn gúin, sổ chinh phìỉiĩỉỉg lả một sổ tự nhiên cỏ căn bậc hai cùng ià mật sâ tự nhiên. Bạn An dược giái nhất trong kỷ thi đó, thày Thú giáo viẻn dạy toán hoi dưrtng cho An cỏ phằn ihuứng dặc hiệt cho An, dòng ihới cũng muốn kiềm tra kiến thức toản và lư duy vc lập Irinh tin học cũa An như the nèo đẻ dịnh hướng bạn di ngành CNTT Lrong thửi dại cồng mìhc 4.0. ĩhầy yẾu cẳu An chọn nhừng phần thướng má thấy dã xếp ưèn bán thánh l bán tỉ ịĩỉiíỉ trận) gom m dóntĩ vả n CỘI, mi^i phản ihướniì có aiá trị neuvén dương pỊị, (ỉ< Oỹ<Ị0 Phần thưởng An nhặn dưực lá piông tát cá các “Só chỉnh pỉnrơng” cũa báng,
YẾU càu: Hạn bây Lặp trinh eiũp An nhịn phẩn thướng.
DữUệu vàn: Được cho Lrong tọp vin hun BQNUSSEL.INP gèm:
Dử ILẹu ra: Tệp vân bán BONLiSâEL.QUT ghi mộl sả, Lá phần ihướng mả An được ihảy thương
Vỉ dụ:
BONUSSEL.INP | BỘN USSEL.ÓƯT |
23 | 4 |
2 3 4 | |
357 |
35 | 35 |
123 | |
í 5 16 | |
7H9 |
Hài 4: TAM GIÁC (4.Ũ đìẻtìi) – TỄn chương trình: TKIANGLE.*
|
Kỉìủĩ nĩệiìt :
VI dự:
YẾU cầu: Lrẻn mầl phàng tọa dụ (OXY) chu 3 dicmẢ, Bị c cũ Lọa dt) lần lượt hì (íi.Xth (xstysị, ‘ệtc;yc)- Bạn hây lập trinh kiểm tra 3 đinh đó tạo thánh tam giác V uũng không?
|
Líừ IĨCIL vào: Buợc chu ưung ọp vàn hán TRlANGLL.INP gầm:
L>ừ licu ra: Tệp vãn ban TỉtlANGLb.OlJ l, yhi T dùng, mui dỏng gbi ưYES” nẺu lá tam giảc vuông hí lặc “NIO'” nẾu không hi Lam giác vuông.
Ví dụ:
TRIANGLE.INP | triangle,out |
i | NO |
0.0 0.0 LO l.u 2.0 2.0 | YES |
ềJữ 0.0 0.0 iừ.o 0.0 0.0 | NO |
1.0 2.0 3.5 ktì 1.0 2.0 |
Lim Ỷ’ + Binh phương khơáns cách giừa 2 di êm A(XÀy\i) vả lì(.\-B;vsỉ lá
>íBi = (jra-íJ>;!+(yJ->’J>1
+ Oc hạn ehc sai sớ Ironiĩ [inh toán ki cu sà thục, học sinh nành việc lẩy cần bậc 2 rơi binh phương cùa cfin bậc 2.
Bài 5: LÃI KÉP NGÂN HÀNG (4.0 điểm) – Tên chương trình: COMPINT.*
Khái niệm: “Lãi kép” trong tiếng Anh là Compound interest. Đó là số tiền lãi được xác định dựa trên cơ sở số tiền lãi của các thời kì trước đó được gộp vào vốn gốc để làm căn cứ tính tiền lãi cho các thời kì tiếp theo.
Ông Ba sau khi tích lũy làm ăn nhiều năm dư được 1 số tiền lớn, để tiêu vặt và đóng tiền học phí hàng tháng cho An, Ông đã gửi ngân hàng với lãi suất nhận hàng tháng (Lãi đơn). Do trong đợt dịch Covid-19 vừa qua, để hạn chế tiếp xúc và ra ngân hàng đông người, Ông đã thay đổi hình thức gửi ngân hàng thành hình thức “Lãi kép’’”.
Yêu cầu: Với số vốn ban đầu là M, lãi suất hàng tháng là r%. Bạn hãy lập trình tính tổng số vốn và tiền lãi sau n tháng mà ông Ba nhận được theo hình thức “Lãi kép”.
Dữ liệu vào: Được cho trong tệp văn bản COMPINT.INP:
Dữ liệu ra: Tệp văn bản COMPINT.OUT ghi một số thực, định dạng 1 chữ số thập phân, là tổng số tiền nhận được sau n tháng.
Ví dụ:
Giải thích. Ông Ba gửi 2 khoản tiết kiệm như sau:
Ở khoản tiết kiệm 1: Ông Ba gửi 1000000, với lãi suất 0.7%:
———————————————– hét———————————————–
Thí sinh không đqợc sử dụng tài liệu. Cán bộ coi thi không giải thích gì thêm.
Họ và tên thí sinh. …………………………………………… Số báo danh : ……………………………………………………………
Tên và chữ ký Cán bộ coi thi 1
Tên và chữ ký Cán bộ coi thi 2
KỲ THI CHỌN HỌC SINH GIỎI CẤP TỈNH
TRUnG học Cơ Sở
Năm học 2022-2023 Môn: TIN HỌC
Thời gian: 150 phút (không kể thời gian giao đề) Ngày thi: 21/3/2023 ^
(Đề thi có 5 trang, gồm 5 bài)
TỔNG quan các BÀi thi
Thứ tự | rpA I A • Tên bài | File chương trình | File dữ liệu vào | File kết quả |
Bài 1 | Tương đồng | SAME.* | SAME.INP | SAME.OUT |
Bài 2 | Tách xâu | STRING.* | STRING.INP | STRING.OUT |
Bài 3 | May mắn | LUCKY.* | LUCKY.INP | LUCKY.OUT |
Bài 4 | Tam giác | TRIANGLE.* | TRIANGLE.INP | TRIANGLE.OUT |
Bài 5 | Chở hàng | GOOD.* | GOOD.INP | GOOD.OUT |
Dấu * được thay thế bởi PAS, CPP, PY của ngôn ngữ lập trình được sử dụng tương ứng là Free Pascal, C++, Python hoặc phần mở rộng tương ứng với NNLT khác.
|
Bài 1: (4 điểm) Tương đồng Tên chương trình: SAME.*
Vườn bưởi nhà Alice có n cây. Để theo dõi sự phát triển của các cây bưởi của mình, Alice thường xuyên đo và ghi lại chiều cao của chúng. Trong tuần này, Alice có được bảng chiều cao của các cây bưởi là một dãy số nguyên a[1], a[2],…, a[n], trong đó a[i] là chiều cao của cây bưởi thứ i. Nhìn vào dãy số, Alice biết có những cây có chiều cao trùng nhau và Alice gọi mỗi tần số trùng nhau là tần số “tương đồng”.
Do số lượng cây bưởi nhiều nên Alice muốn nhờ các bạn lập trình tìm tần số tương đồng lớn nhất của các cây bưởi là bao nhiêu?
Dữ liệu vào: Đọc từ file SAME. INP gồm 2 dòng:
Kết quả: Ghi ra file SAME.OUT gồm duy nhất một số nguyên dương là tần số tương đồng lớn nhất.
Ví dụ:
SAME.INP | same.out |
7 9 8 6 8 5 6 10 | 2 |
2 3 10 | 1 |
Giải thích bộ test 1:
Có 1 chiều cao: 5;
Có 2 chiều cao: 6;
Có 2 chiều cao: 8;
Có 1 chiều cao: 9;
Có 1 chiều cao: 10
->Tần số tương đồng lớn nhất là: 2
Bài 2: (4 điểm) Tách xâu Tên chương trình: STRING.*
Hôm nay, mẹ và Cám đi dự dạ hội. Tấm cũng rất muốn được đi. Nhưng trước khi đi, mẹ Cám giao cho Tấm một công việc để làm khó Tấm như sau:
Cho một xâu s gồm các ký tự là các chữ cái in hoa hoặc in thường (trong bảng chữ cái Tiếng Anh) và các kí tự số. Mẹ kế yêu cầu Tấm hãy tách các ký tự trong xâu s thành hai phần như sau:
Phần 1: gồm các chữ cái có mặt trong s nhưng viết theo thứ tự ngược lại.
Phần 2: gồm các chữ số có mặt trong xâu s nhưng phải được sắp xếp theo thứ tự từ nhỏ đến lớn.
Nếu Tấm thực hiện xong công việc thì mới được đi dự tiệc. Nhưng Tấm có thời gian rất ít nên chưa giải được bài toán. Các bạn đội tuyển Tin học hãy giúp đỡ Tấm giải bài toán để Tấm còn được đi dự tiệc nhé!
Dữ liệu vào: Đọc từ file STRING.INP gồm 1 dòng chứa xâu s có độ dài không quá 103 ký tự. Dữ liệu vào đảm trong xâu s luôn có kí tự chữ cái và kí tự chữ số. Kết quả: Ghi ra fíle STRING.OUT gồm 2 dòng:
Ví dụ:
STRING.INP | STRING.OUT |
m2aC0ma2T3 | TamCam 0223 |
Bài 3: (4 điểm) May mắn Tên chương trình: LUCKY.*
Trong buổi tiệc liên hoan cuối năm của công ty cung cấp điện thoại Thế Giới Trẻ, ghế ngồi trong hội trường của khách mời được bố trí thành một ma trận hình chữ nhật gồm m hàng và n cột. Để buổi liên hoan thêm vui vẻ, ban tổ chức cho mỗi khách mời rút ngẫu nhiên một phiếu, trên phiếu có ghi một số nguyên dương trong phạm vi từ 1 đến 109.
Ban tổ chức sẽ trao cho những người may mắn mỗi người một phần quà là một chiếc điện thoại. Biết rằng người may mắn là người có số ghi trong phiếu của
mình lớn hơn trung bình cộng của số trong phiếu của những người ngồi xung quanh người đó.
Xung quanh một người được định nghĩa như sau:
Trường hợp 1: Người ngồi ở vị trí góc (trên trái, dưới trái, trên phải, dưới
phải) của hình chữ nhật thì chỉ có 2 người ngồi xung quanh. Trường hợp 2: Người ngồi ở vị trí bìa (trừ góc) thì có 3 người xung quanh. Trường hợp 3: Người ngồi ở các vị trí còn lại có 4 người xung quanh. |
Trường hợp 1 Trường hợp 2 Trường hợp 3
Ô gạch sọc chỉ vị trí xung quanh của vị trí được tô đen.
Bạn hãy giúp ban tổ chức xác định số lượng điện thoại cần phải chuẩn bị để trao cho những người may mắn.
Dữ liệu vào: Đọc từ file LUCKY.INP gồm:
Kết quả: Ghi ra file LUCKY.OUT gồm một số nguyên là số điện thoại ban tổ chức cần chuẩn bị.
Ví dụ:
LUCKY.INP | LUCKY.OUT |
3 4 | 3 |
1 4 3 1 | |
1 1 5 2 | |
2 1 2 1 |
Giải thích:
Số lượng điện thoại cần chuẩn bị là 3, vì có ba người may mắn:
+ Người thứ nhất ngồi ở hàng 1, cột 2, có số phiếu là 4 (có 3 người xung quanh) + Người thứ hai ngồi ở hàng 2, cột 3, có số phiếu là 5 (có 4 người xung quanh) + Người thứ ba ngồi ở hàng 3, cột 1, có số phiếu là 2 (có 2 người xung quanh)
Bài 4: (4 điểm) Tam giác Tên chương trình: TRIANGLE.*
Alice có n que tính, mỗi que có độ dài là một số nguyên dương. Alice muốn tạo ra các tam giác bằng cách ghép ba que tính lại với nhau, độ dài mỗi cạnh là một que tính.
Em hãy giúp Alice đếm xem có bao nhiêu tam giác được tạo thành từ các que tính này và cho biết diện tích lớn nhất trong các diện tích của các tam giác ghép được là bao nhiêu?
Biết rằng:
+ Hai tam giác được gọi là khác nhau nếu có ít nhất một que tính khác nhau.
+ Ta có thể tính diện tích tam giác theo công thức sau :
s=Vp * (p — à) * (p — b) * (p — c)
Trong đó a,b,c là độ dài 3 cạnh của tam giác, và p là nửa chu vi của tam giác.
Dữ liệu vào: Đọc từ file TRIANGLE.INP gồm:
Kết quả: Ghi ra file TRIANGLE.OUT gồm:
TRIANGLE.INP | TRIANGLE.OUT | Giải thích |
5 | 3 | Có 3 tam giác được tạo từ 5 que tính trên: |
1 4 5 2 3 | 6.00 | Tam giác 1: Que thứ 2, 3, 4 Tam giác 2: Que thứ 2, 3, 5 Tam giác 3: Que thứ 2, 4, 5 Trong đó tam giác thứ 2 có 3 độ dài là 4 5 3 có có diện tích lớn nhất là 6.00 |
4 | 4 | Có 4 tam giác được tạo từ 4 que tính trên: |
2 2 2 2 | 1.73 | Tam giác 1: Que thứ 1, 2, 3 Tam giác 2: Que thứ 1, 2, 4 Tam giác 3: Que thứ 1, 3, 4 Tam giác 4: Que thứ 2, 3, 4 Trong đó 4 tam giác đều có cùng diện tích là: 1.73 |
3 | 0 | Không ghép được tam giác nào |
1 2 3 | -1 |
Bài 5: (4 điểm) Hàng hóa Tên chương trình: GOOD.*
Cửa hàng tạp hóa XYZ cần chở n kiện hàng giao cho khách. Kiện hàng thứ i có trọng lượng là a[i] tấn. Cửa hàng có một xe tải có trọng tải là m tấn. Trong
chuyến hàng đầu tiên, cửa hàng muốn chở những kiện hàng đi giao thỏa mãn các yêu cầu sau:
Em hãy lập trình giúp cửa hàng xác định trọng lượng các kiện hàng của chuyến xe đầu tiên.
Dữ liệu vào: Đọc từ file GOOD.INP gồm hai dòng:
Kết quả: Ghi ra file GOOD.OUT các số nguyên dương là trọng lượng của các kiện hàng trong chuyến xe đầu tiên theo trọng lượng giảm dần.
GOOD.INP | GOOD.OUT |
5 10 7 5 1 3 8 | 8 1 |
5 12 2 8 2 4 1 | 8 4 |
Giải thích bộ test 1:
Có n = 5 kiện hàng và xe có trọng tải m = 10 tấn Các kiện hàng có trọng lượng lần lượt là: 7 5 1 3 8 Vậy các kiện hàng được chở đi trong chuyến đầu tiên có trọng lượng lần lượt là 8 và 1.
Vì kiện hàng có trọng lượng là 8 lớn hơn trọng lượng các kiện hàng còn lại và 8 < m=10 nên được ưu tiên chọn. Trọng tải xe còn có thể chứa được là 10 – 8 = 2, nên chọn tiếp kiện hàng có trọng lượng là 1.
………………………………………………….. HẾT…………………………………………………..
Thí sinh không được sử dụng tài liệu. Giám thị không giải thích gì thêm.
Họ và tên thí sinh: ……………………………………………………………………………….. Số báo danh:……………………………………………………………………..
|
TỔNG quan các bài thi
Dấu * được thay thế bởi PAS, CPP, PY của ngôn ngữ lập trình được sử dụng tương ứng là Free Pascal, C++, Python hoặc phần mở rộng tương ứng với NNLT khác.
|
Học sinh chỉ được chọn một trong các môi trường quy định ở trên lập trình để làm toàn bộ bài thi.
Bài 1: Tiền điện (4,0 điểm) Tên chương trình: ELCOST.*
Giá bán lẻ điện sinh hoạt được tính theo 3 bậc gồm:
Yêu cầu: Tính tổng tiền điện phải trả của một khu phố gồm n hộ gia đình.
Dữ liệu vào: Đọc từ file văn bản ELCOST.INP gồm hai dòng:
Kết quả: Ghi ra file văn bản ELCOST.OUT một số nguyên dương là tổng tiền điện của n hộ gia đình.
Ví dụ:
ELCOST.INP | ELCOST.OUT |
3 15 165 205 | 1050000 |
Giải thích:
Có 3 hộ gia đình sử dụng số Kwh lần lượt là: 15, 165 và 205
Số tiền hộ thứ nhất: 15*2500 = 37500
Số tiền hộ thứ hai: 100*2500 + 65*3000 = 445000
Số tiền hộ thứ ba: 100*2500 + 100*3000 + 5*3500 = 567500
Nên tổng số tiền là: 37500 + 445000 + 567500 = 1050000
Bài 2: Độ mạnh của xâu (4,0 điểm) Tên chương trình: STRONG.*
Cho xâu s chỉ gồm các kí tự in thường trong bảng chữ cái Tiếng Anh và kí tự số từ ‘0’ đến ‘9’.
Yêu cầu: Tìm độ mạnh của xâu. Biết rằng độ mạnh của xâu là tích của số kí tự phân biệt xuất hiện trong xâu với số lần xuất hiện nhiều nhất của một kí tự trong xâu.
Dữ liệu vào: Đọc từ file văn bản STRONG.INP gồm một dòng chứa xâu s có chiều dài không quá 103 kí tự. Trong xâu không chứa khoảng trắng và kí tự đặc biệt.
Kết quả: ghi ra file văn bản STRONG.OUT một số nguyên dương là độ mạnh của xâu.
Ví dụ:
STRONG.INP | STRONG.OUT |
xy11z2yyzxy0y | 30 |
ggggg__________________ | 5 |
Giải thích:
Ở test 1: Xâu s = ‘xy11z2yyzxy0y’. Số kí tự phân biệt trong xâu s là 6 (gồm ‘x’, ‘y’, ‘1’, ‘z’, ‘2’, ‘0’) và số lần xuất hiện nhiều nhất của một kí tự là 5 (kí tự ‘y’). Nên độ mạnh của xâu là 6 * 5 = 30.
Ở test 2: Xâu s = ‘ggggg’. Số kí tự phân biệt trong xâu s là 1 (kí tự ‘g’) và số lần xuất hiện nhiều nhất là 5. Nên độ mạnh của xâu là 1 * 5 = 5.
Bài 3: Tổng dòng cột (4,0 điểm) Tên chương trình: SUM.*
Cho ma trận a gồm m dòng và n cột. Ma trận b được tạo bằng cách: bij = (tổng dòng i trên ma trận a + tổng cột j trên ma trận a) – aij Yêu cầu: Tìm giá trị nhỏ nhất trong ma trận b.
Dữ liệu vào: Đọc từ file văn bản SUM.INP gồm nhiều dòng:
Kết quả: Ghi ra file văn bản SUM.OUT một số nguyên dương là giá trị nhỏ nhất tìm được trong ma trận b.
Ví dụ:
SUM.INP | SUM.OUT |
2 3 | 10 |
3 2 4 | |
2 1 5 |
Giải thích: Ma trận b là 11 10 14 11 10 12
Nên giá trị nhỏ nhất trong ma trận b là 10.
Cách 1: Dùng mảng 2D để tính tổng cột (Không dùng thư viện ngoài)
python
Sao chépChỉnh sửa
def tìm_tổng_nhỏ_nhất(tệp_vào): with open(tệp_vào, 'r') as file: m, n = map(int, file.readline().split()) # Đọc m (số hàng) và n (số cột) tổng_cột = [0] * n # Mảng lưu tổng các cột for _ in range(m): dòng = list(map(int, file.readline().split())) for j in range(n): tổng_cột[j] += dòng[j] # Cộng dồn vào cột tương ứng return min(tổng_cột) # Trả về tổng cột nhỏ nhất # Đọc từ tệp SUM.INP và ghi kết quả vào SUM.OUT tệp_vào = "SUM.INP" tệp_ra = "SUM.OUT" kết_quả = tìm_tổng_nhỏ_nhất(tệp_vào) with open(tệp_ra, "w") as file: file.write(str(kết_quả) + "\n")
Cách 2: Dùng NumPy để xử lý nhanh hơn (Dùng thư viện ngoài)
python
Sao chépChỉnh sửa
import numpy as np # Import thư viện NumPy def tìm_tổng_nhỏ_nhất_numpy(tệp_vào): with open(tệp_vào, 'r') as file: m, n = map(int, file.readline().split()) # Đọc m, n dữ_liệu = np.loadtxt(file, dtype=int) # Đọc ma trận vào mảng NumPy tổng_cột = dữ_liệu.sum(axis=0) # Tính tổng từng cột return tổng_cột.min() # Trả về tổng nhỏ nhất # Chạy chương trình kết_quả = tìm_tổng_nhỏ_nhất_numpy("SUM.INP") with open("SUM.OUT", "w") as file: file.write(str(kết_quả) + "\n")
So sánh hai cách
Cách | Dễ hiểu | Hiệu suất | Dùng thư viện ngoài |
1. Dùng mảng 2D | ✅ Rất dễ hiểu | Tốt (O(m×n)) | ❌ Không |
2. Dùng NumPy | ⚠ Cần hiểu NumPy | Nhanh hơn | ✅ Có |
➡ Nếu không muốn dùng thư viện ngoài, hãy dùng cách 1. Nếu muốn tối ưu hiệu suất, hãy dùng cách 2 với NumPy.
Bài 4: Xâu lặp (4,0 điểm) Tên chương trình: SUBSTR.*
Xâu lặp là một xâu có đoạn đầu ngắn nhất của nó được lặp lại nhiều lần. Ví dụ ‘xyxyxyxy’ là một xâu lặp vì nó có đoạn đầu ngắn nhất là ‘xy’ được lặp lại nhiều lần. ‘xyxy’ cũng được lặp lại nhưng không được tính là đoạn đầu vì nó không ngắn nhất.
Yêu cầu: Cho n xâu. Hãy ghép đoạn đầu của mỗi xâu lặp theo thứ tự xuất hiện của xâu (nếu xâu đó là xâu lặp).
Dữ liệu vào: Đọc từ file văn bản SUBSTR.INP gồm nhiều dòng:
Lưu ý: Trong xâu chỉ chứa kí tự thường từ ‘a’ đến ‘z’ trong bảng chữ cái Tiếng Anh (không chứa khoảng trắng, kí tự số và các kí tự đặc biệt). Dữ liệu vào đảm bảo luôn có xâu lặp.
Kết quả: Ghi ra file văn bản SUBSTR.OUT là xâu ghép thu được.
Ví dụ:
SUBSTR.INP | SUBSTR.OUT |
4 | xyabach |
xyxyxyxy | |
abcab | |
abacabac | |
hhh |
Giải thích:
Trong 4 xâu, có 3 xâu lặp theo thứ tự là: ‘xyxyxyxy’, ‘abacabac’, ‘hhh’. Ba đoạn đầu tương ứng là ‘xy’, ‘abac’, ‘h’. Nên xâu ghép là: ‘xyabach’.
Bài 5: Phần thưởng (4,0 điểm) Tên chương trình: GIFT.*
An được mẹ cho một số phần thưởng. Có nhiều phần thưởng được xếp thành một hàng, mỗi phần thưởng có giá trị trong khoảng từ 1 đến 109. An muốn chọn những phần thưởng có giá trị tăng dần liên tiếp nhiều nhất.
Yêu cầu: Cho biết số lượng phần thưởng mà An chọn được như mong muốn.
Dữ liệu vào: Đọc từ file văn bản GIFT.INP gồm một dòng chứa các số nguyên dương là giá trị của các phần thưởng. Giữa hai số liên tiếp nhau cách nhau bởi một dấu cách.
Kết quả: Ghi ra file văn bản GIFT.OUT một số nguyên dương là số lượng phần thưởng An chọn được.
Ví dụ:
GIFT.INP | GIFT.OUT |
2 4 3 5 7 8 6 | 4 |
1 5 4 3 5 6 6 5 8 6 | 3 |
Giải thích:
Ở test 1: Độ dài phần thưởng liên tiếp tăng dần nhiều nhất là 4 (2 4 3 5 7 8 6)
Ở test 2: Độ dài phần thưởng liên tiếp tăng dần nhiều nhất là 3 (1 5 4 3 5 6 6 58 6) ……. -…………… ……………….. HET……… –
Thí sinh không được sử dụng tài liệu. Giám thị không giải thích gì thêm.
Họ và tên thí sinh: …………………………………………. Số báo danh:……………………………………………………………
Khóa học Python online từ cơ bản đến nâng cao
2 Đề thi học sinh giỏi Tin học THCS cấp tỉnh Tiền Giang có đáp án SỞ…
1 Đề Thi Học Sinh Giỏi Tin học THCS cấp Tỉnh Tiền Giang có đáp…
100 triệu là mức lương của lập trình Python vì sao? 1. Vì sao Python…
Bài 71: Đổi tất cả ký tự trong một chuỗi thành ký tự thường bằng…
Bài 26 - Tính Tổng Những Số Chia Hết Cho 3 và 5 bằng Python…
Bài 15: Cộng, Trừ, Căn Bậc Hai bằng Python mới nhất 2025 - 2026 Python…
This website uses cookies.