الوظيفة عبارة عن روتين فرعي يعرض نتيجة (رقم ، سلسلة أحرف ، إلخ.)  strong> 
تخيل أنك طلبت منتجًا من متجر على الإنترنت. من وجهة نظر البرمجة ، قمت باستدعاء روتين فرعي معين ، وعلى عكس الإجراء ، يجب أن يعرض هذا الروتين نتيجة - تسليم المنتج الذي طلبته. تسمى هذه الإجراءات الفرعية  وظائف  strong>. 
يتم تنسيق الوظيفة بنفس طريقة تنسيق الإجراء تمامًا. الاختلاف الوحيد  عن الإجراء هو وجود عامل تشغيل خاص  strong>   return ، & nbsp؛  وبعد ذلك تكون القيمة المراد إرجاعها إلى البرنامج الرئيسي مكتوب. 
ستبدو الدالة التي تُرجع الوسط الحسابي لعددين صحيحين كما يلي:
متوسط عائم (int a، int b)
{
    تعويم متوسط = (أ + ب) / 2 .؛
    عودة aug
}
يبقى أن نفهم كيفية استدعاء هذه الوظيفة في البرنامج الرئيسي: 
 لا يجب استدعاء وظيفة بنفس الطريقة التي تستدعي بها الإجراء:  strong>
متوسط (10 ، 5) ؛ 
ستفقد القيمة التي تم إرجاعها بواسطة الوظيفة. يبدو الأمر كما لو أن البضائع من المتجر عبر الإنترنت لم يتم تسليمها لأي شخص ، ولكن تم التخلص منها. من غير المحتمل أن ينال إعجاب العميل. 
من الأصح  حفظ النتيجة في متغير  strong> (أو  طباعتها على الشاشة  strong>):
أ = متوسط (10 ، 5) ؛ 
كوت & lt؛ & lt؛ متوسط (10 ، 5) ؛