ورود

نسخه کامل مشاهده نسخه کامل : از یکی می خوام procudure رو تو پاسکال برام قشنگ توضیح بده



Naser_helboy
17-05-2007, 12:16
با عرض سلام خدمت اساتید خودم

از یکی می خوام procudure رو تو پاسکال برام قشنگ توضیح بده

مثلا فرض کنید تو بلاک اصلی دو تا متغیر داریم می خواهیم یه procedure رو صدا بزنیم که یه سری عملیات رو این متغیرها انجام بده بعد مقدار جدید رو دوباره برگردونه به بلاک اصلی و بقیه برنامه رو ادامه بده...

اولا چه جوری اون پروسیجر رو صدا بزنیم
ثانیا چه جوری مقدار رو برگردونیم

ممنون میشم اگه کمک کنید

Mehran NZ
18-05-2007, 01:49
من در پاسکال توضیح میدم
روالها یا همون پراسیجرها دقیقا مثل توابع هستند فقط توابع می تتونن فقط یک مقدار برگردونن و روالها می تونن چندین مقدار رو می برگردونن
خوب حالا میریم سر اصل مطلب
برای فراخوانی روالها فقط کافی اسم روال رو بنویسیم و متغیرهایی که می خوایم روشون کار انجام بدیم رو داخل پرانتز قرار بدیم
مثلا روال Add رو در نظر بگیر فقط کافی در بدنه اصلی برنامه بنویسیم
add(x,y);

حالا تعریف روالها
مثال زیر رو در نظر بگیر که در واقع تعریف همون روالی که در بالا فراخونیش کردیم هست
procedure add(var a:integer,b:integer);

a,b دو متغیر مجازی هستند که به ترتیب متناظر با x,y هستند یعنی مقدار x میره تو a و مقدار y میره تو b و از این به بعد در داخل روال می تونی از این دو متغیر مجازی استفاده کنی
نکته1: لازم نیست اسم متغیرهای مجازی با اسم متغیرهای اصلی فرق کنن یعنی می تونستی به جای a,b همون x,y رو بنویسی

نکته مهم: این نکته در مورد اینه که چه وقت پشت متغیر مجازی عبارت var قرار می گیره
این عبارت فقط موقعی پشت متغیر قرار می گیره که ما بخوایم اون متغیر رو در داخل روال تغییر بدیم و بعد به برنامه اصلی برگردونیم ولی اگه متغیر در داخل برنامه تغییر کنه و یا نکنه و ما نخوایم اون تغییرات رو به برنامه اصلی برگردونیم از var استفاده نمی کنیم
مثلا اگه متغیر a در برناممون مقدار 2 داشته باشه و ما بخوایم روالی بنویسیم که مقدارش رو به 3 تغییر بده باید پشت متغییر متناظر با a عبارت var رو قرار بدیم چون قراره مقدارش تغییر کنه ولی اگه فقط بخویم یک مقداری رو به روال منتقل کنه و دیگه هیچ تغییری نکنه از علامت var استفاده نمی کنیم

دوستان اگه جایی رو اشتباه گفتم بگید