Was kaufen
Teil des Abschnitts Grundlagen der Swift-Journey von Coddy. Lektion 86 von 86.
Aufgabe
EinfachSchreibe eine Funktion whatToBuy, die itemNames, itemPrices und budget entgegennimmt und ein Array mit den Namen der Artikel zurückgibt, die innerhalb des Budgets gekauft werden können.
Durchlaufe die Artikel in der vorgegebenen Reihenfolge. Prüfe für jeden Artikel, ob das Hinzufügen seines Preises zur laufenden Gesamtsumme innerhalb des Budgets bleiben würde. Wenn ja, füge den Artikelnamen deiner Einkaufsliste hinzu und aktualisiere die Gesamtsumme. Wenn ein Artikel das Budget überschreiten würde, überspringe ihn und prüfe die verbleibenden Artikel weiter.
Logik:
- Beginne mit einer laufenden Gesamtsumme von
0.0und einem leeren Ergebnis-Array - Durchlaufe jedes Element nach Index
- Wenn die laufende Gesamtsumme plus der Preis des aktuellen Artikels kleiner oder gleich dem Budget ist, füge den Artikelnamen zum Ergebnis hinzu und aktualisiere die laufende Gesamtsumme
- Wenn das Hinzufügen des Artikels das Budget überschreiten würde, überspringe ihn und fahre mit dem nächsten Artikel fort
- Gib das Array der erschwinglichen Artikelnamen zurück
Parameter:
itemNames([String]): Array mit ArtikelnamenitemPrices([Double]): Array mit den entsprechenden Preisen (dieselbe Länge wie itemNames)budget(Double): Der maximale Betrag, der ausgegeben werden kann
Rückgabe: Ein Array mit den Artikelnamen, die innerhalb des Budgets bezahlt werden können, in der Reihenfolge ihres Auftretens ([String])
Beispiel:
// itemNames: ["Apple", "Bread", "Milk"]
// itemPrices: [2.0, 3.5, 4.0]
// budget: 6.0
// Ergebnis: ["Apple", "Bread"]
// (Apple kostet 2.0, Bread kostet 3.5, Summe ist 5.5, was innerhalb des Budgets liegt)
// (Milk würde die Summe auf 9.5 bringen, was 6.0 überschreitet, daher wird es übersprungen)Probier es selbst
func whatToBuy(itemNames: [String], itemPrices: [Double], budget: Double) -> [String] {
// Schreibe hier den Code
}
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorZusammengesetzte ZuweisungRückblick – Einfache MathematikVergleichsoperatoren7Grundlagen der Ein- und Ausgabe
Print-FunktionString-InterpolationReadLine-EingabeTypkonvertierungWiederholung – Bis 120Wiederholung – Wahr oder falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteArgumentbezeichnungenWiederholung – Sigma-FunktionWiederholung – ValidierungsfunktionStandardwerte13Über Sequenzen iterieren
Über Elemente iterierenDie Enumerate-MethodeÜber Strings iterieren Teil 1Über Strings iterieren Teil 22Variablen
let vs. varTypannotationenZahlenStringBooleanNamenskonventionenRückblick – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Zusammenfassung – Einfache LogikLogische Operatoren Teil 3Ternärer Operator8Rechner zum Teilen der Rechnung
WillkommensnachrichtEingaben erfassen11FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion14Arrays – Fortgeschritten
Array-Slicing Teil 1Array-Slicing Teil 2SequenzoperatorenDie Contains-Methode3Optionals
Was sind Optionals?Entpacken mit If LetGuard LetNil-Coalescing-OperatorZusammenfassung – Sicheres Entpacken6Entscheidungen treffen
If-AnweisungIf - ElseRückblick – Einfacher TaschenrechnerSwitch-AnweisungSwitch mit Bereichen9Schleifen
For-In-SchleifeWhile-SchleifeRepeat-While-SchleifeBreakContinueZusammenfassung – FakultätBereiche in SchleifenVerschachtelte SchleifeZusammenfassung – Dynamische EingabeÜbe selbstständig: Swift-Playground