פסקל ופרוצדורות

Fat Danken

New member
פסקל ופרוצדורות

שלום לכם. כתבתי תוכנית בפסקל, די מורכבת, וכשסיימתי לכתוב אותה, רציתי קצת ליפות אותה. אז ניסיתי לכתוב פרוצדורה שתשאל את המשתמש איזו מן הפעולות הבאות (1,2,3,4) הוא ירצה לבצע, וכשהמשתמש יבחר באפשרות כלשהי פרוצדורה אחרת תופעל. לדוגמה, בחרתי באפשרות 1, ואז פרוצדורה מספר 1 תופעל. בנוסף, רציתי ש"התפריט" הזה, של הפעולות האפשריות, יופיע אחר כל פרצדורה, כך שלמשל בחרתי באפשרות 1, אז לאחר שפרצדורה מספר 1 תופעל, התפריט יחזור וישאל אותי איזו פעולה אחרת ברצוני לבצע. הבעיה היא כזאת: פרוצדורת ה"תפריט" חייבת לבוא בקוד אחרי הגדרת הפרצדורות האחרות, שאליהן היא מפנה. עם זה אפשר להתמודד. אבל אז, כשבכל סוף פרוצדורה (1-4) אני מפנה בחזרה לפרוצדורת ה"תפריט", אני נתקל בבעיה; פסקל לא יודע לאיזה פרוצדורה ללכת, כי הרי הפרוצדורה של התפריט הוגדרה בקוד אחרי כל הפרצדורות האחרות (1-4). חשבתי שאולי תוכלו לעזור לי. ניסיתי לבנות פרוצדורה בתוך פרוצדורה, אבל זה לא הלך מבחינה של הקומפילטור (נראה לי בעברית, מהדר). אולי מכיוון שעדיין לא למדתי להגדיר פרוצדורה בתוך פרוצדורה, ואולי מכיוון שפשוט אי-אפשר בפקסל. אשמח לעזרתכם ולהצעות לפיתרון. תודה רבה, גיורא.
 

vinney

Well-known member
טוב, אז ככה

יש לך את החלק של begin ... end הראשי? אחרי כל הפרוצדורות כולן? שם אתה עושה לולאת while, ובודק מה הערך שבחר המשתמש בפרוצדורת התפריט (שתהפוך אותה לפונקציה), ולפי זה או שהלולאה תיעצר, או שבתוחה (case) תקרא לפרוצדורה שנבחרה. סינית או ברור?
 

Fat Danken

New member
ברור מאוד

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

vinney

Well-known member
מבחינת תכנות נכון - לא

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