1. Trang chủ
  2. » Công Nghệ Thông Tin

Ebook tự học lập trình pascal (tập 3) phần 1 bùi việt hà (chủ biên)

101 293 5
Tài liệu được quét OCR, nội dung có thể không chính xác

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 101
Dung lượng 1,39 MB

Nội dung

Trang 3

6T7 ¬ số

Trang 4

Phầ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 5

4 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 6

Phầ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 7

6 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 8

Phan 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 9

8 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 10

Phan 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 11

10 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 12

Phan 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 13

12 | 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 14

Phầ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 15

44 %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 16

Phầ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 17

16 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 18

Phầ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 19

18 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 20

Phầ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 21

20 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 22

Phan 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 23

22 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 24

Phan 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 25

24 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 26

Phan 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 27

26 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 28

Phầ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 29

28 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 30

Phầ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 31

30 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 32

Phầ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 33

32 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 34

Phần 2 HƯỚNG DẪN 33

3 Program P3103;

Uses Crt;

Var n, dau: integer:

Trang 38

Phần 2 HƯỚNG DẪN 37 End; i:= +1; End;

Trang 39

38 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 40

Phầ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

Ngày đăng: 04/12/2015, 07:40

TỪ KHÓA LIÊN QUAN