Menu
Coddy logo textTech

Ö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

Basit bir alışveriş listesi yöneticisi oluşturarak Go'da dilimler üzerinde çalışmayı pratik yapalım!

Göreviniz, bir alışveriş listesini işleyen birkaç işlevi uygulamaktır:

  1. addItems: Alışveriş listesine yeni öğeler ekler
  2. removeItem: Listedeki bir öğeyi dizinine göre kaldırır
  3. findExpensiveItems: Fiyatları bir eşik değerinin üzerinde olan öğeleri bulur
  4. calculateTotalCost: Tüm öğelerin toplam maliyetini hesaplar

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ünler ve fiyatlarını ekler
func addItems(names []string, prices []float64, newNames []string, newPrices []float64) ([]string, []float64) {
	// Kodunuz buraya
	return names, prices
}

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

// findExpensiveItems eşik değerinin üzerindeki fiyatlara sahip ürünleri döndürür
func findExpensiveItems(names []string, prices []float64, threshold float64) []string {
	// Kodunuz buraya
	return nil
}

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

func main() {
	// Boş alışveriş listelerini başlat
	names := []string{}
	prices := []float64{}
	
	// Başlangıç ürünlerini ekle
	initialNames := []string{"Apples", "Milk", "Bread"}
	initialPrices := []float64{2.99, 3.49, 2.29}
	
	names, prices = addItems(names, prices, initialNames, initialPrices)
	
	// Başlangıç alışveriş listesini yazdır
	fmt.Println("Initial Shopping List:")
	for i := range names {
		fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
	}
	
	// Toplam maliyeti hesapla ve yazdır
	total := calculateTotalCost(prices)
	fmt.Printf("\nTotal Cost: $%.2f\n", total)
	
	// Pahalı ürünleri bul ve yazdır
	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 ekle
	names, prices = addItems(names, prices, []string{"Cheese"}, []float64{4.99})
	
	// Bir ürünü kaldır
	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