Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

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

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

challenge icon

التحدي

متوسط

لنمارس العمل مع الشرائح (slices) في 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])
	}
}

جميع دروس Fundamentals