Quoi acheter
Fait partie de la section Fondamentaux du Journey Ruby de Coddy — leçon 88 sur 88.
Défi
FacileLisez une liste de courses et l'inventaire d'un magasin à partir de l'entrée, puis déterminez quels articles peuvent être achetés.
Vous recevrez :
- Première ligne : les noms des articles séparés par des virgules représentant votre liste de courses
- Deuxième ligne : le nombre d'articles dans l'inventaire du magasin
- Lignes suivantes : chacune contient un nom d'article et une quantité séparés par une virgule
Par exemple, l'entrée d'inventaire apples,5 signifie que le magasin a 5 pommes en stock.
Pour chaque article de votre liste de courses, affichez le nom de l'article suivi de - Yes s'il peut être acheté, ou - No s'il ne le peut pas.
Un article peut être acheté si :
- Il existe dans l'inventaire du magasin ET
- Sa quantité est supérieure à 0
Si un article n'est pas du tout dans l'inventaire, ou a une quantité de 0, affichez No.
Par exemple, si les entrées sont :
apples,bread,milk
3
apples,5
bread,0
milk,3La sortie devrait être :
apples - Yes
bread - No
milk - YesSi les entrées sont :
eggs,butter,cheese,yogurt
2
eggs,12
cheese,0La sortie devrait être :
eggs - Yes
butter - No
cheese - No
yogurt - NoSi les entrées sont :
water
1
water,100La sortie devrait être :
water - YesEssayez vous-même
# Lire la liste de courses (articles séparés par des virgules)
shopping_list = gets.chomp.split(',')
# Lire le nombre d'articles en inventaire
n = gets.to_i
# Lire l'inventaire du magasin
inventory = {}
n.times do
line = gets.chomp.split(',')
item_name = line[0]
quantity = line[1].to_i
inventory[item_name] = quantity
end
# TODO: Écrivez votre code ci-dessous
# Pour chaque article de la liste de courses, vérifiez s'il peut être acheté
# Un article peut être acheté s'il existe dans l'inventaire ET que sa quantité est > 0
# Affichez "item_name - Yes" ou "item_name - No" pour chaque articleToutes les leçons de Fondamentaux
4Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 3Opérateurs logiques, partie 47Calculateur de partage de facture
Message de bienvenueSaisie de l'utilisateur10FizzBuzz avec une variante
Présentation du jeuLa méthode FizzBuzz2Variables et types de données
Nombres et variablesType de données StringType de données BooleanType de données SymbolVérification des types de donnéesConventions de nommageRécapitulatif - Création de variables5Prise de décision
Instruction IfIf - ElseRécapitulatif - Calculatrice simpleIf - Else imbriquésInstruction Unless8Boucles
Boucle For avec des intervallesBoucle WhileBreakNextRécapitulatif - FactorielleBoucle TimesBoucle UntilBoucles imbriquéesRécapitulatif - Entrée dynamique3Les opérateurs, partie 1
Opérateurs arithmétiquesOpérateur moduloRaccourcis arithmétiquesRécapitulatif - Calculs simplesOpérateurs de comparaison6Entrées/Sorties de base
Sortie avec putsSortie avec print et pSortie avec des variablesEntrée avec getsLa méthode chompConversion de typesRécapitulatif - Calculateur d'âgeRécapitulatif - Vrai ou Faux9Méthodes
Définir une méthodeParamètres de méthodeValeurs de retourRécapitulatif - Méthode SigmaRécapitulatif - Méthode de validationValeurs de paramètres par défaut12Itérer sur les collections
L'itérateur EachEach avec indexItérer sur les chaînes de caractèresMap et Collect