- Bài toán đặt ra:
Xem công thức tính sau đây (đề thi tuyển sinh cao học ngành
KHMT, năm 2011):
Trong đó Max, Min lần lượt là giá trị lớn nhất,
nhỏ nhất của n số thực (được nhập vào từ
thiết bị nhập chuẩn) a0,
a1, …, an-1.
Chỉ dùng duy nhất 1 vòng lặp (for hoặc while), đề xuất cách thức
để nhập n số thực như trên và tính giá
trị của biểu thức Aver,
xuất kết quả tính ra thiết bị xuất chuẩn. Viết chương trình để minh họa đề xuất
đó.
- Việc cần giải quyết:
Khi tính tổng (ai –max)2 và
(ai –max)2 hai giá trị max, min ta chưa có
và cũng không thể bắt người dùng nhập vào 2 lần dãy ai nên việc đặt ra là phải làm sao vòng
lặp đưa ra chỉ thực hiện 2 việc sau:
- Tìm
max, min.
- Tính cụm S nào đó không liên hệ với
max,min
(ai –max)2 = ai2 -2*ai*max + max2
(ai –min)2 = ai2 -2*ai*min + min2
+ = 2*ai2 -2*ai*(max+min) + (max2+min2)
Như vậy bạn đã đưa được về
2 giá trị cần tính (biến thiên) tách biệt khỏi max, min và đưa max, min (hằng
số) tồn tại độc lập
è Chỉ cần tính a22=2*ai2 & a2=2*ai
- Bài giải tham khảo:
Không có nhận xét nào:
Đăng nhận xét