עבור לתוכן

שאלת בגרות מכשילה

Featured Replies

פורסם

ביום חמישי האחרון עשיתי את בחינת הבגרות במדעי המחשב א'.

נתקלתי בשאלה שבהתחלה לא נראתה קשה אבל אחר כך חשבתי אחרת.

השאלה הייתה ככה (ציטוט מדוייק מהטופס לגבי C#):

לפניך כותרת של פונקציה/פעולה הכתובה ב- C#.

public static int Test(int x, int y, double z)

לפניך חמישה זימונים של הפונקציה/הפעולה:

בעבור כל אחד מחמשת הזימונים כתוב אם הוא תקין או אינו תקין.

אם אינו תקין - הסבר מדוע.

x, t, m, k, c, b הם משתנים מטיפוס שלם.

1)

x = Test(3, 7, 8.2);

2)

t = Test(b, b, 2.5);

3)

c = Test(7.8);

4)

m = Test(4, 6.25, 9);

5)


if (Test(2, 4, 6.1) == 1)
k = 7;

אני חושב שלכולם ברור ש-1 ו- 5 תקינים וגם ש- 3 ו- 4 לא תקינים.

עכשיו, לגבי 2 אני כתבתי שהוא תקין. אחרי המבחן חלק מהחברים שלי רשמו לא תקין וגם הסבירו שמשתנה b, למרות שהוא מסוג שלם, לא מכיל שום ערך.

התשובה שלהם נשמעת לי הגיונית אבל לדעתי גם שלי.

מה אתם אומרים? מה אמורה להיות התשובה?

פורסם

אם ניתן לכתוב הסבר רק אם הוא לא תקין, אז להגיד שהוא לא תקין ולרשום בהסבר, זאת בהנחה שהמשתנה b לא היה מאותחל.

פורסם

אבל המחשב לא יכול לעגל (ב 4 ו-3)? פעם בניתי תוכנית (או ב VB או ב C++) שהתוכנית עיגלה אוטומטית...

אני בטוח ב 100% ש 3 לא נכון (לא הוגדרו ערכי ברירת מחדל) אבל ב-4 אולי המחשב מעגל...

פורסם

אני גם עשיתי את הבגרות 1 2 ו5 נכונים

2 נכון כי רשום לך לפני שB הוא משתנה מטיפוס שלם..מה זה משנה מה הערך שלו לא מראים את כל התוכנית..

פורסם

הערך לא משנה, משנה אם הוא קיים או לא. מכיוון שבבגרות הם לא רוצים לשאול שאלות נורמליות, אז הם שואלים שאלות מכשילות כאלו.

המרה אוטומתית נעשית ע"י הקומפיילר ולא המחשב, בשפה נורמלית הקומפיילר יכריח אותך בפועל לבצע את ההמרה ולא יניח שאתה רוצה לעגל.

פורסם

אני אומר תקין כי ברגע שאתה יוצר משתנה הוא מכיל ערך זבל. אם נאמר ש B קיים זה תקין.

פורסם

^^

כל המשתנים ב-c# מאותחלים. אם הם פרימיטיביים אז הם מקבלים ערך 0 (או false, במקרה של boolean) ואם הם קלאסים הם מקבלים ערך null.

פורסם

^^

לא בדיוק, אם המשתנה הוגדר כמשתנה לוקאלי בבלוק של קוד, אז הוא נחשב ללא מאותחל:

5.1.7 Local variables

....

A local variable is not automatically initialized and thus has no default value.

For the purpose of definite assignment checking, a local variable is considered initially unassigned.

....

פורסם

גם באסמלר מדעי המחשב ב הייתה שאלה דומה מכשילה כזו

אבל רק צריך לשבת על זה קצת וזה שאלת מתנה

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים