Menu
Coddy logo textTech

Récapitulatif - Listes dynamiques

Fait partie de la section Fondamentaux du Journey GO de Coddy — leçon 83 sur 109.

challenge icon

Défi

Moyen

Pratiquons la manipulation des slices en Go en créant un gestionnaire de liste de courses simple !

Votre tâche consiste à implémenter plusieurs fonctions qui manipulent une liste de courses :

  1. addItems : Ajouter de nouveaux articles à la liste de courses
  2. removeItem : Supprimer un article de la liste par son index
  3. findExpensiveItems : Trouver les articles dont le prix est supérieur à un seuil
  4. calculateTotalCost : Calculer le coût total de tous les articles

Chaque article de la liste de courses est représenté par une chaîne de caractères (nom) et un float64 (prix). La fonction principale démontre toutes ces opérations fonctionnant ensemble.

Essayez vous-même

package main

import "fmt"

// addItems ajoute de nouveaux articles et leurs prix à la liste de courses
func addItems(names []string, prices []float64, newNames []string, newPrices []float64) ([]string, []float64) {
	// Votre code ici
	return names, prices
}

// removeItem supprime un article à l'index spécifié
func removeItem(names []string, prices []float64, index int) ([]string, []float64) {
	// Votre code ici
	return names, prices
}

// findExpensiveItems retourne les articles dont le prix est supérieur au seuil
func findExpensiveItems(names []string, prices []float64, threshold float64) []string {
	// Votre code ici
	return nil
}

// calculateTotalCost retourne la somme de tous les prix
func calculateTotalCost(prices []float64) float64 {
	// Votre code ici
	return 0
}

func main() {
	// Initialiser des listes de courses vides
	names := []string{}
	prices := []float64{}
	
	// Ajouter les articles initiaux
	initialNames := []string{"Apples", "Milk", "Bread"}
	initialPrices := []float64{2.99, 3.49, 2.29}
	
	names, prices = addItems(names, prices, initialNames, initialPrices)
	
	// Afficher la liste de courses initiale
	fmt.Println("Initial Shopping List:")
	for i := range names {
		fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
	}
	
	// Calculer et afficher le coût total
	total := calculateTotalCost(prices)
	fmt.Printf("\nTotal Cost: $%.2f\n", total)
	
	// Trouver et afficher les articles chers
	priceThreshold := 3.00
	expensiveItems := findExpensiveItems(names, prices, priceThreshold)
	
	fmt.Printf("\nExpensive Items (above $%.2f):\n", priceThreshold)
	for _, item := range expensiveItems {
		fmt.Println(item)
	}
	
	// Ajouter un nouvel article
	names, prices = addItems(names, prices, []string{"Cheese"}, []float64{4.99})
	
	// Supprimer un article
	names, prices = removeItem(names, prices, 1)
	fmt.Println("\nRemoved item at index 1")
	
	// Afficher la liste de courses finale
	fmt.Println("\nFinal Shopping List:")
	for i := range names {
		fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
	}
}

Toutes les leçons de Fondamentaux