Thử thách: Tính tổng các số
Thuộc phần Kiến thức cơ bản trong hành trình Dart của Coddy. Bài học 93 trên 94.
Thử thách
DễTrong thử thách này, bạn sẽ tạo một hàm để tính tổng các số trong danh sách dựa trên một số điều kiện.
Bạn có một danh sách số nguyên và cần hoàn thành hàm sumWithCondition để chỉ cộng các số đáp ứng những tiêu chí cụ thể.
Hàm này cần:
- Tính tổng tất cả các số trong danh sách lớn hơn giá trị
threshold - Dừng cộng số ngay sau khi tổng vượt quá giá trị
maxSum(tổng cuối cùng có thể lớn hơnmaxSum) - Trả về tổng cuối cùng
Quan trọng: Hàm dừng cộng số sau khi cộng một số khiến tổng vượt quá maxSum. Điều này có nghĩa là kết quả cuối cùng có thể lớn hơn maxSum.
Ví dụ: Nếu các số lớn hơn ngưỡng là [15, 20, 25, 30] và maxSum là 50:
- Cộng 15: tổng = 15 (tiếp tục)
- Cộng 20: tổng = 35 (tiếp tục)
- Cộng 25: tổng = 60 (vượt quá 50, nên dừng tại đây)
- Kết quả: 60 (không phải 50)
Tự làm thử
void main() {
// Các test case
List<int> numbers = [5, 10, 15, 20, 25, 30];
// Tính tổng các số lớn hơn 12, tối đa 50
int result = sumWithCondition(numbers, 12, 50);
print('Sum of numbers > 12 (max 50): $result');
// Tính tổng các số lớn hơn 8, tối đa 100
result = sumWithCondition(numbers, 8, 100);
print('Sum of numbers > 8 (max 100): $result');
}
// TODO: Hoàn thiện hàm này để tính tổng các số theo điều kiện
int sumWithCondition(List<int> numbers, int threshold, int maxSum) {
int sum = 0;
// TODO: Duyệt qua danh sách numbers
// TODO: Chỉ cộng các số lớn hơn threshold vào tổng
// TODO: Ngừng cộng nếu tổng vượt quá maxSum
return sum;
}Tất cả bài học trong Kiến thức cơ bản
4Các toán tử phần 2
Toán tử so sánhPhép AND logicPhép OR logicPhép NOT logicToán tử kiểm tra kiểuÔn tập: So sánh10Bộ sưu tập: kiến thức cơ bản về ánh xạ
Ánh xạ là gì?Tạo ánh xạTruy cập giá trị bằng khóaCặp khóa và giá trịLấy kích thước ánh xạLấy các khóaLấy các giá trịKiểm tra khóa có tồn tại không13An toàn với giá trị null chuyên sâu
Tìm hiểu giá trị nullKiểu dữ liệu nullableKiểu dữ liệu non-nullableToán tử khẳng định non-nullKhởi tạo muộnÔn tập: xử lý null an toàn16Thử thách về kiến thức cơ bản
Thử thách: Danh sách phép tínhThử thách: Tính tổng các sốThử thách: Tìm tích2Biến và kiểu dữ liệu cơ bản
Biến là gì?ChuỗiSố nguyên (int)Số thực (double)Giá trị logic (bool)Suy luận kiểu dữ liệu với 'var'Biến finalBiến hằng sốQuy tắc đặt tênAn toàn với null cơ bảnÔn tập: khai báo biến8Luồng điều khiển: vòng lặp
Vòng lặp forVòng lặp whileVòng lặp do-whileDùng break trong vòng lặpDùng continue trong vòng lặpÔn tập: lặp lại code11Hàm cơ bản
Hàm là gì?Định nghĩa hàm cơ bảnGọi hàmHàm có tham sốHàm trả về giá trịTừ khóa 'void'Cú pháp mũi tênÔn tập: hàm đơn giản14Chuyển đổi kiểu dữ liệu
Chuyển chuỗi thành số nguyênChuyển chuỗi thành số thựcChuyển số thành chuỗiXử lý lỗi chuyển đổi3Các toán tử, phần 1
Toán tử số họcPhép chia số nguyênToán tử moduloToán tử tăng và giảmToán tử gán rút gọnÔn tập: phép tính đơn giản6Luồng điều khiển: ra quyết định
Câu lệnh 'if'Câu lệnh 'else'Câu lệnh 'else if'Ôn tập: quyết định đơn giảnCâu lệnh 'if' lồng nhauCâu lệnh 'switch'9Cơ bản về danh sách trong Collections
Danh sách là gì?Tạo danh sáchTruy cập theo chỉ sốLấy độ dài danh sáchThêm phần tửXóa phần tửKiểm tra danh sách có rỗng khôngDuyệt qua danh sáchTự luyện tập: Trình biên dịch Dart online