Menu
Coddy logo textTech

Riepilogo - Liste dinamiche

Fa parte della sezione Fondamenti del percorso GO di Coddy. Lezione 83 di 109.

challenge icon

Sfida

Medio

Facciamo pratica con le slice in Go creando un semplice gestore di liste della spesa!

Il tuo compito è implementare diverse funzioni che modificano una lista della spesa:

  1. addItems: Aggiungi nuovi articoli alla lista della spesa
  2. removeItem: Rimuovi un articolo dalla lista in base all'indice
  3. findExpensiveItems: Trova gli articoli con prezzi superiori a una soglia
  4. calculateTotalCost: Calcola il costo totale di tutti gli articoli

Ogni articolo della lista della spesa è rappresentato da una stringa (nome) e da un float64 (prezzo). La funzione main mostra tutte queste operazioni in azione.

Provalo tu

package main

import "fmt"

// addItems aggiunge nuovi articoli e i relativi prezzi alla lista della spesa
func addItems(names []string, prices []float64, newNames []string, newPrices []float64) ([]string, []float64) {
	// Il tuo codice qui
	return names, prices
}

// removeItem rimuove un articolo all'indice specificato
func removeItem(names []string, prices []float64, index int) ([]string, []float64) {
	// Il tuo codice qui
	return names, prices
}

// findExpensiveItems restituisce gli articoli con prezzi superiori alla soglia
func findExpensiveItems(names []string, prices []float64, threshold float64) []string {
	// Il tuo codice qui
	return nil
}

// calculateTotalCost restituisce la somma di tutti i prezzi
func calculateTotalCost(prices []float64) float64 {
	// Il tuo codice qui
	return 0
}

func main() {
	// Inizializza le liste della spesa vuote
	names := []string{}
	prices := []float64{}
	
	// Aggiungi gli articoli iniziali
	initialNames := []string{"Apples", "Milk", "Bread"}
	initialPrices := []float64{2.99, 3.49, 2.29}
	
	names, prices = addItems(names, prices, initialNames, initialPrices)
	
	// Stampa la lista della spesa iniziale
	fmt.Println("Initial Shopping List:")
	for i := range names {
		fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
	}
	
	// Calcola e stampa il costo totale
	total := calculateTotalCost(prices)
	fmt.Printf("\nTotal Cost: $%.2f\n", total)
	
	// Trova e stampa gli articoli costosi
	priceThreshold := 3.00
	expensiveItems := findExpensiveItems(names, prices, priceThreshold)
	
	fmt.Printf("\nExpensive Items (above $%.2f):\n", priceThreshold)
	for _, item := range expensiveItems {
		fmt.Println(item)
	}
	
	// Aggiungi un nuovo articolo
	names, prices = addItems(names, prices, []string{"Cheese"}, []float64{4.99})
	
	// Rimuovi un articolo
	names, prices = removeItem(names, prices, 1)
	fmt.Println("\nRemoved item at index 1")
	
	// Stampa la lista della spesa finale
	fmt.Println("\nFinal Shopping List:")
	for i := range names {
		fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
	}
}

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Go online