نمایش نتایج 1 تا 25 از 25

نام تاپیک: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

  1. #1

    محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    با سلام واحترام در فایل پیوستی ، می خواهم میانگین چند عدد را در فرم بدست آورم ودر صورتی که یک یا چند تکست باکس صفر باشد آنها در میانگین اعداد منظور نشوند با تشکر
    فایل های ضمیمه فایل های ضمیمه

  2. #2

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    با سلام مجدد ،دوستان واساتید محترم ، منتظر راهنمایی ارزشمند شما هستم

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

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    سلام و روز خوش

    1- بهتره با توضیح دقیق مسئله رو روشن کنین:

    n عدد داریم که k تای اونها صفر هست (k<>n)،
    در مخرج فرمول میانگین گیری به جای n ، مقدار n-k باشه.
    همین خواسته شماست؟

    2- فرم شما bound هست یا unbound ؟

  4. #4

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    سلام وعرض ادب خدمت استاد بزرگوار وتشکر ازراهنمایی های ارزشمند شما که همیشه راه گشا وآموزنده بوده است
    فرم Unbound است وبه شی خاصی متصل نیست
    در مثال ارائه شده در فایل ، چهار عدد داریم می خواهم اگر سه عدد نوشته شود جمع اعداد تقسیم بر سه شود وعددی که صفر است در میانگین
    منظور نشود واگر دو عدد نوشته شود میانگین دو عدد حساب شود ممنون از صبر وحوصله شما

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

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    با سلام و احترام متقابل

    این پرسش شما گرچه ظاهر ساده ای داره،
    ولی نکات مهمی درش نهفته هست و ارزش بررسی بیشتری داره.

    من اول یک نمونه براتون آماده میکنم که مشکل شما رو در کوتاه مدت حل کنه،
    بعد اگر عمری باقی بود به تدریج این نکات رو هم مطرح میکنم و راه حل هر کدوم رو هم میگم.

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

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    این نمونه پیوست کار شما رو راه میندازه،
    ولی برنامه خوبی نیست!

    دلایلش رو در پست های بعدی توضیح میدم.

    Option Compare Database
    Option Explicit


    Private Sub BTN_CALC_Click()
    CalcAverage
    End Sub


    Private Sub BTN_CLEAR_ALL_Click()
    TB_NUMBER_1 = Null
    TB_NUMBER_2 = Null
    TB_NUMBER_3 = Null
    TB_NUMBER_4 = Null
    TB_SUM = Null
    TB_AVERAGE = Null
    TB_NON_ZERO_COUNT = Null
    TB_NON_ZERO_AVERAGE = Null
    End Sub


    Private Sub CalcAverage()
    Const N As Long = 4
    Dim sum_all As Long
    Dim non_zero_count As Long

    sum_all = 0
    non_zero_count = 0

    If TB_NUMBER_1 <> 0 Then
    non_zero_count = non_zero_count + 1
    sum_all = sum_all + TB_NUMBER_1
    End If


    If TB_NUMBER_2 <> 0 Then
    non_zero_count = non_zero_count + 1
    sum_all = sum_all + TB_NUMBER_2
    End If

    If TB_NUMBER_3 <> 0 Then
    non_zero_count = non_zero_count + 1
    sum_all = sum_all + TB_NUMBER_3
    End If

    If TB_NUMBER_4 <> 0 Then
    non_zero_count = non_zero_count + 1
    sum_all = sum_all + TB_NUMBER_4
    End If

    TB_SUM = sum_all
    TB_AVERAGE = sum_all / N

    TB_NON_ZERO_COUNT = non_zero_count

    If non_zero_count > 0 Then
    TB_NON_ZERO_AVERAGE = sum_all / non_zero_count
    Else
    TB_NON_ZERO_AVERAGE = "Atleast one number should be none zero/null !"
    End If
    End Sub


    2.png
    فایل های ضمیمه فایل های ضمیمه

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

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    حالا چرا این برنامه پست شماره 6 خوب نیست:

    1- درستی مقادیر چک نمیشه (validation)

    2- HardCode هست - اگر تعداد شماره ها کم و زیاد بشه کد باید تغییر کنه.

    3- اگر تعداد شماره ها زیاد باشه (مثلا 20 یا 50 و ...)
    این روش عملا قابل پیاده سازی نیست - بخصوص که validation هم همپای کد اصلی بزرگ میشه و هم کد اولیه و هم نگهداری اون سخت هست.

    4- جدای از کد، خود طراحی فرم هم با کم و زیاد شدن شماره ها باید تغییر کنه،
    و در تعداد زیاد شماره ها در عمل طراحی فرم single view به مشکل میخوره و عملی نیست.

  8. #8

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    سلام درود بر شما استاد بزرگوار ، مطالب ارزشمندو مفیدی ارائه نمودید توضیحات شما قابل تامل وتفکر است ممنون وسپاسگزارم

  9. #9

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    درود وسلام ، لطفا جهت نمایش دو رقم اعشار در میانگین در این برنامه هم توضیح دهید با تشکر

  10. #10

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    سلام خدمت اساتید محترم ، لطفا در موارد مطرح شده راهنمایی لازم را مبذول فرمایید

  11. #11
    کاربر دائمی
    تاریخ عضویت
    آبان 1397
    محل زندگی
    شیراز
    پست
    334

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

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

  12. #12

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    سلام ودرود ، جناب آقای بهبودی عزیز نمونه ارسالی شما بسیار جالب و زیباست با تشکر از شما ، اما آنچه باید توجه داشته باشیم نوع فرم فرم Unbound است وبه شی خاصی متصل نیست

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

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

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

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

    تفکیک استاندارد ارقام

    سوال: حذف 2 رقم اعشار از فیلد مبلغ ، در لیست باکس و راست چین شدن آن

    Format را چگونه بکار ببریم.

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

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

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

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

    روش درست دقیقا همینی هست که شما پیاده کردین:
    continuous form و bound

  15. #15

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    سلام ودرود ، ممنون از راهنمایی شما ، چرا میانگین حساب شده ،گرد می شود ؟Untitled-1.jpg

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

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    با سلام خدمت همه دوستان گرامی بخصوص دوست و استاد گرامی خودم جناب آقای مازولاق عزیز!
    بعد از چند ماه دوری از سایت برنامه نویس امروز وسوسه شدم سری به تالار اکسس بزنم ببینم چه خبره
    با دیدن این تاپیک و با توجه به توضیحات دوستمون در پست شماره 4 مبنی بر اینکه فرم Unbound میباشد این ایده به ذهنم خطور کرد که بیائیم از طریق حلقه For Each جمع و تعداد تکست باکس هائی که مقدار آنها غیر خالی یا بزرگ
    تر از صفر است رو بدست بیاریم و سپس برای بدست آوردن میانگین جمع را بر تعداد بدست آمده تقسیم کنیم
    لذا برای بدست آوردن جمع و تعداد تکست باکس ها غیر خالی و بزرگتر از صفر از کدهای زیر استفاده کردم:

    Dim ctrl As Control
    Dim SumCtrl As Long
    Dim CountCtrl As Integer
    For Each ctrl In Me
    If TypeOf ctrl Is TextBox Then
    If Not IsNull(ctrl) And ctrl <> "" And ctrl.Value > 0 Then
    CountCtrl = CountCtrl + 1
    SumCtrl = SumCtrl + ctrl.Value
    End If
    End If
    Next ctrl

    و نمونه ضمیمه با استفده از کدهای فوق
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله eb_1345 : چهارشنبه 14 آبان 1404 در 08:03 صبح

  17. #17

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    سلام ودرود ، آقای بهرامی عزیز روش ارائه شما قابل تقدیر وتحسین می باشد با تشکر وسپاس از شما وجناب آقای مازولاق عزیز وبقیه دوستان که انصافا دلسوزانه وبا صبر وشکیبایی زحمت می کشید آرزوی سلامتی وتندرستی برای همه عزیزان که در راه آموزش تلاش می کنند یک سوال دارم مثلا وقتی دو عد نیم 0.5 را میانگین می گیریم جواب صفر می دهد لطفا در این مورد توضیح دهید ممنون

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

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    نقل قول نوشته شده توسط eb_1345 مشاهده تاپیک
    با سلام خدمت همه دوستان گرامی ...
    با سلام متقابل
    به به - چه سعادتی، دیگه داشتم یواش یواش نگران سلامتی شما میشدم که خوشبختانه آسوده خاطر شدم.

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

    الان که دوباره با حضورتون اینجا رو روشن کردین ارزش یک تاپیک مستقل داره که اونجا بحث رو پیگیری کنیم.

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

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    نقل قول نوشته شده توسط majid44 مشاهده تاپیک
    وقتی دو عد نیم 0.5 را میانگین می گیریم جواب صفر می دهد لطفا در این مورد توضیح دهید
    این به روش گرد کردن اعداد اعشاری برمیگرده که بهشBanker's Rounding میگن: یعنی اگر مقدار اعشار برابر نیم باشه به نزدیکترین مقدار زوج گرد میشه.

    اینجا جمع ها long هست و با همین قاعده گرد شده، اون رو single یا double بذارین.

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

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    به به - چه سعادتی، دیگه داشتم یواش یواش نگران سلامتی شما میشدم که خوشبختانه آسوده خاطر شدم.
    سپاسگزارم استاد!🙏

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

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    نقل قول نوشته شده توسط majid44 مشاهده تاپیک
    یک سوال دارم مثلا وقتی دو عد نیم 0.5 را میانگین می گیریم جواب صفر می دهد لطفا در این مورد توضیح دهید ممنون[/COLOR]
    در اون نمونه ای که بنده ضمیمه کردم برای متغیر SumCtrl بجای long از Double استفاده کنید

  22. #22

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم


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


  23. #23
    کاربر دائمی آواتار eb_1345
    تاریخ عضویت
    مرداد 1398
    محل زندگی
    تهران
    سن
    59
    پست
    1,064

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    نقل قول نوشته شده توسط majid44 مشاهده تاپیک
    نهایت سپاس وقدر دانی از اساتید محترم جناب آقای بهرامی و جناب آقای مازولاق را دارم
    خواهش می کنم !

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

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

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

  25. #25

    نقل قول: محاسبه میانگین بدون در نظر گرفتن صفر درچند تکست باکس در فرم

    سلام ودرود جناب آقای بهرامی عزیز، نمونه جدید،کار زیبای شما را کامل کرد باسپاس وتشکر ازدرگاه ایزد یکتا سلامتی، عزت وتداوم حضور جنابعالی رادر کنارمان خواستارم

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

  1. پاسخ: 13
    آخرین پست: دوشنبه 12 آبان 1399, 14:00 عصر
  2. پاسخ: 1
    آخرین پست: یک شنبه 06 فروردین 1396, 10:01 صبح
  3. پاسخ: 2
    آخرین پست: جمعه 31 مرداد 1393, 11:12 صبح
  4. پاسخ: 7
    آخرین پست: سه شنبه 28 آذر 1391, 14:48 عصر

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

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