Cosa comprare
Fa parte della sezione Fondamenti del percorso Swift di Coddy. Lezione 86 di 86.
Sfida
FacileScrivi una funzione whatToBuy che accetta itemNames, itemPrices e budget e restituisce un array di nomi di articoli acquistabili entro il budget.
Esamina gli articoli nell’ordine in cui compaiono. Per ciascun articolo, controlla se aggiungendo il suo prezzo al totale corrente si resta entro il budget. In tal caso, aggiungi il nome dell’articolo alla lista della spesa e aggiorna il totale. Se un articolo supererebbe il budget, saltalo e continua a controllare gli articoli rimanenti.
Logica:
- Parti da un totale corrente pari a
0.0e da un array dei risultati vuoto - Esamina ogni articolo in base al suo indice
- Se il totale corrente più il prezzo dell’articolo attuale è minore o uguale al budget, aggiungi il nome dell’articolo al risultato e aggiorna il totale corrente
- Se aggiungere l’articolo supererebbe il budget, saltalo e passa all’articolo successivo
- Restituisci l’array dei nomi degli articoli acquistabili
Parametri:
itemNames([String]): array dei nomi degli articoliitemPrices([Double]): array dei prezzi corrispondenti (della stessa lunghezza di itemNames)budget(Double): l’importo massimo che si può spendere
Valore restituito: un array dei nomi degli articoli acquistabili entro il budget, nell’ordine in cui compaiono ([String])
Esempio:
// itemNames: ["Apple", "Bread", "Milk"]
// itemPrices: [2.0, 3.5, 4.0]
// budget: 6.0
// Result: ["Apple", "Bread"]
// (Apple costs 2.0, Bread costs 3.5, total is 5.5 which is within budget)
// (Milk would make total 9.5, which exceeds 6.0, so it's skipped)Provalo tu
func whatToBuy(itemNames: [String], itemPrices: [Double], budget: Double) -> [String] {
// Scrivi il codice qui
}
Tutte le lezioni di Fondamenti
4Operatori – Parte 1
Operatori aritmeticiOperatore moduloAssegnazione compostaRiepilogo - Matematica sempliceOperatori di confronto7I/O di base
Funzione printInterpolazione di stringheInput con ReadLineConversione di tipoRipasso - Fino a 120Ripasso - Vero o falso10Funzioni
Dichiarare una funzioneParametri e argomentiValori restituitiEtichette degli argomentiRiepilogo - Funzione SigmaRiepilogo - Funzione di validazioneValori predefiniti13Iterare sulle sequenze
Iterare sugli elementiIl metodo enumerateIterare sulle stringhe P1Iterare sulle stringhe P22Variabili
Let vs VarAnnotazioni di tipoNumeriStringaBooleanoConvenzioni di denominazioneRiepilogo - Inizializzare le variabili5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Riepilogo - Logica sempliceOperatori logici Parte 3Operatore ternario8Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire i dati11FizzBuzz con una variante
Panoramica del giocoLa funzione FizzBuzz3Valori opzionali
Cosa sono i valori opzionaliEstrazione del valore con if letGuard letOperatore di coalescenza nilRiepilogo - Estrazione sicura del valore6Decisioni
Istruzione ifIf - ElseRipasso - Calcolatrice sempliceIstruzione switchSwitch con intervalli9Cicli
Ciclo for-inCiclo whileCiclo repeat-whileBreakContinueRipasso - FattorialeIntervalli nei cicliCiclo annidatoRipasso - Input dinamicoEsercitati da solo: Playground Swift