Menu
CoddyTech

Özet - Dinamik Listeler

Coddy'nin GO Journey'sinin Temeller bölümünün bir parçası. Ders 83 / 109.

challenge icon

Görev

Orta

Go'da dilimlerle çalışmayı basit bir alışveriş listesi yöneticisi oluşturarak uygulayalım!

Görevin, alışveriş listesini değiştiren birkaç işlevi uygulamak:

  1. addItems: Alışveriş listesine yeni öğeler ekle
  2. removeItem: Listedeki bir öğeyi dizinine göre kaldır
  3. findExpensiveItems: Fiyatı belirli bir eşiğin üzerindeki öğeleri bul
  4. calculateTotalCost: Tüm öğelerin toplam maliyetini hesapla

Alışveriş listesindeki her öğe bir string (ad) ve bir float64 (fiyat) ile temsil edilir. Main işlevi, tüm bu işlemlerin birlikte nasıl çalıştığını gösterir.

Kendin dene

package main

import "fmt"

// addItems, alışveriş listesine yeni ürünleri ve fiyatlarını ekler
func addItems(names []string, prices []float64, newNames []string, newPrices []float64) ([]string, []float64) {
	// Kodunuzu buraya yazın
	return names, prices
}

// removeItem, belirtilen index konumundaki ürünü kaldırır
func removeItem(names []string, prices []float64, index int) ([]string, []float64) {
	// Kodunuzu buraya yazın
	return names, prices
}

// findExpensiveItems, fiyatı eşik değerin üzerinde olan ürünleri döndürür
func findExpensiveItems(names []string, prices []float64, threshold float64) []string {
	// Kodunuzu buraya yazın
	return nil
}

// calculateTotalCost, tüm fiyatların toplamını döndürür
func calculateTotalCost(prices []float64) float64 {
	// Kodunuzu buraya yazın
	return 0
}

func main() {
	// Boş alışveriş listelerini oluşturun
	names := []string{}
	prices := []float64{}
	
	// İlk ürünleri ekleyin
	initialNames := []string{"Apples", "Milk", "Bread"}
	initialPrices := []float64{2.99, 3.49, 2.29}
	
	names, prices = addItems(names, prices, initialNames, initialPrices)
	
	// İlk alışveriş listesini yazdırın
	fmt.Println("Initial Shopping List:")
	for i := range names {
		fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
	}
	
	// Toplam maliyeti hesaplayıp yazdırın
	total := calculateTotalCost(prices)
	fmt.Printf("\nTotal Cost: $%.2f\n", total)
	
	// Pahalı ürünleri bulup yazdırın
	priceThreshold := 3.00
	expensiveItems := findExpensiveItems(names, prices, priceThreshold)
	
	fmt.Printf("\nExpensive Items (above $%.2f):\n", priceThreshold)
	for _, item := range expensiveItems {
		fmt.Println(item)
	}
	
	// Yeni bir ürün ekleyin
	names, prices = addItems(names, prices, []string{"Cheese"}, []float64{4.99})
	
	// Bir ürünü kaldırın
	names, prices = removeItem(names, prices, 1)
	fmt.Println("\nRemoved item at index 1")
	
	// Son alışveriş listesini yazdır
	fmt.Println("\nFinal Shopping List:")
	for i := range names {
		fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
	}
}

Temeller bölümündeki tüm dersler

Kendi başına pratik yap: Online Go derleyicisi