lab 04 revision
TRANSCRIPT
8/4/2019 Lab 04 Revision
http://slidepdf.com/reader/full/lab-04-revision 1/3
Bài tập thự c hành số 04
Để đượ c đ iể m tuần này, các bạn phải hoàn thành bài 1 và bài 2. Bài 3, 4 không bắ t buộc. N ế u
bạn làm đượ c bài 3, 4 thì sẽ đượ c đ iể m thưở ng.
Mục đích:
• Ôn tậ p về các câu lệnh ra nhánh.• Ôn tậ p về các câu lệnh lặ p.
Bài 1: Giải phươ ng trình trùng phươ ng. Tên chươ ng trình: equation.c
Bạn hãy viết chươ ng trình giải phươ ng trình sau:
ax4 + bx2 + c = 0 (a ≠ 0).
Dữ liệu vào từ màn hình:• Dòng đầu ghi số phươ ng trình. • Các dòng tiế p theo mỗi dòng ghi ba số thực thể hiện ba hệ số phươ ng trình trùng phươ ng.
K ết quả ra màn hình:
• Tươ ng ứng vớ i mỗi phươ ng trình thì k ết quả theo định dạng sau:o Dòng đầu ghi số k là số nghiệm của phươ ng trình.o Dòng tiế p theo ghi k số thể hiện các nghiệm của phươ ng trình. Các nghi vớ i độ
chính xác là ba số ở hàng thậ p phân.
Dữ liệu vào K ết quả tươ ng ứ ng2
1 0 0
1 4
1
0.000
3
0.000 -2.000 2.000
Bài 2: Kiểm tra biểu thức ngoặc đúng. Tên chươ ng trình: brackets.c
Cho một biểu thức ngoặc gồm các ngoặc tròn: (, ). Hãy viết chươ ng kiểm tra tính đúng của biểuthức ngoặc.
Dữ liệu vào từ màn hình:
• Dòng đầu ghi số N (1 < N < 201) là số kí tự trong biểu thức ngoặc• Dòng hai ghi N kí tự thể hiện biểu thức ngoặc
K ết quả ra màn hình:
• Ghi yes trong tr ườ ng hợ p biểu thức ngoặc là đúng, hoặc no trong tr ườ ng hợ p ngượ c lại.
8/4/2019 Lab 04 Revision
http://slidepdf.com/reader/full/lab-04-revision 2/3
Dữ liệu vào K ết quả tươ ng ứ ng
4
()()
yes
4
())(
no
Bài 3 (bonus): Tên chươ ng trình: spiral .c
Cho một ma tr ận kích thướ c M*N, M hàng và N cột. Các số đượ c đánh trên ma tr ận từ trái sang phải và từ trên xuống dướ i, bắt đầu từ 1. Chẳng hạn, ma tr ận kích thướ c 3*4 sẽ là:
1 2 3 4
5 6 7 8
9 10 11 12
Bạn hãy in ma tr ận số đó theo hình xoán ốc bắt đầu từ ô (1,1) theo quy luật như hình dướ i đây.
Dữ liệu vào từ màn hình:
Nhậ p hai số M và N từ màn hình(M*N < 201).
K ết quả ra màn hình:
In các số trong các số trong ma tr ận theo hình xoắn ốc.
Dữ liệu vào K ết quả tươ ng ứ ng
M = 3
N = 4
1 2 3 4 8 12 11 10 9 5 6 7
8/4/2019 Lab 04 Revision
http://slidepdf.com/reader/full/lab-04-revision 3/3
Bài 4 (bonus): Rút gọn dãy số. Tên chươ ng trình: sequence.c
Cho một dãy số a1, …, an. Chúng ta cần thao tác dãy này sử dụng các phép toán reduce(i), thay phần tử ai và ai+1 bằng max(ai, ai+1). Chi phí của thao tác đó bằng max(ai, a i+1). K ết quả sẽ đượ cmột dãy có độ dài nhỏ hơ n. Thực hiện n-1 thao tác này sẽ đượ c dãy có độ dài bằng 1.
Nhiệm của bằng là thực hiện n-1 thao tác để rút gọn dãy số về 1 phần tử vớ i tổng chi phí nhỏ nhất.
Dữ liệu vào từ màn hình:
Dòng đầu chứa số n là số phần tử của dãy số ( 1 ≤ n ≤ 1000)
n dòng tiế p theo dòng thứ i+1 ghi số ai (0 ≤ ai ≤ 1,000,000,000)
K ết quả ra màn hình:
Ghi một số duy nhất là tổng chi phí thấ p nhất.
Dữ liệu vào K ết quả tươ ng ứ ng
3
1
2
3
5
Chú ý:
• Không dùng mảng để nhớ .
• Khi làm nhớ chứng minh cách làm là đúng!