Nên mua gì
Thuộc phần Kiến thức nền tảng trong hành trình Swift của Coddy. Bài học 86 trên 86.
Thử thách
DễViết một hàm whatToBuy nhận itemNames, itemPrices và budget, rồi trả về một mảng tên các món đồ có thể mua trong phạm vi ngân sách.
Duyệt qua các món đồ theo thứ tự. Với mỗi món, kiểm tra xem cộng giá của món đó vào tổng hiện tại có vượt quá ngân sách hay không. Nếu không, thêm tên món đồ vào danh sách mua sắm và cập nhật tổng. Nếu món đồ khiến tổng vượt quá ngân sách, bỏ qua món đó và tiếp tục kiểm tra các món còn lại.
Logic:
- Bắt đầu với tổng hiện tại là
0.0và một mảng kết quả rỗng - Duyệt qua từng món đồ theo chỉ số
- Nếu tổng hiện tại cộng với giá của món đồ hiện tại nhỏ hơn hoặc bằng ngân sách, hãy thêm tên món đồ vào kết quả và cập nhật tổng hiện tại
- Nếu thêm món đồ đó sẽ vượt quá ngân sách, hãy bỏ qua và tiếp tục với món tiếp theo
- Trả về mảng tên các món đồ có giá phù hợp với ngân sách
Tham số:
itemNames([String]): Mảng tên các món đồitemPrices([Double]): Mảng giá tương ứng (có cùng độ dài với itemNames)budget(Double): Số tiền tối đa có thể chi
Giá trị trả về: Mảng tên các món đồ có thể mua trong phạm vi ngân sách, theo thứ tự xuất hiện của chúng ([String])
Ví dụ:
// itemNames: ["Apple", "Bread", "Milk"]
// itemPrices: [2.0, 3.5, 4.0]
// budget: 6.0
// Result: ["Apple", "Bread"]
// (Apple costs 2.0, Bread costs 3.5, total is 5.5 which is within budget)
// (Milk would make total 9.5, which exceeds 6.0, so it's skipped)Tự làm thử
func whatToBuy(itemNames: [String], itemPrices: [Double], budget: Double) -> [String] {
// Viết code ở đây
}
Tất cả bài học trong Kiến thức nền tảng
4Các toán tử, phần 1
Toán tử số họcToán tử moduloPhép gán kết hợpÔn tập: phép tính đơn giảnToán tử so sánh7Nhập xuất cơ bản
Hàm in raNội suy chuỗiĐầu vào từ dòngChuyển đổi kiểu dữ liệuÔn tập đến 120Ôn tập đúng hay sai3Giá trị tùy chọn
Giá trị tùy chọn là gìMở gói bằng if letGuard letToán tử gộp nilÔn tập: mở gói an toàn6Ra quyết định
Câu lệnh ifIf và elseÔn tập: máy tính đơn giảnCâu lệnh switchSwitch với khoảng giá trị9Vòng lặp
Vòng lặp for-inVòng lặp whileVòng lặp repeat-whileBreakContinueÔn tập: giai thừaDải giá trị trong vòng lặpVòng lặp lồng nhauÔn tập: đầu vào động12Kiến thức cơ bản về mảng
Khai báo mảngTruy cập phần tửChỉnh sửa mảngPhương thức của mảngÔn tập: Danh sách sản phẩmÔn tập: Mảng đảo ngượcTuple15Trình theo dõi chi tiêu hằng ngày
Tổng quan về dự ánThoát chương trìnhTự luyện tập: Playground Swift