n امین روز سال چند شنبه میشود؟ مثلا اگر n=34 باشد میشه 2 اردیبهشت
n امین روز سال چند شنبه میشود؟ مثلا اگر n=34 باشد میشه 2 اردیبهشت
Last edited by پسراژدهاسوار; 17-10-2013 at 14:27.
لطفا سوالت رو واضح تر بگو تا بتونم کمکت کنم
سلام..///
************
این برنامه همون کاری که می خواید رو انجام میده..////
***************
***********کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید!![]()
Last edited by n00b; 17-10-2013 at 19:16.
سلام معذرت می خوام ولی بهتر بود که در حلقه دوم دستور if رو اینطوری بنویسید
کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام..///
*************
خوشحالم از این که برنامه رو خوندید و ممنون که جواب دادید..///
****************
مشکل اینجاست که اگه از 30=< استفاده کنید// با وارد کردن اعداد 30 61 92 123 154 185 216 246 276 306 336 و اعداد قبل + 1 و.../// برنامه نتیجه ی اشتباه نمایش میده../// (یکم بهش فکر کنید متوجه میشید چرا..///).///
************
موفق باشید!
***************************
اینا اعدادی هستند که با وارد کردنشون// شماره روز برابر صفر میشه///
************
***************کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
عدد 62 میشه 31 + 31 یعنی روز 31 ماه 2../// ولی اگه این عدد رو تو برنامه وارد کنید نتیجه میشه روز 1 ماه 3 که اشتباه هستش..///
***********
برنامه با وارد کردن هر دو عدد 31 و 32 نتیجه ی روز 1 ماه 2 رو نمایش میده../// که این مقدار برای عدد 31 اشتباه هستش..////
***************
اعداد بالا + 1 هم همین نتیجه رو میدن..//////////// از اعداد بالا بین اعداد بزرگتر از 217 اگه این اعداد رو با یک جمع کنید و تو برنامه وارد کنید// به دلیل مشکلی که تو حلقه دوم وجود داره مقدار روز برای ماه های 7 به بعد برابر 31 میشه که اشتباه هستش/// (این مشکل برای برنامه ی اول که خودم نوشتم وجود داره// و تو برنامه ی شما نتیجه مثل نتیجه ی اعداد 31 و 32 میشه//)..////
********
و کلی عدد دیگه هم هست..//////
Last edited by n00b; 24-10-2013 at 21:45.
این طور که معلومه هر دو برنامه مشکل داره../// متأسفانه وقتی برنامه قبل رو می نوشتم زیاد روش فکر نکردم و اون مشکلات پیش اومد..//// واقعاً متأسفم../// امیدوارم منو ببخشید..///
*********************
این برنامه ی جدیدی هستش که نوشتم/// فقط امیدوارم این بار درست کار کنه..///
*****************
******************کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ممنون که نظر دادید/// حالا برنامه بهتر از قبل کار می کنه..////
**************
موفق باشید!
Last edited by n00b; 25-10-2013 at 22:16.
سلا م میشه بگی چرا if رو کوچکتر مساوی 5 گذاشتی و یه توضیح در مورد برنام ات؟ راستی ممنون از توجهت![]()
سلام...////
****************
دو خط اول برنامه تعريف متغيير هايي هستش که بهشون نياز داريم.///
*******************
**********کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
متغيير intInput ورودي کاربر رو نگه ميداره// متغيير intDay شماره ي روز (در ماه) و متغيير intMonth شماره ي ماه رو ذخیره میکنه..///
**************
تو خط بعدي ورودي رو از کاربر دريافت مي کنيم و داخل متغيير intInput قرار ميديم// و تو خط بعديش شماره ماه رو برابر 1 قرار ميديم../// (شماره ماه بايد يه عدد بين 1 تا 12 باشه و مقدار 0 قابل قبول نيست.//)///
**********
**************کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خط بعدي تعريف يه حلقه هستش که 11 بار تکرار ميشه../// (0 1 2 3... تا 10 که جمعاً میشه 11 تا عدد.// 6ماه 31 روزه و 5ماه 30 روزه// بیشتر از این نیازی نیست که بررسی بشه///)///
**********
***************کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تو خط بعدي يه شرط وجود داره که بررسي مي کنه حلقه چند بار اجرا شده// اگه حلقه کمتر از 6 بار اجرا شده باشه يعني برنامه در حال بررسي 6 ماه اول سال هستش و ماه ها 31 روزه هستند/// و در صورت بزرگتر بودن عدد ورودي از 31// تعداد 31 روز از عدد ورودي کسر ميشه و يکي به مقدار ماه اضافه ميشه..///
***********
تو قسمت بعدي يه شرط وجود داره که بررسي مي کنه اگه عدد ورودي از 31 بزرگتر نباشه حلقه متوقف بشه// (اگه این شرط رو نذاریم برنامه ماه های 30 روزه رو هم بررسی می کنه و ممکنه شماره روز به اشتباه 0 بشه و مقدار ماه یکی بیشتر از مقدار درست محاسبه بشه// مثل اتفاقی که تو برنامه ی قبل می افتاد///)..////
**************
قسمت دوم شرط اول در صورتي اتفاق مي افته که تعداد دفعات اجراي حلقه از 6 بيشتر باشه// در اين صورت يعني برنامه در حال بررسي ماه های بعدی سال هستش و در این ماه ها تعداد روز های هر ماه 30 روز هستش// و اگه عدد ورودی از 30 بزرگتر باشه تعداد 30 روز ازش کم میشه و یکی به مقدار ماه اضافه میشه..///
******************
و اگر مقدار ورودی کمتر از 30 باشه حلقه متوقف میشه/// اینجوری سرعت برنامه یه مقدار افزایش پیدا می کنه و از به کار گیری بیهوده ی منابع سیستم جلوگیری میشه///
************
در آخر مقدار متغییر intDay رو برابر مقدار ورودی که تا اینجای برنامه حتماً به یه عدد کوچکتر از 31 یا 32 تبدیل شده قرار میدیم// که شماره ی روز رو مشخص می کنه..///
**************
و نتیجه رو به کاربر نشون میدیم..///
*********************
یه روش دیگه برای نوشتن این برنامه استفاده از عملگر های ریاضی تقسیم، باقی مانده و تفریق هستش..//// که خیلی ساده تره..///
********
موفق باشید!
Last edited by n00b; 25-10-2013 at 22:22.
این برنامه هم کار همون برنامه ی بالا رو انجام میده// و با عملگر های ریاضی تقسیم، باقی مانده و... نوشته شده...///![]()
**************
****************کد:برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تو برنامه ی اول intInput > 30 And intInput <> 31 معادل intInput > 31 هستش و اشتباهه// این باعث میشه شرط دوم هم ماه ها رو 31 روزه در نظر بگیره..///
**************
ای کاش از اولش تو این تاپیک پست نمی دادم..//// همش خراب کاری شد..//// (اصلاً شاید به خاطر همین اینجا رو ترک کنم!!!//).///
***********
موفق باشید!![]()
Last edited by n00b; 25-10-2013 at 22:55.
من اینو نوشتو درست جواب داد
a = InputBox("Enter adad ")
If a <= 186 Then
m = a \ 31
m = m + 1
r = a Mod 31
End If
If a > 186 And a <= 365 Then
a = a - 186
m = a \ 30
m = m + 7
r = a Mod 30
End If
Print "mah:"; m
Print "rooz:"; r
End Sub
راستی دمت گرم کاش همه مث تو بودن از اینجا نرو داش![]()
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)