🧰 שיעור 4: ארגז הכלים

⏱️ 1.5 שעות | 🎯 מערכים ופונקציות

🎯 מטרות השיעור

📊 מערכים (Arrays)

מה זה מערך?

מערך = רשימה של ערכים מאותו טיפוס
אנלוגיה: כמו שורה של קופסאות ממוספרות (0, 1, 2, ...)
using System;

class Program
{
    static void Main()
    {
        // יצירת מערך עם ערכים
        int[] grades = { 85, 92, 78, 95, 88 };
        
        // גישה לאלמנט ספציפי (אינדקס מתחיל מ-0!)
        Console.WriteLine(grades[0]);  // 85
        Console.WriteLine(grades[2]);  // 78
        
        // שינוי ערך
        grades[1] = 90;
        
        // גודל המערך
        Console.WriteLine($"יש {grades.Length} ציונים");
        
        // מעבר על כל האלמנטים
        for (int i = 0; i < grades.Length; i++)
        {
            Console.WriteLine($"ציון {i+1}: {grades[i]}");
        }
        
        // foreach - דרך קלה יותר
        foreach (int grade in grades)
        {
            Console.WriteLine(grade);
        }
    }
}

יצירת מערך ריק:

// מערך בגודל 5 (ערכי ברירת מחדל: 0)
int[] numbers = new int[5];

numbers[0] = 10;
numbers[1] = 20;
// numbers[2], [3], [4] = 0

⚙️ פונקציות (Functions)

למה צריכים פונקציות?

using System;

class Program
{
    // פונקציה שמדפיסה הודעה
    static void SayHello()
    {
        Console.WriteLine("שלום!");
    }
    
    // פונקציה שמקבלת פרמטר
    static void Greet(string name)
    {
        Console.WriteLine($"שלום {name}!");
    }
    
    // פונקציה שמחזירה ערך
    static int Add(int a, int b)
    {
        return a + b;
    }
    
    // פונקציה שעובדת עם מערך
    static double CalculateAverage(int[] numbers)
    {
        int sum = 0;
        foreach (int num in numbers)
        {
            sum += num;
        }
        return (double)sum / numbers.Length;
    }
    
    static void Main()
    {
        // קריאה לפונקציות
        SayHello();
        
        Greet("שרה");
        
        int result = Add(5, 3);
        Console.WriteLine(result);  // 8
        
        int[] grades = { 85, 92, 78, 95 };
        double avg = CalculateAverage(grades);
        Console.WriteLine($"ממוצע: {avg}");
    }
}

מבנה פונקציה:

static טיפוס_חזרה שם_פונקציה(פרמטרים) { ... }

✍️ תרגולים

תרגיל 1: חיפוש בציונים (12 דקות)

כתבו שתי פונקציות:

  1. FindMax(int[] numbers) - מחזירה את המספר הגבוה ביותר
  2. FindMin(int[] numbers) - מחזירה את המספר הנמוך ביותר

בדקו עם: {85, 92, 78, 95, 88}

תרגיל 2: מחשבון עם פונקציות (15 דקות)

צרו 4 פונקציות:

ב-Main: קלטו 2 מספרים, קראו לכל הפונקציות והדפיסו תוצאות

תרגיל 3: הפיכת מערך (12 דקות)

כתבו פונקציה ReverseArray(int[] arr)

שמחזירה מערך חדש הפוך: [1,2,3] → [3,2,1]

תרגיל 4: פילטור זוגיים (15 דקות)

כתבו שתי פונקציות:

  1. GetEvenNumbers(int[] arr) - מחזירה רק זוגיים
  2. GetOddNumbers(int[] arr) - מחזירה רק אי-זוגיים

רמז: תצטרכו ללולאה שתספור כמה יש, ואז ליצור מערך בגודל המתאים

אתגר: פלינדרום (6 דקות)

כתבו IsPalindrome(int number)

בדקו אם מספר נקרא אותו דבר משני הכיוונים: 121, 1331, 12321

רמז: המירו למחרוזת והשוו לגרסה הפוכה

📝 סיכום

✅ מה למדנו: