Menu
CoddyTech

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

Entraînons-nous à travailler avec les slices en Go en créant un simple gestionnaire de liste de courses !

Ta 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 à l’aide de son index
  3. findExpensiveItems : Trouver les articles dont le prix dépasse 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 montre comment toutes ces opérations fonctionnent 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 l’article à l’index indiqué
func removeItem(names []string, prices []float64, index int) ([]string, []float64) {
	// Votre code ici
	return names, prices
}

// findExpensiveItems renvoie les articles dont le prix dépasse le seuil
func findExpensiveItems(names []string, prices []float64, threshold float64) []string {
	// Votre code ici
	return nil
}

// calculateTotalCost renvoie 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 premiers articles
	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)
	
	// Rechercher et afficher les articles coûteux
	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

Entraînez-vous par vous-même : Compilateur Go en ligne