שאלת מבחן בשפות תכנות - האוניברסיטה הפתוחה 2024 - Scheme
להלן תוכנית בשפת PROC ("יישגור"):
תוצאת הריצה של תוכנית זו היא:
א.
ב.
ג.
ד.
ה.
ו. התוכנית מחזירה שגיאה בזמן הריצה.
נמקו והסבירו את תשובתכם ע"י הסבר דרך חישוב תוצאת התוכנית. את תשובתכם רשמו במחברת הבחינה בלבד.
תוצאת הריצה של תוכנית זו היא:
א.
proc-valב.
(num-val 6)ג.
(num-val 5)ד.
(bool-val #t)ה.
(bool-val #f)ו. התוכנית מחזירה שגיאה בזמן הריצה.
נמקו והסבירו את תשובתכם ע"י הסבר דרך חישוב תוצאת התוכנית. את תשובתכם רשמו במחברת הבחינה בלבד.
העתק שאלה
שתף שאלה
סמן כחשוב
סמן כבוצע
האוניברסיטה הפתוחהמועד ב2024סמסטר ב
★★★★★
Schemeתכנות פונקציונלימודל הסביבהמעקב אחר קודlet
שימו לב: ה-
let מגדיר x כפרוצדורה מסדר גבוה שמקבלת פרוצדורה ומפעילה אותה עם 6. בגוף ה-let, x מופעל עם proc (x) -(x,1) כארגומנט — כלומר הפרוצדורה מסדר גבוה מקבלת פרוצדורה, ואז מפעילה אותה עם 6.התשובה הנכונה היא ג. `(num-val 5)`.
דרך חישוב:
התוכנית היא:
צעד 1:
צעד 2: גוף ה-
- ה-rator הוא
- ה-rand הוא
צעד 3: מפעילים את
צעד 4: מחשבים
צעד 5: בגוף
לכן התוצאה היא
דרך חישוב:
התוכנית היא:
(let x = proc (x) (x 6) in x proc (x) -(x,1) )
צעד 1:
let מגדיר x להיות הפרוצדורה proc (x) (x 6). זוהי פרוצדורה שמקבלת ארגומנט x ומפעילה אותו עם 6.צעד 2: גוף ה-
let הוא x proc (x) -(x,1). זהו call-exp שבו:- ה-rator הוא
x (הפרוצדורה שהגדרנו)- ה-rand הוא
proc (x) -(x,1) (פרוצדורה אנונימית שמחסרת 1 מארגומנטה)צעד 3: מפעילים את
x עם proc (x) -(x,1) כארגומנט. כלומר, בתוך הגוף (x 6), המשתנה x (הפרמטר) הוא עכשיו proc (x) -(x,1).צעד 4: מחשבים
(x 6) כאשר x = proc (x) -(x,1). מפעילים את הפרוצדורה עם 6.צעד 5: בגוף
-(x,1) כאשר x=6, מקבלים .לכן התוצאה היא
(num-val 5).