You are on page 1of 2

Hanoi University of Science and Technology EE3490E - Programming Techniques

Semester 2022.1 EE3491 - Kĩ thuật lập trình


Lecturer: Hoàng Đức Chính

Homework 02
Sinh viên cần thiết kế và sử dụng (các) hàm phù hợp trong cái bài tập dưới đây. Lưu ý: “hàm” được
yêu cầu thiết kế và viết trong các bài tập dưới đây không phải là hàm main. Hàm main chỉ được sử
dụng để minh họa cách sử dụng các hàm đã thiết kế.

Bài 1 (bắt buộc)


Dãy Fibonaci là dãy số nguyên nối tiếp nhau theo trật tự như sau:
0, 1, 1, 2, 3, 5, 8, 13, 21, …
Ngoại trừ hai số đầu tiên, thì số tiếp theo trong dãy Fibonaci là tổng của 2 số đứng trước.
a. Sinh viên cần phải viết một chương trình có thiết kế và sử dụng hàm phù hợp cho phép người
sử dụng nhập vào số n - với n là số nguyên dương – chương trình phải in ra màn hình toàn bộ
dãy Finaboci tính từ phần tử thứ 1 tới phần tử thứ n. Kết quả in ra màn hình phải có định dạng
như sau:
Thứ tự Giá trị
1- 0
2- 1
3- 1
4- 2
5- 3
6- 5
7- 8
8- 13
9- 21

b. Theo giới hạn của ngôn ngữ lập trình C, thì giá trị của số nguyên n, cho dù là số long int thì
chỉ nằm trong khoảng một số có 9 chữ số - số nguyên 32 bit. Như vậy, nếu chương trình sử
dụng các biến hiển thị kết quả là kiểu số nguyên có khả năng chương trình sẽ bị tràn số. Viết
một hàm để cung cấp cơ chế kiểm tra xem khi nào dãy số bị tràn.

c. Để khắc phục việc tràn số này, sinh viên được yêu cầu viết một hàm mới, cho phép tính toán
được số Fibonaci với chiếu dài của dãy số này có thể lên tới 80 số số hạng. Chương trình cho
phép người dùng có thể nhập vào số hạng Fibonaci cần in và in ra kết quả trên màn hình.

Gợi ý: để hiện thị số này, sinh viên nên khai báo một mảng số nguyên int nResult[80]
và sử dụng mảng này để hiện thị kết quả

Bài 2:
Viết chương trình cho phép nhận đầu vào là một câu bất kỳ và sắp xếp các chữ cái trong mỗi
từ của câu đó theo thứ tự a b c và in kết quả ra màn hình. Ví dụ:
Đầu vào: computer program in basic.
Đầu ra: cemoprtu agmoprr in abcis.
Bài 3:
Viết chương trình cho phép nhập một xâu ký tự từ bàn phím in ra kết quả là một xâu có các từ
được viết theo thứ tự ngược lại so với xâu đầu vào, ví dụ: “How Are You” được viết thành “You
Are How”.

Bài 4:
Viết một chương trình nhập một câu (hoặc một đoạn văn) và một từ (hoặc một xâu ký tự), sau
đó thay thế từ (xâu ký tự) đó trong câu (hoặc đoạn văn) bằng số lượng các dấu “*” tương ưng nếu
từ (xâu ký tự) đó có xuất hiện, nếu không in ra thông báo không tìm thấy.

Bài 5:
Viết một chương trình chuyển đổi một xâu ký tự có dạng số sang một số nguyên, ví dụ: xâu
“124” thành số 124 kiểu int. In ra thông báo lỗi phù hợp nếu xâu đầu vào không phải dạng số.

Bài 6:
Viết một chương trình kiểm tra xem một xâu ký tự nhập từ bàn phím có phải là xâu đối xứng
hay không.

Bài 7:
Viết một chương trình xóa tất cả các ký tự trắng thừa trong một xâu ký tự và in ra số lượng
các ký tự trắng đã xóa.

Bài 8
Viết một chương trình nhập một xâu ký tự và in ra các ký tự có trong câu kèm theo tần suất
xuất hiện của mỗi ký tự trong xâu đó ngăn cách bởi dấu cách.

Bài 9 (bắt buộc)


Viết một chương trình nhập vào danh sách sinh viên trong một lớp học lập trình và sử dụng
kiểu dữ liệu phù hợp. Danh sách bao gồm thông tin của các sinh viên như mã số sinh viên, họ và
tên, ngày tháng năm sinh, điểm thi cuối kỳ. Lưu danh sách sinh viên này ra một file csv có tên là
“ee3491.csv”, thông tin của mỗi sinh viên được viết trên một dòng riêng, mỗi thông tin mã số sinh
viên, họ tên, ngày tháng năm sinh và điểm thi được phân cách bởi dấu phẩy “,”; ví dụ:
“20200001,Adam Smith,22/12/2000,8.2”.

Bài 10
Viết một chương trình đọc file có định dạng như ở bài 9. Dựa trên thông tin điểm thi, xác định
xem sinh viên đạt được điểm A, B, C, D, hay F, thêm thông tin điểm bằng chữ này vào một file csv
khác cùng với các thông tin đã có, ví dụ: “20200001,Adam Smith,22/12/2000,8.5,A”. Thống kê
xem trong lớp có bao nhiêu sinh viên đạt được các điểm A, B, C, D, hay F.

You might also like