עזרה בבקשה

pilot23

New member
עזרה בבקשה

שלום,
אני מצרפת תרגיל+ פתרון שלו... ואני פשוט לא מבינה את הפתרון! מה הולך שם ?!
למה בתוך המלוק זה 2 כפול strlen ?
מה ה- J ו- K מייצגים ?
ואת כל מה שסימנתי בצהוב ? מה זה k= j-1 ?
וכו' וכו'...

תודה.
 

פרסאוס

New member
לא ראיתי כלום צהוב

אבל אני עובד בopen office ובכלל צירוף קוד במסמכי אופיס נדון כאן.
בקיצור? לא לעשות את זה. מה כן? ארכיב עם כל הפרוייקטים.
הלאה.
j k ... אלו לא רק חברים מתכנות אלא גם מאלקטרוניקה ספרתית...
פה מדובר על לולאה מקוננת (לולאה בתוך לולאה).
לגבי הקצאת הזיכרון מדובר בהקצאה אקסטרה, האמת - קצת יותר ממה שנדרש.
לפני פסיק רווח אסור מה שאומר שהמחרוזת הארוכה ביותר תהיה מורכבת מאות פסיק/נקודה ללא רווחים
שזה גידול של עד 33% בתוספת 2 תווים לשורה חדשה(+1 0), כך שהשאר לא ממש נחוץ.
מצד שני זה מפשט את העניינים ולא מצריך מתמטיקה ביחס לחישוב המחרוזות הנדרשת.
וכו וכו וכו? אין פה ממש שאלה.
האמת שיש הערות די מפורטות בקוד עצמו, כך שאם אין לך שאלה ספציפית אין לי הרבה מה להוסיף
 

עדין ר

New member
...

צריך להקצות יותר זיכרון מאורך מחרוזת הקלט, כי ייתכן שמחרוזת הפלט תהיה ארוכה יותר. במקרה הגרוע ביותר מחרוזת הקלט תהיה מורכבת מרצף של אות ואז נקודה או פסיק, ואז צריך להוסיף רווח על כל שני תווים. אמנם לא צריך פי שניים (היה מספיק פי 1.5), אבל כנראה שמי שכתב את הפתרון לא דייק.

לגבי האינדקסים - j מייצג את האינדקס הנוכחי במחרוזת הפלט, בעוד k מייצג אינדקס במחרוזת הפלט של תו שצריך למחוק. למשל, בלולאה המקוננת הראשונה, מתחילים מנקודה או פסיק (למעשה מהתו שלפניהם), והולכים אחורה עד שמגיעים לתו שאינו רווח - זאת במטרה למחוק את כל הרווחים שלפני הנקודה או הפסיק (כפי שכתוב בהערה).

נסי כעת לראות אם את מבינה מה הלולאות האחרות עושות.
 

pilot23

New member
ואם אפשר עוד משהו קטן. חד פעמי בקובץ וורד.

אני מצרפת שאלת השלמות+ פתרון שלה. הצלחתי הכל חוץ מהשלמה 3 ו-7... כנראה שפספסתי את מהות התרגיל.
אשמח אם תוכלו לעזור.
 

עדין ר

New member
...

הפונקציה היא רקורסיבית. עבור כל לבנה X, היא בודקת כמה אפשרויות יש לסדר את הלבנים באורך הרצוי, כאשר X היא הלבנה הראשונה. לשם כך, היא בודקת (באופן רקורסיבי) כמה אפשרויות יש לסדר את הלבנים לאורך הרצוי פחות האורך של הלבנה X (וזה מסביר את השלמה 7), מתוך הנחה שהלבנה הראשונה היא X. השלמה 3 נועדה למנוע מצב שאנחנו מנסים להשתמש בלבנה שארוכה יותר מהאורך הרצוי (כי אז ננסה לבדוק כמה אפשרויות יש להרכיב פס באורך שלילי, מה שכמובן לא הגיוני (וגם היה גורם לרקורסיה אינסופית).
 
למעלה