امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
بررسی GoTo
نویسنده پیام
Iron_Fist غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,456
موضوع‌ها: 70
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 109
( 456 تشکر در 134 ارسال )
ارسال: #1
at  بررسی GoTo
هر کی دلیلی مبنی بر رد کردن یا استفاده کردن از GoTo
داره لطفآ ارایه کنه  At
البته دلایل علمی و منطقی باشه نه هوایی
(آخرین ویرایش در این ارسال: ۰۷-تير-۱۳۸۵, ۲۲:۲۴:۵۸، توسط Iron_Fist.)
۰۷-تير-۱۳۸۵, ۲۲:۱۷:۵۴
ارسال‌ها
پاسخ
hamed_Arfaee آفلاین
مدیر بخش
*****

ارسال‌ها: 1,334
موضوع‌ها: 231
تاریخ عضویت: تير ۱۳۸۳

تشکرها : 1250
( 2634 تشکر در 730 ارسال )
ارسال: #2
RE: بررسی GoTo
با سلام
goto یک نوع پرش هست که از نا کجا به نا کجا صورت می گیره و در تحلیل یک برنامه پیدا کردن این نا کجا ها سخت هستن ولی مثلا exit for که خودش یک پرش هست از نا کجا به انتهای for هست پس پیدا کردن مقصد و تحلیل و درک برنامه خیلی ساده تر می شه
البته این نظر منه

حامد ارفعی

موفقيت، پيش رفتن است، نه به نقطه ي پايان رسيدن.(آنتوني رابينز)


تریگرها در SQL server

آیا میدانید SQL ای
۰۸-تير-۱۳۸۵, ۰۰:۰۲:۳۹
وب سایت ارسال‌ها
پاسخ
Iron_Fist غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,456
موضوع‌ها: 70
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 109
( 456 تشکر در 134 ارسال )
ارسال: #3
RE: بررسی GoTo
نه مشخصه کجا می ره
به لیبل می ره
لیبل رو هم به راحتی می شه تو سورس پیدا کرد
و می شه ادامه مسیر برنامه رو از اونجا پی گیری کرد
به نظر من این دلیل قانع کننده ای نیست !!!
(آخرین ویرایش در این ارسال: ۰۸-تير-۱۳۸۵, ۰۰:۱۷:۲۶، توسط Iron_Fist.)
۰۸-تير-۱۳۸۵, ۰۰:۰۵:۰۵
ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #4
RE: بررسی GoTo
دوستان سلام

اگر کسی با اسمبلر ها برنامه نوشته باشه میدونه که این goto همون چیزیه که توی اسمبلی خیلی کاربرد داره نه توی زبان های سطح بالا ! در واقع اونجا توی اسمبلر jump نامیده میشه و انواع مختلفی داره ! در زبان های سطح بالا مثلا شرط خروج از حلقه با توجه به دستور زبانی که داریم باهاش کار می کنیم مثلا واسه حلقه for تعریف می کنیم تا چه زمانی به چرخشش ادامه بده ولی مثلا توی زبان اسمبلی چیزی به شکل حلقه های زبانهای سطح بالا وجود نداره و در واقع با پرش از خطوط پایینی به بالایی میشه کار یه حلقه رو شبیه سازی کرد ! این نکته رو بگم که cpu کامپیوتر ما کد های ماشین رو خط به خط اجرا می کنه و مفهوم حلقه و شرط و شروط ، براش معنی نداره !

حالا......پرش توی اسمبلر ها با کمک همون label هایی که توسط برنامه نویس نوشته انجام میشه اما بطور کلی label ها چیزی نیستند جز یک متن معمولی راهنما برای ساده تر شدن کار برنامه نویسان ! زمان کامپایل تمام label ها به آدرس ها و آفست های حافظه تبدیل میشن و توی کد پایانی یا همون object code هیچ نشانی از label ها نخواهد بود !

معمولا توی زبانهای سطح بالا پرش ها به نوعی دیگه تفسیر میشن ( به عنوان شرط حلقه ها یا if ها و ...) و در واقع برای همین سطح بالا نامیده میشن ، چون در زبان سطح پایینی مثل اسمبلی ما قواعدی برای چرخش یا دستوراتی مثل if , else و خروج نداریم جز همین پرش ها یا jump ها !

برای کسب اطلاعات بیشتر به کتاب های زبان اسمبلی و مایکروپروسسورها مراجعه کنید !

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
۰۸-تير-۱۳۸۵, ۰۱:۲۷:۲۳
ارسال‌ها
پاسخ
Darg غایب
مدير بازنشسته
*****

ارسال‌ها: 894
موضوع‌ها: 40
تاریخ عضویت: تير ۱۳۸۴

تشکرها : 381
( 702 تشکر در 190 ارسال )
ارسال: #5
RE: بررسی GoTo
به اعتقاد من Goto شکا کد نویسی رو زشت میکنه اما بودن اون در بعضی جاها ضروریه.
مثلا زمانی که قراره یک یا چند خط کد دوباره اجرا بشه (در شرایط خاص) من ترجیح می دم به جای ابنکه برای اون خط (ها), یک زیر برنامه جدید با چند (ها) ورودی و خروجی تعریف کنم بیام و فقط با یک Goto Label و Label کار رو یه سره کنم.

برای طله خطا هم همیشه از Goto استفاده میشه:
On Error Goto Label

اما تا اونجایی که بتونم از Goto استفاده نمی کنم چون همون طور که گفتم نمی خوام کد هام زشت بشند !
۰۸-تير-۱۳۸۵, ۰۴:۳۶:۴۵
وب سایت ارسال‌ها
پاسخ
Iron_Fist غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,456
موضوع‌ها: 70
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 109
( 456 تشکر در 134 ارسال )
ارسال: #6
RE: بررسی GoTo
ممد جان شما آخرش استفاده ازش رو رد می کنی یا تایید ؟
چون شما فقط به کاربردش اشاره کردی
و در جواب اقا جواد باید بگم که صحبت هاشون رو تایید می کنم
به جز اون قسمت از حرفهاشون که گفتن کدها زشت می شه
اینجا معیار هر کسی برای زشت و قشنگی فرق می کنه پس
روش نمی شه به عنوان دلیل حساب کرد !

من از نظرات دوستان استفاده کردم ولی تا حالا کسی
به نظر من دلیل قانع کننده ای برای استفاده یا عدم استفاده ازش
نیورده
(آخرین ویرایش در این ارسال: ۰۸-تير-۱۳۸۵, ۱۳:۴۰:۱۴، توسط Iron_Fist.)
۰۸-تير-۱۳۸۵, ۱۳:۳۸:۱۳
ارسال‌ها
پاسخ
hamed_Arfaee آفلاین
مدیر بخش
*****

ارسال‌ها: 1,334
موضوع‌ها: 231
تاریخ عضویت: تير ۱۳۸۳

تشکرها : 1250
( 2634 تشکر در 730 ارسال )
ارسال: #7
RE: بررسی GoTo
چرا به جایه مشخصی میره ؟
یعنی شما به یک لیبل توی 1000 خط کد می گی جای مشخص ؟
فکر کن 10 جا goto استفاده شده باشه شما باید کارتو ول کنی بشینی label پیدا کنی تا دستورا رو بفهمی پس بجای مشخصی نمی ره ولی وقتی exit for
می نویسیم دیگه مشخصه کجا می ره و نیازی نیست که دنبالش بگردی.

حامد ارفعی

موفقيت، پيش رفتن است، نه به نقطه ي پايان رسيدن.(آنتوني رابينز)


تریگرها در SQL server

آیا میدانید SQL ای
۰۸-تير-۱۳۸۵, ۱۵:۱۲:۲۴
وب سایت ارسال‌ها
پاسخ
Darg غایب
مدير بازنشسته
*****

ارسال‌ها: 894
موضوع‌ها: 40
تاریخ عضویت: تير ۱۳۸۴

تشکرها : 381
( 702 تشکر در 190 ارسال )
ارسال: #8
RE: بررسی GoTo
اما ما هنوز منظورت رو از سوالی که پرسیدی, نفهمیدیم.
یه زمانی یادمه GWBasic بود قربونش برم توش امکان تعریف Sub وجود نداشت بنابراین خودت بودی و برنامه ای که تقریبا به اندازه خطوط کد درش GOTO به کار می رفت!
اما با وجود محیط هایی که درشون امکان تعریف SUB هست پست به نوعی بی معنی استفاده ار Goto (منظوره من هم از زشت شدن همین بود. چون محیطی که درش از Sub پشتیبانی میشه باید تا حد امکان Goto هارو درش کم کرد)
۰۸-تير-۱۳۸۵, ۱۵:۲۵:۳۶
وب سایت ارسال‌ها
پاسخ
Mamad2003 آفلاین
کاربر با تجربه
****

ارسال‌ها: 1,150
موضوع‌ها: 18
تاریخ عضویت: آذر ۱۳۸۲

تشکرها : 9
( 388 تشکر در 232 ارسال )
ارسال: #9
RE: بررسی GoTo
ببینید از نظر من استفاده کردن یا نکردن از goto بستگی به مهارت و تجربه خود برنامه نویس داره !
همون طور که گفتم تمام زبانهای برنامه نویسی سطح بالا راهکارهای بهتری رو برای پرش های مختلف در سطح برنامه ارائه می کنند که در مقابلش وجودیت goto رو بسیار کم رنگ می کنه !
اگر کسی بسیار تازه کار باشه ( یعنی با امکانات زبان مربوطه آشنا نباشه ) یا نتونه یه کد دقیق توی یه زبان برنامه نویسی بصورتی رو کاملا کارا بنویسه شاید برای سادگی ، در تبدیل منطقش به الگوریتم و برنامه ، از goto استفاده کنه . خیلی اوقات هم ممکنه برنامه نویسی از goto برای راحت کردن فهم برنامه اش استفاه کنه مثلا نخواد یا نتونه برنامه رو بشکل پیچیده بازگشتی یا Recursive بنویسه و یا حتی نتونه یه راه حل مشخص بدون goto براش پیدا کنه ، اونوقته که میاد و از goto استفاده می کنه ! در کل من خیلی به ندرت از goto استفاده می کنم و کرده ام و اکثر اوقات نیازی به اون نمی بینم ! اما بعضی اوقات همون جور که آقا جواد هم گفتند در کدی مثل On Error Goto دیگه اجتناب ناپذیره و باید استفاده بشه چون راه دیگه ای نداریم . بطور کل برنامه نویسان نست به Goto خیلی جبهه گیری می کنند و استفاده از اون رو یه برنامه نویسی درست نمی دونن اما بقول جمله ای از کتاب ++VC آقای Ivor Horton ، کلمه کلیدی Goto و استفاده از اون نمیتونه برنامه نویسی بدی باشه اما معمولا برنامه نویسان از اون دوری می کنند و استفاده از اون رو درست نمی دونند !

همون طور که گفتم goto مدل مشابه سطح پایین jump معمولی هست و از سطح پایین به سطح بالا ارث رسیده اما با وجود امکانات سطح بالا تقریبا بی مصرفه مگر در مواردی که ذکر کردم !

گويند بهشت و حور و کوثر باشد  ..  جوي می و شير و شهد و شکر باشد
پر کن قدح باده و بر دستم نه      ..   نقدي ز هزار نسيه خوشتر باشد  
۰۸-تير-۱۳۸۵, ۱۶:۳۵:۲۴
ارسال‌ها
پاسخ
Iron_Fist غایب
مدیر بازنشسته
*****

ارسال‌ها: 1,456
موضوع‌ها: 70
تاریخ عضویت: آبان ۱۳۸۴

تشکرها : 109
( 456 تشکر در 134 ارسال )
ارسال: #10
RE: بررسی GoTo
نقل قول: یعنی شما به یک لیبل توی 1000 خط کد می گی جای مشخص ؟
آره
نقل قول: فکر کن 10 جا goto استفاده شده باشه شما باید کارتو ول کنی
بشینی label پیدا کنی تا دستورا رو بفهمی پس بجای مشخصی نمی ره
نخیر
از امکان پیدا کردن ویرایشگر زبان برنامه نویسی استفاده می کنیم
همه این ها به نظر من دلیل بر تنبلی هست !
نقل قول: 1000 خط کد
دیگه برنامه ها جدیدآ به ساب ها و توابعی تقسیم می شن که فکر نکنم
اون قسمت مین برنامه هزار خط بشه !

ببینید دوستان خیلی از استاتید دانشگاهها و کلاس ها و ... می آن و از
اول تو کله اون کسی که می خواهد برنامه نویسی کنه می کنن که
GoTo دستور بی خود و حتی مضرری است و اگه از شون بپرسی
نمی تونن برات دلیل قانع کننده ای بیارن
و همش تبلی رو پیشه می کنن ( به کسی توهین نشه شفاف سازی می
کنیم ) و می گن که درک برنامه سخت می شه
حالا گیریم که درک برنامه سخت بشه ( که به نظر من اینطوری نیست )
یعنی به نظر شما تنها عامل سخت شدن درک برنامه GoTo هست !؟!
نقل قول: منظوره من هم از زشت شدن همین بود
به نظر شما زشته شاید به نظر من Do Loop زشت باشه ( به عنوان مثال گفتما )

ببینید دوستان من می خواهم تو این تاپیک تکلیف این GoTo رو روشن کنم
یه دلیل درستی بیارید
که بشه روش حساب کرد
آخه سخت فهمیدن برنامه که نشد دلیل !



۰۸-تير-۱۳۸۵, ۱۶:۴۱:۵۵
ارسال‌ها
پاسخ
Payman62 آفلاین
مدیر بخش ویژوال بیسیک
*****

ارسال‌ها: 2,273
موضوع‌ها: 149
تاریخ عضویت: اسفند ۱۳۸۴

تشکرها : 1308
( 3661 تشکر در 942 ارسال )
ارسال: #11
RE: بررسی GoTo
goto یکی از اشکالاتش اینه که فهم کد رو برای دیگران مشکل میکنه. یکی هم این که خود برنامه نویس ممکنه کمی گیج بشه و احتمال خطا در برنامش بالا بره.
ولی با استفاده از حلقه ها و exit و زیربرنامه ها هم فهم کد راحت تر میشه. هم کد ها مرتب تر میشن و برنامه نویس کمتر گیج میشه و احتمال باگ و خطا میاد پایین. هم برنامه با کلاس تر و حرفه ای تر میشه و شکل استاندارد به خودش میگیره.
۰۸-تير-۱۳۸۵, ۱۶:۴۶:۵۴
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Rolleyes بررسی اتصال به اینترنت با روشی کاملا مطمئن 1120 3 5,515 ۰۴-مرداد-۱۳۹۲, ۱۹:۵۲:۱۳
آخرین ارسال: amir360
  بررسی رکورد ها automa 5 5,669 ۱۰-اردیبهشت-۱۳۹۱, ۱۸:۲۹:۱۵
آخرین ارسال: Ghoghnus
  [سوال] اجرا و بررسی دستورات SQL در ADODB one hacker alone 2 3,205 ۱۶-مرداد-۱۳۹۰, ۱۰:۳۶:۱۵
آخرین ارسال: one hacker
  شبیه سازی Goto در notepad dcamera 3 2,754 ۱۴-شهریور-۱۳۸۸, ۰۲:۳۹:۳۶
آخرین ارسال: dcamera

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS