زیربرنامه های (پایتون): رویه ها و توابع - 2


عملکرد فرعی

یک تابع یک برنامه فرعی است که یک نتیجه (عدد، رشته کاراکتر و غیره) را برمی گرداند.< / div>
تصور کنید که محصولی را از یک فروشگاه اینترنتی سفارش داده اید. از نقطه نظر برنامه نویسی، شما برخی از برنامه های فرعی را فراخوانی کردید، و بر خلاف یک رویه، این زیربرنامه باید یک نتیجه را برگرداند - محصولی را که سفارش داده اید تحویل دهید. این زیر روال ها توابع نامیده می شوند.
یک تابع دقیقاً به همان روشی قالب بندی می شود که یک رویه انجام می شود. تنها تفاوت با رویه وجود یک عملگر ویژه return، است که پس از آن مقداری که باید به برنامه اصلی برگردانده شود نوشته می‌شود.

تابعی که میانگین حسابی دو عدد صحیح را برمی گرداند به شکل زیر است: <پیش> میانگین تعریف (a, b): میانگین = (a + b) / 2 بازگشت میانگین باید بدانیم که چگونه این تابع را در برنامه اصلی فراخوانی کنیم:
شما نباید یک تابع را به همان روشی فراخوانی کنید: <پیش> میانگین (10، 5)
مقدار بازگشتی توسط تابع از بین خواهد رفت. گویی اجناس فروشگاه اینترنتی به کسی داده نشده بلکه دور ریخته شده است. بعید است که مشتری آن را دوست داشته باشد.

صحیح تر است که نتیجه را در یک متغیر ذخیره کنید (یا آن را روی صفحه چاپ کنید): <پیش> a = میانگین (10، 5) <پیش> چاپ (متوسط ​​(10، 5))
باید به خاطر بسپارید!
  1. یک زیر روال تابع به همان روشی قالب بندی می شود.
  2. این تابع در جایی از برنامه فراخوانی می شود که شما مقدار را در آن قرار می دهید. به عنوان مثال، به عنوان پارامتر یک دستور print() یا در یک عبارت حسابی. 

الگوریتم اقلیدس

الگوریتم اقلیدس — کارآمد BC" title="Algorithm">الگوریتم برای ​​یافتن بزرگترین مقسوم علیه مشترک  دو اعداد صحیح (یا عمومی خطوط). نام الگوریتم برگرفته از یونانی ریاضی اقلیدس (قرن سوم قبل از میلاد )، که اولین بار آن را به سبک VII و X کتاب «آغازها". این یکی از قدیمی ترین الگوریتم های عددی است که امروزه مورد استفاده قرار می گیرد.

ریاضی را به خاطر بسپارید.

بزرگترین مقسوم علیه مشترک دو عدد طبیعی (gcd) است بزرگترین عدد طبیعی که بر آن بخش پذیرند.

به عنوان مثال، اعداد 12 و 18 مقسوم علیه های مشترک دارند: 2، 3، 6. بزرگترین مقسوم علیه مشترک 6 است. به صورت زیر نوشته می شود: gcd(12، 18) = 6

در برنامه نویسی چندین پیاده سازی از الگوریتم اقلیدس وجود دارد. در اینجا به شرح یکی از آنها در قالب بلوک دیاگرام آمده است.


سعی کنید این الگوریتم را پیاده سازی کنید.

توابع منطقی

اغلب برنامه نویسان از توابع بولی استفاده می کنند که مقادیر بولی را "true" برمی گرداند. یا "نادرست" (درستیا نادرست)
چنین توابعی برای   برخی از ویژگی ها را بررسی کنید.
بیایید دو مثال از نوشتن یک تابع منطقی را در نظر بگیریم که زوج بودن یک عدد را بررسی می کند.
  <سر> <بدن>
شرح مثال زیر روال
1) راه بهتر: نتیجه عبارت n % 2 == 0 درست (درست) یا نادرست (نادرست) خواهد بود <پیش> def isEven(n): بازگشت (n % 2 == 0)
2) می توانید آن را به همین صورت بنویسید، اما بهتر است به هر حال ضبط طولانی تری انجام ندهید <پیش> def isEven(n): اگر n % 2 == 0: بازگشت درست؛ دیگر: بازگشت نادرست

و آخرین نکته در مورد کار با توابع و رویه ها: تعداد توابع و رویه ها در برنامه محدود نیست. علاوه بر این، یک زیربرنامه می تواند زیربرنامه دیگری و حتی خودش را فراخوانی کند.