6T7 ¬ số
Trang 4Phần 1 BĂI TẬP 3
Phần 1 BĂI TẬP
§1 LỆNH LẶP WHILE FS cau hĩi, vi dy, bai tap
I a) Lập trừnh tính tích của 10 số tự nhiín đầu tiín b) Lập trình tính tổng của 1000 số tự nhiín đầu tiín 9 Lập trình tính tổng:
A= 1112, gt
2.3 n
ở đđy n lờ số tự nhiín được nhập từ băn phím 3 Dùng oòng While để tính số n theo công thức: 1 4 3 5 Z7 (2N +1) uới độ chính xâc e theo yíu cầu biĩt rang sĩ m sĩ dat được khi N đủ lớn để: 4 2N +1
4 Tính hăm luỹ thừa a", ở đđy u thực uờ n tự
nhiín được nhập 0uăo từ băn phím
<E
5 Có săn một dê y số Hê y uiết chương trình nhập một số x rồi tìm xem có bao nhiíu phần tu trong day >x
Trang 54 Lip bith Pascal - Tip 3 6 Viết chương trình nhộp một dêy số tốt đa 100 số, sưu đó in ra măn hình câc số khúc nhau
7 Viết chương trình nhập một dêy số tốt đa 100 số, sau đó sắp xếp lai day theo thi tu ting dan
8 Viết chương trình nhập tdi da 100 86, va kiĩm tra xem dêy đó cỏ lập thănh một cấp số cộng hay
không?
9 Viết chương trình nhập một dêy số tốt đa 100 số, sưu đó xĩt xem dê y số năy có đối xứng hay không?
10 Viết chương trình nhập Họ, tín, năm sinh trong một danh sâch có tối đa 100 người, sau đó xếp lại
thứ tự danh sâch năy theo tuổi
11 Viết chương trình nhập số tự nhiín n 0ă in ra số Fibonact thứ n
12 Dê y số tự nhiín An thoa mỗ n câc điều biện sau:
Ay = Ani t Ans
Viĩt chuong trinh tinh A, uới n cho trước (n>=5) LL] Bai tap vĩ nha
13 Viết chương trình nhộp số thực A va tim ra sĩ tự nhiín nhỏ nhốt N sao cho
1+ 1/2 + 1/3 + + 1/N >Đ
14 Dăy sốu„ được định nghĩa như sau: a,=1
Trang 6Phần 1 BĂI TẬP 5 a„= a„¡ + 1 nếu n lẻ vă a, = a„; + a„„ + + a; nếu n chẵn
Tinh a, uới n nhập từ băn phím
1ê Cho dê y số được nhộp từ bùn phím Hê y chỉ ra một dê y con liín tục đơn điệu tống có độ dăi lớn nhất
Chương trình phải in ra được dê y côn đó
16 Cho trước số tự nhiín N Viết chương trình lập mot mang số bao gồm cúc chữ số thập phđn của N Ví
dụ cho N=23654 thì ta có mỏúng sau: gdÍO0]=4, a[1)=5, a/f2/=6, al3/=3, a/4/=2
17 Cho trước số tự nhiín N Viết chương trình lập một mảng số bao gồm câc chữ số trong biểu diễn nhị phđn của N Ví dụ cho N=5Ê tức lă 101 thì ta có mững
sau: alOJ=1, af1]/=0, af2/=1
18 Gia sv da co day sĩ ay, a», ., a, la don diĩu tang
Em hay dua vao đoạn mô phỏng lập trình sau để
biết chương trình Pascal hoăn chỉnh Readln(c) i=1,j=n if c < ai or œ > aj then Kết thúc chương trình while i<j do Begin k = (i+}) div 2 ifc < ak then j =k else i =k End
If ai = c then Thông bâo tim thấy Else Thông bâo không tìm thấy
Sa sânh kĩt qua cua chương trình năy uới câc chương trình tìm kiếm phần tử trong dêy mă em đê
Trang 76 Lap Lith Pasoal - Su ở
19 Cho số tự nhiín N Hay tim sĩ Fibonaci lon nhất không 0uượt qua N
20 Cho số tự nhiín N Hê y tìm một biếu diễn (duy nhất ??!!) của N thănh tổng cdc sĩ Fibonact
21 Cho mĩt mang số nhị phđn (tức lă toăn số 0
hoặc 1)
Cho trước chỉ số b, hêy tìm khoang (i,j) lớn nhất bao hăm b thỏa mũ n: câc gió trị của đê y trong bhodng năy lă giống nhau
Ví dụ cho dêy ban đầu 110000101010 Voi k=4 ta có đâp số lă khoảng (3,6) bao gồm câc số 0
22 Cho mĩt bang số nhị phân khích thước nxmn: (câc phần tử của bảng lă 0 hoặc 1) Cho trước một phần tử của bang (i,j) Hay tim ra mĩt khoang hình chữ nhật cực đại chứa phần tử (i,j) va chita cdc phan tu giĩng
nhu (i,j)
§2 MOT SO THUAT GIAI TREN SO NGUYEN TO
BS Cau hĩi, vi du, bai tap
1 Hêy lập trình nhận biết một số có phải lă số nguyín tố hay không?
2 Cho trước số tự nhiín n, dùng phương phóp săng Eratosphen để tìm uă in ra tất cả câc số nguyín tấ từ 2 đến n
Trang 8Phan 1.BALTAP 7
4 Cho truve x6 tu nhiĩn n Tim va in ra:
Tat cu cde số tự nhiín từ 2 đến n lă tích của đúng
2 thừa số nguyín tố (có thể trùng nhau)
tất câ câc số tự nhiín từ 2 đến n lă tích của đúng 3 thừa số nguyín tố
5 Cho số chăn n>3 Hêy biểm tra giả thiết của Holbux rằng: mỗi số chăn n>9 được biểu diễn dưới dạng tổng của hai số nguyín tố, mô tả thủ tục nhận biết một số có phải lă số nguyín tố hay không?
6 Cho số tự nhiín n Tôn tại hay bhông câc “sinh
đôi” trong câc sốn, n+1, , 2n (Câc số "sinh đôi” lă câc
số nguyín tố mă khoang câch giữa chúng bằng 2) 7 Cho số tự nhiín n Hă y tìm tất ca câc số Mersen bĩ hơn n (Một số nguyín tố được gọi lă sô Mersen nếu nó có thể biểu diễn được dưới dạng 3°-1 trong đó p cũng lă một số nguyín tô)
8 Cho sĩ tự nhiín N nhập từ băn phím Lập! chương trình kiểm tra xem N có phải lă số Hoăn chỉnh hay không (Số hoăn chỉnh lă số bằng fone tất cả câc
ước số thực sự của mình)
9 Cho trước số tự nhiín n Hồ y liệt bí theo thứ tự tặng n số tự nhiín đầu tiín mă môi số trong chúng
khong chia hĩt cho bất bì số nguyín tố năo khâc ngoăi
câc số 2, 3, ð
10 Lập trình tìm USCLN của 2 số tự nhiín œ uò b bất kì nhập uăo tỪ băn phím theo thuật tôn cÌH
11 Cho câc số tự nhiín nguyín tố cùng nhau n, p
Viết chương trình tìm số tự nhiín m sao cho m<p va
Trang 98 Lip tink Pascal - Tip 3
12 Lap trinh tinh BSCNN cia hai s6 tu nhiĩn a, b
được nhập từ ban phím
13 Viết chương trình tính [ÙƒSCLN của 3 số tự
nhiín cho trước a, b, c nhộp từ băn phím
14 Viết chương trình tính BSCNN cúa 3 số tự
nhiín cho trước œ, b, c nhập từ băn phim
18 Nhập hai số tự nhiín từ băn phím 0uò hiểm tra xem chúng có phúi lă nguyền tố cùng nhau hay không (Hai số gọi lă Nguyín tố cùng nhau nếu USCL_N của
chúng bằng 1)
IRRI Bởi tập về nhờ
16 Cho trước số n, hê y uiết chương trình tính tổng câc ước số thực sự của n
17 Cho trước số n, hê y uiết chương trình tinh tổng câc ước số nguyín tố của n
18 Viết chương trình tìm tất cả câc cặp số nguyín tố sinh đôi nhỏ bơn 1000000
19 Viế!- chương trình tìm ra một (hoặc tốt cả) số hoăn chỉnh nhỏ hơn 1000000
20 Phđn số n/m duoc goi la tối giản nếu USCLN(n,m) =1
Cho trước phđn số bất ky A/B hay tim phôn số tốt gian p/q sao cho A/B = p/q
21 Cho trước số tự nhiín n Gọi @(n) lă số câc số tự nhiín nhỏ hơn n uă nguyín tố cùng nhau uới n (hăm số Euler) Viĩt chương trình tính hăm Puler vdi n nhập từ
Trang 10Phan 1 BAI TAP 9
29 Dùng chương trình Pascal dĩ kiĩm tra tinh đúng đắn của hằng đồng thức sau:
@(nm) = g(n)@m.)
23 Cho trước số tự nhiín N Hê y oiết chương trình tính tổng của tất ca cdc giâ trị g@(d) ở đđy d nhận câc giâ trị lò ước số của N Em có nhận xĩt gi vĩ cdc kĩt quả đạt được
24 Viết chương trình chuyển đổi số tự nhiín N từ dạng biểu diễn thập phđn sang nhị phđn uă ngược lại
25 Số tự nhiín N được gọi lă đốt xứng nhị phđn
nếu biểu diễn nhị phđn của NÑ lă một biểu thức đối
xứng Viết chương trình kiểm tru tính đối xứng nhị
phđn của một số tự nhiín cho trước
26 Số tự nhiín N được gọt lă đối xứng thập phđn nếu biểu diễn thập phđn của N lă một biểu thức đối xứng Viết chương trình biểm tra tính đối xừng thập phđn của N
27 Viết chương trình liệt bí tất cd cdc sĩ vita đối xứng thâp phôn uừa đổi xứng nhị phđn nhỏ hơn 1000
Trang 1110 Lap bush Putcab - ‘kip 3
Hỏi: Độ dăi thực của Name?
Name[|20] bằng bao nhiíu? Tại sao?
2 Lập trình đếm sô lần vuất hiện ở môi loạt bí tự
thuộc bang chữ câi tiếng Anh trong một xđu kí tự Sứ
3 Cho số tự nhiín n că xđu câc hí tự Sy, S„, S Hă y đếm xem trong đê y có bao nhiíu: ae
a Chit cai x
b Dau + va bao nhiĩu dau *, c tổng số câc dau +, -, *
4 Cho số tự nhiín n uă xđu cĩ dĩ dai n Hay biĩn
đối xđu đê cho bằng câch thay trong đó: a Tất cả câc dấu † bằng dấu chấm b Mỗi một nhóm câc dấu chấm liền nhau bằng một dấu chấm c Một nhóm câc dấu chấm đứng liín nhau bằng ba cham
5 Cho số tự nhiín n uă dê y cúc kí tự S,, So, ., Sy Co hay khĩng thanh phan S,, S,,,, cua day sao cho S, lă dĩu cham phay con S,,, la ddu gach ngang
6 Cho số tự nhiín n 0ă dê y câc kí tự S„, S,, S„
Hê y tìm số tự nhiín ¡ đầu tiín sao cho câc bí tự S„ S,., đíu lă chữ câi a Nếu trong dăy không có những cặp
nhu vay thi thong bao
7 Cho sĩ tu nhiĩn n va day cac kituw S,, So, ., Sự,
Biết rằng trong day cĩ tt nhdĩt một dếu phẩy Hêy tìm số tự nhiín t sao cho:
Trang 12Phan 1 BAI TAP , 11
8 Lập chương trình con tâch "từ" đầu tiín ra bhỏi một xđu kí tự (Ta định nghĩa "Từ" lă tập hợp cúc ỈĨ tự không chứa câc dấu phđn đoạn cau: Space (ddu cach), Return (xuống dòng) uă Túb (dấu nhấy câch nhiều bí tự), 9 Viết chương chương trình nhập một xđu kí tự
sau đó chỉ ra xem xau d6 co phải lă xđu đôi xứng không (Xau đốt xứng lă xđu có câc hÝ tự giống nhưu đôi
xứng quu điểm giữa xđu)
10 Nhập một số nguyín theo kiểu Word, sau đó đổi ra hệ nhị phđn uă in bết quâ ra măn hình
11 Nhập một số nguyín theo biểu nhị phđn, sau đó đổi ra hệ thập phan va in kĩt quad ra man hình
12 Cho cdc ki tu S,, S), ., S, Biĩt rang kt tu S, khúc uới dấu chấm than va trong day S», Sy cĩ tt nhat mĩt ddu cham than Gia su S,, So, ., S, la cdc ki tự của dê y đê cho đi trước dấu chấm than đều tiín (n không biết trước) Trong dăy Sự S,, , S„
a Có bao nhiíu bí tự trông (dấu câch) b, Có chữ cât Ù hay không c Có câc cặp chữ câi liền nhau “em” hoặc “me” huy không? d C6 cac cặp chữ cúi giông nhau đi liền nhau hay không?
e Có tồn tợi câc cặp số tự nhiĩn i,j vdi 1<i<j<n sao cho S, tring vdi S;,, S, tring vdi S,.)
13 Cho s6 tu nhiĩn n va day câc bí tự S„ S,, , S„ Hêy xâc định số lần có mặt trong dêy đó của câc nhúm chữ câi sau:
Trang 1312 | Lip think Pascal - Tip 3
(| Bai tap về nhỏ
14 Cho một xđu hý tự S Hêy uií! chương trình
tính xem trong SŠ có bao nhiíu loọi ký tự khúc nhau
(phđn biĩt chit in hoa va in thường) Ví dụ uới S lă
"Hathanh" ta c6 dap sĩ la 5
15 Cho xđu bý tự S Viết chương trình tính xem trong S có bao nhiíu chữ câi tiếng Anh (bhông phđn
biĩt chit in hoa hay thường) Ví dụ uới S lă “Ha thanh”
ta có đâp số lă 4
16 Một biểu thức toân học được nhập 0uăo mây
tính để kiểm tra tính đúng đắn Biểu thức bao gồm câc biến nhỏ la câc chuối bý tự có độ dăi bất kỳ, câc phĩp
toân bao gồm "+", “-”, "*" uă "J" Biểu thức không có
dấu ngoặc, câc dấu câch bị bö qua Em hê y uiết chương trinh biểm tra tính đúng đắn của biểu thức đó
17 Viết chương trình nhập một xđu bý tự uă biến đốt chúng thănh toăn chữ in hoa
18 Viết chương trình biến đối một xđu bý tự nhập
từ băn phím vĩ dang chit in thuong
19 Họ tín một học sưnh được nhập từ băn phím Em
hêy 0uiết chương trình điều chỉnh lại cóc bý tự đầu họ hoặc đệm hoặc tín của học sinh đó trở thănh chữ in hoa (Chú ý họ tín đđy đủ của một học sinh có thể có nhiều hơn một tín đệm Ví dụ nếu nhập uăo la nguyễn uăn anh hùng thì phải sửa lại lă Nguyễn Văn Anh Hùng)
20 Viết chương trình nhộp xđu ky tu ttt ban phim,
Trang 14Phần 1 BĂI TẬP 13
trống ở hai đầu của xđu Ví dụ nếu nhập xđu ” Ha noi " thi kĩt qua sĩ la "Ha noi”
21 Viết chương trình nhập một dòng chữ uă đếm xem nó gồm bao nhiíu cđu (Chú ý: một cđu phải kết thúc băng dấu chấm)
22 Cho mĩt xĩu ky tu Hay tính:
a Số lượng câc hý tự lă số b Số lượng câc ký tự chữ cúi
23 Viết chương trình nhập mĩt xdu ky tu va in ra xdu ky tu da duoc ma hóa (Xem câch mê hóa từ cđu 19
băi 8 quyển 1)
§4 XĐU CON
BS Cđu hỏi, băi tập, ví dụ
1 Cho số tự nhiín n oă xđu Š„ S„, , S„ gồm n bí
tự Biết răng trong xđu có Ít nhất một dấu phây Hê y
tìm số tự nhiín t sao cho:
a S, lă dấu phẩy đầu diín b S; la dấu phẩy sau cùng
2 Cho dõ y câc kí tự S„ S;, , S„ Hỏi trong dê y có:
a Chit cai A hay khong?
b Có cặp chữ câi liền nhau “no” hoặc "on" hay không?
Trang 1544 %4 # bunk Pascal - Tip 3
b Có tồn tat hay khĩng 5 chit cdi e di liền nhau
trong day da cho?
4 Cho trước xđu gồm n kí tự Biết rằng trong xđu năy có chữ câi u Hêy tìm số lớn nhất câc chữ câi u di
liền nhau
5 Viĩt lai ham POS dĩ tim vi tri xau C trong xdu S 6 Cho số tự nhiín n va xdu gồm n bí tự Hê y biến đổi dêy đó: nếu trong dêy không có dấu * thì giZ nguyín da y đó, nếu có thì thay môi một bí tự * thănh ki
tự -
7 1 hực hiện 0uiệc mê hóa cúc xđu ký tự theo câch -au: đổi chỗ câc ký tự tại u‡ trí b uới n-b+1, ở đđy n lă
độ dăi của xđu ban đầu K<=(n div 2) Viết chương trừnh
nhập một xđu by tự uă thực hiện uiệc mê hóa xđu năy 8 Cho một xđu kỷ tự S bất kỳ Hă y tìm một xđu con
tăi nhât của S nă không chứa bất cứ một chữ số năo 9 Viết chương trình nhập danh sâch học sinh của
mol Lop
a Sap xĩp lai danh sâch lớp theo thứ tự ABC của
họ tín
b Sắp xếp lại danh sâch theo thứ tự tăng dần của
2ô dăi họ tín
J0 Cho trước hai xđu ký tự S1, S2 Viết! chương trình tìm một xđu con chung cực đại của hai xđu trín
IRR) Bỏi lộp về nhờ
Trang 16Phần 1 BĂI TẬP - - 15
12 Cho trước hai vău hý tự S1 să S9 Viết chương trình chỉ ra t¿ trí xuớ! hiện cuối cùng của Š1 trong xđu
S% Trường hợp không tốn tai vi trí như uăy thì thông ho hết qua 0
13 Cho trước hai xău hý tự S1 uă S2 Viết chương trình tính số lần lặp lạt của xảu S1 trong S2,
14 Cho trước hai xđu bý tự S1 uă S2 Viết chương trình tính số lần lặp lại rời nhau cúa S1 trong S2
1ê Xĩt câc xđu nhị phân độ dăt n (xđu nhị phân lă
xdu chi bao gom cdc ky tv 0 va 1) Moi xau nhị phân S sẽ
ứng uới một câch sắp xếp n quđn bai trĩn vong tron, sd 1
ứng uới quđn băi ngửa, số Ú ứng ớt quân bai sdp Cho
trước hai xđu nhị phđn, hê y hiểm tra xem chúng có tương
ứng uới cùng một câch sắp xến quđn băi hay bhông
16 Cho hơi xđu nhị phđn độ dăi n cho trước SÌ,
S2 Hay uiết chương trình biến đổi xđu S1 thănh S2 Câc phĩp biến đối phải được hiện rõ trín măn hình Ví du vidi S1='0101' va S2='1100' thi kĩt qua sẽ thể hiện
nhu sau:
Vi tril: s60 >1
Vi tri 4: s61 >0
17 Dêy câc số tự nhiín được xếp thănh một hăng
ngang tạo thănh một “xđu” ky tự dăi 0ô tận 123456789101112131415161718192021
Viết chương trình nhập số tự nhiín n (h < 25) vaĩ in ra phần đầu của xđu trín uới độ dăi n
18 Lam băi 17 oới điều biện n < 1000
Trang 1716 Lip tinh Paseal - Tip 3
Vidu: 10(001)? = 10001001001
10(01)°011(10)? = 10010101 0111010
Viết chương trình sinh ra xđu ký tự dăi 255 bý tự tă phần đầu của câc xđu sdu:
a 1(100)° b 10(001)”01
20 Hêy tìm điều biện để xđu 1(01)"0 lă xđu con
của 0(10)”1
§5 LENH LAP REPEAT
FF cau hei, vidu, bai tap
Câc băi tập dưới đđy cần được viĩt bằng lệnh
Repeat
1 Tính tổng
S=1+ 1 + + +
2 N
N?ă số tự nhiín cho trước được nhập uăo tu ban phim) 2 Lập trình tính tổng của 15 số Fibonact đầu tiín 3 Tính hăm a" ở đđy a thực uờ n tự nhiín được
nhập ăo từ băn phâm
Trang 18Phần 1 BĂI TẬP 47
5 Viế! chương trình nhập một dê y tối da 50 phan ti sau đó in ra măn hừnh câc số khúc nhau của dõ y trín
6 Viế! chương trình nhập một đê y tối đa 50 số rồi in ra măn hình câc số trùng nhau của đê y
7 Cho trước số tự nhiín n, dùng phương phâp
sang Eratosthen để tìm uă in ra tất cả câc số nguyín tố
từ 2 ->n
8 Bạn có 1.000 ở đem gửi oăo ngđn hăng uới lêi! xuất 8% thúng Sau mỗi thâng tiín lăi được nhộp vao để tính lêi xuốt thúng sau Bạn muốn để dănh để đến khi số tiền lă x muốn rút ra Vậy phai dĩ trong bao
nhiíu lđu?
9 Bạn có 10.000 đ đem gứt uùo ngđn hang voi lai
xuất 8% thâng Sau mỗi thâng tiền lêi được nhộp ăo
để tính lêi xuất thang sau Lap trình để tính xem sau một năm số tiền gửi ngđn hăng của bạn lă bao nhiíu?
10 Nhâp ăo từ băn phím 2 số tự nhiín m, n va tim ước số chung lớn nhất của chúng theo thuật toân Ởcli
11 Viết chương trình từm UDSCLN của N số được
nhap từ băn phím
aa Bởi tập về nhờ
12 Có phải mọi lệnh While trong Pascal dĩu c6 thĩ thay thế tương đương bởi lệnh Repeadt được không Cho
vi du
Trang 1918 Lip tink Pascal - Tip 3
14, Cho mĩt bang s6 vuĩng kich thude N x N Cac phần tử của bảng được mô tở như một măng hai chiều oli,J} Viết chương trình chỉ ra phần tử lớn nhất của bảng số trín
15 Cho bang sĩ vuĩng N xN Viết chương trình tính phần tử lớn nhất trong uùng tam giâc dưới đường chĩo chính của bảng
Vùng cần tìm có dạng dÍL,J] uới ¡ < J
16 Cho một lưới ô uuông bích thước N x M Cac 6 lưới được đânh số (i,j) bat dau từ góc trâi dưới lă (1,1) cho đến góc phải trín lă (N,M) Cho một ô điểm bất kỳ ' (i,j) trín lưới Hê y chỉ ra phần hình chữ nhật lớn nhất của lưới không chứa điểm (i,j)
17 Cho lưới ô uuông giống bời trín Cho trước hai điểm A, B trín lưới, Hêy tìm miền chữ nhật có điện tích lớn nhất trín lưới mò không chứa A uă B
18 Cho một dêy số a, a, Gy @, di n được
nhập từ bùn phím
Cho trước một số bất kỳ c (ta sẽ nói lă “đường
thẳng y = c") Tu nói đường thẳng năy cắt dêy đê cho
tai mĩt điểm nếu tồn tại chỉ số ¡ sao cho d, > € > Gịy;
hoặc đi < € < đựựp
Mê y oiết chương trình chi ra tất cả câc điểm cắt của đường thẳng trín uới dê y số
19, Dêy số có câc giâ trị a, a+d, a+2d, , a+nd duoc goi la mĩt cấp số cộng
Cho tridc sĩ n, gid tria, va a, Hay tim cac gia tri con lai cua day sao cho nó lă một cấp số cộng Kế! quả
Trang 20Phần 1 BĂI TẬP 19
20 Cho một dê y số ad, dạ, đạ, , dụ
Hêy uiết chương trình hiếm tra xem trong dêy trín
có tôn tợi hay không một cốp số cộng bao gồm 3 phần tử 21 Ta có 3, ð, 7 lă một cấp số cộng bao gồm toăn câc số nguyín tố Em hêy uiết chương trình biểm tra xem trong phạm 0i câc số tự nhiín < 10000 còn có một cap số cộng năo khúc bao gồm 3 phần từ uă lă số nguyín tố nữa hay khơng?
§6 CÂC THAO TÂC TRÍN XAU KY TỰ
BS Cau hoi, vi du, bai tap 1 Cho xđu bí tự gồm n phần tử Hê y xâc định số lần có mặt trong dê y đó của câc nhóm chữ câi sau: ơ abc b aba c abcd
3 Hay nhập một xóu ki tu va bo ổi tất củ câc khoảng trống bín trâi của nó
3 Hêy nhộp một xúu ki tw va bo di tat ed câc khoang trĩng bĩn phỏi của nó
4 Ding ham copy tach tw ddĩu tiĩn ra khĩi mĩt
xđu ki tu cho trudc
5 Hay viĩt lại đoạn chương trình thực hiện công viĩc cua ham COPY
Trang 2120 Lip tinh Pasoat - Tĩp 3 a Dĩu phay đầu tiín bằng hai dấu chấm than ởi kĩ nhau b Nhĩm ba dĩu * đi liín nhau đầu tiín bằng một dấu * 7 Cho xôu gồm n ki tu! Hay biến đổi xđu đê cho bằng câch:
a Loại bhôi xđu nhâm chit cai abe dau tiĩn
b Thay trong xđu nhóm chữ cói đầu tiín “house”
thanh “houses”
8 Cho trước một xđu ki tự gồm n ki tu Hay biến
đổi dêy đó bằng câch loại đi khỏi dê y tất cả nhóm cúc
chit cai dang "abc"
9 Cho trước một xđu ki tự gồm n phan tu Hay thay trong xđu mỗi cụm chữ "Chì" thănh “childhood"
10 Hêy nhập uăo một xđu ký tự, sau đó in ra mỗi
từ của nó trín từng dòng LH Bởi tap vĩ nha
11 Hêy nhập uăo một string, sau đó hê y thay tất
cả câc kí tự khâc uới bí tự trống thănh chữ "a”"
12 Cho trước một xđu kí tự Hê y loại ra bhỏi dê y đó nhóm câc bí tự nằm giữa dấu ngoặc ( ), câc dấu ngoặc cũng phải được bỏ đi Giâ sử bín trong mỗi cặp dấu ngoặc bhông có câc dấu ngoặc khac
Trang 22Phan 1 BAI TAP 21
14, Cho trước một xđu kí tự Biết rằng trong xđu có
ít nhất một dấu chấm Hê y biến đổi dê y băng câch loại bo tất cả câc dấu trước dấu chấm đầu tiín 0ò thay thế
tất cả câc chữ số 3 đi sau dấu chấm đầu tiín bằng câc
đấu +
15 Cho trước một xđu gầm n kí tự (n>1) Hê y biến
đổi xđu đó bằng câch thuy tất cả câc dấu hai chấm năm giữu S„ S;, , S„,; bằng câc dấu phay va thay tat
cả câc dấu chấm than nằm giữa S„,;„ „ S„ bằng câc
dấu chấm
16 Cho trước một xđu ky tự bất bỳ Trong xđu trín
sẽ có xen kĩ câc ky tự số 0ỉ bý tự không lă số Ví dụ:
dgghhg456cghh086chgh1ídfgdfg76cgf
Viết chương trình tâch câc phần lò "số" của xđu trín uă đưa ra một mỏng số nguyín Trong uý dụ trín măng số sẽ có 4 phần tử bao gồm 456, 86, 1 va 76
17 Tu định nghĩa câc ký hiệu sau trín cóc xđu ký tự:
- Nếu xđu S1 lă xđu con của S2 ta uiết ST c 62 - Ký hiệu TA(S1,S3) = số lần lặp của S1 trong S2
- Ký hiệu TAS(S1,S9) = số lín lặp rời nhau của 61
trong S2
Hă y chứng mình câc khẳng định sau:
ơ TAS(S1,S2) <= TA(S1,52)
b Nếu S† cS2¿»z,TA(S1,S) >=TA(S2,S)
18 Với bý hiệu như bùi trín, hêy chứng mình bất
đẳng thức sau:
Trang 2322 Lip tinh Doseal ~ Vip 3 19 C6 ding hay không voi SI — 82
TA(S1,S) >=TA(S1,S2)TA(S2,S) Cho vi du minh hoa
20 Viết chương trình tự kiểm tra oă sửa lỗi chính
ta cho một xđu bý tự theo câc nguyín tắc sau:
- Câc chữ câi đầu cđu phải viĩt hoa
- Nếu có hai chữ câi liền nhau 0iít hoa, thì chữ cât thứ hai sẽ được đổi thùnh chữ thường
§7 ON TAP: DU LIEU VA THUAT TOAN BS cau hĩi, vi du, bai tap
1.Cho trước một dê y số được nhập từ băn phim va
được lưu trừ trong một mâng Số phần tử của mảng được ghi trong một biến riíng biệt Viết chương trình
thực hiện câc thao tâc sau:
ơ Nhập (thím một phần tử uă đưa uăo cuối của day da cho
b Nhập thím một phần tử uă đưa uăo đầu của đê y
đê cho
e Nhập một phần tử va chĩn vao mĩt vi tri cho trước b củu day da cho
2 Cho hai day sda), dg, ., 2, va by, by, , b q Tu hai day trĩn hay tao ra day ghĩp cy C2, ., Cpeq
Trang 24Phan 1 BAI TAP 23
3 Diĩu hiĩn va dĩu bai giống như băi trín nhưng
voi điều kiĩn ban dau la:
a, <= Q) <= <=a,
bị<= bạ <= <= b„
Hê y thực hiện yíu cầu của băi toân chỉ dùng đúng
một lệnh PFor (hoặc một lệnh Whtile)
4 K-biến đổi trín xđu nhị phđm
Cho trước số b va xdu nhị phđn dĩ dai n (k <= n) Một phĩp k-biĩn dĩi trín xíu đê cho được thực hiện như sau: lấy ra một xấu con k phần tử, sau đó biến đổi xđu năy theo qui tac 0 > 1 va 1 > 0
Ví dụ một phĩp 2-biến đổi: 1010110 -> 1011010 Cho trước hai xđúu nhị phân độ dăi n Hêy uiết chương trình tìm một phĩp b-biến đổi để chuyển xđu thứ nhốt thănh xđu thứ hai (hoặc thông bâo không tôn tại phĩp biến đổi như uậy)
ð Hai xđu nhị phđn bậc n cho trước được gọt lă k-
tương đương nếu từ một xđu sưu một số hữu hạn phĩp k- biến đổi có thể thu được xđu kia Cho trước hai xđu sau:
100010110011101 011010101011010
¡a Hêy kiểm tra xem hai xđu trín có phải lă 2-
tương đương không
b Hăy kiĩm tra xem hai xđu trín có phổi lă 3- tương đương không
Trang 2524 Ley brink Pascal - Tip 3
7 Hai xđu nhị phản độ dăi n được gọt lă tương
đương nếu tần tại k>1 sao cho chúng lă k-tương đương
Hê y kiểm tra xem hai xđu sưu:
1010111011010 0101011010010
có phải lă tương đương uới nhau bhông
8 Viết chương trình thực hiện trò chơi đơn giản
sơu đđy:
Thực hiện liín tiếp uiệc đọc từ băn phím một số tự nhiín >= 1 Điều biện của uiệc đọc phải như sau: số đọc sau phải hoặc bình phương số uừa đọc hoặc bằng số vita doc triz mĩt don vi Qua trinh choi sẽ kĩt thúc khi
vi phạm luật chơi
9, Viết chương trình thực hiện trò chơi sau:
Thực hiện liín tiếp uiệc đọc một số tự nhiín từ băn phim Nĩu sĩ vita duoc doc 0uòo lò số chính phương thì được thưởng thím một lần đọc, nếu đọc số đê được đọc từ trước thì bị trừ một lần đọc Nếu số đọc lă nguyín tối
thì lập tức dừng chương trình, Chương trình cùng
dừng lại khi số lần bằng 0 Số lần cho ban đầu lă 1 Trong quâ trình chơi số lần đọc còn lại luôn hiện trín măn hình Ai được đọc nhiều lần nhất lă người v6 dich
Trang 26Phan 1 BAI TAP 25 đọc, câc trường hợp còn lại thì không có thường phụt gì Trò chơi dùng tại khi hết lượt Số lượt ban đầu lă 1
11 Con câo, con dĩ va bap cai (bai toân 0ui cổ)
Một người nông dđn đi cùng một con câo, một con
dĩ va mĩt cay bap cải Tới một dang sông nọ chỉ có mội
con thuyền nhỏ Thuyền chỉ chở được một người uă một
trong 3 thứ: câo, dí, bắp câi
Em hăy giúp người nông dđn chở qua sông có người lđn Câo, Dĩ va Bap cai
(J) Bỏi tập về nhă
19 Số tự nhiín n gọi lă Amstrong nếu nó bằng
tổng lập phương câc chữ số của minh Vi du 153 = 1° +
5? + 3°,
Viết chương trình tính tất cả câc số Amstrong có 4
_ chữ số
13 Hai số tự nhiín n uă m được gọi lă thđn thiện nếu số năy bằng tổng câc ước số của số thứ hai Hêy tìm tất cả câc cặp số thđn thiện nhỏ hơn 10000
Trang 2726 L Gp Link Pascal - Tig ý
17 Giả sử n lă một số tự nhiín ý hiệu p(u) lă số thu được từ n băng câch uiết ngược lại câc chữ số Ví dụ nếu n=12 thì p(n)=21, n=378 thi p(n)=873 R6 rang
rằng số n sẽ lă Palindrom khi uă chi khin = p(n)
Với mỗi số tự nhiín n ta'thực hiện câc phĩp biến
đổi sau:
- Kiểm tra n có phải lă Palindrom hay không
- Nếu n lă Palindrom thì kết thúc phĩp biến đổi - Nếu n không la Palindrom thi biĩn dĩi n > n + p(n)
- Quay lại bước đầu tiín
Người ta khẳng định rằng quâ trình biến đổi mọi
số tự nhiín theo câch trín đều bết thúc, túc lă sẽ đều thu được số Palindrom
Em hê y uiết chương trình biểm tra giả thuyết trín
vdi 86 n được nhộp từ băn phím Trong trường hợp đê thực hiện quâ nhiíu câc phĩp biến đổi (chẳng hạn sau 100 lồn) thì cũng kết thúc ú thơng bâo "Phĩp biến đổi chưa đạt hết quả”
18 Viết chương trình nhập danh sâch học sinh của
một lớp sưu đó in ra những người có họ lò “Nguyen”
19 Day 86 a, Gz, a3, ., a, duoc goi la don diĩu điều hòa nếu tồn tai chi s6 1 <i <n thoa man:
GQ, <= Op <= <= 4, >= 4;,, >= >= A,
hoặc @, >= Gy >= PH a, <=4,,, <= <=,
Cho day số bất ky hay kiĩm tra xem có phai la day
đơn điệu điều hòa hay không
Trang 28Phần 1 BĂI TẬP 27
có thể được chia thănh b khoảng đơn điệu Dêy đơn
điệu điều hòa lă dê y đơn điệu bậc 2
Dễ thấy rằng dêy lă đơn điệu bậc b khi uă chỉ khi dê y có đúng k-1 điểm “cao” hoặc “lùn” (xem băi )
Cho trước dêy số bất hỳ hêy tính bậc đơn điệu của đê y
21 Địa chủ uằ người hầu
Có 3 địa chủ, mỗi địa chủ mang theo một người
hầu cùng đến một khúc sông nọ Chỉ có một con thuyền
nhỏ Thuyín chỉ có thể chở được hơi người Em hê y tìm câch giúp câc địa chủ va ngudi hau của họ qua sông nếu biết rằng nếu người hđu không có mặt địa chủ của
mình sẽ lập tức gđy sự uới câc người địa chủ khúc nếu có mặt Câc người bầu ở cạnh nhau khơng sao
§8 ON TAP BS, cau hĩi, vi du, bai tap
1 Trong bảng ký tự ASCII câc ky tư từ 1 đến 31 lă câc ký tự điíu khiển Muốn hiển thị câc ký tự nùy trín măn hình kết qua ta phúi lăm thế năo?
3 Một học sinh khoe lăm một đoạn 0uăn toăh °T"
tức lă mọi từ đều bắt đầu bằng T Em hê y.uiết chương trình nhập đoạn oăn cua ban vao (1 xdu ky tu !!) uă hiểm tra xem có đúng lă toan "T" hay không
3 Giỏ sử để mô tả câc xđu bý tự “dăi” (uới độ dăi
Trang 2928 Lap Linh Pascal - Tips J
Array[0 MaxInt] of Char
Em hay viĩt chương trình mô tả câc thao túc sau
trín cóc xđu hy tự trín: a Ghĩp hat "xa@u"
b Lấy ra một xđu con (tương tự lệnh COPY')
c Cắt bỏ câc khoảng trống bín trâi d Cắt bỏ câc khoảng trống bín phải
4 Gia thiết giống như bùi trín Hêy uiết chường
trình mô ta thao tâc chỉn một xđu bý tự (tương tự lính INSERT)
ð Giả thiết giống băi trín Hă y 0uiết chương trình
mô ta thao tâc xóa ký tự (tương tự lệnh DELETE)
6 Gia thiết giống băi trín Hê y thực hiện thao tâc chuyển đối số sang ký tự uă ngược lại (tương tự câc
lĩnh Val va Str)
7 Dĩ mĩ ta cdc sĩ nguyĩn “lĩn” ta ding mang sĩ
có dạng sau:
Array[0 Maxint] of byte:
vdi chi số 0 ghỉ lại 1 nếu lă số dương uỉ 0 nếu số lă đm
Viết chương trình thực hiện uiệc nhập câc số
nguyín lớn từ băn phím
8 Viết chương trình mô tủ phĩp cộng câc số
nguyín lớn được nều trong băi trín
9 Viết chương trình mô ta phĩp trừ cúc số nguyín
lớn được níu trong câc băi trín 10 Chia đôi thùng bia
Có một thùng đựng 8 lit bia day Cĩ hai thing
Trang 30Phần 1 BĂI TẬP 29
được 5 lít Cô hai người muốn chia đôi số bia trín, Em hêy giúp họ lăm việc đó
lkZÏ| Bỉi lập về nhă
11 Hơi 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ố Cho
trước hơi số tự nhiín N, M hê y uiết chương trình biểm tra xem chúng có nguyín tố tương đương uới nhau bhông
12 Cho trước số tự nhiín N, Hă y tìm số tự nhiín
nho nhất khúc N uă nguyín tố tưởng đương uới N
13 Cho trước số tự nhiín N va mĩt sĩ bat ky A Hay viĩt chuong trinh in ra tất ca câc số tự nhiín nhỏ hơn A 0uò nguyín tố tương đương uới N
14 Hêy tìm số tự nhiín lớn nhất < 1000 uă không có ước số nguyín tổ nòo bhâc 3, 7, 11
15 Hay tìm số tự nhiín nho nhất > 1000 va khĩng có ước số nguyín tố năo khúc 3, 7, 11
16 Xĩt hai tap số nguyín Q1 oă 2 được định nghĩa như squ:
Trang 3130 Lip binh Pascal - Tap 3
Hay viĩt chuong trinh tim ra mĩt day con chung
liĩn tuc c6 dĩ dai lon nhat cua hai day trĩn
18 Cho hai daĩy 86 Gy, dạ, 43, ., a
by, bạ, by bạ
Hêy uiết chương trình chỉ ra một dêy con chung (khĩng can liín tục) có độ dăi lớn nhât của hai đê y trín
19 Cho bơ dêy số_ ay, Ao, Ay, « , („ bi, bo, by v5 by
Cyy Ca, Cay .; Cy
Hay viĩt chuong trinh chit ra mot day con chung (không cần liín tục) có độ dăi lớn nhất của câc đê y trín
20 Thing va Thoc
Có 3 người nông dđn cần chia nhau 21 thing, trong đó có 7 thùng đầy thóc, 7 thùng đựng một nửa uă 7 thùng rồng Cần chia số thùng 0ò thóc trín sao cho
Trang 32Phần 2 HƯỚNG DẪN 31 Phần 2: Hướng dẫn §1 LỆNH LẶP WHILE /# Í Cđu hỏi, ví dụ, bồi tập 1 a) Program P3101a; Uses Crt; Const N=10; Var i, tích: longínf; Begin Clrscr;
tích:=1; (giâ trị đầu của tích)
i:=1; (gid tri dĩu cua tf
While i<=N do (trong khi icon chua vuot qua N} Begin
tich:= tich*i; /nhđn dồn ¡ uăo tích)
Trang 3332 Lip tinh Pascal - Tip 3
Clrscr;
tong:=0; (git tri dau cua tong}
i=; (gia tri dau cua i/
While i<=N do /trong khi còn chưa oượt qua NỊ
Begin
Trang 34Phần 2 HƯỚNG DẪN 33
3 Program P3103;
Uses Crt;
Var n, dau: integer:
Trang 38Phần 2 HƯỚNG DẪN 37 End; i:= +1; End;
Trang 3938 Lip bins Pascal - Tip 3
End;
If kt then
Write('Day a1, a',N; lập thănh 1 cấp số công)
Else Write(Dêy a1, a',N,' không lập thănh một +'cấp số cộng); Readin; End 9 Program P3109; Uses Crt; Var A: array[1 100] of integer; i, S: integer; Begin Clrscr; Write('S6 phan tử của dêy số: S= "); ReadIn(S); Writeln( Nhập dêy số: ’); For i:=1 to S do Begin Write(A[, i, ‘JE; Readin(Afi); End; t= 1:
While (i<=(S div2)) and (A[ï] = A[S - i + 1]) do inc(i); if i> (S div 2) then Writein(Day nay la đê y đối xứng) Else Wrileln(Dấy năy không đối xứng);
Trang 40Phần 2 HƯỚNG DẪN 39
10 Program Sap_xep;
Uses Crt; Var N, i,j: byte:
Hoten: array[1 100] of string [30}; namsinh: array[1 100] of integer; T: integer;
S: string|30}; Begin
Cirser;
Write('So nguoi N= '}; Readin(N); Writetn(Nhap danh sach nhan sU:},
For i:=1 to N do Begin