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 de nomes de itens que podem ser comprados dentro do orçamento.
Percorra os itens na ordem. Para cada item, verifique se adicionar seu preço ao 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 ultrapassar o orçamento, ignore-o e continue verificando os itens restantes.
Lógica:
- Comece com um total acumulado de
0.0e um array de resultados 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 ultrapassar o orçamento, ignore-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 dos preços correspondentes (com o mesmo tamanho de itemNames)budget(Double): O valor máximo que pode ser gasto
Retorno: Um array de nomes de itens que podem ser comprados 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
// Resultado: ["Apple", "Bread"]
// (Apple custa 2.0, Bread custa 3.5, o total é 5.5 que está dentro do orçamento)
// (Milk faria o total 9.5, que excede 6.0, então é 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 móduloAtribuição compostaRecapitulação - Matemática simplesOperadores de comparação7Entrada e Saída Básicas
Função printInterpolação de stringsEntrada com readlineConversão de tiposRecapitulação - Até 120Recapitulação - Verdadeiro ou falso10Funções
Declare uma funçãoParâmetros e argumentosValores de retornoRótulos de argumentosRevisão - função SigmaRevisão - função de validaçãoValores padrão13Iterando sobre Sequências
Iterando sobre ElementosO Método EnumeradoIterando sobre Strings P1Iterando sobre Strings P22Variáveis
Let vs VarAnotações de tipoNúmerosStringBooleanoConvenções de nomenclaturaRecapitulação - Inicializar variáveis5Operadores — Parte 2
Operadores lógicos — Parte 1Operadores lógicos — Parte 2Revisão — Lógica simplesOperadores lógicos — Parte 3Operador ternário8Calculadora de Divisão da Conta
Mensagem de Boas-vindasObtendo Dados de Entrada11FizzBuzz com um Toque Especial
Visão Geral do JogoA Função FizzBuzz3Optionais
O que são OptionaisDesembrulhando com If LetGuard LetOperador de Coalescência de NilRecapitulação - Desembrulhamento Seguro6Tomada de Decisões
Instrução IfIf - ElseRecapitulação - Calculadora SimplesInstrução SwitchSwitch com Intervalos9Laços de Repetição
Laço For-InLaço WhileLaço Repeat-WhileBreakContinueRevisão - FatorialIntervalos em LaçosLaço AninhadoRevisão - Entrada Dinâmica12Fundamentos de Arrays
Declarando um ArrayAcessando ElementosModificando ArraysMétodos de ArrayRevisão - Lista de ProdutosRevisão - Array InvertidoTuplas15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do ProgramaPratique por conta própria: Playground de Swift