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

Bai tap Pascal

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

BÀI TẬP BỒI DƯỠNG HSG MÔN TIN HỌC
I/ Câu lệnh điều kiện If:
Bài 1: Viết chương trình nhập vào 3 số nguyên dương từ bàn phím. Xét xem 3 số đó có phải
là độ dài ba cạnh của tam giác khơng ?
Nếu phải thì kiểm tra xem thuộc dạng tam giác gì (vng cân, vng, đều, cân hay
tam giác thường)
Bài 2: Viết chương trình giải bất phương trình bậc nhất một ẩn ax + b >0 với a, b được nhập
từ bàn phím.
Bài 3: Hằng tháng các hộ dân trong thành phố đều nhận được hóa đơn tiền điện. Tiền điện
tiêu dùng của mỗi hộ gia đình được tính như sau:
- 100 số đầu tiên: mỗi số phải trả 1000 đồng;
- Từ 101 đến 150 số mỗi số phải trả 2000 đồng;
- Từ 151 đến 200 mỗi số phải trả 2500 đồng;
- Từ số 200 trở lên mỗi số phải trả 3000 đồng;
- Số tiền phải trả là tổng số tiền tính được cộng thêm 10% thuế VAT.
Biết rằng lượng điện tiêu thụ trong một tháng là a (KW), a được nhập từ bàn phím.
Hãy tính số tiền điện phải trả cho một tháng của một gia đình.
Bài 4: Hãy viết chương trình đổi tiền có mệnh giá n đồng ra các tiền 200000, 100000, 50000
đồng sao cho số tờ tiền là ít nhất. n được nhập vào từ bàn phím.
II/ Câu lệnh case:
Bài tập tính tiền điện.
Bài 1: Theo dương lịch, năm được biểu diễn bằng một số nguyên. Theo âm lich, năm được
gọi theo can và chi. Ví dụ: năm dương lịch 2006 được gọi theo âm lịch là Bính Tuất, trong
đó Bính là can và Tuất là chi.
Có tất cả 10 can: Giáp, Ất, Bính, Đinh, Mậu, Kỉ, Canh, Tân, Nhâm, Q.
Có 12 chi: Tí, Sửu, Dần, Mão, Thìn, Tỵ, Ngọ, Mùi, Thân, Dậu, Tuất, Hợi.
Hãy lập trình:
- Nhập vào từ bàn phím một năm dương lịch.
- Đưa ra màn hình tên gọi năm âm lịch tương ứng (tiếng việt khơng dấu). Chương trình
cho phép lần lượt nhập các năm và đưa ra kết quả tương ứng cho đến khi năm nhập
vào là số nhỏ hơn hoặc bằng 0 thì kết thúc.


Chú ý: Bài này có thể dùng hai mảng can và chi.
Program
Canchi;
Const
Can : array[0..9] of string = (‘Canh’, ‘Tân’, ‘Nhâm’, ‘Quý’, ‘Giáp’, ‘Ất’,
‘Bính’, ‘Đinh’, ‘Mậu’, ‘Kỉ) ;
Chi
: array[0..11] of string =(‘Thân’, ‘Dậu’, ‘Tuất’, ‘Hợi’, ‘Tí’, ‘Sửu’,
‘Dần’, ‘Mão’, ‘Thìn’, ‘Tỵ’, ‘Ngọ’, ‘Mùi’) ;
Var year: integer; i,j : byte;
BEGIN
year:=1;
While year>0 do
Begin
Write(‘Nam duong lich: ’); readln(year);
If year > 0 then


Begin
i:= year mod 10;
j:=year mod 12;
Writeln(‘Nam am lich la: ’, can[i], ‘ ‘, chi[j]);
End;
End;
END.
Bài 2: Viết chương trình nhập từ bàn phím một số tự nhiên có 4 chữ số. Hãy in ra màn hình
cách đọc tiếng việt (khơng dấu) của số đó.
Bài 3*: Ngày 01/01/2013 là ngày thứ ba trong tuần. Hội đồng giáo viên họp vào thứ năm đầu
tiên hàng tháng trong năm trừ ra các tháng nghỉ hè là tháng 6 và 7.
Hãy in ra tất cả các ngày trong năm 2013 mà Hội đồng giáo viên của trường họp.

III/ Câu lệnh lặp For ( dạng tiến và dạng lùi):
Bài 1: Ba số tự nhiên a, b và c được gọi là bộ số Py-ta-go nếu a2 + b2 = c2. Viết chương trình
tìm tất cả các số Py-ta-go trong khoảng từ 1 đến n, với n là số nguyên dương được nhập vào
từ bàn phím.
Bài 2: Một người gửi tiết kiệm tại một ngân hàng với số tiền ban đầu là a (triệu đồng) có chu
kì tính lãi là c (tháng) với lãi suất là k%, biết rằng khi chưa đủ chu kì tính lãi thì khơng được
tính lãi.
Hãy cho biết số tiền người đó rút được sau khoảng thời gian t (tháng). Cho biết phương thức
tính lãi lũy kế, nghĩa là lãi suất sau mỗi tháng sẽ được cộng vào số tiền gốc.
Bài 3: Dãy số Fibonacci là dãy các số sao cho mỗi số sẽ bằng tổng của hai số đứng trước nó:
Fi = Fi-1 + Fi-2
Trong đó Fi là số thứ i của dãy. Hai số đầu tiên của dãy được đặt là F1=F2=1.
Hãy viết chương trình nhập từ bàn phím số ngun n và tính giá trị của số hạng thứ n của dãy
Fibonacci.
Bài 4: Số bạn bè
Hai số nguyên được gọi là bạn bè nếu tổng các ước số thực sự (kể cả 1) của số này bằng số
kia và ngược lại.
Vd: Số 220 có các ước số thực sự là:
1
2
4
5
10
11
20
22
44
55
110
Tổng các ước số trên là 284.

Số 284 có các ước số thực sự là:
1
2
4
71
142
Tổng các ước số trên là 220
Vậy 220 và 284 là hai số bạn bè.
Viết chương trình tìm tất cả các số bạn bè trong một miền cho trước (1≤ l ≤ h ≤ 900000)
IV/ Câu lệnh lặp While:
Bài tốn gửi tiền tiết kiệm: Viết chương trình cho biết người đó phải gửi bao nhiêu tháng để
thu được tổng số tiền cả gốc và lãi khơng ít hơn b (triệu đồng).
Bài tốn tìm UCLN(a,b) bằng thuật tốn trừ liên tiếp hoặc bằng thuật toán chia liên tiếp.
Bài 1: Viết chương trình con thực hiện các cơng việc sau:
-

Nhập từ bàn phím giá trị của hai phân số a/b và c/d.

-

Nhấn phím ‘S’ hoặc ‘s’ cho kết quả là tổng của hai phân số. Hiển thị ra màn hình
dạng phân số tối giản.


-

Nhấn ‘P’ hoặc ‘p’ cho kết quả là tích của hai phân số. Hiển thị ra màn hình dạng phân
số tối giản.
Lặp lại công việc trên cho đến khi nhấn phím ‘K’ hoặc ‘k’ để thốt khỏi chương trình.


Bài 2: Số nguyên tố tương đương
Hai số tự nhiên được gọi là Nguyên tố tương đương nếu chúng có chung các ước số nguyên
tố. Ví dụ các số 75 và 15 là ngun tố tương đương vì cùng có các ước nguyên tố là 3 và 5.
Cho trước hai số tự nhiên N, M. Hãy viết chương trình kiểm tra xem các số này có là nguyên
tố tương đương với nhau hay không.
Bài 3: Số siêu nguyên tố
Số siêu nguyên tố là số nguyên tố mà khi bỏ một số tuỳ ý các chữ số bên phải của nó thì
phần cịn lại vẫn tạo thành một số nguyên tố.
Ví dụ 7331 là một số siêu nguyên tố có 4 chữ số vì 733, 73, 7 cũng là các số nguyên tố.
Nhiệm vụ của bạn là viết chương trình nhập dữ liệu vào là một số nguyên N (0< N <10) và
đưa ra kết quả là một số siêu nguyên tố có N chữ số cùng số lượng của chúng.
Ví dụ khi chạy chương trình:
Nhap so N: 4
Cac so sieu nguyen to có 4 chu so la: 2333 2339 2393 2399 2939 3119 3137
3733 3739 3793 3797 5939 7193 7331 7333 7393
Tat ca co 16 so_
V/ Câu lệnh lặp Repeat:
Bài 1: Nhập vào từ bàn phím số nguyên dương N (0 < N ≤ 2*109). Tính và đưa ra màn hình
tổng bình phương các chữ số của N.
Bài 2: Cho trước một số tự nhiên N. Tìm và in ra màn hình tất cả các số nguyên tố từ 2 đến
N.
Bài 3: Viết chương trình đổi một số từ hệ thập phân sang hệ nhị phân.
VI/ Bài tập tổng hợp vòng lặp:
Bài 1: Cho một bảng hình vng có kích thước nxn . Hãy viết chương trình để đưa ra màn
hình bảng được điền các số từ 1 đến n2 theo hình xoắn ốc.
Ví dụ: n=4
1

2


3

4

12

13

14

5

11

16

15

6

10

9

8

7

Bài 2: Tổng các số tự nhiên liên tiếp
Cho trước số tự nhiên n. Lập thuật toán cho biết n có thể biểu diễn thành tổng của hai hoặc

nhiều số tự nhiên liên tiếp hay không?
Trong trường hợp có, hãy thể hiện tất cả các cách có thể có.
VII/ Kiểu mảng:
Bài 1: Viết chương trình tính giá trị của đa thức P(x)


P(x) = anxn + an-1xn-1 + … + a1x + a0
Biết rằng số thực x, số nguyên dương n và các hệ số an, an-1 , … , a1, a0 được nhập từ bàn
phím.
Bài 2:
Sắp đến dịp tết Nguyên Đán, nhằm đáp ứng nhu cầu của khách hàng hãng hàng không Airline
sẽ tăng cường chuyến bay từ TP HCM đến Huế. Vé có quyền lựa chọn số ghế. Giả sử V là
tập hợp chứa ghế, các ghế được đánh số từ 1,2,3, … , n ( n ≤ 250 ), mỗi ghế sau khi được
chọn sẽ loại ra khỏi V và các ghế còn lại sẽ được hiển thị để khách hàng chọn.
Hãy lập trình mơ phỏng q trình bán vé máy bay cho khách hàng.
Bài 3 : Phần tử yên ngựa
Cho bảng A kích thước MxN. Phần tử Aij được gọi là phần tử yên ngựa nếu nó là phần tử
nhỏ nhất trong hàng của nó đồng thời là phần tử lớn nhất trong cột của nó. Ví dụ trong bảng
số sau đây:
15

3

9

55

4

6


76

1

2

thì phần tử A22 chính là phần tử yên ngựa.
Bạn hãy lập chương trình nhập từ bàn phím một bảng số kích thước MxN và kiểm tra xem nó
có phần tử n ngựa hay khơng?
Bài 4: Xố số trên vòng tròn
Các số từ 1 đến 2000 được xếp theo thứ tự tăng dần trên một đường tròn theo chiều kim đồng
hồ. Bắt đầu từ số 1, chuyển động theo chiều kim đồng hồ, cứ bước qua một số lại xố đi một
số. Cơng việc đó tiếp diễn cho đến khi trên vòng tròn còn lại đúng một số. Lập chương trình
tính và in ra số đó.
Bài 5: Biểu diễn tổng các số Fibonaci
Cho số tự nhiên N và dãy số Fibonaci: 1, 1, 2, 3, 5, 8, ....
Bạn hãy viết chương trình kiểm tra xem N có thể biểu diễn thành tổng của của các số
Fibonaci khác nhau hay không?
Bài 6: Về các phép biến đổi "Nhân 2 trừ 1"
Cho ma trận A kích thước M x N, Aij - là các số tự nhiên. Các phép biến đổi có thể là:
- Nhân tất cả các số của một hàng với 2.
- Trừ tất cả các số của một cột cho 1.
Tìm thuật tốn sao cho sau một số phép biến đổi trên ma trận A trở thành toàn số 0.
Bài 7: Hai hàng số kỳ ảo
Hãy xếp 2N số tự nhiên 1, 2, ..., 2N thành 2 hàng số:
A1, A2 ... An
B1, B2 ... Bn
Thỏa mãn điều kiện: tổng các số theo n cột bằng nhau, tổng các số theo các hàng bằng nhau.



VIII/ Kiểu xâu:
Bài 1: Viết chương trình nhập vào một xâu và đếm số lần xuất hiện của các chữ cái trong xâu
đó. Hiển thị ra màn hình kí tự nào có số lần xuất hiện lớn nhất, bé nhất.
Bài 2: Mã hố văn bản
Bài tốn sau mơ tả một thuật toán mã hoá đơn giản (để tiện ta lấy ví dụ tiếng Anh, các bạn có
thể mở rộng cho tiếng Việt):
Tập hợp các chữ cái tiếng Anh bao gồm 26 chữ cái được đánh sô thứ tự từ 0 đến 25 như sau:
0 1 2 3 4 5 6 7 8 9 1
0

1
1

1
2

1
3

1
4

1
5

1
6

1

7

1
8

1
9

2
0

2
1

2
2

2
3

2
4

2
5

a b c d e f

l


m

n

o

p

q

r

s

t

u

v

w

x

y

Z

g h i


j

k

Quy tắc mã hoá một ký tự như sau (lấy ví dụ ký tự X):
- Tìm số thứ tự tương ứng của ký tự ta được 23
- Tăng giá trị số này lên 5 ta được 28
- Tìm số dư trong phép chia số này cho 26 ta được 2
- Tra ngược bảng chữ cái ta thu được C.
a. Sử dụng quy tắc trên để mã hố các dịng chữ sau:
PEACE
HEAL THE WORLD
I LOVE SPRING
b. Hãy tìm ra quy tắc giải mã các dòng chữ sau:
N FR F XYZIJSY
NSKTVRFYNHX
MFSTN SFYNTSFQ ZSNBJVXNYD
Bài 3:

Mã hóa bức thư.

Để mã hóa một bức thư người ta đưa ra qui tắc như sau:
-

Mộ mã được phép sử dụng trong thư là ASCII hoặc Unicode, chỉ dùng chữ thường bắt
đầu là a (#97) đến z (#122)

-

Mỗi kí tự sẽ được tăng thêm 3, riêng ba kí tự x, y, z thì được thay bằng a, b, c.


-

Dãy kí tự được viết liền nhau dài khơng q 200 kí tự.


Hãy lập chương trình tạo ra dãy mã hóa và giải mã theo quy luật đã cho.
Dữ liệu vào cho bằng file văn bản Mahoa.inp có 2 dịng, trong đó dịng 1 chứa nội
dung cần mã hóa, dịng 2 là ãy mã cần dịch.
Dữ liệu ra cho bởi file Mahoa.out gồm 2 dòng tương ứng kết quả từng câu.
Bài 4: Mã hoá và giải mã
Theo quy tắc mã hoá ở bài trên (33/2000), hãy viết chương trình cho phép:
- Nhập một xâu ký tự và in ra xâu ký tự đã được mã hóa
- Nhập một xâu ký tự đã được mã hoá và in ra xâu ký tự đã được giải mã.
Ví dụ khi chạy chương trình:
Nhap xau ky tu:
PEACE 
Xau ky tu tren duoc ma hoa la:
UJFHJ
Nhap xau ky tu can giai ma:
FR 
Xau ky tu tren duoc giai ma la:
AM_
Bài 5: Mã hoá theo khoá
Cho trước khoá là một hoán vị của n số (1, 2, ..., n). Khi đó để mã hố một xâu kí tự ta có thể
chia xâu thànhtừng nhóm n kí tự (riêng nếu nhóm cuối cùng khơng đủ n kí tự thì ta coa thể
thêm các dấu cách vào sau cho đủ) rồi hốn vị các kí tự trong từng nhóm. Sau đó, ghép lại
theo thứ tự các nhóm ta được một xâu đã mã hố.
Chẳng hạn: với khố 3241 (n=4) thì ta có thể mã hố xâu 'english' thành 'gnlehs i'.
Hãy viết chương trình mã hố một xâu kí tự cho trước.

Bài 6: Dãy số nguyên
(Dành cho học sinh THCS)
Dãy các số tự nhiên được viết ra thành một dãy vô hạn trên đường thẳng:
1234567891011121314..... (1)


Hỏi số ở vị trí thứ 1000 trong dãy trên là số nào?
Em hãy làm bài này theo hai cách: Cách 1 dùng suy luận logic và cách 2 viết chương trình để
tính tốn và so sánh hai kết quả với nhau.
Tổng qt bài tốn trên: Chương trình u cầu nhập số K từ bàn phím và in ra trên màn hình
kết quả là số nằm ở vị trì thứ K trong dãy (1) trên. Yêu cầu chương trình chạy càng nhanh
càng tốt.
IX/ Kiểu Record:
Bài 1: Để quản lý các thuê bao điện thoại người ta sử dụng các thông tin: Họ đệm, tên, số
điện thoại, địa chỉ.
Hãy nhập dữ liệu cho thuê bao và in ra màn hình:
-

Danh sách các thuê bao được sắp xếp theo chiều tăng dần của tên ( nếu trùng thì họ
đệm ).

-

Tìm thuê bao theo số điện thoại.

-

Xóa một thuê bao.

Bài 2: Viết chương trình nhập dữ liệu cho một phịng thi khơng q 30 học sinh gồm các

thông tin sau: SBD, Họ tên, ĐTB mơn tốn, ĐTB mơn Văn, ĐTB mơn Lý. Sau đó in ra màn
hình thơng tin của học sinh có tổng điểm của ba môn ≥ 15 theo thứ tự giảm dần.
X/ Kiểu file:
Bài 1: Số k có n chữ số, số này được gọi là đối xứng khi chữ số thứ nhất và chữ số thứ n
bằng nhau, số thứ hai và số thứ n-1 bằng nhau, …
Vd: 30403, 8448 được gọi là các số đối xứng.
Khi cho hai số nguyên dương i và j, thử tìm xem trong khoảng từ i đến j có bao nhiêu số k
như thế {100< i, j< 100 000}
Hãy viết chương trình liệt kê tất cả các số k và tổng số của chúng có mặt từ I đến j.
Dữ liệu vào cho bởi file văn bản có tên doixung.txt chứa hai số ngun dương i, j có chứa
cách nhau ít nhất một khoảng trắng.
Dữ liệu ra cho file văn bản doixung.out . Liệt kê tồn bộ số k có trong khoảng i, j . Mỗi số
trên một dòng.
Bài 2: Số phản nguyên tố
Một số n gọi là số phản nguyên tố nếu số ước số của nó là nhiều nhất trong n số tự nhiên đầu
tiên. Cho số K (K <= 2 tỷ). Hãy ghi ra số phản nguyên tố lớn nhất nhỏ hơn hoặc bằng K.
Dữ liệu vào trong file PNT.INP nội dung gồm:
- Dòng đầu tiên là số M (1 < M <= 100) - số các số cần tìm số phản ngun tố lớn nhất của
nó;
- M dịng tiếp theo lần lượt là các số K1, K2, K3, ..., KM;


Dữ liệu ra trong file PNT.OUT gồm M dòng: dòng thứ i là số phản nguyên tố lớn nhất nhỏ
hơn hoặc bằng Ki.
Ví dụ:
PNT.INP
1
1000
PNT.OUT
840

Bài 3: Tổ chức tham quan
Trong đợt tổ chức đi tham quan danh lam thắng cảnh của thành phố Hồ Chí Minh, Ban tổ
chức hội thi Tin học trẻ tổ chức cho N đoàn ( đánh từ số 1 đến N) mỗi đoàn đi thăm quan một
địa điểm khác nhau. Đoàn thứ i đi thăm địa điểm ở cách Khách sạn Hoàng Đế di km
(i=1,2,...., N). Hội thi có M xe taxi đánh số từ 1 đến M (MN) để phục vụ việc đưa các đoàn
đi thăm quan. Xe thứ j có mức tiêu thụ xăng là vj đơn vị thể tích/km.
Yêu cầu: Hãy chọn N xe để phục vụ việc đưa các đoàn đi thăm quan, mỗi xe chỉ phục vụ một
đoàn, sao cho tổng chi phí xăng cần sử dụng là ít nhất.
Dữ liệu: File văn bản P2.INP:
- Dòng đầu tiên chứa hai số nguyên dương N, M (NM200);
- Dòng thứ hai chứa các số nguyên dương d1, d2, ..., dN;
- Dòng thứ ba chứa các số nguyên dương v1, v2, ..., vM.
- Các số trên cùng một dòng được ghi khác nhau bởi dấu trắng.
Kết quả: Ghi ra file văn bản P2.OUT:
- Dòng đầu tiên chứa tổng lượng xăng dầu cần dùng cho việc đưa các đồn đi thăm quan
(khơng tính lượt về);
- Dịng thứ i trong số N dòng tiếp theo ghi chỉ số xe phục vụ đồn i (i=1, 2, ..., N).
Ví dụ:
P2.INP
34
759
17 13 15 10

P2.OUT
256
2
3
4




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

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