מעבר לתוכן

שאלה במבוא למדמ"ח


breeze

הודעות מומלצות

post-1345-0-20571700-1440763839_thumb.jpg

post-1345-0-52956500-1440763847_thumb.jpg

שלום לכולם,

השאלה המצורפת לקוחה ממבחן, ופתרונה(בתמונה השניה)

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

ניקח את המערך שבדוגמא.

אז בהתחלה i=1, count=1, current=0 ואז נכנסים לקוד הכחול, שמקדם את הקאונטר,

ובאיטרציה השניה i=2, count=2, current=0 ואז עוברים לקוד החום שמה מציבים את a[1]=5 אל a[2] ואל a[1] שממילא מכילים את הערך 5, ואז (הקוד הכתום) מקדמים את current ל 3 ומאתחלים את הקאונטר ל -1.

...

מגיעים לאיטרציה שבה i=6, count=1, current=5, נכנסים לקוד הכחול למשך 2 איטרציות בהן מקדמים את הקאונטר ואת i.

כעת i=8, count=3, current=5, נכנסים ל else לקוד הירוק:

a[5]=-3, כנדרש

מקדמים את current >> current=6

מאתחלים את count>> count=1

משם עוברים לקוד החום הלולאה מתבצעת פעם אחת (count=1 ) ובה מציבים את הערך a[7]=8 ב a[6] שכבר מכיל את הערך הזה.

ואז בקוד הכתום מקדמים את current  ל 7, ומאתחלים את count  ל 1.

מחזירים 7.

האם הבנתי נכון את הקוד? מה אני מפספס פה?

 

תודה

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

מה אני מפספס פה?

 

את האיטרציה i=n=9. הקוד מגיע לאיטרציה הזו (אפשר לראות מתנאי הלולאה הראשית i<n+1, ומכך שהקלט אמור להיות n=9, לא n=8.)

 

באיטרציה הזו רצים קטעי הקוד החום והכתום ומציבים בתא הנכון (התא השמיני, (a(7) את המספר הנכון (9).

באיטרציה הזו הפרמטר current מקודם (בקטע הקוד הכתום) לערך המתאים למונה של התא האחרון והערך שמוחזר הוא 8, לא 7.

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

הצטרפות לשיח

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

אורח
הוספת תגובה

×   הדבקה כטקסט עשיר.   הדבקה כטקסט רגיל במקום

  מאושרים אך ורק 75 סמייקונים.

×   הקישור שלך מוצמד אוטומטית.   הצגה כקישור במקום

×   תוכן הקודם שלכם שוחזר.   ניקוי עורך

×   You cannot paste images directly. Upload or insert images from URL.

טוען...
×
×
  • יצירת חדש...