Đề thi cuối kỳ I môn Tin học cơ sở 4 - Đề 1 - Năm học 2019-2020 - Đại học Quốc gia Hà Nội

ĐẠI HỌC QUỐC GIA HÀ NỘI  
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM  
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN  
Độc lập - Tự do - Hạnh phúc  
ĐỀ THI CUỐI KỲ I NĂM HỌC 2019 - 2020  
Môn: Tin học cơ sở 4  
Lớp: Máy tính và khoa học thông tin  
ĐỀ 1  
Thời gian: 90 phút  
Họ và tên:..................................................... Mã sinh viên:................................  
Bài 1 Cho số liệu về chỉ số ô nhiễm môi trường từng ngày trong tháng 11 năm  
2019 ở Hà Nội, trong tệp data.txt, với định dạng như sau:  
• Dòng thứ nhất là n ngày trong tháng (từ 1 đến 30), mỗi ngày cách nhau  
một dấu cách  
• Dòng thứ hai là chỉ số PM2.5 (xi) tương ứng với từng ngày, mỗi chỉ số  
cách nhau một dấu cách  
Trong tệp dữ liệu, một số ngày sẽ không có dữ liệu ô nhiễm môi trường, khi  
đó chỉ số PM2.5 tương ứng sẽ bằng 0 (xi = 0).  
Yêu cầu: Đọc dữ liệu từ tệp data.txt để lấy ra mảng các chỉ số ô nhiễm môi  
trường của Hà Nội trong tháng 11. Sau đó thay thế tất cả các chỉ số PM2.5  
không có dữ liệu (giá trị xi = 0) bằng trung bình cộng của tất cả mảng chỉ  
số ô nhiễm PM2.5 (giá trị trung bình cộng được tính trên các dữ liệu hợp lệ  
xi = 0).  
Khi đó, cần hoàn thiện các phương thức sau trong lớp AirPollution.java:  
• Phương thức float[] readData(String fileName) cho phép đọc dữ liệu đầu  
vào từ tệp data.txt và trả về mảng chỉ số PM2.5 của các ngày trong tháng  
11.  
• Phương thức void replace(float[] pm) thực hiện yêu cầu thay thế tất cả  
các giá trị xi = 0 bằng giá trị trung bình của cả dãy. Trong đó, giá trị  
trung bình chỉ được tính trên các dữ liệu hợp lệ.  
Bài 2 Xây dựng một chương trình quản lí các cầu thủ bóng đá của một câu lạc  
bộ. Trong đó, các cầu thủ có các thuộc tính sau:  
• String name (họ và tên cầu thủ)  
• int number (số áo thường mặc)  
• int height (chiều cao của cầu thủ)  
• int weight (cân nặng của cầu thủ)  
• double bmi (chỉ số BMI của cầu thủ dựa vào chiều cao và cân nặng)  
1
• int location (vị trí của cầu thủ, giả thiết rằng mỗi cầu thủ chỉ đá ở một  
vị trí duy nhất). Thuộc tính này có thể nhận các giá trị sau:  
– 1 - nếu cầu thủ là thủ môn  
– 2 - nếu cầu thủ là hậu vệ  
– 3 - còn lại (nếu cầu thủ đá ở các vị trí khác thủ môn và hậu vệ)  
Yêu cầu chung:  
• Đọc dữ liệu từ tệp footballer.txt và trả về một danh sách các cầu thủ trong  
câu lạc bộ  
• Tính chỉ số BMI của từng cầu thủ  
• Sắp xếp danh sách cầu thủ theo chiều cao tăng dần  
• Nhập vào số áo của một cầu thủ bất kì. Kiểm tra xem cầu thủ đó có thể  
được thay thế bằng một cầu thủ khác hay không. Nếu không cần thay  
thế hoặc không tìm thấy số áo thay thế thì trả về null, ngược lại thì trả  
về dãy các số áo của những cầu thủ được tìm thấy. Trong đó, điều kiện  
để thay thế là:  
– Nếu cầu thủ là hậu vệ hoặc thủ môn thì không cần thay thế  
– Ngược lại, nếu cầu thủ đó không phải là hậu vệ hoặc thủ môn, thì cần  
tìm các cầu thủ khác cũng không phải là hậu vệ hoặc thủ môn và có  
chỉ số BMI gần nhất (tức là có giá trị tuyệt đối của hiệu hai chỉ số  
BMI nhỏ nhất) với cầu thủ cần thay thế, đồng thời thỏa mãn chiều  
cao không chênh lệch quá 5cm.  
Để hoàn thành các yêu cầu chung trên, các bạn cần xây dựng các lớp Foot-  
baller.java, FootballerTest.java. Trong đó:  
• Ở lớp Footballer.java: Hoàn thiện phương thức void setBmi(int height, int  
weight) để tính ra chỉ số BMI của một cầu thủ dựa vào chiều cao và cân  
nặng. Chỉ số BMI được tính theo công thức sau:  
height  
bmi =  
weigth2  
• Ở lớp FootballerTest.java hoàn thiện các phương thức:  
– Phương thức ArrayList<Footballer> readData(String fileName) để đọc  
một danh sách các cầu thủ từ tệp có tên là fileName. Têp fileName  
có cấu trúc như sau: Dòng đầu tiên là số cầu thủ, các dòng tiếp theo  
là thông tin của một cầu thủ, mỗi thuộc tính được ghi trên một dòng  
riêng biệt. Ví dụ:  
2 −→ Số cầu thủ  
Nguyen Quang Hai −→ Tên  
19 −→ Số áo thường mặc  
169 −→ Chiều cao  
60 −→ Cân nặng  
2
3 −→ Vị trí  
Ha Duc Chinh −→ Tên  
9 −→ Số áo thường mặc  
179 −→ Chiều cao  
80 −→ Cân nặng  
3 −→ Vị trí  
– Phương thức void sort(ArrayList<Footballer> footballers) để sắp xếp  
danh sách các cầu thủ theo chiều cao tăng dần  
– Phương thức ArrayList<Integer> find(ArrayList<Footballer> footballers,  
int number) để trả về kết quả của việc tìm kiếm các cầu thủ có thể  
thay thế cho số áo number. Nếu không cần thay thế hoặc không tìm  
thấy cầu thủ nào thỏa mãn điều kiện thì trả về null, ngược lại trả về  
dãy gồm các số áo của cầu thủ có hình thể tương tự theo đúng yêu  
cầu.  
3
pdf 3 trang yennguyen 16740 Free
Bạn đang xem tài liệu "Đề thi cuối kỳ I môn Tin học cơ sở 4 - Đề 1 - Năm học 2019-2020 - Đại học Quốc gia Hà Nội", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfde_thi_cuoi_ky_i_mon_tin_hoc_co_so_4_de_1_nam_hoc_2019_2020.pdf