بازگشت   پی سی سیتی > کامپیوتر اینترنت و شبکه Computer internet > زبان های برنامه نویسی Programming

زبان های برنامه نویسی Programming بحث در مورد زبانهای مختلف برنامه نویسی

 
 
ابزارهای موضوع نحوه نمایش
Prev پست قبلی   پست بعدی Next
  #2  
قدیمی 07-22-2011
ali_zangeneh آواتار ها
ali_zangeneh ali_zangeneh آنلاین نیست.
کاربر عادی
 
تاریخ عضویت: Feb 2010
محل سکونت: کرمانشاه
نوشته ها: 50
سپاسها: : 54

31 سپاس در 21 نوشته ایشان در یکماه اخیر
ali_zangeneh به Yahoo ارسال پیام
Question call by value & call by refrence

سلام از مطلبی که فرستادی خیلی خوشم اومد و دستت درد نکنه موضوع ارجاع به توابع همیشه مساله ساز بوده ولی یه جاهایی حرفتو قبول ندارم.
اول اینکه سیشارپ با انهمه وسعتی که داره اصلا در حد و اندازه های سی پلاس پلاس نیست که چه برسه به سی یا ابجکتیو سی ولی من بحث سی پلاس پلاسشو که خودت پیش کشیدی رو باز میکنم.
ما در اکثر زبان های برنامه نویسی میتونیم یا ادرس یک متغیر (یعنی خود متغیر-همون کال بای ریفرنس) و هم یک کپی از متغیر (کال بای ولیو) رو به عنوان ارگومان ورودی به متد یا تابعی بفرستیم.
حالا توی همین سی پلاس پلاسی رو که کوچک تر از سیشارپ خوندیدش
ما میتونیم بیش از یک خروجی داشته باشیم از یک تابع یا متد میپرسی چطور خب ساده است ما دو تا عدد به یک تابع میفرستیم از نوع صحیح و با امضای کال بای ولیو
بعد دوتا متغیر دیگه از نوع اعشاری ولی با ارجاع یعنی اینکه ادرسشو میفرستیم به تابع حالا این متغیر های سری دوم میتونند ارایه یا هر شی دیگه ایی هم باشند.حالا در بدنه تابع ما میایم دو متغیر رو یه بار از هم کم میکنیم (دوتا متغیر سری اول از نوع صحیح و با ارجاع کال بای ولیو) و و درجش میکنیم توی متغیر محتوای متغیر اول از سری دوم و یک بار هم با هم جمع میکنم دوتا متغیر اولو و میریزم داخل متغیر دوم از سری دوم.
این کا رو با استفاده از عملگر های * و & انجام میدم.
این نمونه ایی از ارسال بصورت کال بای ریفرنس بود.
دلیلی وجود نداره که چون return یک مقدار رو یفرسته بصورت فراخوانی بازگشتی پشته سیستم برای یک متد دیگه ما نتونیم ارسال چند تایی انجام بدیم مثلا خود همین ریترن میتونه ادرس ابتدای یک ارایه رو به ما برگردونه و ما خودمون روی دیگر عناصر پیمایش بکنیم.
دوم اینکه شما اگه میخوای خروجی تابع 30 بشه که نباید a رو بهلاوه مساوی a+b میکردی ، یا مینوشتی a=a+b یا a+=b یا اینکه با عملگر & ادرس متغیر هاتو به تابع میفرستادی و با عملگر * با محتوای اونا کار میکردی.

کال بای ولیو و کال بای ریفرنس همیشه سوال کنکور و امتحان بوده و هست و اینکه به طور پیش فرض چه زبانی چه نوع ارجاعی رو دیفالت قرار داده که نشان ضعف اون زبان نیست
اگه مانیتونیم با سی پلاس پلاس کاری رو که به سادگی توی سیشارپ میشه انجام داد رو انجام بدیم از ضعف سی پلاس پلاس نیست از بی سوادی و کم تجربگی ماست .اگه همین سیشارپ دات نت نیومد خیلی ها نمیتونستند با خانه سازی بازی کردن ادعای برنامه نویسی بکنند.
اگه سی یا سی پلاس پلاس داره یه عمره جوابگوی تمام نیاز ها میشه و کامپایلر های قدرتمند و استانداردی رو داره به خاطر سادگی و صریح بودن دستوراتشه
کل ویژوال سیشارپ دات نت به اندازه یه دستور exit توی سی هم نیست
پاسخ با نقل قول
 


کاربران در حال دیدن موضوع: 1 نفر (0 عضو و 1 مهمان)
 
ابزارهای موضوع
نحوه نمایش

مجوز های ارسال و ویرایش
شما نمیتوانید موضوع جدیدی ارسال کنید
شما امکان ارسال پاسخ را ندارید
شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
شما نمیتوانید پست های خود را ویرایش کنید

BB code is فعال
شکلک ها فعال است
کد [IMG] فعال است
اچ تی ام ال غیر فعال می باشد



اکنون ساعت 02:46 PM برپایه ساعت جهانی (GMT - گرینویچ) +3.5 می باشد.



Powered by vBulletin® Version 3.8.4 Copyright , Jelsoft Enterprices مدیریت توسط کورش نعلینی
استفاده از مطالب پی سی سیتی بدون ذکر منبع هم پیگرد قانونی ندارد!! (این دیگه به انصاف خودتونه !!)
(اگر مطلبی از شما در سایت ما بدون ذکر نامتان استفاده شده مارا خبر کنید تا آنرا اصلاح کنیم)


سایت دبیرستان وابسته به دانشگاه رازی کرمانشاه: کلیک کنید




  پیدا کردن مطالب قبلی سایت توسط گوگل برای جلوگیری از ارسال تکراری آنها