SlideShare a Scribd company logo
OBJECT ORIENTED
VS
FUNCTIONAL
•
.‫‌هاست‬
‫ه‬‫برنام‬ ‫در‬ ‫مسائل‬ ‫حل‬ ‫برای‬ ‫روش‬ ‫یا‬ ‫شیوه‬ ‫یک‬ ،‫‌نویسی‬
‫ه‬‫برنام‬ ‫پارادایم‬
•
‫توسعه‬ ‫برای‬ ‫د‬#
‫ن‬‫‌توا‬
‫ی‬‫م‬ ‫س‬#
‫ی‬‫‌نو‬
‫ه‬‫برنام‬ ‫ه‬#
‫ک‬ ‫ت‬#
‫س‬‫ا‬ ‫‌هایی‬
‫ت‬‫یاس‬#
‫س‬ ‫و‬ ‫‌ها‬
‫ی‬‫تراتژ‬#
‫س‬‫ا‬ ،‫ول‬#
‫ص‬‫ا‬ ‫ل‬#
‫م‬‫شا‬ ‫م‬#
‫ی‬‫پارادا‬ ‫ر‬#
‫ه‬
.‫بگیرد‬ ‫کار‬ ‫به‬ ‫‌افزار‬
‫م‬‫نر‬
•
.‫‌کنند‬
‫ی‬‫م‬ ‫پیروی‬ ‫پارادایم‬ ‫چند‬ ‫یا‬ ‫یک‬ ‫از‬ً ‫معموال‬ ‫مختلف‬ ‫‌نویسی‬
‫ه‬‫برنام‬ ‫‌های‬
‫ن‬‫زبا‬ •
‫اهمیت‬ ‫ت‬#‫درس‬ ‫م‬#‫پارادای‬ ‫انتخاب‬ ،‫‌افزار‬
‫م‬‫نر‬ ‫عه‬#‫توس‬ ‫در‬
.‫دارد‬ ‫زیادی‬
•
:‫از‬ ‫عبارتند‬ ‫‌ها‬
‫م‬‫پارادای‬ ‫‌ترین‬
‫ب‬‫محبو‬ ‫از‬ ‫تا‬ ‫دو‬
•
‫‌گرا‬
‫ی‬‫ش‬ ‫‌نویسی‬
‫ه‬‫برنام‬
•
‫تابعی‬ ‫‌نویسی‬
‫ه‬‫برنام‬
Functional programming
‫تابعی‬ ‫نویسی‬ ‫برنامه‬
•
،‫ی‬#
‫ع‬‫تاب‬ ‫ی‬#
‫س‬‫‌نوی‬
‫ه‬‫برنام‬ ‫زبان‬ ‫اولین‬
LISP
‫ه‬#
‫ه‬‫د‬ ‫اواخر‬ ‫در‬ ،
۱۹۵۰
‫کامپیوترهای‬ ‫برای‬
‫ی‬#
‫م‬‫عل‬
IBM
‫ری‬#
‫س‬
700/7000
‫فناوری‬ ‫انستیتوی‬ ‫در‬ ‫ی‬#
‫ت‬‫کار‬ ‫ک‬#
‫م‬ ‫جان‬ ‫ط‬#
‫س‬‫تو‬
.‫شد‬ ‫داده‬ ‫توسعه‬ ‫ماساچوست‬
•
‫ع‬#‫تواب‬
LISP
‫یک‬ ‫یله‬#‫‌وس‬
‫ه‬‫ب‬ ‫و‬ ‫شده‬ ‫ف‬#‫تعری‬ ‫چرچ‬ ‫الندای‬ ‫نماد‬ ‫از‬ ‫تفاده‬#‫اس‬ ‫ا‬#‫ب‬
‫میسر‬ ‫ی‬#
‫ت‬‫بازگش‬ ‫توابع‬ ‫تعریف‬ ‫تفاده‬#
‫س‬‫ا‬ ‫امکان‬ ‫تا‬ ‫‌اند‬
‫ه‬‫یافت‬ ‫ترش‬#
‫س‬‫گ‬ »‫ب‬#
‫س‬‫«برچ‬
.‫شود‬
•
.‫است‬ ‫شده‬ ‫بنا‬ ‫توابع‬ ‫مفهوم‬ ‫اساس‬ ‫بر‬ ‫تابعی‬ ‫‌نویسی‬
‫ه‬‫برنام‬
•
.‫‌کنند‬
‫ی‬‫م‬ ‫تولید‬ ‫خروجی‬ ‫و‬ ‫‌گیرند‬
‫ی‬‫م‬ ‫ورودی‬ ‫که‬ ‫توابعی‬
•
.‫ندارند‬ ‫جانبی‬ ‫اثر‬ ‫هیچ‬ ‫که‬ ‫معنا‬ ‫این‬ ‫به‬ ،‫هستند‬ ‫خالص‬ ‫توابع‬ ‫این‬
‫تابعی‬ ‫نویسی‬ ‫برنامه‬
•
:‫هستند‬ ‫یک‬ ‫درجه‬ ‫همچنین‬
•
‫منتقل‬ ‫آرگومان‬ ‫عنوان‬ ‫ه‬#‫ب‬
‫شوند‬
•
‫بازگشت‬ ‫ه‬#‫نتیج‬ ‫عنوان‬ ‫ه‬#‫ب‬
‫شوند‬ ‫داده‬
.
const a = document.querySelector('#number1').value;
const b = document.querySelector('#number2').value;
function sum(a, b)
{
return a + b;
}
function displayResult(result)
{
console.log(result);
}
‫اول‬ ‫ورودی‬
‫دوم‬ ‫ورودی‬
‫جمع‬ ‫تابع‬
‫نتیجه‬ ‫تابع‬
‫تابعی‬ ‫‌نویسی‬
‫ه‬‫برنام‬ ‫از‬ ‫‌کننده‬
‫ی‬‫پشتیبان‬ ‫‌های‬
‫ن‬‫زبا‬
Lisp
Clojure
Wolfram
Erlang
Haskell
F#
‫مزایا‬ ‫معایب‬
‫با‬ ‫پیچیدگی‬ ‫‌سازی‬
‫ه‬‫ساد‬ :‫انتزاعی‬ ‫قدرت‬
‫و‬ ‫کوچک‬ ‫توابع‬ ‫به‬ ‫مسائل‬ ‫شکستن‬
‫مستقل‬
‫جای‬ ‫به‬ ‫بازگشت‬ ‫از‬ ‫استفاده‬ :‫بازگشت‬
‫سنتی‬ ‫‌های‬
‫ه‬‫حلق‬
‫منطق‬ ‫اساس‬ ‫بر‬ ‫‌ها‬
‫ه‬‫برنام‬ :‫بودن‬ ‫منطقی‬
‫‌شوند‬
‫ی‬‫م‬ ‫نوشته‬ ‫ریاضی‬
‫با‬ ‫آشنایی‬ ‫به‬ ‫نیاز‬ :‫ریاضی‬ ‫اصطالحات‬
‫ریاضی‬ ‫مباحث‬
‫تغییر‬ ‫بدون‬ ‫‌یابی‬
‫ل‬‫اشکا‬ :‫آسان‬ ‫دیباگ‬
‫انجام‬ ‫‌تر‬
‫ع‬‫سری‬ ‫و‬ ‫‌تر‬
‫ه‬‫ساد‬ ‫وضعیت‬
‫‌شود‬
‫ی‬‫م‬
‫همزمان‬ ‫اجرای‬ :‫موازی‬ ‫‌نویسی‬
‫ه‬‫برنام‬
‫سرعت‬ ‫افزایش‬ ‫و‬ ‫تداخل‬ ‫بدون‬ ‫توابع‬
‫پردازش‬
‫ضروری‬ ‫محاسبات‬ ‫فقط‬ :‫تنبل‬ ‫ارزیابی‬
‫و‬ ‫زمان‬ ‫در‬ ‫‌جویی‬
‫ه‬‫صرف‬ ،‫‌شود‬
‫ی‬‫م‬ ‫انجام‬
‫منابع‬
Object oriented programming
‫گرا‬ ‫شی‬ ‫نویسی‬ ‫برنامه‬
‫دهه‬ ‫ر‬#‫اواخ‬ ‫در‬ »‫‌گرا‬
‫ه‬‫«روی‬ ‫و‬ »‫اختاریافته‬#‫«س‬ ‫ی‬#‫نویس‬ ‫ه‬#‫برنام‬ ‫رویکردهای‬ #
‫ع‬‫انوا‬
1970
‫دهه‬ ‫اوایل‬ ‫و‬
1980
.‫کنند‬ ‫پیدا‬ ‫ظهور‬
‫قالب‬ ‫در‬ ‫ط‬#
‫ب‬‫مرت‬ ‫ع‬#
‫ب‬‫توا‬ ‫و‬ ‫ا‬#
‫ه‬‌
‫ه‬‫داد‬ ‫ن‬#
‫آ‬ ‫در‬ ‫ه‬#
‫ک‬ ‫ت‬#
‫س‬‫ا‬ ‫ی‬#
‫ش‬‫رو‬ ‫شیءگرا‬ ‫ی‬#
‫س‬‫‌نوی‬
‫ه‬‫برنام‬
‫آن‬ ‫ع‬#
‫ب‬‫توا‬ ‫و‬ ‫ا‬#
‫ه‬‌
‫ه‬‫داد‬ ‫ه‬#
‫ک‬ ‫ت‬#
‫س‬‫ا‬ ‫تقل‬#
‫س‬‫م‬ ‫د‬#
‫ح‬‫وا‬ ‫ک‬#
‫ی‬ ‫ء‬#
‫ی‬‫ش‬ ‫ر‬#
‫ه‬ .‫‌شوند‬
‫ی‬‫م‬ ‫ع‬#
‫م‬‫ج‬ ‫اشیاء‬
‫وارد‬ ‫تغییرات‬ ‫آن‬ ‫درون‬ ‫‌های‬
‫ه‬‫داد‬ ‫ه‬#
‫ب‬ ‫د‬#
‫ن‬‫‌توان‬
‫ی‬‫نم‬ ‫ی‬#
‫ن‬‫بیرو‬ ‫ع‬#
‫ب‬‫توا‬ ‫و‬ ‫د‬#
‫ن‬‫‌ا‬
‫ه‬‫شد‬ ‫وله‬#
‫س‬‫کپ‬
.‫‌کند‬
‫ی‬‫م‬ ‫کمک‬ ‫د‬#
‫ک‬ ‫‌تر‬
‫ه‬‫ساد‬ ‫مدیریت‬ ‫و‬ ‫بهتر‬ ‫سازماندهی‬ ‫به‬ ‫روش‬ ‫این‬ .‫کنند‬
‫گرا‬ ‫شی‬ ‫نویسی‬ ‫برنامه‬
‫تابعی‬ ‫‌نویسی‬
‫ه‬‫برنام‬ ‫از‬ ‫‌کننده‬
‫ی‬‫پشتیبان‬ ‫‌های‬
‫ن‬‫زبا‬
Java
C++
Python
C#
Ruby
Swift
‫‌ها‬
‫س‬‫کال‬ ‫و‬ ‫اشیاء‬ ‫مفهوم‬
‫و‬ ‫‌ها‬
‫ی‬‫دسترس‬ ،‫وصیات‬#
‫ص‬‫خ‬ ،‫ا‬#
‫ه‬‫متد‬ ‫ف‬#
‫ی‬‫تعار‬ ‫ل‬#
‫م‬‫شا‬ ‫ه‬#
‫ک‬ ‫‌ای‬
‫ه‬‫بدن‬ ‫ی؛‬#
‫ش‬ ‫ک‬#
‫ی‬ ‫د‬#
‫ب‬‫کال‬ ‫و‬ ‫ب‬#
‫ل‬‫قا‬ :‫کالس‬
.‫است‬ ‫تغییرات‬
‫واقعی‬ ‫اشیاء‬ ‫ر‬#
‫گ‬‫نمایان‬ ‫‌توانند‬
‫ی‬‫م‬ ‫که‬ ‫خاص‬ ‫‌های‬
‫ه‬‫داد‬ ‫ا‬#
‫ب‬ ‫کالس‬ ‫از‬ ‫‌شده‬
‫ه‬‫اخت‬#
‫س‬ ‫‌های‬
‫ه‬‫نمون‬ :‫اشیاء‬
.‫باشند‬ ‫خیالی‬ ‫یا‬
‫درخواست‬ ‫ا‬#
‫ی‬ ‫ر‬#
‫ی‬‫تغی‬ ‫ه‬#
‫ن‬‫هرگو‬ ‫و‬ ‫د‬#
‫ن‬‫‌کن‬
‫ی‬‫م‬ ‫ص‬#
‫خ‬‫مش‬ ‫را‬ ‫اشیاء‬ ‫رفتار‬ ‫ه‬#
‫ک‬ ‫کالس‬ ‫ل‬#
‫خ‬‫دا‬ ‫ع‬#
‫ب‬‫توا‬ :‫ا‬#
‫ه‬‫متد‬
.‫دهند‬ ‫می‬ ‫انجام‬ ‫را‬
.‫‌کنند‬
‫ی‬‫م‬ ‫تعریف‬ ‫را‬ ‫مدل‬ ‫یک‬ ‫‌های‬
‫ی‬‫ویژگ‬ ‫که‬ ‫کالس‬ ‫درون‬ ‫متغیرهایی‬ :‫خصوصیات‬
‫چیست؟‬ ‫گرایی‬ ‫شی‬ ‫اصول‬
‫گرایی‬ ‫شی‬ ‫اصل‬ ‫چهار‬ ‫بر‬ ،‫کالس‬ ‫و‬ ‫شی‬ ‫مفاهیم‬ ‫‌بر‬
‫ه‬‫عالو‬ ‫گرا‬ ‫شی‬ ‫نویسی‬ ‫برنامه‬ ‫رویکرد‬
:‫از‬ ‫‌اند‬
‫ت‬‫عبار‬ ‫که‬ ‫دارد‬ ‫تاکید‬ ‫نیز‬
•
»‫‌سازی‬
‫ه‬‫«کپسول‬ ‫اصل‬
(
Encapsulation
)
•
( »‫تجرید‬ | ‫«انتزاع‬ ‫اصل‬
Abstraction
)
•
( »‫‌بری‬
‫ث‬‫ار‬ | ‫«وراثت‬ ‫اصل‬
Inheritance
)
•
»‫چندریختی‬ | ‫م‬###‫مورفیس‬ ‫ی‬###‫«پل‬ ‫ل‬###‫اص‬
(
Polymorphism
)
‫‌سازی‬
‫ه‬‫کپسول‬
•
‫از‬ ‫‌ها‬
‫ن‬‫آ‬ ‫ه‬#
‫ب‬ ‫تقیم‬#
‫س‬‫م‬ ‫ترسی‬#
‫س‬‫د‬ ‫از‬ ‫جلوگیری‬ ‫و‬ ‫ی‬#
‫ش‬ ‫درون‬ ‫م‬#
‫ه‬‫م‬ ‫اطالعات‬ ‫نگهداری‬
.‫کالس‬ ‫بیرون‬
•
‫د‬#
‫ک‬ ‫امنیت‬ ‫افزایش‬
:‫دسترسی‬ ‫‌های‬
‫ت‬‫حال‬
‫خصوصی‬
.‫دسترسی‬ ‫قابل‬ ‫کالس‬ ‫همان‬ ‫درون‬ ‫از‬ ‫فقط‬
‫شده‬ ‫محافظت‬
.)‫‌ها‬
‫س‬‫(زیرکال‬ ‫فرزند‬ ‫‌های‬
‫س‬‫کال‬ ‫برای‬ ‫دسترسی‬ ‫قابل‬
‫عمومی‬
.‫کالس‬ ‫بیرون‬ ‫از‬ ‫دسترسی‬ ‫قابل‬
‫انتزاع‬
.‫جزئیات‬ ‫‌سازی‬
‫ه‬‫پیاد‬ ‫بدون‬ ‫کلی‬ ‫مفاهیم‬ ‫تعریف‬ ‫نی‬#
‫ع‬‫ی‬ #
‫ع‬‫انتزا‬
‫از‬ ‫مستقیم‬ ‫ازی‬#
‫س‬‌
‫ه‬‫نمون‬ ‫و‬ ‫د‬#
‫ن‬‫‌کن‬
‫ی‬‫م‬ ‫ص‬#
‫خ‬‫مش‬ ‫را‬ ‫اختار‬#
‫س‬ ‫ط‬#
‫ق‬‫ف‬ ‫انتزاع‬ ‫‌های‬
#
‫س‬‫کال‬
.‫نیست‬ ‫ممکن‬ ‫‌ها‬
‫ن‬‫آ‬
‫وراثت‬ ‫اصل‬
.‫ببرد‬ ‫ارث‬ ‫به‬ ‫را‬ ‫والد‬ ‫کالس‬ ‫متدهای‬ ‫و‬ ‫‌ها‬
‫ی‬‫ویژگ‬ ‫‌تواند‬
‫ی‬‫م‬ ‫فرزند‬ ‫کالس‬ ‫یعنی‬ ‫وراثت‬
.‫‌شود‬
‫ی‬‫م‬ ‫تکرار‬ ‫از‬ ‫جلوگیری‬ ‫و‬ ‫د‬#
‫ک‬ ‫از‬ ‫مجدد‬ ‫استفاده‬ ‫باعث‬ ‫اصل‬ ‫این‬
‫جدید‬ ‫متدهای‬ ‫و‬ ‫‌ها‬
‫ی‬‫ویژگ‬ ،‫والد‬ ‫‌های‬
‫ی‬‫ویژگ‬ ‫بر‬ ‫عالوه‬ ‫‌تواند‬
‫ی‬‫م‬ ‫فرزند‬ ‫کالس‬
.‫باشد‬ ‫داشته‬ ‫هم‬ ‫را‬ ‫خودش‬ ‫مخصوص‬
object oriented vs functional programming
‫چندریختی‬ ‫اصل‬
‫وظایف‬ ‫ا‬#
‫م‬‫ا‬ ،‫د‬#
‫ن‬‫باش‬ ‫ه‬#
‫ت‬‫داش‬ ‫د‬#
‫ل‬‫وا‬ ‫کالس‬ ‫ا‬#
‫ب‬ ‫‌نام‬
‫م‬‫ه‬ ‫متدهای‬ ‫د‬#
‫ن‬‫‌توان‬
‫ی‬‫م‬ ‫د‬#
‫ن‬‫فرز‬ ‫‌های‬
#
‫س‬‫کال‬
‫والد‬ ‫کالس‬ ‫متدهای‬ ‫عملکرد‬ ‫‌توان‬
‫ی‬‫م‬ ،‫ب‬#
‫ی‬‫ترت‬ ‫ن‬#
‫ی‬‫ا‬ ‫ه‬#
‫ب‬ .‫باشد‬ ‫متفاوت‬ ‫د‬#
‫ن‬‫‌توا‬
‫ی‬‫م‬ ‫ا‬#
‫ه‬‌
‫ن‬‫آ‬
.‫کرد‬ ‫‌سازی‬
‫ه‬‫پیاد‬ ‫مختلف‬ ‫‌های‬
‫ه‬‫شیو‬ ‫به‬ ‫فرزند‬ ‫‌های‬
‫س‬‫کال‬ ‫در‬ ‫را‬
object oriented vs functional programming
‫مزایا‬ ‫معایب‬
‫بودن‬ ‫ماژوالر‬ ‫کدنویسی‬ ‫زیاد‬ ‫حجم‬
‫کدها‬ ‫از‬ ‫مجدد‬ ‫استفاده‬ ‫قابلیت‬
‫زبان‬ ‫چند‬ ‫در‬ ‫‌سازی‬
‫ه‬‫پیاد‬ ‫قابل‬
‫‌نویسی‬
‫ه‬‫برنام‬
‫‌وری‬
‫ه‬‫بهر‬ ‫میزان‬ ‫افزایش‬
‫شناسایی‬ ‫به‬ ‫زیاد‬ ‫زمان‬ ‫تخصیص‬
‫پروژه‬ ‫در‬ ‫‌گرایی‬
‫ی‬‫ش‬ ‫‌های‬
‫ه‬‫مولف‬
‫‌افزاری‬
‫م‬‫نر‬
‫‌پذیری‬
‫س‬‫مقیا‬ ‫و‬ ‫‌روزرسانی‬
‫ه‬‫ب‬ ‫قابلیت‬
‫باال‬ ‫‌پذیری‬
‫ف‬‫انعطا‬
object oriented vs functional programming
‫ویژگی‬ ‫‌گرا‬
‫ی‬‫ش‬ ‫‌نویسی‬
‫ه‬‫برنام‬ ‫تابعی‬ ‫‌نویسی‬
‫ه‬‫برنام‬
‫تمرکز‬ ‫‌ها‬
‫ن‬‫آ‬ ‫بین‬ ‫روابط‬ ‫و‬ ‫اشیاء‬ ‫ریاضی‬ ‫اعمال‬ ‫و‬ ‫توابع‬
‫‌ها‬
‫ه‬‫داد‬
‫درون‬ ‫متدها‬ ‫همراه‬ ‫به‬ ‫‌ها‬
‫ه‬‫داد‬
‫دارند‬ ‫قرار‬ ‫اشیاء‬
‫همیشه‬ ‫و‬ ‫‌کنند‬
‫ی‬‫نم‬ ‫تغییر‬ ‫‌ها‬
‫ه‬‫داد‬
‫هستند‬ ‫ثابت‬
‫ساختار‬ ‫وراثت‬ ‫و‬ ‫‌ها‬
‫س‬‫کال‬ ‫ساختار‬ ‫‌ها‬
‫ن‬‫آ‬ ‫ترکیب‬ ‫و‬ ‫خالص‬ ‫توابع‬
‫معایب‬
،‫بلندتر‬ ‫کدهای‬ ،‫بیشتر‬ ‫پیچیدگی‬
‫همزمانی‬ ‫مشکالت‬
‫برای‬ ‫‌سازی‬
‫ه‬‫پیاد‬ ‫در‬ ‫دشواری‬
‫‌تر‬
‫ه‬‫پیچید‬ ‫مسائل‬ ‫برخی‬

More Related Content

PDF
Interview form elias shirouyeh
ilia6328
 
PPTX
آشنایی با زبان جاوا - مقدماتی اندروید
Sadegh Ghanbari Shohani
 
DOCX
یکی از بزرگ‌ترین مشکلات OOP اینه که اتفاق نظر بر سر اینکه OOP دقیقا چه چیزی ه...
SaeedAsghari5
 
PDF
(ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ...
Muhibullah Aman
 
PDF
چرا نود.جی اس؟
Masoud Sharifi
 
PDF
طراحی سیستم های اطلاعاتی بر مبنای قابلیت های Nosql بانک های اطلاعاتی
عباس بني اسدي مقدم
 
PDF
Object-Oriented-Programming-in-Python
behnam mohammad karimi
 
PPTX
فصل اول سیستم عامل: مرور کلی به سخت افزار کامپیوتر -تابستان 96
hossein sharifipour
 
Interview form elias shirouyeh
ilia6328
 
آشنایی با زبان جاوا - مقدماتی اندروید
Sadegh Ghanbari Shohani
 
یکی از بزرگ‌ترین مشکلات OOP اینه که اتفاق نظر بر سر اینکه OOP دقیقا چه چیزی ه...
SaeedAsghari5
 
(ِData Structures-Java Object oriented Programming Languages)ساختارهای دیتا ...
Muhibullah Aman
 
چرا نود.جی اس؟
Masoud Sharifi
 
طراحی سیستم های اطلاعاتی بر مبنای قابلیت های Nosql بانک های اطلاعاتی
عباس بني اسدي مقدم
 
Object-Oriented-Programming-in-Python
behnam mohammad karimi
 
فصل اول سیستم عامل: مرور کلی به سخت افزار کامپیوتر -تابستان 96
hossein sharifipour
 

Similar to object oriented vs functional programming (20)

PPTX
فصل اول سیستم عامل: مرور کلی به سخت افزار کامپیوتر -تابستان 96
hossein sharifipour
 
PPTX
سی پلاس پلاس به عنوان زبان دومی برای یادگیری شی گرایی
mrm_196
 
PDF
چارچوب متن باز جهت توسعه سیستم های نرم افزاری
عباس بني اسدي مقدم
 
PDF
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
Farafekr Technology
 
PDF
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Mobin Ranjbar
 
PDF
Oracle Data Integrator (persian)
Ehsan Hamzei
 
PDF
طرح چارچوب متن باز تولید نرم افزار
عباس بني اسدي مقدم
 
PDF
Mohamady zahedy c#
danesh_fd
 
PDF
mosisan1
mostafa sanaei
 
PDF
توسعه نرم‌افزارهای مقیاس‌پذیر بر اساس معماری ریزسرویسها (Microservices) و اجر...
Web Standards School
 
PDF
توسعه امن نرم افزار
Mohammad Hamidi Esfahani
 
PPTX
100+50+50+50+30.pptx 000000000000000000000000
ampourarab111
 
PDF
the refrence of Oracle Database - The 0.4 release
Yashar Esmaildokht
 
PDF
مقاله درباره‌ی ایجاد امن نرم‌افزار
Mahdi Dolati
 
PPTX
سیستم های عامل فصل ۳
Shayan Khaksar
 
PDF
نمونه سوالات مبانی-الهام جهانپور-منطقه فارسان
tarasad
 
PDF
how upgrade ceph
Yashar Esmaildokht
 
PDF
مهاجرت به متن باز در شرکت توزیع برق مشهد
عباس بني اسدي مقدم
 
PPTX
دستگاه حضور و غیاب
karaban41378
 
PPTX
IOT security
leila valiei
 
فصل اول سیستم عامل: مرور کلی به سخت افزار کامپیوتر -تابستان 96
hossein sharifipour
 
سی پلاس پلاس به عنوان زبان دومی برای یادگیری شی گرایی
mrm_196
 
چارچوب متن باز جهت توسعه سیستم های نرم افزاری
عباس بني اسدي مقدم
 
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
Farafekr Technology
 
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Mobin Ranjbar
 
Oracle Data Integrator (persian)
Ehsan Hamzei
 
طرح چارچوب متن باز تولید نرم افزار
عباس بني اسدي مقدم
 
Mohamady zahedy c#
danesh_fd
 
mosisan1
mostafa sanaei
 
توسعه نرم‌افزارهای مقیاس‌پذیر بر اساس معماری ریزسرویسها (Microservices) و اجر...
Web Standards School
 
توسعه امن نرم افزار
Mohammad Hamidi Esfahani
 
100+50+50+50+30.pptx 000000000000000000000000
ampourarab111
 
the refrence of Oracle Database - The 0.4 release
Yashar Esmaildokht
 
مقاله درباره‌ی ایجاد امن نرم‌افزار
Mahdi Dolati
 
سیستم های عامل فصل ۳
Shayan Khaksar
 
نمونه سوالات مبانی-الهام جهانپور-منطقه فارسان
tarasad
 
how upgrade ceph
Yashar Esmaildokht
 
مهاجرت به متن باز در شرکت توزیع برق مشهد
عباس بني اسدي مقدم
 
دستگاه حضور و غیاب
karaban41378
 
IOT security
leila valiei
 
Ad

object oriented vs functional programming

  • 2. • .‫‌هاست‬ ‫ه‬‫برنام‬ ‫در‬ ‫مسائل‬ ‫حل‬ ‫برای‬ ‫روش‬ ‫یا‬ ‫شیوه‬ ‫یک‬ ،‫‌نویسی‬ ‫ه‬‫برنام‬ ‫پارادایم‬ • ‫توسعه‬ ‫برای‬ ‫د‬# ‫ن‬‫‌توا‬ ‫ی‬‫م‬ ‫س‬# ‫ی‬‫‌نو‬ ‫ه‬‫برنام‬ ‫ه‬# ‫ک‬ ‫ت‬# ‫س‬‫ا‬ ‫‌هایی‬ ‫ت‬‫یاس‬# ‫س‬ ‫و‬ ‫‌ها‬ ‫ی‬‫تراتژ‬# ‫س‬‫ا‬ ،‫ول‬# ‫ص‬‫ا‬ ‫ل‬# ‫م‬‫شا‬ ‫م‬# ‫ی‬‫پارادا‬ ‫ر‬# ‫ه‬ .‫بگیرد‬ ‫کار‬ ‫به‬ ‫‌افزار‬ ‫م‬‫نر‬ • .‫‌کنند‬ ‫ی‬‫م‬ ‫پیروی‬ ‫پارادایم‬ ‫چند‬ ‫یا‬ ‫یک‬ ‫از‬ً ‫معموال‬ ‫مختلف‬ ‫‌نویسی‬ ‫ه‬‫برنام‬ ‫‌های‬ ‫ن‬‫زبا‬ • ‫اهمیت‬ ‫ت‬#‫درس‬ ‫م‬#‫پارادای‬ ‫انتخاب‬ ،‫‌افزار‬ ‫م‬‫نر‬ ‫عه‬#‫توس‬ ‫در‬ .‫دارد‬ ‫زیادی‬ • :‫از‬ ‫عبارتند‬ ‫‌ها‬ ‫م‬‫پارادای‬ ‫‌ترین‬ ‫ب‬‫محبو‬ ‫از‬ ‫تا‬ ‫دو‬ • ‫‌گرا‬ ‫ی‬‫ش‬ ‫‌نویسی‬ ‫ه‬‫برنام‬ • ‫تابعی‬ ‫‌نویسی‬ ‫ه‬‫برنام‬
  • 4. • ،‫ی‬# ‫ع‬‫تاب‬ ‫ی‬# ‫س‬‫‌نوی‬ ‫ه‬‫برنام‬ ‫زبان‬ ‫اولین‬ LISP ‫ه‬# ‫ه‬‫د‬ ‫اواخر‬ ‫در‬ ، ۱۹۵۰ ‫کامپیوترهای‬ ‫برای‬ ‫ی‬# ‫م‬‫عل‬ IBM ‫ری‬# ‫س‬ 700/7000 ‫فناوری‬ ‫انستیتوی‬ ‫در‬ ‫ی‬# ‫ت‬‫کار‬ ‫ک‬# ‫م‬ ‫جان‬ ‫ط‬# ‫س‬‫تو‬ .‫شد‬ ‫داده‬ ‫توسعه‬ ‫ماساچوست‬ • ‫ع‬#‫تواب‬ LISP ‫یک‬ ‫یله‬#‫‌وس‬ ‫ه‬‫ب‬ ‫و‬ ‫شده‬ ‫ف‬#‫تعری‬ ‫چرچ‬ ‫الندای‬ ‫نماد‬ ‫از‬ ‫تفاده‬#‫اس‬ ‫ا‬#‫ب‬ ‫میسر‬ ‫ی‬# ‫ت‬‫بازگش‬ ‫توابع‬ ‫تعریف‬ ‫تفاده‬# ‫س‬‫ا‬ ‫امکان‬ ‫تا‬ ‫‌اند‬ ‫ه‬‫یافت‬ ‫ترش‬# ‫س‬‫گ‬ »‫ب‬# ‫س‬‫«برچ‬ .‫شود‬
  • 5. • .‫است‬ ‫شده‬ ‫بنا‬ ‫توابع‬ ‫مفهوم‬ ‫اساس‬ ‫بر‬ ‫تابعی‬ ‫‌نویسی‬ ‫ه‬‫برنام‬ • .‫‌کنند‬ ‫ی‬‫م‬ ‫تولید‬ ‫خروجی‬ ‫و‬ ‫‌گیرند‬ ‫ی‬‫م‬ ‫ورودی‬ ‫که‬ ‫توابعی‬ • .‫ندارند‬ ‫جانبی‬ ‫اثر‬ ‫هیچ‬ ‫که‬ ‫معنا‬ ‫این‬ ‫به‬ ،‫هستند‬ ‫خالص‬ ‫توابع‬ ‫این‬ ‫تابعی‬ ‫نویسی‬ ‫برنامه‬ • :‫هستند‬ ‫یک‬ ‫درجه‬ ‫همچنین‬ • ‫منتقل‬ ‫آرگومان‬ ‫عنوان‬ ‫ه‬#‫ب‬ ‫شوند‬ • ‫بازگشت‬ ‫ه‬#‫نتیج‬ ‫عنوان‬ ‫ه‬#‫ب‬ ‫شوند‬ ‫داده‬ .
  • 6. const a = document.querySelector('#number1').value; const b = document.querySelector('#number2').value; function sum(a, b) { return a + b; } function displayResult(result) { console.log(result); } ‫اول‬ ‫ورودی‬ ‫دوم‬ ‫ورودی‬ ‫جمع‬ ‫تابع‬ ‫نتیجه‬ ‫تابع‬
  • 7. ‫تابعی‬ ‫‌نویسی‬ ‫ه‬‫برنام‬ ‫از‬ ‫‌کننده‬ ‫ی‬‫پشتیبان‬ ‫‌های‬ ‫ن‬‫زبا‬ Lisp Clojure Wolfram Erlang Haskell F#
  • 8. ‫مزایا‬ ‫معایب‬ ‫با‬ ‫پیچیدگی‬ ‫‌سازی‬ ‫ه‬‫ساد‬ :‫انتزاعی‬ ‫قدرت‬ ‫و‬ ‫کوچک‬ ‫توابع‬ ‫به‬ ‫مسائل‬ ‫شکستن‬ ‫مستقل‬ ‫جای‬ ‫به‬ ‫بازگشت‬ ‫از‬ ‫استفاده‬ :‫بازگشت‬ ‫سنتی‬ ‫‌های‬ ‫ه‬‫حلق‬ ‫منطق‬ ‫اساس‬ ‫بر‬ ‫‌ها‬ ‫ه‬‫برنام‬ :‫بودن‬ ‫منطقی‬ ‫‌شوند‬ ‫ی‬‫م‬ ‫نوشته‬ ‫ریاضی‬ ‫با‬ ‫آشنایی‬ ‫به‬ ‫نیاز‬ :‫ریاضی‬ ‫اصطالحات‬ ‫ریاضی‬ ‫مباحث‬ ‫تغییر‬ ‫بدون‬ ‫‌یابی‬ ‫ل‬‫اشکا‬ :‫آسان‬ ‫دیباگ‬ ‫انجام‬ ‫‌تر‬ ‫ع‬‫سری‬ ‫و‬ ‫‌تر‬ ‫ه‬‫ساد‬ ‫وضعیت‬ ‫‌شود‬ ‫ی‬‫م‬ ‫همزمان‬ ‫اجرای‬ :‫موازی‬ ‫‌نویسی‬ ‫ه‬‫برنام‬ ‫سرعت‬ ‫افزایش‬ ‫و‬ ‫تداخل‬ ‫بدون‬ ‫توابع‬ ‫پردازش‬ ‫ضروری‬ ‫محاسبات‬ ‫فقط‬ :‫تنبل‬ ‫ارزیابی‬ ‫و‬ ‫زمان‬ ‫در‬ ‫‌جویی‬ ‫ه‬‫صرف‬ ،‫‌شود‬ ‫ی‬‫م‬ ‫انجام‬ ‫منابع‬
  • 9. Object oriented programming ‫گرا‬ ‫شی‬ ‫نویسی‬ ‫برنامه‬
  • 10. ‫دهه‬ ‫ر‬#‫اواخ‬ ‫در‬ »‫‌گرا‬ ‫ه‬‫«روی‬ ‫و‬ »‫اختاریافته‬#‫«س‬ ‫ی‬#‫نویس‬ ‫ه‬#‫برنام‬ ‫رویکردهای‬ # ‫ع‬‫انوا‬ 1970 ‫دهه‬ ‫اوایل‬ ‫و‬ 1980 .‫کنند‬ ‫پیدا‬ ‫ظهور‬
  • 11. ‫قالب‬ ‫در‬ ‫ط‬# ‫ب‬‫مرت‬ ‫ع‬# ‫ب‬‫توا‬ ‫و‬ ‫ا‬# ‫ه‬‌ ‫ه‬‫داد‬ ‫ن‬# ‫آ‬ ‫در‬ ‫ه‬# ‫ک‬ ‫ت‬# ‫س‬‫ا‬ ‫ی‬# ‫ش‬‫رو‬ ‫شیءگرا‬ ‫ی‬# ‫س‬‫‌نوی‬ ‫ه‬‫برنام‬ ‫آن‬ ‫ع‬# ‫ب‬‫توا‬ ‫و‬ ‫ا‬# ‫ه‬‌ ‫ه‬‫داد‬ ‫ه‬# ‫ک‬ ‫ت‬# ‫س‬‫ا‬ ‫تقل‬# ‫س‬‫م‬ ‫د‬# ‫ح‬‫وا‬ ‫ک‬# ‫ی‬ ‫ء‬# ‫ی‬‫ش‬ ‫ر‬# ‫ه‬ .‫‌شوند‬ ‫ی‬‫م‬ ‫ع‬# ‫م‬‫ج‬ ‫اشیاء‬ ‫وارد‬ ‫تغییرات‬ ‫آن‬ ‫درون‬ ‫‌های‬ ‫ه‬‫داد‬ ‫ه‬# ‫ب‬ ‫د‬# ‫ن‬‫‌توان‬ ‫ی‬‫نم‬ ‫ی‬# ‫ن‬‫بیرو‬ ‫ع‬# ‫ب‬‫توا‬ ‫و‬ ‫د‬# ‫ن‬‫‌ا‬ ‫ه‬‫شد‬ ‫وله‬# ‫س‬‫کپ‬ .‫‌کند‬ ‫ی‬‫م‬ ‫کمک‬ ‫د‬# ‫ک‬ ‫‌تر‬ ‫ه‬‫ساد‬ ‫مدیریت‬ ‫و‬ ‫بهتر‬ ‫سازماندهی‬ ‫به‬ ‫روش‬ ‫این‬ .‫کنند‬ ‫گرا‬ ‫شی‬ ‫نویسی‬ ‫برنامه‬
  • 12. ‫تابعی‬ ‫‌نویسی‬ ‫ه‬‫برنام‬ ‫از‬ ‫‌کننده‬ ‫ی‬‫پشتیبان‬ ‫‌های‬ ‫ن‬‫زبا‬ Java C++ Python C# Ruby Swift
  • 13. ‫‌ها‬ ‫س‬‫کال‬ ‫و‬ ‫اشیاء‬ ‫مفهوم‬ ‫و‬ ‫‌ها‬ ‫ی‬‫دسترس‬ ،‫وصیات‬# ‫ص‬‫خ‬ ،‫ا‬# ‫ه‬‫متد‬ ‫ف‬# ‫ی‬‫تعار‬ ‫ل‬# ‫م‬‫شا‬ ‫ه‬# ‫ک‬ ‫‌ای‬ ‫ه‬‫بدن‬ ‫ی؛‬# ‫ش‬ ‫ک‬# ‫ی‬ ‫د‬# ‫ب‬‫کال‬ ‫و‬ ‫ب‬# ‫ل‬‫قا‬ :‫کالس‬ .‫است‬ ‫تغییرات‬ ‫واقعی‬ ‫اشیاء‬ ‫ر‬# ‫گ‬‫نمایان‬ ‫‌توانند‬ ‫ی‬‫م‬ ‫که‬ ‫خاص‬ ‫‌های‬ ‫ه‬‫داد‬ ‫ا‬# ‫ب‬ ‫کالس‬ ‫از‬ ‫‌شده‬ ‫ه‬‫اخت‬# ‫س‬ ‫‌های‬ ‫ه‬‫نمون‬ :‫اشیاء‬ .‫باشند‬ ‫خیالی‬ ‫یا‬ ‫درخواست‬ ‫ا‬# ‫ی‬ ‫ر‬# ‫ی‬‫تغی‬ ‫ه‬# ‫ن‬‫هرگو‬ ‫و‬ ‫د‬# ‫ن‬‫‌کن‬ ‫ی‬‫م‬ ‫ص‬# ‫خ‬‫مش‬ ‫را‬ ‫اشیاء‬ ‫رفتار‬ ‫ه‬# ‫ک‬ ‫کالس‬ ‫ل‬# ‫خ‬‫دا‬ ‫ع‬# ‫ب‬‫توا‬ :‫ا‬# ‫ه‬‫متد‬ .‫دهند‬ ‫می‬ ‫انجام‬ ‫را‬ .‫‌کنند‬ ‫ی‬‫م‬ ‫تعریف‬ ‫را‬ ‫مدل‬ ‫یک‬ ‫‌های‬ ‫ی‬‫ویژگ‬ ‫که‬ ‫کالس‬ ‫درون‬ ‫متغیرهایی‬ :‫خصوصیات‬
  • 14. ‫چیست؟‬ ‫گرایی‬ ‫شی‬ ‫اصول‬ ‫گرایی‬ ‫شی‬ ‫اصل‬ ‫چهار‬ ‫بر‬ ،‫کالس‬ ‫و‬ ‫شی‬ ‫مفاهیم‬ ‫‌بر‬ ‫ه‬‫عالو‬ ‫گرا‬ ‫شی‬ ‫نویسی‬ ‫برنامه‬ ‫رویکرد‬ :‫از‬ ‫‌اند‬ ‫ت‬‫عبار‬ ‫که‬ ‫دارد‬ ‫تاکید‬ ‫نیز‬ • »‫‌سازی‬ ‫ه‬‫«کپسول‬ ‫اصل‬ ( Encapsulation ) • ( »‫تجرید‬ | ‫«انتزاع‬ ‫اصل‬ Abstraction ) • ( »‫‌بری‬ ‫ث‬‫ار‬ | ‫«وراثت‬ ‫اصل‬ Inheritance ) • »‫چندریختی‬ | ‫م‬###‫مورفیس‬ ‫ی‬###‫«پل‬ ‫ل‬###‫اص‬ ( Polymorphism )
  • 15. ‫‌سازی‬ ‫ه‬‫کپسول‬ • ‫از‬ ‫‌ها‬ ‫ن‬‫آ‬ ‫ه‬# ‫ب‬ ‫تقیم‬# ‫س‬‫م‬ ‫ترسی‬# ‫س‬‫د‬ ‫از‬ ‫جلوگیری‬ ‫و‬ ‫ی‬# ‫ش‬ ‫درون‬ ‫م‬# ‫ه‬‫م‬ ‫اطالعات‬ ‫نگهداری‬ .‫کالس‬ ‫بیرون‬ • ‫د‬# ‫ک‬ ‫امنیت‬ ‫افزایش‬ :‫دسترسی‬ ‫‌های‬ ‫ت‬‫حال‬ ‫خصوصی‬ .‫دسترسی‬ ‫قابل‬ ‫کالس‬ ‫همان‬ ‫درون‬ ‫از‬ ‫فقط‬ ‫شده‬ ‫محافظت‬ .)‫‌ها‬ ‫س‬‫(زیرکال‬ ‫فرزند‬ ‫‌های‬ ‫س‬‫کال‬ ‫برای‬ ‫دسترسی‬ ‫قابل‬ ‫عمومی‬ .‫کالس‬ ‫بیرون‬ ‫از‬ ‫دسترسی‬ ‫قابل‬
  • 16. ‫انتزاع‬ .‫جزئیات‬ ‫‌سازی‬ ‫ه‬‫پیاد‬ ‫بدون‬ ‫کلی‬ ‫مفاهیم‬ ‫تعریف‬ ‫نی‬# ‫ع‬‫ی‬ # ‫ع‬‫انتزا‬ ‫از‬ ‫مستقیم‬ ‫ازی‬# ‫س‬‌ ‫ه‬‫نمون‬ ‫و‬ ‫د‬# ‫ن‬‫‌کن‬ ‫ی‬‫م‬ ‫ص‬# ‫خ‬‫مش‬ ‫را‬ ‫اختار‬# ‫س‬ ‫ط‬# ‫ق‬‫ف‬ ‫انتزاع‬ ‫‌های‬ # ‫س‬‫کال‬ .‫نیست‬ ‫ممکن‬ ‫‌ها‬ ‫ن‬‫آ‬
  • 17. ‫وراثت‬ ‫اصل‬ .‫ببرد‬ ‫ارث‬ ‫به‬ ‫را‬ ‫والد‬ ‫کالس‬ ‫متدهای‬ ‫و‬ ‫‌ها‬ ‫ی‬‫ویژگ‬ ‫‌تواند‬ ‫ی‬‫م‬ ‫فرزند‬ ‫کالس‬ ‫یعنی‬ ‫وراثت‬ .‫‌شود‬ ‫ی‬‫م‬ ‫تکرار‬ ‫از‬ ‫جلوگیری‬ ‫و‬ ‫د‬# ‫ک‬ ‫از‬ ‫مجدد‬ ‫استفاده‬ ‫باعث‬ ‫اصل‬ ‫این‬ ‫جدید‬ ‫متدهای‬ ‫و‬ ‫‌ها‬ ‫ی‬‫ویژگ‬ ،‫والد‬ ‫‌های‬ ‫ی‬‫ویژگ‬ ‫بر‬ ‫عالوه‬ ‫‌تواند‬ ‫ی‬‫م‬ ‫فرزند‬ ‫کالس‬ .‫باشد‬ ‫داشته‬ ‫هم‬ ‫را‬ ‫خودش‬ ‫مخصوص‬
  • 19. ‫چندریختی‬ ‫اصل‬ ‫وظایف‬ ‫ا‬# ‫م‬‫ا‬ ،‫د‬# ‫ن‬‫باش‬ ‫ه‬# ‫ت‬‫داش‬ ‫د‬# ‫ل‬‫وا‬ ‫کالس‬ ‫ا‬# ‫ب‬ ‫‌نام‬ ‫م‬‫ه‬ ‫متدهای‬ ‫د‬# ‫ن‬‫‌توان‬ ‫ی‬‫م‬ ‫د‬# ‫ن‬‫فرز‬ ‫‌های‬ # ‫س‬‫کال‬ ‫والد‬ ‫کالس‬ ‫متدهای‬ ‫عملکرد‬ ‫‌توان‬ ‫ی‬‫م‬ ،‫ب‬# ‫ی‬‫ترت‬ ‫ن‬# ‫ی‬‫ا‬ ‫ه‬# ‫ب‬ .‫باشد‬ ‫متفاوت‬ ‫د‬# ‫ن‬‫‌توا‬ ‫ی‬‫م‬ ‫ا‬# ‫ه‬‌ ‫ن‬‫آ‬ .‫کرد‬ ‫‌سازی‬ ‫ه‬‫پیاد‬ ‫مختلف‬ ‫‌های‬ ‫ه‬‫شیو‬ ‫به‬ ‫فرزند‬ ‫‌های‬ ‫س‬‫کال‬ ‫در‬ ‫را‬
  • 21. ‫مزایا‬ ‫معایب‬ ‫بودن‬ ‫ماژوالر‬ ‫کدنویسی‬ ‫زیاد‬ ‫حجم‬ ‫کدها‬ ‫از‬ ‫مجدد‬ ‫استفاده‬ ‫قابلیت‬ ‫زبان‬ ‫چند‬ ‫در‬ ‫‌سازی‬ ‫ه‬‫پیاد‬ ‫قابل‬ ‫‌نویسی‬ ‫ه‬‫برنام‬ ‫‌وری‬ ‫ه‬‫بهر‬ ‫میزان‬ ‫افزایش‬ ‫شناسایی‬ ‫به‬ ‫زیاد‬ ‫زمان‬ ‫تخصیص‬ ‫پروژه‬ ‫در‬ ‫‌گرایی‬ ‫ی‬‫ش‬ ‫‌های‬ ‫ه‬‫مولف‬ ‫‌افزاری‬ ‫م‬‫نر‬ ‫‌پذیری‬ ‫س‬‫مقیا‬ ‫و‬ ‫‌روزرسانی‬ ‫ه‬‫ب‬ ‫قابلیت‬ ‫باال‬ ‫‌پذیری‬ ‫ف‬‫انعطا‬
  • 23. ‫ویژگی‬ ‫‌گرا‬ ‫ی‬‫ش‬ ‫‌نویسی‬ ‫ه‬‫برنام‬ ‫تابعی‬ ‫‌نویسی‬ ‫ه‬‫برنام‬ ‫تمرکز‬ ‫‌ها‬ ‫ن‬‫آ‬ ‫بین‬ ‫روابط‬ ‫و‬ ‫اشیاء‬ ‫ریاضی‬ ‫اعمال‬ ‫و‬ ‫توابع‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫درون‬ ‫متدها‬ ‫همراه‬ ‫به‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫دارند‬ ‫قرار‬ ‫اشیاء‬ ‫همیشه‬ ‫و‬ ‫‌کنند‬ ‫ی‬‫نم‬ ‫تغییر‬ ‫‌ها‬ ‫ه‬‫داد‬ ‫هستند‬ ‫ثابت‬ ‫ساختار‬ ‫وراثت‬ ‫و‬ ‫‌ها‬ ‫س‬‫کال‬ ‫ساختار‬ ‫‌ها‬ ‫ن‬‫آ‬ ‫ترکیب‬ ‫و‬ ‫خالص‬ ‫توابع‬ ‫معایب‬ ،‫بلندتر‬ ‫کدهای‬ ،‫بیشتر‬ ‫پیچیدگی‬ ‫همزمانی‬ ‫مشکالت‬ ‫برای‬ ‫‌سازی‬ ‫ه‬‫پیاد‬ ‫در‬ ‫دشواری‬ ‫‌تر‬ ‫ه‬‫پیچید‬ ‫مسائل‬ ‫برخی‬