صفحه 1 از 4 123 ... آخرآخر
نمایش نتایج 1 تا 40 از 142

نام تاپیک: خارج از دستور - پرسشهایی از جنس دیگر

  1. #1
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    خارج از دستور - پرسشهایی از جنس دیگر

    اینجا پرسشهایی رو مطرح کنید که هدف اصلی اون الزاما حل یک مساله کاربردی و (شاید) از جنس دیتابیس هم نباشه، بلکه تمرین ذهن و به چالش کشیدن توان کدنویسی و گریزی از امور تکراری و کسالت بار هست.
    البته این دست مسائل ممکنه در زبانهای دیگه راحت تر کدنویسی بشه و vba انتخاب اول نباشه ولی چون در اینجا مطرح شده مخصوصا محدود به همین اکسس (و آفیس بطور عام) هستیم.
    بنابراین پاسخ به زبان دیگر وقتی قبول هست که ابتدا پاسخ در اکسس (آفیس) داده شده باشه.

    چراغ اول رو هم خودم روشن میکنم، به امید اینکه از شرکت کنندگان مطلب جدیدی یاد بگیریم.

    حساب ابجد - ماده تاریخ

    رسم نمودار ، گراف

    حرکت دایره در بیسیک

    نمودار پویا در اکسس

    Unbound Master-Detail Form

    RECORDSET/QUERY PAGING

    ADO Recordset Paging

    ایجاد نویگیشن باتن جهت تغییر صفحات گزارش

    کوئری برای ساخت رشته اعداد در یک محدوده مشخص Query to create a range of numbers

    پیدا کردن مسیر یک گره در یک ساختار پدر-فرزندی Path of a node in a hierarchical table

    صفحه بندی دیتا با افکت و انیمیشن در مرورگر وب Data-paging with transitions/animations in Web Browser
    آخرین ویرایش به وسیله mazoolagh : دوشنبه 27 آذر 1402 در 09:25 صبح

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    حساب ابجد - ماده تاریخ

    هدف نوشتن برنامه ای هست که با گرفتن یک عدد طبیعی به نام Number و یک عدد طبیعی بین 2 تا 15 به نام N ؛
    تمام حالت های ممکن غیر تکراری ترکیب N عدد و همچنین معادل حرفی آن را، بشرطی که جمع اونها طبق حساب ابجد برابر Number باشه، رو بدست بیاره و در دو لیست باکس جدا نمایش بده.

    جدول ارزش حرف در حساب ابجد رو میتونین از آدرس زیر پیدا کنین:
    https://fa.wikipedia.org/wiki/%D8%A7...B1%D9%88%D9%81

    بعنوان مثال اگر Number=241 و N=3 باشه، جواب بصورت زیر خواهد بود:
    1,40,200
    ا م ر

    و اگر Number=6 و N=2 باشه:
    1,5
    2,4
    3,3

    ا ه
    ب د
    ج ج

  3. #3

    نقل قول: حساب ابجد - ماده تاریخ

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    هدف نوشتن برنامه ای هست که با گرفتن یک عدد طبیعی به نام Number و یک عدد طبیعی بین 2 تا 15 به نام N ؛
    تمام حالت های ممکن غیر تکراری ترکیب N عدد و همچنین معادل حرفی آن را، بشرطی که جمع اونها طبق حساب ابجد برابر Number باشه، رو بدست بیاره و در دو لیست باکس جدا نمایش بده.

    جدول ارزش حرف در حساب ابجد رو میتونین از آدرس زیر پیدا کنین:
    https://fa.wikipedia.org/wiki/%D8%A7...B1%D9%88%D9%81

    بعنوان مثال اگر Number=241 و N=3 باشه، جواب بصورت زیر خواهد بود:
    1,40,200
    ا م ر

    و اگر Number=6 و N=2 باشه:
    1,5
    2,4
    3,3

    ا ه
    ب د
    ج ج

    ضمن سلام و عرض تشکر از جناب mazoolagh بخاطر ایجاد این تاپیک ارزشمند
    در مورد این مسئله بنده یک ابهام دارم و اون اینکه آیا دو مثال پائین فرضی و مستقل از مسئله مطرح شده در نظر گرفته شده اند و ارتباطی با اصل سوال ندارد؟ یا اگر دارند چرا در مثال یک 3 عدد 1، 40 و 200 بدست آمده که جزء اعداد طبیعی بین 2 و 15 نمی باشند ؟ در سوال اشاره شده که N عددی طبیعی بین 2 و 15 میباشد ولی می بینیم در مثال یک 3 عدد مذکور جزء این مجموعه( بین 2 و 15) نمی باشند.
    در مثال 2 هم عدد یک جزء مجموعه نمی باشد و ترکیب 3و3 هم بعلت تکراری بودن آنها قابل قبول نمی باشد.
    بنظرم اگر لطف کنی قدری بیشتر در مورد سوال توضیح بدهین دوستان راحتتر به جواب میرسند
    با تشکر

  4. #4
    کاربر دائمی آواتار padide55
    تاریخ عضویت
    مرداد 1391
    محل زندگی
    زاهدان
    پست
    567

    نقل قول: حساب ابجد - ماده تاریخ

    نقل قول نوشته شده توسط atf1379 مشاهده تاپیک
    ضمن سلام و عرض تشکر از جناب mazoolagh بخاطر ایجاد این تاپیک ارزشمند
    در مورد این مسئله بنده یک ابهام دارم و اون اینکه آیا دو مثال پائین فرضی و مستقل از مسئله مطرح شده در نظر گرفته شده اند و ارتباطی با اصل سوال ندارد؟ یا اگر دارند چرا در مثال یک 3 عدد 1، 40 و 200 بدست آمده که جزء اعداد طبیعی بین 2 و 15 نمی باشند ؟ در سوال اشاره شده که N عددی طبیعی بین 2 و 15 میباشد ولی می بینیم در مثال یک 3 عدد مذکور جزء این مجموعه( بین 2 و 15) نمی باشند.
    در مثال 2 هم عدد یک جزء مجموعه نمی باشد و ترکیب 3و3 هم بعلت تکراری بودن آنها قابل قبول نمی باشد.
    بنظرم اگر لطف کنی قدری بیشتر در مورد سوال توضیح بدهین دوستان راحتتر به جواب میرسند
    با تشکر
    در اینترنت سرچ کنید combination
    کامبینیشن بطپر مثال دانشجو باید ۵۰۰۰۰۰۰ واریز کند ولی این واریزی رو بصورت چند فیش در یک ماه واریز میکند
    حالا کد میخوایم که بصورت ترکیبی نشون بده که پرداخت دانشجو ممکن است شامل کدام پرداختها از لیست واریزیها هست .
    جمع ۵۰۰۰۰۰۰ از واریزیها به کدام فیشها مطابقت داره و ....

    در ریاضی و احتمالات داریم :
    ابتدا مثال ساده تر
    30دانش آموز را به چند روش میتوان سه تا سه تا چیدمان نمود و ....

    در اینجا اعداد ابجد را به چند طریق میتوان بصورت سه تا سه تا مرتب نمود .
    پس از مرتب کردن .
    چند روش چیدمان سه تایی ایجاد شده جمعشان 241 میشود ؟


    هدف بدست اوردن n=3 یعنی سه رقم هست که بدون تکرار جمعشان بشود number 241 و ضمنا در جدول ابجد موجود باشند .
    1,40,200
    اعداد ابجد متناظر با حروف هستند که جمعشان 241 میشود و تکرار هم نشده اند

    «اَبْجَدْ - هَوََّزْ - حُطّی - کَلَمَنْ - سَعْفَصْ - قَرَشَتْ - ثَخَِّذْ - ضَظِغْ»
    به ترتیب شماره میگیرند
    1و2و3و4و5و6و7و8و9و10و20و30و40و50و60 70و80و90و100و200و300و400و500و600و700و80 0و900و1000

    و عددهای پ ژ گ و چ هم برای فارسی به اینها با کدش اضافه میشه

    حالا علی میشه
    ع=70 +ل=30 +ی=10 70+30+10=110
    طبق جدول
    یا علی 70+30+10+10+1 =121

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


    با بررسی زیاد اعداد متناظر با جدول ابجد را ایجاد نمودم . و چیدمان اعداد ابجد را ایجاد کردم .

    مشکل در جمع سطر کوئری دارم که کل سطر رو جمع کنه که بشه مثلا 241 رو پیدا کرد .
    دستی میتونم فرمول بدم
    ولی اگر کد sql ایجاد کنم که جمع هر سطر رو بده . اون موقع سطر مورد نظر مطابق با عدد جمع 241 رو فیلتر میکنم و تمام.
    نهایتا میرسیم به اعداد که تبدیل میکنیم به حرف متناظر در ابجد .
    کار شدنی هست . فعلا نمونه تا این مرحله.................
    خسته شدم
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله padide55 : پنج شنبه 20 آذر 1399 در 14:30 عصر

  5. #5
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    نقل قول: حساب ابجد - ماده تاریخ

    نقل قول نوشته شده توسط atf1379 مشاهده تاپیک
    ضمن سلام و عرض تشکر از جناب mazoolagh بخاطر ایجاد این تاپیک ارزشمند
    در مورد این مسئله بنده یک ابهام دارم و اون اینکه آیا دو مثال پائین فرضی و مستقل از مسئله مطرح شده در نظر گرفته شده اند و ارتباطی با اصل سوال ندارد؟ یا اگر دارند چرا در مثال یک 3 عدد 1، 40 و 200 بدست آمده که جزء اعداد طبیعی بین 2 و 15 نمی باشند ؟ در سوال اشاره شده که N عددی طبیعی بین 2 و 15 میباشد ولی می بینیم در مثال یک 3 عدد مذکور جزء این مجموعه( بین 2 و 15) نمی باشند.
    در مثال 2 هم عدد یک جزء مجموعه نمی باشد و ترکیب 3و3 هم بعلت تکراری بودن آنها قابل قبول نمی باشد.
    بنظرم اگر لطف کنی قدری بیشتر در مورد سوال توضیح بدهین دوستان راحتتر به جواب میرسند
    با تشکر
    سلام و روز خوش
    جناب padide55 راهنمایی خیلی خوبی کردن که این در واقع یک مساله ترکیب آمار هست، با این وجود بیشتر توضیح میدم:

    1- عدد N در واقع تعداد انتخابهای ما از مجموعه حروف ابجد هست (یک مجموعه از 28 حرف) ،
    که در اینجا شرط گذاشتیم :
    2<= N <=15

    یعنی بین 2 تا 15 حرف انتخاب میکنیم و حروف انتخابی میتونه تکراری هم باشه

    2- بعبارت دیگه مساله همون انتخاب N حرف از 28 حرف هست (ترکیب آماری) با این شرط که جمع حروف انتخابی برابر Number باشه.

    3- منظور از اینکه پاسخ غیرتکراری یعنی ترتیب حروف اهمیت نداره، بنابراین وقتی Number=6 , N=2 هست {1,5} پاسخ هست ولی {5,1} نیست و {3,3} هم تکراری محسوب نمیشه.
    اگر ترتیب حروف اهمیت داشت مساله تبدیل به ترتیب آماری (Arrangement) میشد.

    البته هدف از طرح این مساله صرفاً حل یک مساله آماری یا سرگرمی نیست، در این راه به مواردی برخورد میکنین که هر کدومش یک چالش کدنویسی یا آشنایی با یک مفهوم احتمالا جدید هست.

  6. #6
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    نقل قول: حساب ابجد - ماده تاریخ

    نقل قول نوشته شده توسط padide55 مشاهده تاپیک
    در اینترنت سرچ کنید combination
    فعلا نمونه تا این مرحله.................
    خسته شدم
    سلام و روز خوش
    خوشحالم که در این بحث شرکت کردین و همیجور تشکر میکنم بابت توضیحات مفید.

    زمان بدین برنامه رو یک نگاه بندازم.

  7. #7
    کاربر دائمی آواتار padide55
    تاریخ عضویت
    مرداد 1391
    محل زندگی
    زاهدان
    پست
    567

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    سلام
    با توجه به اینکه برنامه نویسی بلدنیستم ولی در کل سعی کردم با جستجو و بررسی به این نتیجه برسم .
    اصل فرمول رو بر اساس نیاز از منابع مختلف جمع کردم

  8. #8
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

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

    این عبارت "برنامه نویسی بلد نیستم" رو هم میگذارم بحساب شکسته نفسی شما.

  9. #9
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    پست
    790

    نقل قول: حساب ابجد - ماده تاریخ

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    هدف نوشتن برنامه ای هست که با گرفتن یک عدد طبیعی به نام Number و یک عدد طبیعی بین 2 تا 15 به نام N ؛
    تمام حالت های ممکن غیر تکراری ترکیب N عدد و همچنین معادل حرفی آن را، بشرطی که جمع اونها طبق حساب ابجد برابر Number باشه، رو بدست بیاره و در دو لیست باکس جدا نمایش بده.

    جدول ارزش حرف در حساب ابجد رو میتونین از آدرس زیر پیدا کنین:
    https://fa.wikipedia.org/wiki/%D8%A7...B1%D9%88%D9%81

    بعنوان مثال اگر Number=241 و N=3 باشه، جواب بصورت زیر خواهد بود:
    1,40,200
    ا م ر

    و اگر Number=6 و N=2 باشه:
    1,5
    2,4
    3,3

    ا ه
    ب د
    ج ج
    سلام
    بنظرم از طریق ایجاد دو آرایه که عناصر تشکیل دهنده آنها بترتیب اعداد و حروف ابجد و ایجاد یک حلقه for...next (البته در مواردی شاید حلقه های for...next تو در تو )بتوان به جواب رسید.
    الآن ساعت یک و سی دقیقه نصف شبه ، زیاد نمیخواهم ذهنم رو درگیر فکر کردن به این موضوع بکنم ، چون تا صبح همش باید خواب آرایه و حلقه های تو در تو ببینمخل
    آخرین ویرایش به وسیله eb_1345 : شنبه 22 آذر 1399 در 01:26 صبح

  10. #10
    کاربر دائمی آواتار padide55
    تاریخ عضویت
    مرداد 1391
    محل زندگی
    زاهدان
    پست
    567

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    سلام
    نمونه اعداد
    مثلا ۱_۲_۳_۴_۵_۶
    حالا
    اگر سه تا سه تا چیدمان کنیم
    ۱_۲_۳
    ۱_۲_۴
    ۱_۲_۵
    ۱_۲_۶
    ۲_۳_۴
    ۲_۳_۵
    ۲_۳_۶
    ۳_۴_۴
    ۳_۴_۶
    ۴_۵_۶

    حالا فرمول بدین .اگر چهارتا چهارتا و ....
    بعد جمع هر سطر هم میخواد که باید چک بشه .
    مواردی به لیست باکس addبشه که جمعشون همون جمع ما باشه

    فرمول
    اگر سه تایی باشه n=3
    d='mynumbe
    c='count number


    for i to eof of table
    i=go first
    i=1
    arangei=di+(n-(i+1));di+(n-(i+2);di+(n+i+c3)
    go next
    i=i+1
    to eof
    loop


    ببخشید .
    این تقریبا کد مورد لزوم
    اول باید بره به اولین رکورد
    بعد ببینه چند تایی باید باشه
    iهر رکورد و رکورد دوم و رکورد سوم با هم .
    بعد رکورد اول و سوم و‌چهارم با هم
    بعد رکورد سوم و‌پنجم با هم .

    نگاه به اعداد نکنید .
    فقط ترتیب رکوردها مشخص شد .عددش رو لیست کنه .
    جمع هر سه تا دربیاد .اگر با جمع کل مورد نظر مساوی باشه addبه لیست .
    بروید دنبال کد فرمول ان فاکتوریل n!
    آخرین ویرایش به وسیله padide55 : شنبه 22 آذر 1399 در 10:54 صبح

  11. #11
    کاربر دائمی آواتار padide55
    تاریخ عضویت
    مرداد 1391
    محل زندگی
    زاهدان
    پست
    567

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    این هم اعداد ابجد مورد نظر
    بعد میرسیم به حروف ابجد متناظر
    فایل های ضمیمه فایل های ضمیمه

  12. #12

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    نقل قول نوشته شده توسط padide55 مشاهده تاپیک
    این هم اعداد ابجد مورد نظر
    بعد میرسیم به حروف ابجد متناظر
    عالیه
    جستجوتون در اینترنت حرف نداره
    این کدها رو از کدوم سایت دانلود کرده این ؟

  13. #13
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    نقل قول: حساب ابجد - ماده تاریخ

    نقل قول نوشته شده توسط eb_1345 مشاهده تاپیک
    سلام
    بنظرم از طریق ایجاد دو آرایه که عناصر تشکیل دهنده آنها بترتیب اعداد و حروف ابجد و ایجاد یک حلقه for...next (البته در مواردی شاید حلقه های for...next تو در تو )بتوان به جواب رسید.
    الآن ساعت یک و سی دقیقه نصف شبه ، زیاد نمیخواهم ذهنم رو درگیر فکر کردن به این موضوع بکنم ، چون تا صبح همش باید خواب آرایه و حلقه های تو در تو ببینمخل
    سلام و روز خوش
    بله، استفاده از آرایه و حلقه های تودرتو راه حل خیلی خوبی هست. ولی چون تعداد حلقه ها متغییر هست نیاز به ابداع یک روش ابتکاری برای پیاده سازی اون هست.

  14. #14
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    نقل قول نوشته شده توسط padide55 مشاهده تاپیک
    این هم اعداد ابجد مورد نظر
    بعد میرسیم به حروف ابجد متناظر
    در تست اولیه بنظر میاد جواب گرفتین و روش ابتکاری و قشنگی هم بکار بردین که جای تبریک داره.
    فقط فرم یک مقدار نیاز به چکش کاری داره و همچنین کدها لازمه دستی به سر و روشون کشیده بشه - وگرنه هسته منطق برنامه بنظرم عالی هست بخصوص که در روش متعارف nested loop (که جناب eb-1345 هم اشاره کردن) مشکل پرفورمنس وقتی تعداد حلقه ها از 6و7 بالاتر میره محسوس هست و روش شما بمراتب سریعتر هست.

  15. #15
    کاربر دائمی آواتار padide55
    تاریخ عضویت
    مرداد 1391
    محل زندگی
    زاهدان
    پست
    567

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    نقل قول نوشته شده توسط atf1379 مشاهده تاپیک
    عالیه
    جستجوتون در اینترنت حرف نداره
    این کدها رو از کدوم سایت دانلود کرده این ؟
    سلام
    سایتش رونمیدونم
    ولی یک مشکل در کد دارم
    3و3 رو نشون نمیده و تکراری در نظر میگیره .

    دوم
    میره تعداد ستون مورد نظر رو k در نظر میگیره
    بعد همه رو با هم ذخیره مینه و یکجا به جدول انتقال میده
    یعنی
    برای هر ردیف یک integer با کد در نظرمیگیره

    کل فرمول دو خطه

    دوستان برنامه نویس شرح بیشتری بدن .

    من فقط کد رو بدست اوردم و از روشش خوشم اومد



    strSelect = "SELECT QN.N "
    strFrom = "FROM QN "
    strWhere = "WHERE QN_1.N > QN.N "

    '--------------------------------runcode -search and --list of ehtemal -----------------
    For intI = 1 To K - 1
    strSelect = strSelect & ", QN_" & intI & ".N AS N" & intI & " "
    strFrom = strFrom & ", QN AS QN_" & intI & " "
    If intI < K - 1 Then
    strWhere = strWhere & " AND QN_" & intI + 1 & ".N > QN_" & intI & ".N "

    End If
    Next



    بقیه کدها برای ایجاد یک کوئری هست که از جدول ایجادشده جمع رو بدست بیاره و جمع مورد نظر رو فیلتر کنه.

  16. #16
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    پست
    790

    نقل قول: حساب ابجد - ماده تاریخ

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    سلام و روز خوش
    بله، استفاده از آرایه و حلقه های تودرتو راه حل خیلی خوبی هست. ولی چون تعداد حلقه ها متغییر هست نیاز به ابداع یک روش ابتکاری برای پیاده سازی اون هست.
    سلام
    فایل ضمیمه رو هم بررسی بفرمائید
    البته در فایل نمونه استفاده از حلقه فقط برای ترکیب های دو تائی صورت گرفته و بدیهیست برای ترکیبهای بیشتر باید از از حلقه های تو در تو بیشتر استفاده شود
    بنظرم برای نتیجه گیری بهتر میتوان روشی که بنده در نمونه فوق ارائه نموده ام با روشی که در فایل نمونه جناب padide55 استفاده شده تلفیق نمود
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله eb_1345 : شنبه 22 آذر 1399 در 13:29 عصر

  17. #17
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    پست
    790

    نقل قول: حساب ابجد - ماده تاریخ

    نقل قول نوشته شده توسط eb_1345 مشاهده تاپیک
    سلام
    فایل ضمیمه رو هم بررسی بفرمائید
    البته در فایل نمونه استفاده از حلقه فقط برای ترکیب های دو تائی صورت گرفته و بدیهیست برای ترکیبهای بیشتر باید از از حلقه های تو در تو بیشتر استفاده شود
    بنظرم برای نتیجه گیری بهتر میتوان روشی که بنده در نمونه فوق ارائه نموده ام با روشی که در فایل نمونه جناب padide55 استفاده شده تلفیق نمود
    فایل نمونه آخرین بار در ساعت 13:29 ویرایش شده
    بمنظور متناظر شدن ترکیب حروف و اعداد جای x3 و x4 در کوئری تغییر دادم
    آخرین ویرایش به وسیله eb_1345 : شنبه 22 آذر 1399 در 13:31 عصر

  18. #18
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    نقل قول: حساب ابجد - ماده تاریخ

    نقل قول نوشته شده توسط eb_1345 مشاهده تاپیک
    سلام
    فایل ضمیمه رو هم بررسی بفرمائید
    البته در فایل نمونه استفاده از حلقه فقط برای ترکیب های دو تائی صورت گرفته و بدیهیست برای ترکیبهای بیشتر باید از از حلقه های تو در تو بیشتر استفاده شود
    بنظرم برای نتیجه گیری بهتر میتوان روشی که بنده در نمونه فوق ارائه نموده ام با روشی که در فایل نمونه جناب padide55 استفاده شده تلفیق نمود
    time .....

  19. #19
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    پست
    790

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    سلام
    بنظر میرسد در تابع buildquery نمونه پست 11 چنانچه در خط strWhere بجای < از =< استفاده شود نتیجه دقیقتر بدست میآید



    strWhere = "WHERE QN_1.N >= QN.N "
    For intI = 1 To k - 1
    strSelect = strSelect & ", QN_" & intI & ".N AS N" & intI & " "
    strFrom = strFrom & ", QN AS QN_" & intI & " "
    If intI < k - 1 Then
    strWhere = strWhere & " AND QN_" & intI + 1 & ".N >= QN_" & intI & ".N "
    End If

    Next


  20. #20
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    پست
    790

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    سلام
    لطفاً نمونه جدیدتر رو از ضمیمه بررسی بفرمائید !
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله eb_1345 : دوشنبه 24 آذر 1399 در 04:46 صبح

  21. #21
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    پست
    790

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    نقل قول نوشته شده توسط eb_1345 مشاهده تاپیک
    سلام
    لطفاً نمونه جدیدتر رو از ضمیمه بررسی بفرمائید !
    بنظر میرسد در نمونه آخر که نام حروف ابجد در ستون های کوئری از طریق DLookup استخراج گردیده بتوان از طریق ایجاد حلقه FOR ...NEXT نیز بدست آورد( بجهت حرفه ای عمل کردن درخلاصه و کوتاه تر کردن کدها)

  22. #22
    کاربر دائمی آواتار padide55
    تاریخ عضویت
    مرداد 1391
    محل زندگی
    زاهدان
    پست
    567

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    نقل قول نوشته شده توسط eb_1345 مشاهده تاپیک
    بنظر میرسد در نمونه آخر که نام حروف ابجد در ستون های کوئری از طریق DLookup استخراج گردیده بتوان از طریق ایجاد حلقه FOR ...NEXT نیز بدست آورد( بجهت حرفه ای عمل کردن درخلاصه و کوتاه تر کردن کدها)

    سلام
    این سوال کلا ذهنو درگیر کرده . خواب از سر برده .

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


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

  23. #23
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    نقل قول نوشته شده توسط eb_1345 مشاهده تاپیک
    بنظر میرسد در نمونه آخر که نام حروف ابجد در ستون های کوئری از طریق DLookup استخراج گردیده بتوان از طریق ایجاد حلقه FOR ...NEXT نیز بدست آورد( بجهت حرفه ای عمل کردن درخلاصه و کوتاه تر کردن کدها)
    بسیار عالی!
    واقعا دست مریزاد - باید وقت بگذارم و با بررسی این برنامه چیز جدید یاد بگیرم.
    من هنوز نمونه کد خودم رو آماده نکردم (با vba منظورم هست) ؛ ولی دوستان اگر پرسش جالب جدیدی به ذهنشون میرسه لطفا مطرح کنن.

  24. #24
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    پست
    790

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    نقل قول نوشته شده توسط eb_1345 مشاهده تاپیک
    بنظر میرسد در نمونه آخر که نام حروف ابجد در ستون های کوئری از طریق DLookup استخراج گردیده بتوان از طریق ایجاد حلقه FOR ...NEXT نیز بدست آورد( بجهت حرفه ای عمل کردن درخلاصه و کوتاه تر کردن کدها)
    سلام
    نمونه جدید که استخراج نام حروف متناظر اعداد ابجد از طریق حلقه for...next انجام و کد نویسی کوتاه تر گردید.
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله eb_1345 : سه شنبه 25 آذر 1399 در 14:36 عصر

  25. #25
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    نقل قول نوشته شده توسط eb_1345 مشاهده تاپیک
    سلام
    نمونه جدید که استخراج نام حروف متناظر اعداد ابجد از طریق حلقه for...next انجام و کد نویسی کوتاه تر گردید.
    بله، کدها بمراتب کمتر و طراحی فرم هم بهتر شده - فقط کاش یک کپی از کدها رو همرا با توضیح مختصری همینجا میگذاشتین.
    خاصیت کپی کردن کدها در پست این هست که در جستجو هم ظاهر میشه.

  26. #26
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    در هر دو برنامه نمونه که آقایان eb_1345 و Padide55 زحمتش رو کشیدن، از جدول و عملیات مربوط به اون استفاده شده.

    یک نمونه هم من میگذارم که تمام کارها در حافظه انجام میشه (البته نهایتا نتایج رو در صورت نیاز میشه در جدول یا فایل هم ذخیره کرد).
    یک خوبی این روش این هست که در ساده ترین محیط ها هم قابل پیاده سازی هست، کما اینکه سالها پیش این برنامه رو به FORTRAN نوشته بودم و همچنین با javascript مرورگر هم میشه نوشت.

    چند نکته هست که توضیح میدم:
    1- برای ساخت حلقه های تودرتو (Nested Loops) با تعداد حلقه متغییر، از یک آرایه برای نگهداری شمارنده حلقه ها استفاده کردیم.
    پس از هر دور از عملیات، اگر شمارنده حلقه به مرز بالایی رسیده باشه اون رو 0 و شمارنده حلقه بیرونیش رو 1 اضافه میکنیم (همون کاری که Next انجام میده)
    متغیر switch که میبینین برای همین منظور هست.
    این یکی از روشهای ساخت Dynamic Nested Loops هست (بنظرم ساده ترینش)، برای دوستانی که مایل به یادگیری بیشتر و دونستن روشهای پیشرفته تر و ویژه زبانهای خاص هستن پیشنهاد میکنم همین عبارت رو گوگل کنن.

    2- پس از پیدا کردن هر پاسخ، ابتدا آرایه پاسخV رو sort میکنیم و بعد اون رو با join به یک string تبدیل و در یک dictionary (اینجا متغییر D) میریزیم.
    برای حذف پاسخ های تکراری کافی هست قبلش دیکشنری رو با متد exists چک کنیم.

  27. #27
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    3- در این مساله، درسته که عملیات هر حلقه سبک هست ولی تعداد حلقه ها خیلی راحت میتونه به چند 10 میلیون برسه.
    برای همین چند تمهید دیده شده:
    • کنترل مرز بالایی هر حلقه با MaxIndex : فرضا اگر Number=21 , N=4 باشه هیچ مقدار بزرگتر 10 نمیتونه پاسخ باشه بنابراین مرز بالایی متغیر حلقه ها برابر 9 هست (موقعیت 10 در آرایه Values) و نه 27 (موقعیت 1000)
    • اگر جمع مقادیر بیشتر از Number باشه یعنی هیچ پاسخ دیگه ای در آرایش کنونی حلقه ها نمیتونه جواب باشه، پس درونی ترین حلقه رو پایان میدیم
    • برای اینکه برنامه به حالت freeze نره، از یک button برای متوقف کردن پروسه استفاده کردیم - همان روش استاندارد doevents

  28. #28
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    Option Compare DatabaseOption Explicit
    Dim Values()
    Dim V()
    Dim Chars()
    Dim C()
    Dim A()
    Dim Number As Integer
    Dim N As Integer
    Dim S As String
    Dim i As Integer
    Dim D As Dictionary
    Dim Canceled As Boolean
    Dim counter As Long



  29. #29
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    Private Sub Start_btn_Click()Me.Answers.SetFocus
    Me.Start_btn.Enabled = False
    Canceled = False
    Me.Stop_btn.Visible = True


    Dim Sum, MaxIndex As Integer
    N = Me.N_cb
    Number = Me.Number_tb
    Me.Answers.RowSource = ""
    For i = 0 To UBound(Values)
    If Values(i) <= Number - N + 1 Then
    MaxIndex = i
    Else
    Exit For
    End If
    Next i


    ReDim A(N - 1)
    ReDim V(N - 1)
    ReDim C(N - 1)


    For i = 0 To N - 1
    A(i) = 0
    Next i
    Set D = New Dictionary
    Dim switch As Boolean


    counter = 0
    Do While Not Canceled
    For i = 0 To N - 1
    V(i) = Values(A(i))
    C(i) = Chars(A(i))
    Next i
    Sum = Array_Sum(V)
    If Sum = Number Then
    Sort V, 0, N - 1
    AddAnswer
    ElseIf Sum > Number Then
    A(N - 1) = MaxIndex
    End If
    If Array_Sum(A) = N * MaxIndex Then Exit Do
    switch = True
    i = N - 1
    Do While switch And i >= 0
    A(i) = A(i) + 1
    If A(i) > MaxIndex Then
    A(i) = 0
    switch = True
    Else
    switch = False
    End If
    i = i - 1
    Loop
    counter = counter + 1
    If counter Mod 10000 = 0 Then DoEvents
    Loop
    Me.Answers.SetFocus
    Me.Stop_btn.Visible = False
    Me.Start_btn.Enabled = True
    End Sub


    آخرین ویرایش به وسیله mazoolagh : شنبه 29 آذر 1399 در 08:57 صبح

  30. #30
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    Function Array_Sum(Q) As IntegerArray_Sum = 0
    Dim i As Integer
    For i = 0 To UBound(Q)
    Array_Sum = Array_Sum + Q(i)
    Next
    End Function



  31. #31
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    Public Sub Sort(A As Variant, L As Integer, H As Integer)Dim Pivot, Swap
    Dim Lx As Integer
    Dim Hx As Integer


    Lx = L
    Hx = H
    Pivot = A((L + H) \ 2)


    While (Lx <= Hx)
    While (A(Lx) < Pivot And Lx < H)
    Lx = Lx + 1
    Wend


    While (Pivot < A(Hx) And Hx > L)
    Hx = Hx - 1
    Wend


    If (Lx <= Hx) Then
    Swap = A(Lx)
    A(Lx) = A(Hx)
    A(Hx) = Swap
    Lx = Lx + 1
    Hx = Hx - 1
    End If
    Wend


    If (L < Hx) Then Sort A, L, Hx
    If (Lx < H) Then Sort A, Lx, H
    End Sub



  32. #32
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    Sub AddAnswer()S = Join(V, ",")
    If Not D.Exists(S) Then
    D.Add S, S
    Me.Answers.AddItem D.Count & ";" & S & ";" & Join(C, " ")
    Me.Answers = D.Count
    End If
    End Sub



  33. #33
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    1.PNG

    .............

  34. #34
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    برنامه نمونه:

    بجای این برنامه، از نمونه اصلاح شده پست 36 استفاده کنید.
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله mazoolagh : شنبه 29 آذر 1399 در 09:14 صبح

  35. #35

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    و اگر Number=6 و N=2 باشه:
    1,5
    2,4
    3,3

    ا ه
    ب د
    ج ج
    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    برنامه نمونه:
    سلام جناب mazoolagh
    در نمونه پست 24 که توسط eb_1345 ارائه شده تعداد ترکیب ها برای تعداد 2 و جمع 6 سه ترکیب و در نمونه جنابعالی دو ترکیب بدست می آید . درحالیکه در مثال پست اولتون برای تعداد 2 و جمع 6 سه ترکیب بدست آورده بودین( نقل قول بالا)

  36. #36
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    برنامه اصلاح شده ، کد پست 29 بصورت زیر اصلاح شد:
    If Values(i) <= Number - N + 1 Then
    فایل های ضمیمه فایل های ضمیمه

  37. #37
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    نقل قول نوشته شده توسط atf1379 مشاهده تاپیک
    سلام جناب mazoolagh
    در نمونه پست 24 که توسط eb_1345 ارائه شده تعداد ترکیب ها برای تعداد 2 و جمع 6 سه ترکیب و در نمونه جنابعالی دو ترکیب بدست می آید . درحالیکه در مثال پست اولتون برای تعداد 2 و جمع 6 سه ترکیب بدست آورده بودین( نقل قول بالا)
    سلام و روز خوش
    خیلی ممنون بابت دقت نظر شما و اینکه بحث رو دنبال کردین.

    ایراد مربوط به جا افتادن یک = در شرط چک مرز بالایی متغییر حلقه ها بود.
    برنامه ویرایش شده رو همینجا پیوست میکنم.

    خوشحال میشم اگر موارد دیگه ای هم به بچشمتون خورد یا به ذهنتون رسید مطرح کنین. احساس میکنم از بابت بهینه کردن تعداد اجرای حلقه ها هنوز جای کار باشه.

  38. #38
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,054

    رسم نمودار ، گراف و ...

    پرسش بعدی رو مطرح میکنم:

    چه روشی رو برای ساخت و رسم نمودار (و شکل های پیچیده) مشابه تصاویر زیر پیشنهاد میکنید؟
    راهنمایی اینکه flash نیست.

    0.PNG

    1.jpg

  39. #39

    نقل قول: رسم نمودار ، گراف و ...

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    پرسش بعدی رو مطرح میکنم:

    چه روشی رو برای ساخت و رسم نمودار (و شکل های پیچیده) مشابه تصاویر زیر پیشنهاد میکنید؟
    راهنمایی اینکه flash نیست.

    0.PNG

    1.jpg


    .................................................. ..
    آخرین ویرایش به وسیله atf1379 : سه شنبه 02 دی 1399 در 21:30 عصر

  40. #40
    کاربر دائمی آواتار padide55
    تاریخ عضویت
    مرداد 1391
    محل زندگی
    زاهدان
    پست
    567

    نقل قول: خارج از دستور - پرسشهایی از جنس دیگر

    سلام
    چند روزیه دنبال حرکت دایره در بیسیک بودیم .
    به نتیجه رسیدیم .
    این هم تاپیک مربوطه
    فعلا برای اولین نمونه فایل مربوطه رو‌میگذارم .

    حالا ما محور x را ثابت درنظربگیریم .
    با توجه به ثابت شدن x در همین فرمول
    شی ما حرکت بالا و پایین متناوب پیدا میکند .
    تا اینجا همه چیز روبراه هست .
    مرحله بعد کد جهت ایجاد حرکت نمودارهست .

    دو راه داریم .
    اول نقطه گذاری در صفحه و اینکه نقاط خاموش و روشن بشوند .شبیه انچه در تابلوهای روان داریم .


    circle-two-sine-waves.jpg
    حالا کدام نقاط روشن شوند
    اینجا کلیک کنید
    پیشنهاد من اینه که کد بدیم که شی در صفحه اتومات ایجاد بشه و بر اساس تایم اینتروال به اندازه هر x. به چپ بره .

    بر اساس xوy. نمودار .
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله padide55 : سه شنبه 02 دی 1399 در 15:47 عصر

صفحه 1 از 4 123 ... آخرآخر

تاپیک های مشابه

  1. پاسخ: 4
    آخرین پست: سه شنبه 27 فروردین 1392, 14:31 عصر
  2. پاسخ: 0
    آخرین پست: چهارشنبه 21 فروردین 1392, 13:02 عصر
  3. پاسخ: 1
    آخرین پست: سه شنبه 12 بهمن 1389, 11:03 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •