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 295 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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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.. 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.. Hà y tìm tất ca các số Mersen

Trang 3

6T7 ¬ số

— "1 366/284-99 Gp 09 368/28 Mã số: PIK : PIK 86B 86B9

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

ở đâ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:

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

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

hay khong.

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

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

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

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 đã

làm trước kia.

Trang 7

6 Lap Lith Pasoal - Su ở

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

3 Cho trước số tự nhiên n Lập trình phân tích n thành tích các thừa số nguyên tố

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

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

nm chia p du 1.

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

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ừ

bàn phím.

Trang 10

Phan 1 BAI TAP 9

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

§3 KIỂU DỮ LIỆU STRING

BS cau héi, vi du, bai tap

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 đó:

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:

a S, la dấu phẩy đầu tiên

b S, là dấu phẩy cuối cùng

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)

a abe

b aba

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à

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,

sau đó "gọt" (trừm) xâu đó bằng cách xóa đi cúc ký tự,

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:

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?

3 Cho số tự nhiên n uà dã y bí tự S„ S„, , S„„

a Hã y tính số lớn nhất các dấu trống đi liền nhau

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ờ

J1I1 Cho trước một xâu ky tu bat ky S Hay viét chuong trinh nhap so k va in ra tat ca cdc xdu con dé dài b của S mà có chứa ký tự số

Trang 16

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

19 Nếu X là một xâu bý tự thì hý hiệu X* là XX X (b làn) Còn X" thì chí XXX (uô hạn lần)

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 + + +

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

4 Cho một dãy số được nhập từ bàn phím Hã y viét chương trình nhập một số a rồi liệt kê tất cả các phan tw trong day lon hon a

Trang 18

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ố

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

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;

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

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

6 Cho xéu gồm n bí tự Hãy biến đổi xôu đã cho bằng cách thay trong đó

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

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

138 Cho trước một xâu bí tự Hãy biến đổi xâu đó: nếu trong xâu không có dấu * thì giữ nguyên xâu, nếu

có thì mỗi bí tự đi sau * thay bằng bí tự -

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

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:

Nếu S1 c S2 thì TAS(S1,S) >=TAS(S1,S2)TAS(S2,S)

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

va sap xép day mdi thu được theo thứ tự tăng dan

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

6 Lập chương trình kiểm tra xem hai xâu nhị phân bậc n cho trước có phúi là hk-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

10 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 phím Nếu số uừa đọc 0ào là nguyên tố cùng nhau uới các số đồ đọc thì được thưởng một lần đọc, trong trường hợp ngược lại nếu số uừa đọc có chung từ hai ước số trở lên uới một trong số đã đọc thì bị trừ một lần

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° +

14 Số tự nhiên được gọi là Palindrom nếu cách biểu diễn thập phân của số này là đối xứng, uí dụ các

số 22, 3ã3 Hãy uiết chương trình tìm tất cd các số

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 uù 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

20 Một dãy số được gọi la đơn điệu bậc b nếu nó

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

lớn hơn 255) ta dung mang co dang sau:

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

rông khác, một thùng đựng được 3 lt, một thùng đựng

Trang 30

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:

Q1 = { Tập các số nguyên có dạng 3x + 5y, với x, y số nguyên} Q2 = { Tập các số nguyên có dạng 2x + 3y, với x, y số nguyên} Goi Z* va Z lan lượt là tập các số nguyên dường 0à

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

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

môi người có số thùng cà số thóc bằng nhau Không được đổ thóc đi uà từ thùng nọ sang thùng bìa em hỗ y giúp 3 người nông dân đó thực hiện được nguyện vong của mình.

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

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)

Ù=I*1; {gid tri tiếp theo của if

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

tong:= tongti; /eéng dồn ¡ uào tổng) k= Í+1; (gia trị tiếp theo của t] End;

Writeln( Tổng của 1000 số tự nhiên đầu tiên là: ', tong):

Trang 34

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

3 Program P3103;

Uses Crt;

Var n, dau: integer:

Epxilon, sohang, tong: Real;

Trang 35

34 Lip hinh Pascal - Tip 3

Write(Cho số x: 1, Readln(x);

Ì=1;

Trang 36

Phan 2 HUONG DAN 35

SoO:=0;

While i<=N do Begin

if (A[i] >x) then so:= so+1:

End;

Write('Các số khác nhau là: }; Writeln(A[1])

=2;

While i<=N do Begin

j=1,

While (j<i) and (A[j] <> Afi]) do inc(j);

if j= i then Writeln(Ali});

Trang 37

36 Lip tink Paseal - Tép 3

End;

I;=1;

While (i<=N-1) do Begin

=1;

While j<=N do Begin

if A[j] > afi] then Begin

T:= A[]; A|j}= All): Ali) T,

End;

j=);

Trang 38

Writeln(‘Day sé sau khi da sap xếp là: ');

For i:=1 to N do Write(A[i]:4):

End;

kt:=true;

If N>2 then Begin d:=a{1]-al2];

=2;

While (<N)and(a[i-a[i+1]=d) do ínc(Ì);

If t<>N then kt:=false;

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

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);

Readin;

End

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 Wnte(Họ và tên người ì,/: ); Readln(Hoten[il); Wiite(Năm sinh: );, Readin(Namsinh[i]); End;

While i<=(N-1) do

Begin jan While j<=N do /sắp xếp thao tuổi tăng dân) Begin

lf Namsinh[i| > Namsinhlj] then Begin

S:= Hoten[i] T:= Namsinhli]; Hoten{i}:= Hotenfj);

Namsinh{i]:= Namsinhfjj; Hoten|[j}:= S;

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

TỪ KHÓA LIÊN QUAN