גם אני לא יודע לכתוב
את זה בהוראות פסקל. אלגוריתם זה לא הוראות פסקל. אלגוריתם כותבים במילים או בפסאודו קוד. בכל אופן, אני אדגים מה האלגוריתם אמור לעשות בעזרת הדוגמא שמקודם. נניח שנתונה לנו המחרוזת:
GIL LEVI RULES
ונתון לנו האורך שלה: 14. נרוץ בלולאת for על המחרוזת ונספור כמה רווחים יש (לפני ריצה הלולאה נאפס מונה ונעלה את ערכו ב1 בכל פעם שנתקל ברווח). אחרי שעשינו זאת נגלה שיש 3 רווחים. נקצה מקום למחרוזת חדשה T באורך 22 תווים (כי יש 11 אותיות (אות = תו שהוא לא רווח) במחרוזת המקורית ולכל אות צריך להקצות מקום לאות שתבוא אחריה). עכשיו נרוץ בלולאת for על המחרוזת המקורית ועל המחרוזת (שכרגע ריקה) T. אם האות הנוכחית X אינה רווח- נעתיק אותה למחרוזת T. בנוסף, X "קטנה" מM תכתוב אחריה בT את האות העוקבת ל X בא"ב הלטיני. אם X "גדולה או שווה" לM נכתוב אחריה בT את האות הקודמת בא"ב הלטיני. אני אדגים את השלב האחרון (לולאת הfor): בכל "צעד" של הלולאה אני ארשום את המחרוזת המקורית ומתחתיה את המחרוזת החדשה (זאת שתהיה פלט) T:
GIL LEVI RULES ריקה T
האות הנוכחית היא האות הראשונה G. נעתיק אותה לT ואחרי זה נכתוב בT את האות העוקבת ל G (האות H) כי G קטנה מM.
GIL LEVI RULES GH
האות הנוכחית היא האות השנייה I. נעתיק אותה למחרוזת T ואחריה נשים את האות העוקבת לI (האות J) בגלל שI קטנה מM.
GIL LEVI RULES GHIJ
האות הנוכחית היא האות השלישית L. נעתיק את L למחרוזת T ואחריו נשים את האות העוקבת לL (האות M) כי L קטנה מM
GIL LEVI RULES GHIJLM
בצעד הזה הגענו לרווח אז לא נעשה כלום כעת האות הנוכחית היא האות שאחרי הרווח הראשון- L. נעתיק אותה לT ואחריה נשים את האות העוקבת לL (האות M) כי L קטנה מM.
GIL LEVI RULES GHIJLMLM
ממשיך באותו אופן:
GIL LEVI RULES GHIJLMLMEF
כעת האות הנוכחית היא V. נעתיק את V לT ובגלל שV גדולה מM נשים אחרי V את האות הקודמת לV בא"ב הלטיני- האות U.
GIL LEVI RULES GHIJLMLMEFVU
וככה ממשיכים עד לצעד ה14 (שזה מספר האותיות במחרוזת המקורית). טוב, אני מקווה שהרעיון ברור מההסבר שלי. אם משהו לא ברור או שאת מתקשה בכתיבת האלגוריתם באופן כללי, אני אשמח לעזור.