PDA

View Full Version : گفتگو: روش حل مساله



nabeel
چهارشنبه 09 بهمن 1387, 23:47 عصر
ضمن سلام به حضور دوستان گرامی

مدت زیادی نیست که توی این فروم عضو شدم ولی توی همین مدت کوتاه به یه نکته پی بردم و اون اینکه ریشه خیلی از سئوالها جدا از اینکه سئوال از سوی چه کسی و با چه سطحی از معلومات پرسیده میشه , اینه که :


درک درستی از خود مشکل و یا به عبارتی خود سئوال وجود نداره

به بیانی واضحتر در خیلی از موارد پاسخ در داخل خود سئوال وجود داره ! ( و یا لااقل بخش قابل توجهی از پاسخ )

سئوالهایی با عنوان : چگونه , اگه , میخوام و ... عموماً توی این دسته قرا میگیرن

ببینید دوستای عزیز , نرم افزارها عملاً تنها به عنوان یک واسط کاربر بین شما و سیستم قرار میگیرن . کامپیوتر هیچ درکی از درخواست شما نداره و عملاً این شما هستید که باید بتونید اون رو متوجه درخواست خودتون کنید

مطمئناً تنها با دونستن دستورات شما نمیتونید موفق به ایجاد ارتباطی دقیق و پویا با کامپیوتر بشید . لازمه این کار درک صحیح و عمیق از صورت مساله هستش که در صورت موفقیت در انجام این امر مطمئناً با در کنار هم قرار دادن دستورات میتونید به مشکل خودتون غلبه کنید

روش حل مساله یکی از تکنیکهایی هستش که شما برای برنامه نویسی موفق و سریع نیاز شدیدی به اون دارید

بیاید با هم نگاهی به یه تیپ از سئوالها داشته باشیم :

تذکر : تشابه سئوال مطرح شده با برخی سئوالات قبلی , دال بر زیر سئوال بردن فرد سئوال کننده نیست

سئوال : چطوری میتونم کاری کنم که برنامه در حالتی که باز میشه , در صورتی که تعداد نفرات تاخیری بیشتر از دو نفر شدن , اقدام به نمایش یک پیغام کنه

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

از اونجایی که عموماً منظور کاربرا از برنامه باز میشه همون باز شدن فرم ( به عنوان نمای کاربر ) هستش پس من این مساله رو به همین آبجکت مربوط میکنم

در حالتی که باز میشه

رویدار باز شدن On open هستش که اگه دقت داشته باشید به نوعی ترجمه انگلیسی همین بخش از سئواله ( در صورتی که سئوال در حین بالا اومدن بود On Load و در صورتی که سئوال در حین فعال شدن بودن On Activate و ... )
این بخش از سوال نشون میده که ما باید روی این رویدار فوکوس کنیم و عملاً کارهایی که میخوایم انجام بدیم رو در داخل این رویدار به انجام برسونیم ( در اینجا کد نویسی )

در صورتی که

این بخش از سوال به نوعی بیانگر یک شرط هستش خب در انگلیسی هم کلمه شرط که در زبان برنامه نویسی هم مورد استفاده قرار میگیره If هستش
تا اینجا هم باید متوجه شده باشید که باید دست به کار بشیم تا یک شرط رو در داخل برنامه به اجرا در بیاریم

شرط درخواستی ما از چند بخش تشکیل شده

تعداد نفرات + تاخیری + بیشتر از دو

در اینجا قصد کد نویسی این شرط رو ندارم ولی به طور خلاصه اشاره میکنم که جهت رسیدن به این بخش راه حلهای مختلفی وجود داره که با توجه به سطح اطلاعات کاربر قابل استفاده هستش که میتونم از اون جمله به موارد زیر اشاره کنم
استفاده از DCount , ADO و یا DAO

ساختار دستور If هم که به صورت زیره ( در ساده ترین حالتش )


If ...... Then


End If

به جای نقطه چین عبارت شرطی مورد نظر رو قرار بدید , در صورت برآورده شدن شرط دستوراتی که بین If و End If نوشته شدن به اجرا در میاد

خب این دستور فرضی توی کدوم بخش از سئوال به اون اشاره شده ؟

اقدام به نمایش یک پیغام کنه

درسته ، ما از برنامه میخوایم که در صورت برآورده شدن شرط اقدام به نمایش یک پیغام کنه , جهت صدور پیغام از دستورMsgBox استفاده میکنیم

پس دستور نهایی رو به صورت زیر مینویسم


If .... Then
MsgBox X
End if

ملاحظه میکنید که در بسیاری مواقع با مطالعه دقیقتر خود سئوال , عملاً راه حل هم به راحتی به ذهنتون میرسه .

مواردی که میتونه باعث بشه که سئوال به کمک شما نیاد ( بر خلاف مثال بالا )

- خود شما تفسیر درستی از مشکل پیش اومده ندارید و عملاً سردرگم شدید
- سئوال رو با بی حوصلگی از خودتون پرسیدید !!! و تمایلی به رفع مشکل فوری خودتون ندارید چرا که در غیر اینصورت سئوال رو کاملتر و واضحتر مطرح میکردید
- اطلاعاتتون کافی نیست ( که متاسفانه در اینجور مواقعی دیگه جنبه سئوالی رو از دست میده و بیشتر جنبه درخواست کار و سفارش کار پیدا میکنه )
- سئوال از بعد فنی در جایگاهی قرار داره که امکان پاسخگویی به این شیوه وجود نداره

با این توضیحات به دوستان توصیه میکنم موارد زیر رو مد نظر قرار بدن تا لااقل بچه هایی که میتونن جوابگو باشن , ترغیب بشن که کمکتون کنن :

- سئوال رو تلگرافی ننویسید . سئوال تلگرافی الزاماً جوابی تلگرافی تر از خودش داره !!
- تا حد امکان فایل نمونه ارسال کنید . باور کنید خیلی از جوابها رو نمیشه توضیح داد , باید اجراشون کرد
- موفقیت شما الزاماً در گرو سعی و تلاش خودتونه , پس کار رو تا جایی که دچار مشکل شدید پیش ببرید و مابقی رو به بقیه بچه ها بسپورید

اگه به جوابتون خیلی فوری نیاز دارید , اگه میخواید کسی به سئوالتون جواب بده , اگه میخواید به یه راه حل قطعی و نه مقطعی برسید , اگه میخواید حداقل برای وقت خودتون ارزش بیشتری قائل بشید این نکات بدیهی رو رعایت کنید

موفق باشید