Powtórka — lista produktów
Część sekcji Podstawy ścieżki R w Coddy. Lekcja 75 z 78.
Wyzwanie
ŁatwyOtrzymasz cztery wiersze danych wejściowych:
- Nazwę produktu (np.
Wireless Headphones) - Cenę (np.
79.99) - Liczbę sztuk w magazynie (np.
25) - Procent rabatu do zastosowania (np.
20)
Wykonaj następujące operacje:
- Utwórz nazwaną listę o nazwie
productz elementami:name(znakowy),price(numeryczny),stock(numeryczny) orazavailable(ustawiony naTRUE, jeśli liczba sztuk w magazynie jest większa niż 0, w przeciwnym razie naFALSE) - Wyświetl nazwę produktu za pomocą operatora
$ - Oblicz cenę po rabacie (cena pierwotna pomniejszona o procent rabatu) i zaktualizuj element
price - Dodaj nowy element o nazwie
discountedz wartościąTRUE - Zmniejsz wartość
stocko 1 (symulując zakup) - Usuń element
availablez listy - Wyświetl końcową listę
Na przykład, jeśli dane wejściowe to:
Smart Watch
150
10
25Wynik powinien być następujący:
[1] "Smart Watch"
$name
[1] "Smart Watch"
$price
[1] 112.5
$stock
[1] 9
$discounted
[1] TRUEWyjaśnienie:
- Cena pierwotna 150 przy rabacie 25%: 150 - (150 * 25/100) = 112.5
- Liczba sztuk w magazynie zmniejszona z 10 do 9
- Element
availablezostał usunięty z końcowej listy
Spróbuj swoich sił
# Wczytaj dane wejściowe
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: Napisz swój kod poniżej
# 1. Utwórz listę nazwaną 'product' z elementami: name, price, stock i available
# 2. Wypisz nazwę produktu, używając operatora $
# 3. Oblicz cenę po rabacie i zaktualizuj element price
# 4. Dodaj nowy element o nazwie 'discounted' z wartością TRUE
# 5. Zmniejsz stock o 1
# 6. Usuń element 'available' z listy
# 7. Wypisz końcową listęWszystkie lekcje w sekcji Podstawy
4Operatory, część 2
Operatory logiczne (AND, OR)Operatory logiczne, część 2 (NOT)Powtórka — prosta logikaLogika wektoryzowana, część 1Logika wektoryzowana, część 27Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych od użytkownika10FizzBuzz z niespodzianką
Omówienie gryFunkcja FizzBuzz2Zmienne i typy danych
Liczbowy typ danychCałkowity typ danychZnakowy typ danychLogiczny typ danychSprawdzanie typów danychKonwencje nazewnictwaBrakujące wartości: NAPodsumowanie – tworzenie zmiennych8Pętle
Pętla forPętla whilePrzerwijNastępna iteracja (continue)Powtórka — silniaGenerowanie sekwencji (seq, :)Pętle zagnieżdżonePowtórka — dynamiczne wprowadzanie danych11Wektory
Tworzenie wektorów za pomocą c()Dostęp do elementów wektoraModyfikowanie wektorówOperacje na wektorachPowtórka – wektor cenowyPowtórka – odwrócony wektorWektory nazwane14Listy w R
Tworzenie listDostęp do elementów listyModyfikowanie listListy nazwanePowtórka — lista produktów3Operatory, część 1
Operatory arytmetyczneDzielenie całkowite i moduloOperatory przypisaniaPowtórka — prosta matematykaOperatory porównania6Podstawowe wejście/wyjście
Wyświetlanie danychCat jako wyjścieWyjście z użyciem zmiennychOdczyt danych wejściowych za pomocą readline()Podstawy konwersji typówPowtórka — kalkulator wiekuPowtórka — prawda czy fałsz9Funkcje
Deklarowanie funkcjiArgumenty funkcjiWartości zwracanePowtórzenie — funkcja SigmaPowtórzenie — funkcja walidującaDomyślne wartości parametrówPoćwicz samodzielnie: Kompilator R online