זה לא ממש בscope של הפורום...
תבדוק בארכיון של הפורום "שפות תכנות", ואם לא תמצא כלום (למרות שזאת שאלה שנשאלת שם כל כמה זמן). בכל אופן, אין שום הבדל בין פונקציה לפרוצדורה, זה שני שמות לאותו דבר. אבל אם אתה מדבר על פסקל, אז פסקל קוראת לפונקציות שלא מחזירות ערך "פרוצדורות" (procedure) ולפונקציות שמחזירות ערך - "פונקציות" (function). השם העברי זה שגרה, מדובר בתת תוכנית שאתה יכול לכתוב בתוך התוכנית שלך, על מנת לכתוב קוד שמתבצע הרבה פעמים - פעם אחת. לדוגמא, אם בתוכנית שלך אתה צריך לחשב מרחק של מכוניות נוסעות עד היעד שלהן, אז תוכל לכתוב פונקציה שמקבלת מכונית ומחזירה את המרחק עד היעד שלה, ולקרוא לפונקציה עבור כל אחת מהמכוניות, לפי הצורך.