Viết chương trình Pascal hoàn chỉnh thực hiện các công uiệc của thực đơn sau: 1- Nhập dữ liệu nhập số tự nhiên n.. Viết chương trình Pascal hoàn chỉnh thực hiện công uiệc của thực đơn: 1
Trang 1BÙI VIỆT HÀ (CHU BIEN)
Trang 2(Có thể tham khỏdo dé day cho hoe sinh ldp 9)
NHA XUAT BAN GIAO DUC - 1999
Trang 3Mã số: PIK 86B9
Trang 4Phần I BÀI TẬP - 3
Phan 1 BAI TAP
§1 ÔN TẬP
DỮ LIỆU VÀ THUẬT TOÁN TRONG PASCAL
ES cau hei, vi du, bài tập
1 Hơi kiểu khai báo sau có tương đương uới nhau không:
Trang 54 Ve hae hip Brink Pascal
4 Lập chương trình in ra trên mờn hình 10 dòng đầu tiên của tam gidc Pascal theo dang sau:
c If ((2 > 3) or not({1+ 1 =2} and (3 < 5))} then X:=X*X;
6 Hãy kiểm tra kết quả của chương trình sau:
Trang 6Whiteln;
i:=0;
While Afi} = 1 do
Begin A(i]:=0; t=i+1;
8 Cá một chuyén gia lap trinh Pascal phát biểu là bất
cu mot lénh lap While nado cũng có thể thay thế tương đương bằng một lệnh lặp RepeaL Ngược lại mọi lệnh Repeat đều có thể thay thế bằng lệnh While
Điều đó có đúng không? Hã y cho 0í du minh hoa
9 Một lệnh lap For cé thé thay thé bằng lệnh While
không Điều ngược lại có đúng không?
Trang 76 Tee hac Li think Pascal
10 Trong Pascal có lệnh tạo nhã n (Label) va lệnh chuyển
điâu khiến đến nhã n (Golo) Trên thực tế có thể thấy rằng lệnh tạo nhãn uù chuyển điều khiển tới nhãn dễ gây rồi chương trình uà khó theo dõi Em hãy chuyển chương trừnh sơu có nhấn thành hhông có nhấn mà tác dụng của chương từnh không thay đổi
Writeln(‘Nhap a: '}; Readln(a), Ifa <= 0 then goto 100;
Ifa mod 5 = 0 then Begin
LH Bai tap vé nha
11 Viét chuong trinh nhap sé tw nhién N va in ra dòng thứ N cua tam giác Pascal
12 Xét ban cd vua 8 x 8 Các ô được đánh dấu bởi 0ÿ
trí hùng uà cột, 0í dụ u‡ trí (1,2) chi ra vi tri hang 1 cột 2
Trang 8Phần 1 BÀI TẬP 7
Cho trước b 0ị trí, trên đó đã xếp b quân hậu: (ÌtÌ} (ial),
ÂM):
a Viết chương trình biểm tra xem b quân hộu trên có
Ở trong trạng thói độc lập huy bhông (tức lò không quân nào có thể khống chế quân nào)
b Trường hợp các quân trên đã độc lập hã y kiểm tro
xem có thể bổ xung thêm một quân hậu nữa mà uôn bảo đâm tính độc lập được hay không, nếu được hãy chỉ ra 0} trí của quân hậu mới
13 Xét bàn cờ uua 8 x 8 Các ô được đánh dấu bởi uị tri hang va cét, vi du vi tri (1,2) chi ra vi tri hang 1 cột 2 Cho trước b uị trí, trên đó đã xếp b quân tốt: (iqds), (lake)
(4):
Hãy uiết chương trình kừểm tra xem có thể xếp một quân hậu trên bàn cờ sao cho nó có thể khống chế toàn bộ
b quân tốt Nếu được hã y chỉ rd uị trí của quán hậu đó
14 Xét ban co vua 8 x 8 Các ô được đánh dấu bởi uị
trí hang va cét, vi du vi tri (1,2) chi ra vi trí hàng 1 cột 2
Cho trước È uị trí, trên đó đã xếp k quân tốt: (IÌ\, (lạ),
(isk):
Hãy uiết chương trình để chỉ ra 0à xếp thêm trên ban
cờ một số tối thiểu nhất các con hau sao cho chúng sẽ khống chế toàn bộ b quân tốt Chương trừnh phải chỉ ra duoc vi tri cia mỗi quân hậu được xếp
15 Trên một bàn tròn người ta xếp n số 0 uà 1 Giả sử
dãy số đã cho được uiết dưới dạng: a; œ¿ aạ d„ Sơu mỗi
phút các số trên uòng tròn sẽ tự biến đổi theo cách sau:
Nếu hai số bên cạnh giống nhau thì không thay đổi, ngược
Trang 98 Tee hae &y Drink Pascal
tại nếu hai số bên cạnh khác nhau thì sẽ thay đổi Ó —› 1 bà
1 ¬20
Cho trước dã y số như trên, lập chương trình tính sau
b phút (k nhập từ bàn phím) dãy số ban đầu sẽ thay doi như thế nào :
16 Giả thiết giống bài trên Dễ thấy răng dã y đã cho
sẽ không biến đốt nữa bhi mù tất ca cdc sé cua day là như nhau
Cho trước một dã y bất ky ban dau, hay kiém tra xem quá trình biến đổi trên có bị dừng lại hay không Hãy kiểm tra vdi cdc day cu thé sau:
a, 101010101010
b 100100100100
17 Giả thiết giống bài trên Dã y đã cho ban đầu được gọi là Tuân hoàn nếu qua trình biến đổi đến một lúc nào
đó sẽ xuất hiện lại dã y ban đầu
Cho trước một dãy ban đầu hãy kiểm tra xem nó có phúi lò tuần hoàn hay hhông Hũ y biểm tra cu thé vdi cdc day sau:
a, 1010101000101100
b 0100010101111001
18 Cần phải xếp 20 bao gọạo 0ào 8 nhà kho sao cho
mỗi cạnh của nhà kho phổi có tổng số bao gạo là 7 Người
ta đã nghĩ ra cách xêp như sau:
Trang 10
Phần 1 BÀI TẬP 9
a Giải quyết bài toán trên nhưng uới tổng số 24 bao gạo
b Giai quyết bời toán chỉ uới 16 bao gạo
19 Ma tran ky ao bac N la bang số vuéng N x N bao gom cdc 61, 2, 3, ., N? sưo cho tổng số các hàng, các cột 0ò các đường chéo đêu bằng nhau
Em hã y thử tìm mu trận bỳ ao bậc 4
20 Hã y thử tìm ma trận ky ao bac 5
§2 KHÁI NIỆM THỦ TỤC
4 Cau héi, vi du, bai tap
1 Trong phần bhai báo của thủ tục có thể khai báo một thủ tục khác được hay không? Cho uứ dụ
2 Trong chương trình của một thủ tục có thể sử dụng các biến:
a Được khai báo trong chương trình chính hay không?
b Được khơi báo trong các thủ tục khác hay không?
3 Hãy lập một thủ tục nhập 2 số nguyên A, B; sau đó tinh vé in ra man hinh thương A/B
4 Việt thủ tục nhập dữ hiệu cho một mỏng số cho trước
5 Hãy lập thủ tục tìm ma trận chuyến u‡ của ma trận
A khích thước mxn cho trước
6 Dùng thủ tục, đối uới một ma trận A[15X15] tính:
d Tổng bình phương các số hạng nằm trên đường chéo chính.
Trang 1110 Tec hee Lip, Drink Pageal
12 Có thể khai báo tên của thủ tục trùng uới tên của
một thủ tục có sẵn trong Pascal được không?
13 Dùng thủ tục giải hệ phương trình tuyến tính 2 ổn
cho trước (các hệ số được nhập uào từ bàn phím):
ayx+b¡y =cy
a +boy =Cy
14 Hay viét lai thit tuc INSERT d6éi vdi mét chudi ky
tt cho trước tuỳ ý
15 Hãy uiết lại thủ tục DELETE đối uới một chuỗi ký
tự cho trước tuy 3
16 Viết một chương trùnh Pascal bằng cách thực hiện lần tượt cdc céng viéc sau:
a Lập thủ tục nhập ba số thực dương a, b, c từ bàn phím
b Lập thủ tục kiểm tra xem ba số trên có lập thành ba
cạnh của tam giác hay không
Trang 12Phần 1 BÀI TẬP 11
c Viết thủ tục tính diện tích tam giác
d Viết thủ tục tính các trung tuyến của tam giác
e Viết hoàn thiện chương trinh chính
17 Cho trước mảng PỊ1 50) oƒ tnfeger, hồ y uiết thủ tục sinh ra mỏng trên bao gồm các số nguyên tố theo thứ tự cua chi so
18 Viết chương trình Pascal hoàn chỉnh để thực hiện theo thực đơn như sau:
1- Nhập dứữ liệu (nhập 3 số thực a, b, ©)
2- Giải phương trình ax? + bx + e = 0
3- Thoát khỏi chương trình
19 Viết chương trừnh Pascdl thực hiện theo thực đơn sau: 1- Nhập dữ liệu (nhập 4 số thực a, b, c, d)
2- Tính phần tử Min
3- Tính phần tử Max
4- Thoát khỏi chương trình
20 Viết chương trình Pascal hoàn chỉnh thực hiện các công uiệc của thực đơn sau:
1- Nhập dữ liệu (nhập số tự nhiên n)
2- Phan tich ra thừa số nguyên tố (phân tích n thành tích các số nguyên tố)
3- Thoát khỏi chương trình
21 Viết chương trình Pascal hoàn chỉnh thực hiện công uiệc của thực đơn:
1- Nhập số tự nhiên N
2- Nhập cơ số q.
Trang 1312 Tee hac LE Drink Pascal
3- Biểu diễn N theo cơ số q
&S Cau héi, vi du, bai tap
1 Chuong trinh sau déy minh hoa viéc truyén bién cho chuong trinh con Procedure trù không có danh sách bién, không có bha¿ báo VAR, vi vay bién x cua no là biến của chương trinh chinh, Sau khi chạy xong tru biến x bi thay đổi giá trị:
Program VD;
Var x: integer;
(* ` Procedure tru;
Trang 14
Phần 1 BÀI TẬP 13
Writeln( Giá trị x luc nay bang:’, x);
Readln;
End
2 Chương trình sau đáy mình họa uiệc truyền biến cho chương trình con Procedure cong không có danh sách biến nhưng có khai bdo biến X trong phần khai bao VAR, vi bây biến x của nó là biến mới (biến X của chương trình chính bị che) Khi chụy cong biến x của nó sẽ nhộn gia trị khởi đầu băng 0 uì chưa gán giú trị khỏi động
Trang 1514 Tu hac big Drink Pascal
động tuỳ thuộc lời gọi của chương trình chính Khi chạy cong biến của chương trình chính bi che vi véy khi cong két thúc biến x của chương trình chính uẫn mang giá trị cũ
4 Bạn hãy chạy thử chương trình sau đây 0à giải thích xem tại sao lạt như 0uậy:
Trang 16Phần 1 BÀI TẬP 15
Writeln(Giá trị của a lúc này bằng ', a);
Writeln ( Giá trị của b lúc này bằng ', b);
Write (‘Cho biét tir sé: '); Readln(a);
Write('Cho biết mẫu số: ‘); ReadIn(b);
Trang 1716 Tec hoe Lig Drink Pascal
(LE) Bòi tập về nhà
10 Dãy số thực được định nghĩa như sau:
a,=2
ay = a,(6 - a4,)/4
"Vil chuong trình tính dãy trên với n khá lớn (khoảng
10000) uà uới độ chính xác khoảng 20 chữ số sau.dấu phấy
thập phân
Em có nhận xét gì uề đã y số này?
11 Một xâu nhị phân được gọi là không lắp bạc b nếu xâáu trên bhông chứa hai xâu con độ dời b giống nhau Viết chương trình nhập xâu nhị phân bát kỳ tỪ bàn phín uà kiểm trư xem nó có phi là không lặp bậc k huy không
Trang 18Phần 1 BÀI TẬP 17
12 Cho trước xâu nhị phân Hãy tính số bậc bhông lặp của xâu trên (tức lò số lớn nhất b thỏa mã n xâu là không lặp bác b uà không là không lặp bác b- 1)
18 Một xâu nhị phân gọi là "chuẩn" nếu nó không chứa hai số 0 liền nhau
a Liệt kê và tính số các xâu nhị chân "chuẩn" độ dài 3
b Liệt kê và tính số các xâu nhị phân "chuẩn" độ dài 4
c Liệt kê và tính số các xâu nhị phân "chuẩn" độ dài 5
d Gọi A, là số các xâu nhì phân chuẩn độ dài n Hã y tính A,
14 Gia thiết giống như bời trên Em hãy chứng mảnh céng thite sau: AFA +A
15 Viét chuong trinh liét ké va tinh gố tất cả các xâu nhị phan d6 dai 6 va khong chita 3 số0 hiên Hếp
16 Goi A, la sé cdc xu ký tự độ dài n uà chứa 3 số 0 liên tiếp Gọi B, là số các xâu bý tự độ dài n uà không chứa
3 số 0 liên tiếp Rõ ràng ta có A,+B,=2", Tìm công thức tinh A, va B,,
17 Cấu trúc dữ liệu Ngăn xếp:
Một mảng dữ liệu ngăn xếp là mảng dữ liệu trong đó các phần tử được lưu trữ uò xử lý theo nguyên tắc “Vào sau
ru trước”, tức là phần tử đưa uào lần cuôi cùng sẽ được dua ra dau tiên (Giống như ngăn xếp, đưa uòo đầu tiên
nằm dưới đáy thì không thể lấy ra trước được) Đối uới dữ liệu biểu ngăn xếp (Hếng Anh gọi là Staek) chỉ có hai phép
toán: Đưa uào (Push) uà Lấy ra (Pull)
Hãy mô tủ một biểu dữ liệu Ngăn xép va mé ta hai thu tuc Push va Pull
Trang 1918 Tee hae “ Drink Paserl
18 Cấu trúc dữ liệu Hăng đợi:
Một mảng dữ liệu Hang doi lă mảng dữ liệu trong đó
câc phần tử được lưu trữ öuă xử lý theo nguyín tắc "Văo trước ra trước”, giống như 0iệc xếp hăng mua uĩ, ai xếp trước mua trước Đối uới kiểu dữ liệu Hăng đợi cũng chỉ có hai phĩp toân la Push va Dull giống như băi toân trín, Hêy mô tả một kiếu dữ liệu Hằng đợi đơn giản uă hai thu tuc Push va Pull
19 Nguồn gốc số Fibonaci:
Trín một hòn đảo hoang người ta đặt uòo một cặp thỏ non (một đực uă một câi) Câc cặp thỏ non chỉ trưởng thănh sau 2 thâng Khi đê trưởng thănh câc cặp thỏ sẽ
sinh ru một cặp thỏ non sau mỗi thúóng Tính số cặp thỏ
trĩn dao sau k thang
Chúng minh rằng số cặp thỏ cần từn trín đảo chính bằng số Fibonaci thứ b
Băi toân trín lần đầu tiín được mô tả trong quyển
sâch Liber abaci của tâc giâ PYbonaci người Italia 0uăo thế
kỷ thứ 13 va tín gọi số Fibonaci bắt đầu có từ đó
§4 KHÂI NIỆM HĂM
/#Ế Cđu hỏi, vĩ dụ, bởi tập
1 Viết đoạn chuong trinh mĩ ta Function tinh gid tri của biểu thức:
x= 3x7 +1, ở đđy x lă số thực tuỳ ý
Trang 20Phần 1 BÀI TẬP 19
2 Tinh ham s6 a”, ở đây a là số thực uà n là số tự nhiên tuỳ y được nhập ào từ bàn phím
3 Viét Function cho gid tri Boolean hiểm tra tính
nguyên tố của một số tự nhiên cho trước
4 Dùng FuneHon tính UCLN của 2 số tự nhiên +, y theo thuột toán Oclit
5 Dùng Function tách từ đầu tiên rơ khỏi một xâu ký
12 Viết hàm số Euler gín) uới n tự nhiên tính số các
số tự nhiên nhỏ hơn n bà nguyên tố cùng nhưu uới n
IRR) Bòi tập về nhỏ
13 Viết ham s6 tinh n!
14 Viết ham s6 tinh nl! (Ky hiéu nt! dùng để chỉ tích 1*3*5*., *n néu n lé va 2*4*6* *n néu n chan).
Trang 2120 Te bac hig think Pascal
15 Cho S1, S2 là hai xâu hý tự cùng độ dòi Gọi
d(S1, S2) uới S1, S2 hơi xâu bý tự cùng độ dời, là tổng số
các 0Ÿ trí khúc ruhau trong xôu
Ví dụ: dCabcd’, ‘achc')=2 (cdc vi trí 2 uà 3 )hác nhau)
Viết hờm số tính d(S1, S2) Số d(S1,S2) được gọi là
Khoảng cách ga Š1 va S2
l6 Cho trước xâu nhị phôn S Viết chương trừnh liệt
bê tất cả cúc xâu nhị phân Sˆ cùng độ dài uớởi S sao cho d(S,S%1
17 Cho số tự nhiên N Viết chương trình kiểm tra xem
ÁN có thể biểu diễn thành tổng của một số số tự nhiên liên tiếp (> 1 hạng tử) được hay không Nếu đúng héy in ra một biểu dién nhu vay
18 Số tự nhién N được gọi là "Tích bậc k” nếu nó có thể
biểu diễn dưới dạng tích của b số tự nhiên (>1)
Vi du: một số tự nhiên la Tích bạc 2 bhi uà chỉ khi nó
là hợp số:
Cho trước số tự nhiên N, kiểm tra xem N có phải là
Tich bée 3 hay khang
19 Goi A, la tap hợp các số tự nhiên là Tích bậc k Dễ thấy khẳng định sau:
A1A25 A3 Àk Ak†1D
Số tự nhiên n thuộc A, nhưng không thuộc A„ được goi la có TÝch thực sự bậc k Các số nguyên tố là những số
có Tích thực sự bộc 1
Giả sử số tự nhiên n có dạng khai triển nguyên tố như
Trang 22NÓ) =0, N(x)= [T Lnếux cắn và
| nếu x lẻ, N(uv) = N(u) + NV), với u,v là các xâu ký tự tương ứng
a Tinh N( 1233536535)
b Tinh N(u) voi u là xâu bat ky
22 Cho trước n số tự nhiên at, 8; a„ Gọi đ !à UCLN của n số trên Hã y tìm các sốtp,, D;, Dạ sơo cho: d # pịa; +
pra + t Đnâr
§5 BIẾN CỤC BỘ, BIEN TONG THE
TRUYỀN THAM BIẾN CHO THỦ TỤC/ HÀM
#@ Câu hỏi, ví dụ, bời tập
1 Các khẳng định sau đúng hay sai:
a Bién cục bộ là biến được mô tả bên trong thủ tục hoặc hàm.
Trang 2322 Tuc hac big trink Pascal
2 Các khẳng định sau đúng hay sai:
ø Biến cục bộ không có giá trị ở bên ngoài khi tên của biến đó không được khơi báo ở bên ngoài
b Giá trị của biến cục bộ sẽ được gù? nguyên khi biến
đã được khai báo ở bên ngoài
c Giá trị của biến tổng thể hoàn toàn không phụ thuộc uào uiệc thực hiện bên trong cóc hàm va thủ tục
3 Trong Pascal có bao nhiêu cách truyền gió trị cho biển trong Thu tuc va Ham (phan biét cé va không có từ khoa Var)?
4 Doan chuong trinh sau dung hay sai, vi sao:
Trang 24
Phần 1 BÀI TẬP 23
5 Cac ham va thu tuc trong Pascal có thể gọi lông
nhau được hay bhông?
6 Bạn hã y ín uà chạy thử 3 chương trình sau đây:
Kết qua chay sé la: 2 5
Trang 25
24 Tex hee Li Drink Pascal
7 Giả sử ta cần khai báo hai thủ tục (hoặc hàm s6) A
va B Gid sw trong phan chương trình cua A cân gọi B va
Trang 26Phần 1 BÀI TẬP - 25
trong phần chương trình của B can goi A Trường hợp trên
có thể xử lý trên Pascdl được hay khéng? Vi sao?
8 Trong phần thân của thủ tục hoặc hàm có thể gọi
đến chính nó được không?
9 Giải phương trình 2 ẩn sau trong phạm uì các số nguyén: ax + by = c, vdi a, b, c là cóc số nguyên cho trước Chương trình chỉ cần chỉ ra một nghiệm nòo đó của
phương trình trên hoặc đưa ra phủ định uề nghiệm
10 Mọi phân số dương va nhỏ hơn 1 đều có thể biểu diễn (duy nhữ1!) dưới dang:
a,+
1 apt 1
nạ + + —
ay
Ở đây ay, ay, a, La cde 86 tu nhién
Việt chương trình nhập hai số tự nhiên p, q từ bàn
phím uới p<q Sau dé tim day ay, a, ., a, là khai triển của
phén s6 plq Kết quả thể hiện trên màn hình
LE) Bai tap vé nha
11 Viết thủ tục:
Compare (S1,S2: String; Var Kq: String)
thực hiện công uiệc sau: so sánh hai xâu SI va S82, tim ra tất có các ký tự có trong củ hai xâu trên Xâu Kq sé chứa tat ca cdc ky tự đó, mỗi ký tự chỉ được nhớ một lần
Trang 2726 Te hac Lig trivh Pascal
12 Cho n xâu ký tự S1, 82, ., Sn Goi d(U,V), voi U,
V la hai xdu ky tu bất bỳ, là tổng số cúc ký tự không giống
nhau trong hai xâu trên, môi loợi ký tự chỉ được nhớ một
lan Vi du daabbe’,'bedd') = 9 uì chỉ có hai ký #ự a 0è ở là không giống nhau trong các xâu trên
a Viết hàm số tinh d(U,V)
Hãy thử uới K=2A M=5,
Lập chương trình để Máy tính chơi uới người
14 Cho bảng số uuông NxN cho bởi mỏng 2 chiêu Nj |) Viết chương trình tính phần tử Max của mỏng trên trong các miền sau của bảng số:
a b € d e,
15 Hừm Mobius của một số tự nhiên n được định nghĩa như sau:
M(n) = 1 nếu n =1 hoặc n biểu diễn thành tích của một
số chẩn các số nguyên tố khác nhau, M (n) s —1 nếu n biểu diễn thònh tích của một số lẻ các số nguyên tố khác nhau
va M(n) = 0 trong các trường hợp còn lại.
Trang 2818 Gọi một hoán 0ì aya, a, của (12 n) là không cân
bằng nếu vdi moi i thi as>i Goi D, là số các hoán uị không
cân bằng của n phân tử
Viết chương trình tinh D, va in ra tat ca cdc hodn vi không cân bằng của n phần tử
19 Chứng mình rằng dã y sốD, được định nghĩa trong
bai trén sé thoa man dang thitc sau:
Trang 2928 Tye hae Lig, think Pascal
Dạ = (n-1 XD,-‹ + D;¿) với n > 1
20 Chứng mình rằng dã y sốD, được định nghĩo trong
bởi trên sẽ thỏa mã n đẳng thức sau:
D,=nD,,+(-1)" vdt moi n
§6 LAM VIEC VOI FILE TRONG PASCAL
FS Cau héi, vi du, bai tap
1 Mét file van ban trén dia cé tén la SON.INF chita
đúng một dòng bao gồm hai số tự nhiên n, m được uiết
cách nhưu một dấu cách Sau đây la mét vi du vé file nay:
4
5
Em hũy uiế! đoạn chương trình nhập hai số này từ
ke trên va in két qua ra man hinh
3 Mét file van ban có tên DATA.TXT lưu trừ số liệu của một mảng n số uà có dựng sau:
- Dòng đầu tiên của file ghi số n
- n dòng tiến theo của file ghỉ n số, mỗi số trên một dòng
Trang 30Phần 1 BÀI TẬP 29
Viết chương trừnh nhập số liệu cua day trên oào một mảng oò in ra dữ liệu của mảng trên sau khi đã sắp lại theo thứ tự tăng dần
4 Một file uăn bản có tên DATA.TXT lưu trữ số liệu của một mảng n số 0ò có dụng sau:
- Dàng đầu tiên của ïile gh¿ số n
- Dòng tiêp theo của file ghí n số các số cách nhau bởi tôi thiểu một dấu cách
Viết chương trình nhập số liệu của đãy trên oào một mang va in ra dit liéu cia mang trén
ð Viết các thủ tục nhập dữ liệu từ file cho cúc trường hợp của 4 bài trên
6 Làm bài tương tự bài 3 Điểm khúc biệt là ở chỗ file
đữ liệu không có dòng đâu tiên ghỉ tổng số đữ liệu như
trong bài 3 Chương trình phải tự kiểm tra uà tính số n đó
7 Làm bài tương tự bài 4 Điểm khác biệt là ở chỗ file
dữ liệu không có dòng đầu tiên ghỉ n, chương trình phải tự kiểm tra 0à uà tính số đó
8 Cho file uăn ban ghỉ số liệu của một bang s6 NxM
Trang 3130 Tuc bee hip trinh Pascal
Nguyen Van Hung 15G
Bui Quang Than 14K
Tran Minh Quang 16G
Dit liéu ghi trong file nay có ý nghĩa như sau:
- Dòng đâu tiên ghỉ đúng một số n chỉ số lượng học sinh trong ld p
-ndong tiếp theo môi dong ghi dit liéu cilia mét hoc sinh
- Mỗi học sinh được ghỉ các dữ liệu sau:
Trang 32Phần 1 BÀI TẬP 31
10 Làm tương tự bài trên, điểm khác biệt là không có
dòng đầu tiên ghi số lượng học sinh Chương trình phỏi tự nhận biết uờ tính được số đó
IRR| Bai tap vé nha
11 Thực hiện tất cả các thao tác uới các dạng file van bản như trong phần Câu hỏi, uí dụ, bai tập nhưng theo chiều ngược lại, tức là thực hiện các thao tác ghi
12 Có thể được hay không uiệc thực hiện ghi ru file uốn bản trên một dòng các biến uới kiểu dữ liệu khúc nhau Ví dụ có thể được hay không uiệc ghỉ ra file như sau:
Wrileln(F, Xau1, So1, Xau2, So2);
uới XaUX là các biến biểu strring còn SoX là biến biểu Real
13 Số liệu được nhập từ một He ăn ban INPUT.TXT uò có dạng sau:
- Đòng đầu tiên ghi số tự nhiên N (N <20)
- Ñ dòng tiếp theo, mỗi dòng ghi một dã y số, các số cách nhau
bởi dấu cách Số lượng phần tử của các dã y có thể khác nhau Viết chương trình nhập số liệu từ file trên, sốp xếp N dãy trên theo thứ tự tăng dân va ghi két qua ra file
ODUDTPUT.TXT có dụng tương tự như file nhập liệu
14 Một danh sách lớp được ghi trong một Pie ăn ban cé dang sau:
Nguyen Van Minh Nam
Nguyen Tung Chau Nu
Tran Quang Thu Nam
Bui Van Ngo Nam
Trang 3332 Tue đạc Lig trink Pasenl
Trong d6 ho vé tén hoc sinh duoc ghi trên độ dài 20
ky tu, 3 ky tu tiép theo sẽ ghỉ Nam hoặc Nu chỉ giới tinh của học sinh đó Số dòng của file này sẽ bằng số bọc sinh trong lớp
Hãy viết! chương trình thực hiện các công uiệc sưu:
a Nhap tén File sé liéu tit ban phim, sau dé nhap
dữ liệu từ File uào bộ nhớ máy tính
b Thực hiện viéc sap xếp lại danh sách học sinh trong lớp sơo cho các bạn Nữ lên trước, các bạn Nam sau
c Nhập tên Pile két qua tit ban phim va ghi danh sách lớp sau khi đã sắp xếp lại ru File đó theo mẫu giống như lúc đọc uào
15 Đầu bài giống bài trên Hã y uiốt chương trình để thực
hién cdc céng viéc sau:
- Đếm xem trong lớp có bao nhiêu bạn là Nam, bao nhiêu bạn là Nữ
- Kiểm tra xem lớp có hai bạn nào cùng họ hưy không? Nếu có liệt hê tất cả các bạn có chưng họ
16 Đầu bài giống bùi trên Hãy oiế! chương trùnh đọc
dit liéu va in bết quả ra File sau khi đã sắp xếp các bạn trong lớp theo trật tự sau: trước tiên sắp xếp theo giới tính, các bạn Nữ trước, Nam sau, sau đó sắp tiếp trong số các bạn cùng giới theo tên theo thứ tự ABC, sau đó sẽ sắp tiếp theo họ Trong 0ý dụ cua bai trén file két qua sẽ có dựng
Nguyen Tung Chau Nu
Nguyen Van Minh Nam
Trang 34Phan 1 BAI TAP 33
Tran Quang Thu Nam
17 Cho trước một xâu nhị phân độ dài bất kỳ được dua vao tw file vén ban |NPUT.TXT Can biến đổi xảu nhị phan nay vé dạng toàn số 0 Các phép biến đổi có thể chỉ
la mét trong các Ïoại sau:
- Biến đổi xâu con 11 thành 00
- Biến đổi xâu con 010.thành 000
Hay chi mét cach biển đổi xâu đã cho thành xâu có
toàn 0 Kết quả thể hiện trong fñile OUTPUT.TXT như sau: Dòng đầu tiên của OUTPUT.TXT chứa xâu ban đầu, sau
đó môi dòng là một xảu tiếp theo sau một phép biến đối, xâu cuối cùng là xâu toàn 0
18 Cho một file uăn bản BLPAS trên đó ghỉ một
chương trình Pascal
Hãy uiết chương trình thực hiện các công uiệc sau: ơ._ Kiểm tra xem trong chương trình trên số các từ Begin có bằng số các từ End hay không
b Niểm tra tinh đúng đắn của các chú thích của chương trình: số các ký tự "[' có bằng số các ký tử
20 Tại một sản ga người ta xét hành lý của hành khách
va ghi kết qua vao file cé tén KHACHINF sao cho méi hành
Trang 3534 Tue haz ⁄% Drink Pascal
khách được ghi trên một dòng, mỗi biện hàng được ghủ rõ số cân trên kiện hang do Vi du mot file nhu véy cé dang sau:
File trên có ý nghĩa sau: có tốt cả 4 hành khách, hành
khách 1 có ð biện hàng uới số cân tương ling la 12, 4, 5.5, 6
Uè 2kg, khách thứ hai có 1 kiện nặng 21 kg
Hãy uiết chương trừnh thực hiện các công uiệc sưu:
a Tính tổng số cân của mỗi hành khách va in két qua
ra file có tên CAN.KQ, mỗi hành khách là một số trên một hang Ví dụ uới file đầu vao như trên thì bết quả sẽ là:
29.5
21
20
7
b Kiém tra va in ra những khach hang khéng di: tiéu
chuẩn đi tờu Số liệu duoc ghi ra file cé tén HUY.KQ, modi
dong ghi sé thu tu hanh khdch khong du diéu kién Biét
rằng hành khách sẽ không đủ điêu kién di tau néu téng sé
trọng lượng hùng bóa lớn hơn 20 kg hoặc có quá 10 hiện hàng Trong vi du trén các hành khách số 1 uò 2 là không
đủ điêu kiện do đó file bết quỏ sẽ có dạng:
1
2
Trang 36Phần 1 BÀI TẬP 35
§7 ON TAP
ZS Cau héi, vi du, bai tap
1 Viét chuong trinh con tính diện tích hình tròn, hình buông, hình thoi trong một chương trình chính Sau đó hoi
va chọn một số phương án tính diện tích bằng cách chọn trong bảng chọn lệnh sau:
1- Tính diện tích hình tròn
3- Tĩnh diện tích hình uuông
3- Tinh dién tích hừnh thoi
2 Hãy uiết lại chương trình giải phương trình bậc 2 bằng cách đưa oào các thủ tục tính giá trị Delta
3 Hãy uiết chương trình cộng 2 số tự nhiên cho trước được nhập uòo từ bàn phím uới bết quủ được oiế! trong hệ
cơ số 9
4 Tim va inra tất cỏ các số Hỷ nhiên nguyên tố có 3
chữ số là số đối xứng trong cách viét cơ số 2
§ Lập trình tách từ cuối cùng ra khỏi một xdu ky tự cho trước uò biểm tra xem đó có phải là từ đối xứng không? Và in kết quả ra màn hừnh
6 Giải phương trình: 2` = 3" +1 trong phạm 0i các số
tự nhiên 1<n,m< 1ô
7 Lập trình chuyển một số được uiết trong hệ cơ số 9 thành số trong hệ cơ số 3
Trang 3736 Tue bac Lip tien Pascal
8 Các số được utết trong hệ đếm cơ số 16 sử dụng các
ký tự sau: 0, 1, 9 uà A,B,C,D, E, F chỉ các số 10, 11, 12, 13,
5- Ghi két qua ra file
Chu y: Tép két qua sé có tên KQ12.TXT uà bao gầm 4
dòng Dòng thứ nhất gh: số N dạng thộp phân, dòng thứ 2 ghi s6 M dui dang Hexa, dong thu 3 ghi N dang hexa, dong thit 4 ghi M dang thap phan
LL] Bỏi tập về nhà
10 Cho trước các hé sé nguyén 4, a1, ., ay Giai phuong trinh sau trong pham vi sé nguyén:
ax tax) + tayx ta, = 0
11 Thuật todn cộng số nguyên:
Xét cức biểu diễn nhị phân của các số tự nhiên:
a = â,+â,; 3yâu,
hay có thể uiốt a = (aayas; 8vãn);,
Trang 38Phần 1 BÀI TẬP 37
Tu cĩ thuật tốn sau mơ tà phép cơng các số nguyên theo
cách biểu diễn nhị phân:
Gia suf a = 8yvây¿ yaạ, b = bạ„b„¿ bịbạ bờ kết quả của
Gia sử a = a,;a,¿ ậạ nè b = bạbạ¿ bịby khỉ đĩ định nghĩa phép todn left (chuyén sang trai) va right (chuyển sang phat) một số bit như sau:
a left k=a„„ a;a00 0 (k số 0 bên phải)
b right k = 00 0a,,a,„¿ 4-„{k số 0 bên trái)
Để mơ tả thuật tốn ta sử dụng các biến trung gian là
Cạ, Cụ, ., Cạ¡ (cĩc số nguyên)
Trang 3938 Tee hoe Lit Rrink Pascal
Kế? quả sẽ được gún cho biến p
for i:=Ũ to n-1 do
Begin
lfb,= 1 thenc,:=a left / Else c, :=0
End;
p:=0;
for ì:=0 to n-1 do p:=ptc;
Viết chương trình mô td thuật toán trên
13 Thuật toán nhân nhanh:
Trong bài tập này sẽ mô tả một thuật toán nhôn rốt nhanh các số nguyên
Gia sử ta co: a= 8¿n-13¿n.; 3t3p va b = Don-tDeng:-D4Dp la các
biểu diễn nhị phân của a uờ b Chú ý rằng ta có thể coi
chúng có cùng độ dài 2n bằng cách bổ sung các bít 0 uề bên trái của các số đó
Đặt a = 2À, + Ác và b = 2B, + Bụ
Oday ¡= â¿a:3› 3n,tâu, Áo = â, ;ân¿ 8âu,
By = Dyn tDgn.2:-Dae Dp, Bo = Bp 1Dp-2 - bo
Khi đó thuật toán nhân nhanh được thể hiện trong công thức sau:
ab = (2"+29A:B, + 2(ArAj(ByB,) + (2° + 1)A,Bo
a Chitng minh tinh ding dan cia cong thitc trén
b Viết chương trình mô tỏ thuật toán trên
14 Chứng mình rang day sé Fibonaci F,, Fy, Fạụ thỏa
man đẳng thức sau:
Trang 40Phần 1 BÀI TẬP 39
FF, + FessFast = Four VOL mot sé tu nhiên K, n
15 Chứng mình các đẳng thức sau uới số EYbonaci:
a FoF” Fy? = (A)
b FoF, + FyF, + + Fons Fan = Fan
6 Fy = F, + F; > F, + one ™ Fo + Fạa = F;„.-1
18 Dã y số a, được định nghĩa qui nạp nhu sau:
a, = 1
a, = 2
Giả sử tất có các số tự nhiên nhỏ hơn n đều đã được
xúc định là thuộc da y trên hay không
Khi đó sốn sẽ được xóc định thuộc đã y trên nếu nó có thể biểu diễn duy nhất dưới dụng tổng của hai số bhác nhau của đã y trên
Ta cé vi du a,= 3, a, = 4, as = 6,
a Em hã y tính tay 10 số hạng đầu tiên của dãy trên