תרגול מדעי המחשב

קליטה מסוננת בתחום

בינוני C#

המשימה

כתוב פעולה בשם getNum שמקבלת מספר שלם max, וקולטת מהמשתמש מספר שלם בין
1 ל-max (כולל). אם המספר שהוזן מחוץ לתחום — הפעולה תקלוט שוב ושוב, עד
שייקלט מספר תקין. לבסוף היא תחזיר את הקלט התקין.

זוהי תבנית מסננת קלט, והיא חוזרת בכל תכנית שמקבלת נתונים ממשתמש.

ריצה לדוגמה עבור getNum(50):
  120
  Invalid, try again
  -3
  Invalid, try again
  17

והערך המוחזר הוא 17.

הנחיות:
• הפעולה מחזירה את הערך ואינה מדפיסה אותו. ההדפסה נעשית ב-main על
  הערך המוחזר. פעולה שמדפיסה במקום להחזיר אינה שמישה מחדש.
• מותר ורצוי להדפיס הודעת שגיאה בין ניסיונות — זה חלק מהממשק, לא
  התוצאה.
• הקליטה הראשונה מתבצעת לפני הבדיקה הראשונה. אין דרך לבדוק ערך שלא
  נקלט עדיין.
• הקליטה חייבת להתבצע שוב בתוך הלולאה, אחרת התכנית תיתקע.
• הגבולות 1 ו-max עצמם תקינים.

```ds:table
{"title":"ריצה לדוגמה עבור max=50","rows":[["קלט","בתחום?","פעולה"],["120","לא","קולטים שוב"],["-3","לא","קולטים שוב"],["17","כן","מחזירים 17"]]}
```

קוד הפתיחה

using System;

class Program {

    static int GetNum(int max) {
        // כתוב את הפתרון כאן — קולט עד שהערך בתחום, ומחזיר אותו
        return 0;
    }

    static void Main() {
        Console.WriteLine(GetNum(50));
    }
}

כדי לכתוב, להריץ ולקבל משוב — התחבר עם חשבון Google. לוקח שנייה.

התרגיל הבא ברכה בשם
המשוב נוצר על ידי AI ועשוי לטעות. אם אתה חושב שהפתרון שלך נכון — כנראה שאתה צודק. הציון כאן הוא לתרגול בלבד ואינו מדווח לאיש.
אל תכתוב בקוד פרטים אישיים כמו שם מלא, טלפון או כתובת. הקוד נשלח לשירות בדיקה חיצוני.