Qué comprar
Parte de la sección Fundamentos del Journey de Swift de Coddy. Lección 86 de 86.
Desafío
FácilEscribe una función whatToBuy que tome itemNames, itemPrices y budget, y devuelva un array de nombres de artículos que se puedan comprar dentro del presupuesto.
Recorre los artículos en orden. Para cada artículo, comprueba si sumar su precio al total acumulado se mantendría dentro del presupuesto. Si es así, añade el nombre del artículo a tu lista de compras y actualiza el total. Si un artículo superara el presupuesto, omítelo y continúa comprobando los artículos restantes.
Lógica:
- Comienza con un total acumulado de
0.0y un array de resultados vacío - Recorre cada artículo por índice
- Si el total acumulado más el precio del artículo actual es menor o igual que el presupuesto, añade el nombre del artículo al resultado y actualiza el total acumulado
- Si añadir el artículo superara el presupuesto, omítelo y continúa con el artículo siguiente
- Devuelve el array de nombres de artículos asequibles
Parámetros:
itemNames([String]): Array de nombres de artículositemPrices([Double]): Array de precios correspondientes (con la misma longitud que itemNames)budget(Double): La cantidad máxima que se puede gastar
Devuelve: Un array de nombres de artículos que se pueden comprar dentro del presupuesto, en el orden en que aparecen ([String])
Ejemplo:
// itemNames: ["Apple", "Bread", "Milk"]
// itemPrices: [2.0, 3.5, 4.0]
// budget: 6.0
// Resultado: ["Apple", "Bread"]
// (Apple cuesta 2.0, Bread cuesta 3.5, el total es 5.5 que está dentro del presupuesto)
// (Milk haría que el total sea 9.5, lo cual excede 6.0, así que se omite)Pruébalo tú mismo
func whatToBuy(itemNames: [String], itemPrices: [Double], budget: Double) -> [String] {
// Escribe el código aquí
}
Todas las lecciones de Fundamentos
4Operadores, parte 1
Operadores aritméticosOperador móduloAsignación compuestaRepaso: matemáticas simplesOperadores de comparación7Entrada/salida básica
Función printInterpolación de cadenasEntrada con ReadLineConversión de tiposRepaso: hasta 120Repaso: verdadero o falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoEtiquetas de argumentosRepaso: función SigmaRepaso: función de validaciónValores predeterminados13Iteración sobre secuencias
Iteración sobre elementosEl método enumeradoIteración sobre cadenas P1Iteración sobre cadenas P22Variables
Let vs VarAnotaciones de tipoNúmerosCadenaBooleanoConvenciones de nomenclaturaRepaso: inicializar variables5Operadores, parte 2
Operadores lógicos, parte 1Operadores lógicos, parte 2Repaso: lógica simpleOperadores lógicos, parte 3Operador ternario8Calculadora para dividir la cuenta
Mensaje de bienvenidaObtención de datos11FizzBuzz con un giro
Descripción del juegoLa función FizzBuzz3Opcionales
Qué son los opcionalesDesenvolver con If LetGuard LetOperador de coalescencia nilRepaso: desenvoltura segura6Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleSentencia SwitchSwitch con rangos9Bucles
Bucle For-InBucle WhileBucle Repeat-WhileBreakContinueRepaso - FactorialRangos en buclesBucle anidadoRepaso - Entrada dinámicaPractica por tu cuenta: Playground de Swift