Pascal là một ngôn ngữ lập trình cho máy tính thuộc dạng mệnh lệnh, được Niklaus Wirth phát triển vào năm 1970 là ngôn ngữ đặc biệt thích hợp cho kiểu lập trình có cấu trúc. Pascal dựa trên ngôn ngữ lập trình ALGOL và được đặt tên theo nhà toán học và triết học Blaise Pascal. Wirth đồng thời cũng xây dựng Modula2 và Oberon, là những ngôn ngữ tương đồng với Pascal. Oberon cũng hỗ trợ kiểu lập trình hướng đối tượng. Ban đầu, Pascal là một ngôn ngữ được hướng để dùng trong giảng dạy về lập trình có cấu trúc, và nhiều thế hệ sinh viên đã vào nghề thông qua việc học Pascal như ngôn ngữ vỡ lòng trong các chương trình học đại cương. Nhiều biến thể của Pascal ngày nay vẫn còn được sử dụng khá phổ biến, cả trong giảng dạy lẫn trong công nghiệp phát triển phần mềm.
Trang 1KỲ THI HỌC SINH GIỎI THCS NĂM HỌC 2003 – 2004 MÔN: TIN HỌC
ĐỀ HỌC SINH GIỎI MÔN TIN HỌC THCS – NĂM HỌC 2003-2004
KỲ THI NGÀY 20/2/2004
BÀI 1 : BÀI TOÁN DIỆN TÍCH TAM GIÁC
Cho một hình chữ nhật ABCD, cạnh AB=a, cạnh BC=b a,b là các số nguyên dương trong khoảng [1, 100]
Một điểm M chạy trong đoạn BC với BM=x x là số nguyên duơng trong khoảng [0, b], một điểm N chạy trong đoạn CD với CN=x
Tính giá trị lớn nhất và giá trị nhỏ nhất của diện tích tam giác AMN khi M, N lưu động
Dữ liệu vào: Được cho trong tập tin CHUNHAT.inp, gồm một dòng ghi hai số nguyên
dương lần lượt là a, b Hai số cách nhau một khoảng trắng
Trang 2Dữ liệu ra : Yêu cầu xuất ra tập tin CHUNHAT.out, gồm bốn dòng:
+ Dòng đầu là giá trị lớn nhất của diện tích tam giác AMN (một chữ số thập phân) + Dòng thứ hai là một giá trị của x để diện tích tam giác AMN đạt giá trị lớn nhất + Dòng thứ ba là giá trị nhỏ nhất của diện tích tam giác AMN (một chữ số thập phân)
+ Dòng thứ tư là một giá trị của x để diện tích tam giác AMN đạt giá trị nhỏ nhất
Yêu cầu kỹ thuật :
+ Có kiểm tra dữ liệu nhập
+ Bài làm của thí sinh lưu trên tập tin Bailam1.pas
Trang 3BÀI 2: BÀI TOÁN Ô VUÔNG
Cho một bảng chữ nhật gồm m x n điểm ( m hàng ngang, n hàng đứng) nằm trên các mắt lưới ô vuông Các điểm liền kề trên cùng một hàng hoặc một cột có thể có nối với nhau bởi một đoạn thẳng có kích thước bằng 1
Trên mỗi hàng có nhiều nhất n-1 đoạn thẳng nằm ngang nối các điểm liền nhau, trên mỗi cột có nhiều nhất là m-1 đoạn thẳng thẳng đứng nối các điểm liền nhau Các đoạn liền kề
nhau có thể sẽ tạo ra các ô vuông trên bảng (chỉ quan tâm các ô vuông có độ dài cạnh bằng 1) Xem hình dưới:
Với bảng trên ta có 4 hàng ngang (mỗi hàng 5 điểm) và 5 hàng đứng (mỗi hàng 4 điểm) Các đoạn thẳng nối chúng tạo nên 3 ô vuông.
Để mô tả bảng người ta dùng hai mảng nhị phân: một mảng diễn tả các đoạn thẳng nằm ngang, một mảng diễn tả các đoạn thẳng thẳng đứng
Trong các mảng, số 1 diễn tả có đoạn thẳng nối hai điểm liên tiếp, số 0 diễn tả không có đoạn thẳng nối hai điểm.
Trong hình vẽ trên, (bảng có 4x5 điểm) thì ta có hai mảng sau:
Ngang Dọc
Nhiệm vụ :
1 0 1 0 1
1 1 1 0
Trang 4Lập trình đếm số các ô vuông có cạnh dộ dài bằng 1 tạo bởi các đoạn nối có trên bảng đã cho.
Dữ liệu vào: gồm ba tập tin
Kthuoc.inp: gồm 2 số nguyên dương (nhỏ hơn 100) lần lượt là m, n Hai số cách nhau
Lưu ý: Chỉ tính các ô vuông có độ dài cạnh bằng 1
Yêu cầu kỹ thuật :
+ Không cần kiểm tra dữ liệu nhập
+ Bài làm của thí sinh lưu trên tập tin Bailam2.pas
Trang 50 (hay 40) 600.0 20
0 17.5 5
0 50.0 10
0 18.0 6
Trang 61 1 1 1 1 1 Test 2
Trang 7UBND HUYỆN QUẾ
SƠN
PHÒNG GD&ĐT
KỲ THI HỌC SINH GIỎI LỚP 9 CẤP
HUYỆN NĂM HỌC 2012-2013
Môn: Tin họcThời gian làm bài: 150 phút (Không kể thời gian giao
a Tính độ dài đoạn thẳng AB
b Tính diện tích tam giác ABC
c Tính độ dài đường cao AH
d Đường thẳng đi qua A song song với BC cắt đường thẳng đi qua
C song song với AB tại D Hãy xác định tọa độ điểm D
Ví dụ:
Trang 8Bài 2 (4.0 điểm).
Viết chương trình cho phép nhập số nguyên dương N
a In ra dãy A(n) các số nguyên tố nhỏ hơn hoặc bằng N
b In ra dãy B(n) các số Fibonacy nhỏ hơn hoặc bằng N Dãy fibonacy là dãy được định nghĩa: F1 = 1; F2 = 1; Fn = Fn-1 + Fn-2
Ví dụ:
c In ra các số vừa thuộc dãy A(n) vừa thuộc dãy B(n)
d Số siêu nguyên tố là số nguyên tố có tính chất: Khi lần lược xóa các chữ số bên phải của nó ta cũng được các số nguyên tố Ví dụ: 23; 239; … là các số siêu nguyên tố
Hãy tìm các số siêu nguyên tố nhỏ hơn hoặc bằng N có trong dãy fibonacy
Ví dụ:
Trang 9Bài 3: (2.0 điểm)
Có thể sử dụng công thức
a c a.d + b.c + =
để tính tống hai phân số Viết chương trình cho phép nhập số nguyên dương N > 2 Rồi thực hiện:Tính tổng
Ví dụ:
Trang 10UBND HUYỆN QUẾ
SƠN
PHÒNG GD&ĐT
KỲ THI HỌC SINH GIỎI LỚP 9 CẤP
HUYỆN NĂM HỌC 2012-2013
Môn: Tin học Thời gian làm bài: 150 phút (Không kể thời gian giao
đề)
ĐỀ CHÍNH THỨC - VÒNG II
Trang 11Bài 1 (2.0 điểm):
Viết chương trình cho phép nhập số n nguyên dương và số thực x
từ bàn phím (Với 1 ≤ n ≤ 100; 0 ≤ x ≤ 10 ) rồi tính các tổng sau:
a Trong N học sinh vừa nhập có bạn nào sinh nhật vào ngày 22 tháng 01 không?
b Lớp chỉ tổ chức sinh nhật chung khi có hai người trở lên có cùng ngày sinh nhật Cho biết những ngày lớp tổ chức sinh nhật?
Trang 12c Cho biết người trẻ nhất có ngày sinh là bao nhiêu?
d Cho biết người (được nhập) thứ k lớn thứ mấy trong lớp?
Ví dụ:
Bài 3: (4.0 điểm)
Viết chương trình nhập vào một dãy A(N) các số thực gồm N phần tử: A1, A2, A3… AN Rồi thực hiện:
a Xét xem A(N) có là dãy tăng dần không? Biết rằng dãy tăng dần
là dãy có phần tử đứng sau lớn hơn phần tử đứng trước
b Tìm cặp số Ai, Aj trong dãy A(N) sao cho tích Ai*Aj có giá trị lớn nhất Trong trường hợp tích lớn nhất bằng nhau cần chỉ ra tất cả các trường hợp
c Tìm các số Ai có trong dãy A(N) sao cho Ai bằng tổng 2 số khác
trong dãy A(N)
d Tìm phần tử xuất hiện nhiều lần nhất trong dãy (Nếu có nhiều phần tử có số lần xuất hiện nhiều nhất bằng nhau thì in ra phần tử đầu tiên tìm thấy)
Ví dụ:
Trang 13UBND HUYỆN NÔNG SƠN
PHÒNG GIÁO DỤC & ĐÀO
TẠO
KỲ THI HỌC SINH GIỎI LỚP 9 CẤP
HUYỆNNĂM HỌC 2013 - 2014
Trang 14Viết chương trình cho
phép nhập dãy số thực có ít
nhất hai phần tử từ bàn phím
rồi thực hiện:
a) Cho biết trong dãy số
vừa nhập có bao nhiêu số
dương.
b) Cho biết trung bình
cộng của các số trong dãy vừa
trước cộng với 3 Hãy cho biết
dãy số vừa nhập có phải là cấp
b) Kiểm tra tính đồng thời
chẵn, lẻ của hai số m, n Nếu cả
hai số m, n đều là số chẵn hoặc
đều là số lẻ thì thông báo
DUNG Ngược lại thì thông báo
Trang 15c) So sánh n m với m n
Để xóa một chữ số bên
phải của một số tự nhiên N ta
thực hiện chia lấy phần nguyên
số N cho 10 Viết chương trình
số bên phải của số N cho đến
khi được kết quả là số nguyên
tố Nếu không thể xóa để được
kết quả là số nguyên tố thì
thông báo KHONG THE
\
Trang 16Sở Gd&Đt kỳ thi CHọN học sinh giỏi lớp 9 tHCS Quảng bình năm học 2012- 2013
Môn thi: tin học
Đề thi chính thức (Khóa thi ngày 27 tháng 3 năm 2013)
Số Báo Danh: Thời gian làm bài: 150 phút (không kể thời gian giao đề)
(Đề thi gồm cú 02 trang)
ĐỀ RA
Sử dụng ngụn ngữ lập trỡnh Turbo Pascal để lập trỡnh giải cỏc
bài toỏn sau:
Cõu 1: (3,0 điểm) Phần thưởng PT.PAS
Trong cuộc thi giải toỏn qua mạng internet mỗi học sinh đều cú số điểm tớch lũy riờng của mỡnh Số điểm tớch lũy của mỗi học sinh là một số nguyờn dương K (0 < K ≤ 2 ì 10 9 ) Đội tuyển của trường THCS Tài Năng cú N học sinh tham gia dự thi (2 ≤ N ≤ 100) Tại buổi gặp mặt trước kỳ thi cấp tỉnh, thầy hiệu trưởng quyết định thưởng cho cỏc học sinh trong đội tuyển Q triệu đồng, biết rằng điểm tớch lũy của mỗi học sinh đều chia hết cho Q.
Yờu cầu: Hóy tỡm số nguyờn dương Q lớn nhất.
Dữ liệu vào: Cho trong file văn bản PT.INP cú cấu trỳc như sau:
- Dũng 1: Ghi số nguyờn dương N là số lượng học sinh.
- Dũng 2: Ghi N số nguyờn dương lần lượt là điểm tớch lũy của N học sinh, cỏc số
được ghi cỏch nhau ớt nhất một dấu cỏch.
Dữ liệu ra: Ghi ra file văn bản PT.OUT theo cấu trỳc như sau:
- Dũng 1: Ghi số nguyờn dương Q tỡm được.
Vớ dụ:
Trang 1715 24 45 36 27
3
Thời gian thực hiện chương trình không quá 1 giây cho mỗi bộ dữ liệu vào.
Câu 2: (3,5 điểm) Mật khẩu MK.PAS
Cu Tí thường xuyên tham gia thi lập trình trên mạng Vì đạt được thành tích cao nên Tí được gửi tặng một phần mềm diệt virus Nhà sản xuất phần mềm cung cấp cho Tí một mã số là một số nguyên dương N có không quá 255 chữ số
Để cài đặt được phần mềm, Tí phải nhập vào mật khẩu của phần mềm Mật khẩu là một số nguyên dương M được tạo ra bằng cách tính tổng giá trị các chữ số của N.
Yêu cầu: Hãy tìm số nguyên dương M.
Dữ liệu vào: Cho trong file văn bản MK.INP có cấu trúc như sau:
- Dòng 1: Ghi số nguyên dương N.
Dữ liệu ra: Ghi ra file văn bản MK.OUT theo cấu trúc như sau:
- Dòng 1: Ghi số nguyên dương M tìm được.
Ví dụ:
84915388247 59
Trang 18Câu 3: (3,5 điểm) Tần suất TS.PAS
Cho tập hợp S có N phần tử nguyên dương {s1, s2,…, sN}.
(1 ≤ N ≤ 32000; 0 < si ≤ 32000; 1 ≤ i ≤ N)
Yêu cầu: Hãy liệt kê các phần tử trong S có số lần xuất hiện lớn hơn một lần.
Dữ liệu vào: Cho trong file văn bản TS.INP có cấu trúc như sau:
- Dòng 1: Ghi số nguyên dương N.
- Dòng 2: Ghi N số nguyên dương là giá trị các phần tử của tập hợp S, các số được
ghi cách nhau ít nhất một dấu cách.
Dữ liệu ra: Ghi ra file văn bản TS.OUT trên nhiều dòng, dòng thứ i ghi 2 số si di, hai
số cách nhau một dấu cách Trong đó si là phần tử xuất hiện trong S lớn hơn một lần và
di tương ứng là số lần si xuất hiện
Thời gian làm bài: 120 phút - Ngày thi: 28-6-2013
(đề thi này gồm có: 02 trang, 03 câu)
ĐỀ CHÍNH THỨC
SỞ GIÁO DỤC VÀ ĐÀO TẠO ĐỒNG NAI
HỘI THI TIN HỌC TRẺ LẦN THỨ 17 – NĂM 2013
Trang 19TỔNG QUAN BÀI THI
Tên file chương
Câu 1 Hai số nguyên a và b gọi là nguyên tố cùng nhau nếu
chúng có ước số chung lớn nhất bằng 1 Ví dụ: 6 và 25 là nguyên tố cùng nhau vì chúng có ước số chung lớn nhất là 1; 6 và 15 không nguyên tố cùng nhau vì chúng có ước số chung lớn nhất là 3
Yêu cầu: Viết chương trình Pascal nhập vào từ bàn phím 2 số
nguyên dương a, b (a, b ≤1000000000) Xuất ra màn hình thông báo xem a và b có nguyên tố cùng nhau hay không
Ví dụ khi chạy chương trình:
Ví dụ 1:
Nhap 2 so nguyen: 6 25
Trang 20Nguyen to cung nhau
Ví dụ 2:
Nhap 2 so nguyen: 6 15
Khong nguyen to cung nhau
Câu 2 Một số nguyên dương gọi là số đối xứng nếu sau khi đảo
ngược số đó ta nhận được chính số đó Ví dụ: số 1234321 là số đối xứng; số 12345321 không phải số đối xứng
Yêu câu: Viết chương trình Pascal nhập vào từ bàn phím một số
nguyên dương n (n≤1000000000) Kiểm tra và thông báo ra màn hình xem n có phải số đối xứng hay không
Ví dụ khi chạy chương trình:
Ví dụ 1:
Nhap 1 so nguyen duong: 1234321
Doi xung
Ví dụ 2:
Nhap 1 so nguyen duong: 12345321
Khong doi xung
Câu 3 Cho một xâu văn bản chỉ chứa chữ cái và chữ số Hãy tìm
trong xâu dãy các chữ số liên tiếp có giá trị lớn nhất Nếu có nhiều
dãy số cùng lớn nhất thì đếm xem có bao nhiêu dãy số như vậy Ví dụ: xâu ‘tin28hoc6tre2013dong17nai’ có dãy số liên tiếp lớn nhất là 2013 và
có 1 dãy số như vậy
Yêu cầu: Viết chương trình nhập vào từ bàn phím một xâu văn bản
(≤ 255 ký tự) Tìm và xuất ra màn hình dãy số liên tiếp lớn nhất và số lượng dãy số đó
Ví dụ khi chạy chương trình:
Ví dụ 1:
Nhap 1 xau: tin28hoc6tre2013dong17nai
Trang 21Day so lon nhat: 2013
So luong: 1
Ví dụ 2:
Nhap 1 xau: conghoaxahoichunghiavietnam
Day so lon nhat: khong co
Thời gian làm bài: 120 phút (Không tính thời gian phát đề) - Ngày thi:
SỞ GIÁO DỤC VÀ ĐÀO TẠO ĐỒNG NAI
HỘI THI TIN HỌC TRẺ LẦN THỨ 18–NĂM 2014
Trang 22Tên file chương
trình
MINMAX.pa
s
NGUYENTO.pas TINNHAN.pas
Câu 1 Cho một số nguyên dương n (n ≤ 1 tỷ) Tìm chữ số nhỏ nhất,
chữ số lớn nhất trong các chữ số của n Ví dụ: n = 52365487 chữ số nhỏ nhất là 2, chữ số lớn nhất là 8
Dữ liệu vào: cho trong tệp MINMAX.inp chứa số nguyên dương n
Dữ liệu ra: ghi vào tệp MINMAX.out một dòng duy nhất chứa 2 chữ
số tìm được, giữa 2 chữ số này phải có một khoảng cách
Ví dụ:
Câu 2 Cho một dãy n số nguyên dương (n ≤ 1000), mỗi phần tử
trong dãy có giá trị không quá 30000 Tìm một dãy con liên tiếp dài nhất các phần tử là những số nguyên tố có giá trị tăng dần Ví dụ: dãy 8 phần
tử {4, 2, 5, 6, 3, 3, 7, 9} có dãy con liên tiếp dài nhất gồm 3 số nguyên tố tăng dần là {3, 3, 7}
Trang 23Dữ liệu vào: cho trong tệp NGUYENTO.inp chứa 2 dòng, dòng
thứ nhất là số nguyên dương n, dòng thứ hai là dãy n số nguyên
Dữ liệu ra: ghi vào tệp NGUYENTO.out một dòng duy nhất chứa
dãy con tìm được, giữa 2 phần tử liền kề trong dãy có một khoảng cách
Câu 3 An soạn một tin nhắn và nhờ Nam gửi cho Bình Vì không
muốn Nam đọc nội dung tin nhắn nên An đã mã hóa tin nhắn theo quy tắc sau: đầu tiên An đảo ngược từng chữ cái của mỗi từ trong tin nhắn, sau đó An vận dụng kiến thức tin học về bảng mã ASCII để mã hóa từng chữ cái trong tin nhắn thành số thứ tự của chữ cái đó trong bảng mã ASCII Em hãy giúp Bình giải mã tin nhắn của An gửi
Ví dụ: tin nhắn gốc là ‘5 gio chieu nay minh hoc nhom tai nha An’ Sau khi đảo ngược từng chữ cái của mỗi từ, tin nhắn mới là ‘5 oig ueihc yan hnim coh mohn iat ahn nA’ Tiếp tục chuyển từng chữ cái trong tin
nhắn thành số thứ tự tương ứng trong bảng mã ASCII được tin nhắn cuối cùng là ‘53 111 105 103 117 101 105 104 99 121 97 110 104 110 105
Dữ liệu ra: ghi vào tệp TINNHAN.out một dòng duy nhất là tin
nhắn gốc của An gửi cho Bình
Ví dụ:
53 111 105 103 117 101 105 5 gio chieu nay minh hoc nhom tai
Trang 24(giám thị coi thi không giải thích gì thêm)