Menu
Coddy logo textTech

Was kaufen

Teil des Abschnitts Grundlagen der R-Journey von Coddy. Lektion 78 von 78.

challenge icon

Aufgabe

Einfach

Erstelle eine Funktion namens what_to_buy, die zwei Argumente übernimmt: budget (einen numerischen Wert) und prices (einen benannten Vektor mit den Artikelpreisen). Die Funktion soll einen Zeichenvektor zurückgeben, der die Namen aller Artikel mit Preisen enthält, die kleiner oder gleich dem Budget sind.

Wenn keine Artikel erschwinglich sind, gib einen leeren Zeichenvektor mit character(0) zurück.

Du erhältst die folgenden Eingaben:

  1. Den Budgetbetrag (eine Zahl)
  2. Eine durch Kommas getrennte Liste von Artikelnamen (z. B. apple,banana,steak,bread)
  3. Eine durch Kommas getrennte Liste der entsprechenden Preise (z. B. 2,1,15,3)

Verarbeite die Eingaben, um einen benannten Preisvektor zu erstellen, rufe deine Funktion auf und gib das Ergebnis aus. Verwende print(), um den zurückgegebenen Zeichenvektor anzuzeigen.

Wenn die Eingabe beispielsweise lautet:

5
apple,banana,steak,bread
2,1,15,3

Die Ausgabe sollte lauten:

[1] "apple"  "banana" "bread"

Wenn die Eingabe lautet:

10
laptop,phone,tablet
999,599,399

Die Ausgabe sollte lauten:

character(0)

Hinweise:

  • Verwende strsplit(input, ",")[[1]], um durch Kommas getrennte Zeichenfolgen in Vektoren aufzuteilen.
  • Verwende as.numeric(), um die Preiszeichenfolgen in Zahlen umzuwandeln.
  • Verwende names(prices) <- item_names, um einen benannten Vektor zu erstellen.
  • Verwende logische Indizierung mit names(), um die Namen erschwinglicher Artikel zu extrahieren.

Probier es selbst

# Eingabe lesen
con <- file("stdin", "r")
budget <- as.numeric(suppressWarnings(readLines(con, n = 1)))
item_names_input <- suppressWarnings(readLines(con, n = 1))
prices_input <- suppressWarnings(readLines(con, n = 1))
close(con)

# Eingaben parsen
item_names <- strsplit(item_names_input, ",")[[1]]
price_values <- as.numeric(strsplit(prices_input, ",")[[1]])

# Erstelle einen benannten Vektor der Preise
prices <- price_values
names(prices) <- item_names

# TODO: Schreibe deine Funktion what_to_buy unten
# Die Funktion sollte budget und prices als Argumente entgegennehmen
# und einen Zeichenvektor der erschwinglichen Artikelnamen zurückgeben


# Funktion aufrufen und das Ergebnis ausgeben
result <- what_to_buy(budget, prices)
print(result)

Alle Lektionen in Grundlagen

Übe selbstständig: Online-R-Compiler