Ôn tập: Danh sách sản phẩm
Thuộc phần Kiến thức nền tảng trong hành trình R của Coddy. Bài học 75 trên 78.
Thử thách
DễBạn sẽ nhận được bốn dòng đầu vào:
- Tên sản phẩm (ví dụ:
Wireless Headphones) - Giá (ví dụ:
79.99) - Số lượng hàng tồn kho (ví dụ:
25) - Phần trăm giảm giá cần áp dụng (ví dụ:
20)
Thực hiện các thao tác sau:
- Tạo một danh sách có tên là
productvới các phần tử:name(ký tự),price(kiểu số),stock(kiểu số) vàavailable(đặt thànhTRUEnếu số lượng hàng tồn kho lớn hơn 0, nếu không thì đặt thànhFALSE) - In tên sản phẩm bằng toán tử
$ - Tính giá sau giảm giá (giá ban đầu trừ đi phần trăm giảm giá) và cập nhật phần tử
price - Thêm phần tử mới có tên là
discountedvới giá trịTRUE - Giảm
stockđi 1 (mô phỏng một lần mua hàng) - Xóa phần tử
availablekhỏi danh sách - In danh sách cuối cùng
Ví dụ, nếu dữ liệu đầu vào là:
Smart Watch
150
10
25Đầu ra sẽ là:
[1] "Smart Watch"
$name
[1] "Smart Watch"
$price
[1] 112.5
$stock
[1] 9
$discounted
[1] TRUEGiải thích:
- Giá ban đầu là 150, giảm giá 25%: 150 - (150 * 25/100) = 112.5
- Số lượng hàng tồn kho giảm từ 10 xuống còn 9
- Phần tử
availableđã bị xóa khỏi danh sách cuối cùng
Tự làm thử
# Đọc đầu vào
con <- file("stdin", "r")
product_name <- suppressWarnings(readLines(con, n = 1))
price <- as.numeric(suppressWarnings(readLines(con, n = 1)))
stock <- as.numeric(suppressWarnings(readLines(con, n = 1)))
discount_percentage <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)
# TODO: Viết code bên dưới
# 1. Tạo danh sách (list) có tên 'product' gồm các phần tử (element): name, price, stock và available
# 2. In ra tên sản phẩm bằng toán tử (operator) $
# 3. Tính giá sau khi giảm và cập nhật phần tử price
# 4. Thêm phần tử mới tên 'discounted' với giá trị (value) TRUE
# 5. Giảm stock đi 1
# 6. Xóa phần tử 'available' khỏi danh sách
# 7. In ra danh sách cuối cùngTất cả bài học trong Kiến thức nền tảng
4Toán tử phần 2
Toán tử logic (AND, OR)Toán tử logic phần 2 (NOT)Ôn tập: logic đơn giảnLogic vector hóa phần 1Logic vector hóa phần 22Biến và kiểu dữ liệu
Kiểu dữ liệu sốKiểu dữ liệu số nguyênKiểu dữ liệu ký tựKiểu dữ liệu logicKiểm tra kiểu dữ liệuQuy tắc đặt tênGiá trị thiếu: NATóm tắt: tạo biến8Vòng lặp
Vòng lặp forVòng lặp whileBreakNext (continue)Ôn tập: giai thừaTạo dãy (seq, :)Vòng lặp lồng nhauÔn tập: đầu vào động11Vectơ
Tạo vectơ bằng c()Truy cập phần tử trong vectơChỉnh sửa vectơCác phép toán trên vectơÔn tập: vectơ giáÔn tập: vectơ đảo ngượcVectơ có tên14Danh sách trong R
Tạo danh sáchTruy cập phần tử trong danh sáchChỉnh sửa danh sáchDanh sách có tênÔn tập: Danh sách sản phẩm3Toán tử phần 1
Toán tử số họcPhép chia lấy phần nguyên và phép moduloToán tử gánÔn tập: phép tính đơn giảnToán tử so sánh6Nhập xuất cơ bản
In đầu raDùng cat để in đầu raĐầu ra với biếnĐọc đầu vào bằng readline()Cơ bản về chuyển đổi kiểuÔn tập: máy tính tuổiÔn tập: đúng hay sai9Hàm
Khai báo hàmĐối số hàmGiá trị trả vềÔn tập: hàm SigmaÔn tập: hàm xác thựcGiá trị tham số mặc địnhTự luyện tập: Trình biên dịch R online