O Que Comprar
Parte da seção Fundamentos do Journey de Swift da Coddy — lição 86 de 86.
Desafio
FácilEscreva uma função whatToBuy que receba itemNames, itemPrices e budget e retorne um array com os nomes dos itens que podem ser comprados dentro do orçamento.
Itere pelos itens em ordem. Para cada item, verifique se adicionar o seu preço ao seu total acumulado permaneceria dentro do orçamento. Se sim, adicione o nome do item à sua lista de compras e atualize o total. Se um item exceder o orçamento, pule-o e continue verificando os itens restantes.
Lógica:
- Comece com um total acumulado de
0.0e um array de resultado vazio - Percorra cada item pelo índice
- Se o total acumulado mais o preço do item atual for menor ou igual ao orçamento, adicione o nome do item ao resultado e atualize o total acumulado
- Se adicionar o item exceder o orçamento, pule-o e continue para o próximo item
- Retorne o array de nomes de itens acessíveis
Parâmetros:
itemNames([String]): Array de nomes de itensitemPrices([Double]): Array de preços correspondentes (mesmo comprimento que itemNames)budget(Double): O valor máximo que pode ser gasto
Retorna: Um array de nomes de itens que podem ser pagos dentro do orçamento, na ordem em que aparecem ([String])
Exemplo:
// itemNames: ["Apple", "Bread", "Milk"]
// itemPrices: [2.0, 3.5, 4.0]
// budget: 6.0
// Result: ["Apple", "Bread"]
// (Apple custa 2.0, Bread custa 3.5, o total é 5.5 que está dentro do orçamento)
// (Milk faria o total ser 9.5, o que excede 6.0, então ele é pulado)Experimente você mesmo
func whatToBuy(itemNames: [String], itemPrices: [Double], budget: Double) -> [String] {
// Escreva o código aqui
}
Todas as lições de Fundamentos
4Operadores Parte 1
Operadores AritméticosOperador de MóduloAtribuição CompostaRecapitulação - Matemática SimplesOperadores de Comparação7IO Básico
Função PrintInterpolação de StringsEntrada ReadLineConversão de TiposRecapitulação - Até 120Recapitulação - Verdadeiro ou Falso10Funções
Declarar uma FunçãoParâmetros e ArgumentosValores de RetornoRótulos de ArgumentosRecapitulação - Função SigmaRecapitulação - Função de ValidaçãoValores Padrão13Iterando sobre Sequências
Iterando sobre ElementosO Método EnumeratedIterando sobre Strings P1Iterando sobre Strings P22Variáveis
Let vs VarAnotações de TipoNúmerosStringBooleanosConvenções de NomenclaturaRecapitulação - Inicializar Variáveis5Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 3Operador Ternário8Calculadora de Divisão de Conta
Mensagem de Boas-vindasObtendo Entrada11FizzBuzz com um Diferencial
Visão Geral do JogoA Função FizzBuzz3Opcionais
O que são OpcionaisDesembrulhando com If LetGuard LetOperador de Coalescência NulaRecapitulação - Desembrulho Seguro6Tomada de Decisão
Estrutura IfIf - ElseRecapitulação - Calculadora SimplesEstrutura SwitchSwitch com Intervalos9Loops
Loop For-InLoop WhileLoop Repeat-WhileBreakContinueRecapitulação - FatorialIntervalos em LoopsLoop AninhadoRecapitulação - Entrada Dinâmica12Fundamentos de Arrays
Declarando um ArrayAcessando ElementosModificando ArraysMétodos de ArrayRecapitulação - Lista de ProdutosRecapitulação - Array InvertidoTuplas15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do Programa