پروسیجر (Procedure) پروسیجر در مهندسی چیست
پروسیجر (Procedure) چیست؟ برای ایجاد یک دید اولیه میتوان گفت که پروسیجر (Procedure) در واقع یک بلاک کد است که به آن یک نام داده شده است هر زمان که بخواهیم آن کدها اجرا شوند به جای اینکه همه آنها را دوباره تایپ کنیم کافی است نام آنها را صدا بزنیم تا Visual Basic آنها را اجرا نماید. به طور کلی پروسیجر (Procedure) به معنای “روش” یا “فرایند” است و در حوزههای مختلف به کار میرود. در زیر به چند زمینهای که پروسیجر ( رویه، اصول، پروسه)
اهمیت دارد، اشاره میکنم:
برای مثال فرض کنید در یک کارخانه کنسروسازی دستگاه بسته بندی چند عمل خاص را انجام میدهد
- ریختن مواد درون قوطی کنسرو
- بستن درب قوطی
- چسباندن بر چسب روی قوطی
- درج تاریخ تولید و تاریخ انقضا
این چهار مرحله معادل با همان کدهایی است که درون یک پروسیجر نوشته میشود. نام پروسیجر نیز معادل نامی است که به دستگاه داده شده است.
استفاده از پروسیجر مزایایی به شرح زیر دارد:
- از تکرار کدهایی که به تعداد به آنها نیاز است جلوگیری میشود.
- آزمایش و خطایابی برنامه ساده تر میشود.
- خوانایی برنامه افزایش مییابد.
پروسیجر (Procedure) در مهندسی کامپیوتر
در مهندسی کامپیوتر، پروسیجر (Procedure) یا رویه به مجموعهای از دستورات برنامهنویسی گفته میشود که برای انجام یک کار مشخص تعریف شدهاند. این دستورات به صورت ترتیبی اجرا میشوند و میتوانند ورودیهایی دریافت کرده و خروجیهایی تولید کنند.
انواع پروسیجر
توابع (Functions): پروسیجرهایی هستند که علاوه بر انجام یک کار، یک مقدار را نیز برمیگردانند.
زیرروالها (Subroutines): پروسیجرهایی هستند که فقط یک کار را انجام میدهند و مقداری را برنمیگردانند.
انواع پروسیجرها در Visual Basic
Event Procedure
به رفتارهای مختلفی که یک آبجکت (Object) بر اساس فشردن کلیدی بر روی صفحه کلید یا ماوس انجام میدهد Event گویند. برای مثال میتوانید تعیین کنید با کلیک ماوس یک قطعه کد و با دابل کلیک آن قطعه کد دیگری اجرا شود. پروسیجری که کدهای نوشته شده بین آن برای اجرا شدن بسته به حالات ماوس و صفحه کلید دارد Event Procedure نامیده میشود.
شکل کلی
Private Sub Object name_Event Name(Arguments)
Code Block
End Sub
مثال :
()Private Sub CommandButton1_Click
Code Block
End Sub
کدهای بین این Event Procedure در اثر کلیک دکمه چپ ماوس اجرا میشوند.
Sub Procedure
زمانی که میخواهید دستوراتی را وارد کنید که عمل خاصی را انجام میدهند و بتوانید هرگاه که میخواهید آنها را اجرا کنید، Sub Procedure ها مفید واقع میشوند.
شکل کلی یک Sub Procedure به صورت رو به رو
Public/Private Sub Name(Argument As Argument Type,…)
Code Block
End sub
کلمات Sub و End Sub کلمات کلیدی در زبان Visual Basic هستند. در قسمت Name نام Procedure Sub و در قسمت Code Block کدهای خود را وارد کنید.
تفاوت Public با Private
در صورتیکه قبل از Sub کلمه Public را وارد کنید Sub Procedure در تمامی ماژولها قابل فراخوانی است. ولی اگر کلمه Private را قرار دهید فقط در ماژولی که آن را تعریف کرده اید قابل فراخوانی باشد.
در صورت عدم تایپ Public و Sub Procedure Private بطور پیش فرض Public تعریف میشود.
مثال :
()Public Sub show_Messagebox
MsgBox(“this is the first procedure, 1”)
MsgBox(“this is the first procedure,2”)
MsgBox(“this is the first procedure, 3”)
End sub
هر بار که این Sub Procedure را صدا بزنیم سه پیغام نمایش داده میشود.
نحوه نسبت دادن و ارسال آرگومان به یک Sub Procedure
آرگومانها متغیرهایی هستند که Sub Procedure برای انجام وظایف خود از آنها استفاده میکند. مزیت استفاده از آرگومان در ساختار Sub Procedure این است که میتوان در هنگام صدا زدن Procedure Sub با تغییر در مقدار آرگومان نتایج مختلفی بدست آورد. به مثال زیر توجه کنید.
()Public Sub Factorial
Dim F, I,Num As Long Num=3
F = 1
For I = 1 To num
F=F*I
Next
MsgBox (F)
End Sub
کد بالا حاصل فاکتوریل عدد سه را محاسبه میکند. در صورتیکه میخواهید در هنگام فراخوانی این Sub Procedure قادر باشید مقادیر مختلفی را بجای عدد سه به Num ارسال کنید، تا کد حاصل فاکتوریل اعداد مختلف را حساب کند آن را به روش زیر بازنویسی کنید.
Public Sub Factorial(num As Long)
Dim F, I As Long
F = 1
For I = 1 To num
F= F * [
Next
MsgBox (F)
End Sub
حالا در هنگام فراخوانی برنامه براساس عددی که بجای آرگومان Sub Procedure قرار میدهیم. حاصلهای مختلفی بدست می آید.
Factorial (5)
Factorial (10)
Factorial (2)
آرگومانهای اختیاری
در مواقع لزوم میتوان آرگومانهایی را به صورت اختیاری در یک Sub Procedure قرار داد. این کار با آوردن کلمه کلیدی Optional قبل از نام آرگومان انجام پذیر است به مثال زیر توجه کنید.
Sub test (Arg1 As String Optional Arg2)
Code Block
End sub
همانطور که مشاهده میشود آرگومان Argi از نوع String و Arg2 از نوع Variant والبته اختیاری است.
توجه :
- آرگومانهای اختیاری حتماً باید از نوع Variant باشند.
- تعریف آرگومانهای اختیاری بایستی بعد از آرگومانهای اجباری انجام شود.
فراخوانی Sub Procedure در ساختار برنامه
هر زمان که میخواهید یک Sub Procedure را در برنامه فراخوانی کنید ابتدا کلمه کلیدی Call و سپس نام Sub Procedure را وارد کنید البته نوشتن کلمه Call اجباری نیست.
مثال:
Call Sub Procedure Name(Argument Or Value)
()Call Factorial
در صورتیکه Sub Procedure دارای آرگومان باشد نام آرگومان و یا مقدار جدیدی که میخواهید آرگومان داشته باشد را وارد کنید.
در مورد مثال قبل ، در صورتیکه میخواهید حاصل فاکتوریل عدد ۵ را محاسبه کنید، پنج را درون پرانتز Sub Procedure وارد کنید.
Call Factorial (5)
خروج از Sub Procedure
زمانی که میخواهید قبل از اتمام تمامی دستورات موجود در Sub Procedure از آن خارج شوید، میتوانید از کلمه کلیدی Exit Sub به همراه یک ساختار شرطی If استفاده کنید.
توابع (Functions)
توابع بسیار شبیه به Sub Procedure ها هستند. تمامی مفاهیمی که در رابطه با آنها اشاره شد در مورد توابع نیز صادق است. مهمترین تفاوت بین Sub Procedure و تابع در این است که Sub Procedure مقداری را بر نمیگرداند ولی تابع مقدار برگشتی دارد.
مقدار برگشتی به این معنی است که بتوان حاصل را در یک متغیر قرار داد و سپس بر روی آن عملیاتهای مختلفی را انجام داد. توجه کنید با اینکه در مثال فاکتوریل نتیجه ای به عنوان خروجی بدست آمد ولی نمیتوان نتیجه را درون متغیری قرار داد و از آن استفاده کرد.
شکل کلی تابع :
Public/Private Function Name (Argument As Argument Type) As
Function Type Code block
End Function
حالا مثال فاکتوریل را با استفاده از تابع بازنویسی میکنیم :
Public Function Factorial (num As Long) As Long
Dim F, I As Long
F = 1
For I = 1 To num
F=F *[
Next
Factorial = F
End Fun ction
در این حالت قادریم حاصل را درون متغیری قرار دهیم و از آن برای محاسبات دیگر استفاده کنیم.
x= Factorial(3)+2
MsgBox (x)
این که مقدار تابع را با عدد دو جمع کرده و در متغیر X قرار میدهد. سپس حاصل را بوسیله یک کادر پیغام نمایش میدهیم.
Visual Basicحاوی تعداد زیادی توابع از پیش ساخته است که در مقاله مربوطه به شرح آنها میپردازیم.
خروج از توابع
زمانی که میخواهید قبل اتمام تمامی دستورات موجود در توابع از آن خارج شوید، میتوانید از کلمه کلیدی Exit Functions به همراه یک ساختار شرطی IF استفاده کنید.
اضافه کردن پروسیجر از طریق پنجره Add Procedure
VBA به شما امکان میدهد تا پروسیجرها را بدون تایپ و از طریق یک پنجره ویزارد ایجاد کنید.
۱. در پنجره VBAبر روی منوی Insert و سپس گزینه Procedure کلیک کنید.
عکس
۲. در پنجره Add Procedure ،نام نوع و سطح دسترسی Procedure را تعریف کنید.
۳. بر روی دکمه OK کلیک کنید
ماژول ها
ماژول ها محلی برای نوشتن کدها هستند. در ماژولها میتوانید پروسیجرها را نوشته و آنها را بطور مستقیم درون ساختار Excel استفاده کنید. در ساختار ماژول هر کدی که میخواهید بنویسید باید درون یک پروسیجر قرار گیرد. پس از نوشتن پروسیجر درون ماژول در صورتی که روی هر یک از Sheet های Excel کامپوننتی را اضافه کنید، بلافاصله پنجره ای باز شده می توانید پروسیجرهایی را که درون ساختار و ماژول نوشته اید مشاهده کرده و یکی از آنها را انتخاب کنید. حال با کلیک بر روی آن کامپوننت پروسیجر اجرا میشود.
روش استفاده از Procedure های نوشته شده در Excel
همانطور که گفته شد کدهایی که در ماژول وارد میشوند را میتوانید مستقیماً از طریق کامپوننتهایی که بر روی Sheet های Excel قرار می دهید، اجرا کنید.
روش کار
۱. در Toolbar بر روی دکمه Insert کلیک کرده و گزینه Module را کلیک کنید.
۲. Procedureهای خود را درون آن تایپ کنید.
عکس
۳. در ریبون Developer در بخش Controls بر روی دکمه Insert کلیک کنید.
۴.بر روی کامپوننت دکمه زیر گروه Form Controls کلیک کنید.
یادآوری برای اتصال یک پروسیجر تنها میتوانید از کامپوننتهای زیر گروه Form Controls استفاده کنید زیرا کامپوننتهای زیرگروه ActiveX قابلیت اتصال به پروسیجر ماژول را ندارند. بوسیله ویژگی Drag & Drop آن را بر روی Sheet قرار دهید.
عکس
۵. پنجره Assign Macro باز میشود. از لیست آن نام پروسیجر مورد نظر را انتخاب کرده و بر روی دکمه OK کلیک کنید. با کلیک بر روی این کامپوننت کدهای نوشته شده پروسیجر اجرا میشوند.
یادآوری در صورت استفاده از سایر کامپوننتهای زیر گروه Form Controls پنجره Assign Macro باز نمیشود. برای اتصال آنها به یک ماکرو میبایست بر روی آنها راست کلیک کرده و گزینه Assign Macro را کلیک کنید.
عکس
سطح دسترسی به متغیرها
حال که با مفهوم پروسیجر آشنا شدید میخواهیم به بحث دسترسی متغیرها اشاره کنیم. به طور ساده متغیری که درون یک پروسیجر تعریف میشود، فقط درون ساختار همان پروسیجر وجود دارد. در نتیجه میتوان دو متغیر هم نام را در دو پروسیجر مختلف تعریف کرد.
( )Sub Test1
Dim my_var As String my_var=”Hello World” MsgBox(my_var) End Sub
()Sub Test2
Dim my_var As Integer
My_var=2
MsgBox(my_var)
End Sub
مثال:
همانطور که مشاهده میشود در Test Sub Procedure متغیری به نام my_var از جنس String تعریف و به آن مقدار Hello World را دادهایم.
در Test Sub Procedure متغیری به همان نام ولی از جنس Integer تعریف و به آن مقدار ۲ را دادهایم. در نتیجه میتوانید دو متغیر هم نام اما در دو پروسیجر متفاوت داشته باشید بدون اینکه اشکالی در روند اجرای برنامه ایجاد شود.
مبحث پروسیجر در حوزه های مختلف
پروسیجر در پزشکی: مجموعه ای از مراحل و اقدامات درمانی برای تشخیص، درمان یا مراقبت از یک بیماری یا وضعیت خاص است.
پروسیجر در مهندسی: مجموعهای از مراحل و دستورالعملهای مشخص برای انجام یک کار یا رسیدن به یک هدف خاص در مهندسی است.
اتاق پروسیجر: اتاقی در بیمارستان یا مرکز درمانی که در آن عملهای جراحی کوچک و یا برخی از اقدامات درمانی انجام میشود.
پروسیجر درمانی: همان پروسیجر پزشکی است و به مجموعهای از مراحل درمانی اطلاق میشود.
پروسیجر در بازرگانی: مجموعهای از مراحل و دستورالعملهایی است که برای انجام یک فرآیند تجاری، مانند فروش، تولید یا خدماتدهی، تعریف شده است.
پروسیجر در SQL: مجموعهای از دستورات SQL است که برای انجام یک کار خاص در پایگاه داده تعریف شده است.
پروسیجر زیبایی: مجموعه ای از روشها و تکنیکهای پزشکی یا زیبایی برای بهبود ظاهر و جوانسازی پوست است.
نکته: معنای دقیق پروسیجر بسته به زمینه استفاده آن کمی متفاوت خواهد بود، اما به طور کلی به مجموعهای از مراحل و دستورالعملهای مشخص برای انجام یک کار اشاره دارد.
چرا به پروسیجر نیاز داریم؟
تکرارپذیری: هر مهندس میتواند یک کار را به طور دقیق و یکسان تکرار کند.
استانداردسازی: ایجاد استانداردهای کاری و تولید محصولات با کیفیت یکسان.
بهبود مستمر: امکان بررسی و بهبود مداوم روشها.
آموزش: ابزاری عالی برای آموزش کارکنان جدید.
مدیریت ریسک: کاهش ریسکهای مرتبط با یک پروژه.
کاربردهای پروسیجر در مهندسی کامپیوتر
پروسیجر در برنامهنویسی سیستمعامل: برای پیادهسازی سیستمعاملها و مدیریت منابع سیستم.
پروسیجر در پایگاه داده: برای تعریف عملیاتهای پیچیده روی دادهها (مانند ذخیره، بازیابی، بهروزرسانی و حذف).
پروسیجر در برنامهنویسی وب: برای ایجاد توابعی که عملیات مختلفی را روی دادههای وب انجام میدهند.
پروسیجر در بازیسازی: برای پیادهسازی رفتارهای مختلف شخصیتها و اجسام در بازی.
پروسیجر در هوش مصنوعی: برای پیادهسازی الگوریتمهای یادگیری ماشین و پردازش زبان طبیعی.
در کل، پروسیجرها نقش بسیار مهمی در بهبود عملکرد سازمانها و صنایع مختلف ایفا میکنند. با استفاده از پروسیجرها، میتوانیم اطمینان حاصل کنیم که کارها به صورت مؤثر و کارآمد انجام میشوند و نتایج مطلوب حاصل میشود.