Menu
CoddyTech

ملخص - القوائم الديناميكية

جزء من قسم الأساسيات في رحلة GO على Coddy. الدرس 83 من 109.

challenge icon

التحدي

متوسط

لنتدرّب على التعامل مع الشرائح في Go من خلال إنشاء مدير بسيط لقائمة التسوق!

مهمتك هي تنفيذ عدة دوال تتعامل مع قائمة التسوق:

  1. addItems: أضف عناصر جديدة إلى قائمة التسوق
  2. removeItem: أزل عنصرًا من القائمة باستخدام الفهرس
  3. findExpensiveItems: اعثر على العناصر التي تتجاوز أسعارها حدًا معينًا
  4. calculateTotalCost: احسب التكلفة الإجمالية لجميع العناصر

يُمثَّل كل عنصر في قائمة التسوق بسلسلة نصية (الاسم) وبقيمة من النوع float64 (السعر). توضّح الدالة main كيفية عمل جميع هذه العمليات معًا.

جرّب بنفسك

package main

import "fmt"

// تضيف addItems عناصر جديدة وأسعارها إلى قائمة التسوق
func addItems(names []string, prices []float64, newNames []string, newPrices []float64) ([]string, []float64) {
	// اكتب شيفرتك هنا
	return names, prices
}

// تزيل removeItem عنصرًا عند الفهرس المحدد
func removeItem(names []string, prices []float64, index int) ([]string, []float64) {
	// اكتب شيفرتك هنا
	return names, prices
}

// تعيد findExpensiveItems العناصر التي تتجاوز أسعارها الحد المعين
func findExpensiveItems(names []string, prices []float64, threshold float64) []string {
	// اكتب شيفرتك هنا
	return nil
}

// تعيد calculateTotalCost مجموع جميع الأسعار
func calculateTotalCost(prices []float64) float64 {
	// اكتب شيفرتك هنا
	return 0
}

func main() {
	// هيّئ قوائم تسوق فارغة
	names := []string{}
	prices := []float64{}
	
	// أضف العناصر الأولية
	initialNames := []string{"Apples", "Milk", "Bread"}
	initialPrices := []float64{2.99, 3.49, 2.29}
	
	names, prices = addItems(names, prices, initialNames, initialPrices)
	
	// اطبع قائمة التسوق الأولية
	fmt.Println("Initial Shopping List:")
	for i := range names {
		fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
	}
	
	// احسب التكلفة الإجمالية واطبعها
	total := calculateTotalCost(prices)
	fmt.Printf("\nTotal Cost: $%.2f\n", total)
	
	// ابحث عن العناصر مرتفعة الثمن واطبعها
	priceThreshold := 3.00
	expensiveItems := findExpensiveItems(names, prices, priceThreshold)
	
	fmt.Printf("\nExpensive Items (above $%.2f):\n", priceThreshold)
	for _, item := range expensiveItems {
		fmt.Println(item)
	}
	
	// أضف عنصرًا جديدًا
	names, prices = addItems(names, prices, []string{"Cheese"}, []float64{4.99})
	
	// أزل عنصرًا
	names, prices = removeItem(names, prices, 1)
	fmt.Println("\nRemoved item at index 1")
	
	// اطبع قائمة التسوق النهائية
	fmt.Println("\nFinal Shopping List:")
	for i := range names {
		fmt.Printf("%d. %s - $%.2f\n", i, names[i], prices[i])
	}
}

جميع دروس الأساسيات

تدرّب بنفسك: مترجم Go عبر الإنترنت