Menu
CoddyTech

Rückblick – Dynamische Listen

Teil des Abschnitts Grundlagen der GO-Journey von Coddy. Lektion 83 von 109.

challenge icon

Aufgabe

Mittel

Üben wir den Umgang mit Slices in Go, indem wir einen einfachen Einkaufslisten-Manager erstellen!

Deine Aufgabe ist es, mehrere Funktionen zu implementieren, die eine Einkaufsliste bearbeiten:

  1. addItems: Füge der Einkaufsliste neue Artikel hinzu
  2. removeItem: Entferne einen Artikel anhand seines Index aus der Liste
  3. findExpensiveItems: Finde Artikel, deren Preise über einem Schwellenwert liegen
  4. calculateTotalCost: Berechne die Gesamtkosten aller Artikel

Jeder Artikel in der Einkaufsliste wird durch einen String (Name) und einen float64 (Preis) dargestellt. Die Funktion main demonstriert, wie all diese Operationen zusammenarbeiten.

Probier es selbst

package main

import "fmt"

// addItems fügt der Einkaufsliste neue Artikel und deren Preise hinzu
func addItems(names []string, prices []float64, newNames []string, newPrices []float64) ([]string, []float64) {
	// Dein Code hier
	return names, prices
}

// removeItem entfernt einen Artikel am angegebenen Index
func removeItem(names []string, prices []float64, index int) ([]string, []float64) {
	// Dein Code hier
	return names, prices
}

// findExpensiveItems gibt Artikel zurück, deren Preise über dem Schwellenwert liegen
func findExpensiveItems(names []string, prices []float64, threshold float64) []string {
	// Dein Code hier
	return nil
}

// calculateTotalCost gibt die Summe aller Preise zurück
func calculateTotalCost(prices []float64) float64 {
	// Dein Code hier
	return 0
}

func main() {
	// Leere Einkaufslisten initialisieren
	names := []string{}
	prices := []float64{}
	
	// Erste Artikel hinzufügen
	initialNames := []string{"Apples", "Milk", "Bread"}
	initialPrices := []float64{2.99, 3.49, 2.29}
	
	names, prices = addItems(names, prices, initialNames, initialPrices)
	
	// Die ursprüngliche Einkaufsliste ausgeben
	fmt.Println("Initial Shopping List:")
	for i := range names {
		fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
	}
	
	// Gesamtkosten berechnen und ausgeben
	total := calculateTotalCost(prices)
	fmt.Printf("\nTotal Cost: $%.2f\n", total)
	
	// Teure Artikel finden und ausgeben
	priceThreshold := 3.00
	expensiveItems := findExpensiveItems(names, prices, priceThreshold)
	
	fmt.Printf("\nExpensive Items (above $%.2f):\n", priceThreshold)
	for _, item := range expensiveItems {
		fmt.Println(item)
	}
	
	// Einen neuen Artikel hinzufügen
	names, prices = addItems(names, prices, []string{"Cheese"}, []float64{4.99})
	
	// Einen Artikel entfernen
	names, prices = removeItem(names, prices, 1)
	fmt.Println("\nRemoved item at index 1")
	
	// Gib die endgültige Einkaufsliste aus
	fmt.Println("\nFinal Shopping List:")
	for i := range names {
		fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
	}
}

Alle Lektionen in Grundlagen

Übe selbstständig: Online-Go-Compiler