שאלה ב Scheme - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

שאלה ב Scheme


nehmia

Recommended Posts

באלגוריתם מילולי:

X=1

W=1

Y=2

עבור כל I מ1 עד N בצע:

{

אם I/2 mod 10 = 0 אזי

X=X+2

אחרת Y=Y+2

W=W*X/Y

}

הדפס W

בשלב הראשון הגדרנו את המשתנים, ומסתנה שיסכום את התוצאה.

בשלב השני יצרנו לולאה שתפעל N פעמים ותעלה את המונה שלה כל פעם.

לאחר מכן בדקנו אם המונה זוגי, אם הוא זוגי אז נעלה את הX ב2 ואז הY נשאיר כמו שהוא, אחרת נעשה בדיוק ההפך.

לאחר מכן נכניס את התוצאה למשתנה הסוכם, ובכדי שתיהיה בו את התוצאה של מכפלת השברים אז נכפול את השבר X/Y במשתנה הסוכם.

לאחר שכל הלולאה נגמרה, נגפיס את W.

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

הלולאה היא לולאת IF רגילה.

קישור לתוכן
שתף באתרים אחרים

במחשבה שניה אני לא בטוח שהבנתי מה בדיוק זה אמור לחשב.

אני יצאתי מנקודת הנחה שכל פעם צריך להגדיל את המונה או מכנה ב2.

ואז בכל פעם שהשבר משתנה, לכפול אותו בשבר הקודם, כאשר השבר ההתחלתי הוא 1/2.

ואני לא בדיוק מבין מה רצית בהודעה השניה שלך.

קישור לתוכן
שתף באתרים אחרים

סקים! אני לא מאמין! פעם ראשונה שמישהו שואל על סקים! :smile1:

אורורה - סקים היא שפת LISP. היא לא ממש דומה לשפות פרוצדורליות כמו C. התחביר שלה הוא שורות של ביטויים. זה נראה מוזר בהתחלה, אבל מתרגלים.

נחמיה - התסכלתי בשיעורי בית ישנים ונזכרתי ממש ממש טיפונת. כתבתי משהו, שיכול להיות שהוא עובד, ועוד יותר יכול להיות שלא. לא ניסיתי. הנה:

(define (myfunc i)
(if (< i 1) 1
(* (/ i (+ i 1)) (myfunc (- i 1)))))

כמו שאתה רואה זו פונקציה רקורסיבית. אם תכניס לה 1 תקבל 1/2, אם תכניס לה 2 תקבל 1/2 * 2/3 וכן הלאה...

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...