🔁 שיעור 3: חזרה זה כוח

⏱️ 1.5 שעות | 🎯 לולאות for ו-while

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

למה לולאות?
כשרוצים לחזור על פעולה הרבה פעמים, במקום לכתוב את אותו הקוד 100 פעם - נשתמש בלולאה!

🔄 לולאת for

מתי משתמשים?

כשיודעים כמה פעמים רוצים לחזור על משהו

using System;

class Program
{
    static void Main()
    {
        // for בסיסי - מדפיס 5 פעמים
        for (int i = 1; i <= 5; i++)
        {
            Console.WriteLine($"פעם {i}");
        }
        
        // הדפסת מספרים זוגיים
        for (int i = 0; i <= 10; i += 2)
        {
            Console.WriteLine(i);  // 0, 2, 4, 6, 8, 10
        }
        
        // ספירה לאחור
        for (int i = 10; i >= 1; i--)
        {
            Console.WriteLine(i);
        }
        Console.WriteLine("התחלנו!");
    }
}

מבנה לולאת for:

for (התחלה; תנאי; שינוי) { ... }

⏳ לולאת while

מתי משתמשים?

כשלא יודעים כמה פעמים נצטרך לחזור - תלוי בתנאי

using System;

class Program
{
    static void Main()
    {
        // while פשוט
        int tries = 0;
        while (tries < 3)
        {
            Console.WriteLine("נסה שוב");
            tries++;
        }
        
        // דוגמה: ניחוש מספר
        int secret = 7;
        int guess = 0;
        
        while (guess != secret)
        {
            Console.Write("נחש מספר בין 1-10: ");
            guess = int.Parse(Console.ReadLine());
            
            if (guess > secret)
                Console.WriteLine("גבוה מדי!");
            else if (guess < secret)
                Console.WriteLine("נמוך מדי!");
        }
        
        Console.WriteLine("🎉 נכון!");
    }
}

🔁 לולאות מקוננות

לולאה בתוך לולאה - חזק מאוד!

// הדפסת טבלת כפל מלאה
for (int i = 1; i <= 5; i++)
{
    for (int j = 1; j <= 5; j++)
    {
        Console.Write($"{i * j}\t");  // \t = tab
    }
    Console.WriteLine();  // שורה חדשה
}

// פלט:
// 1    2    3    4    5
// 2    4    6    8    10
// 3    6    9    12   15
// 4    8    12   16   20
// 5    10   15   20   25

🎮 break ו-continue

// break - עוצר את הלולאה
for (int i = 1; i <= 10; i++)
{
    if (i == 5)
        break;  // עוצר ב-5
    Console.WriteLine(i);  // 1, 2, 3, 4
}

// continue - מדלג על הסיבוב הנוכחי
for (int i = 1; i <= 5; i++)
{
    if (i == 3)
        continue;  // מדלג על 3
    Console.WriteLine(i);  // 1, 2, 4, 5
}

✍️ תרגולים (65 דקות)

תרגיל 1: לוח כפל (10 דקות)

משימה: הדפיסו לוח כפל של 7 (7×1 עד 7×10)

דוגמת פלט:

7 × 1 = 7
7 × 2 = 14
7 × 3 = 21
...
7 × 10 = 70
💡 רמז
for (int i = 1; i <= 10; i++)
{
    Console.WriteLine($"7 × {i} = {7 * i}");
}

תרגיל 2: סכום סדרה (12 דקות)

משימה: חשבו את הסכום 1+2+3+...+n

המשתמש מזין את n, התוכנית מחשבת ומדפיסה את הסכום

דוגמת פלט:

הזן מספר: 5
1+2+3+4+5 = 15
💡 רמז
int n = int.Parse(Console.ReadLine());
int sum = 0;
for (int i = 1; i <= n; i++)
{
    sum += i;
}
Console.WriteLine($"הסכום: {sum}");

תרגיל 3: משחק "ראש/עץ" (18 דקות)

משימה: המשתמש מנחש "ראש" או "עץ", והתוכנית בוחרת אקראי

המשחק ממשיך עד שהמשתמש מנחש נכון

דוגמת פלט:

נחש (ראש/עץ): ראש
טעות! זה היה עץ
נחש (ראש/עץ): עץ
נכון! ניחשת ב-2 ניסיונות
💡 רמז
Random rand = new Random();
int computer = rand.Next(0, 2);  // 0 או 1
int tries = 0;
bool won = false;

while (!won)
{
    tries++;
    Console.Write("נחש (0=ראש, 1=עץ): ");
    int guess = int.Parse(Console.ReadLine());
    
    if (guess == computer)
    {
        Console.WriteLine($"נכון ב-{tries} ניסיונות!");
        won = true;
    }
    else
    {
        Console.WriteLine("טעות!");
    }
}

תרגיל 4: ציור משולש כוכבים (15 דקות)

משימה: הדפיסו משולש מכוכבים

פלט מצופה:

*
**
***
****
*****

שלב 2 (אתגר): תנו למשתמש לבחור את הגובה!

💡 רמז
for (int i = 1; i <= 5; i++)
{
    for (int j = 1; j <= i; j++)
    {
        Console.Write("*");
    }
    Console.WriteLine();
}

🏆 אתגר: מציאת מספרים ראשוניים (10 דקות)

משימה: בדקו אם מספר הוא ראשוני

מספר ראשוני = מתחלק רק ב-1 ובעצמו

דוגמאות: 2, 3, 5, 7, 11, 13...

לא ראשוניים: 4, 6, 8, 9, 10...

💡 רמז
int num = int.Parse(Console.ReadLine());
bool isPrime = true;

if (num < 2)
    isPrime = false;
else
{
    for (int i = 2; i < num; i++)
    {
        if (num % i == 0)
        {
            isPrime = false;
            break;
        }
    }
}

if (isPrime)
    Console.WriteLine("ראשוני!");
else
    Console.WriteLine("לא ראשוני");

📝 סיכום

✅ מה למדנו היום?

💡 טיפים: