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