الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أريد دالة تقريب رقم لأقرب رقم يقبل القسمة على اي رقم انا احدده ..

بدأه ريال مدريستا في 14 مايو 2009 · 5 رد · 4,160 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته ..

اريد دالة تقوم بتقريب اي عدد ناتج لأي رقم آخر بحيث يكون يقبل القسمة على رقم معين اقوم بادخاله برمجيا او يدخله المستخدم ..

مثلا :

اذا فرضنا وضعنا رقم التقريب هو خمسة .. اذا يجب ان يكون الناتج مقربا لأقرب رقم يقبل القسمة على الرقم خمسة ..

فإذا كان الناتج هو ستة .. سيكون الناتج عشرة ..

واذا كان الناتج ستة عشر .. فيكون الناتج عشرون ..

واذا كان الرقم مائة وثلاثة .. سيكون الناتج مائة وخمسة ..

وهكذا ..

كيف ذلك ؟ وماهي الاسطر البرمجة الخاصة بذلك ؟

#2

حسب معلوماتي حول دوال التقريب في برنامج فيجوال ستوديو وحسب ما قرأته في مكتبة MSDN

عن تقريب الارقام العشرية والت تأتي بعد العلامة العشرية

مثلا الرقم

2.54

يتم تقريبة الي الرقم 2.5 بستخدام الدالة Round ويكون صيغة الدالة كالتالي

TextBox1.Text = Math.Round(CType(TextBox1.Text, Double), 2)

مثال آخر عن الدالة Truncate ومن اختصاصات الدالة الغاء الارقام التي تأتي بعد العلامة العشرية وبتكون صيغة الدالة كالتالي

TextBox1.Text = Math.Truncate(CType(TextBox1.Text, Double))

وهكذا

اما في حاله طلبك وهو تقريب العدد الصحيح الي اقرب عدد صحيح وهو من 16 الي 20 او من 8 الي 10 وهكذا

فمن دوال التقريب المستخدمة في مثل هذه الامور الدالة

 CINT

16.16 يتم تقريبة الي 17

19.7 يتم تقريبة الي 20

وهكذا

مثال علي ذلك

TextBox1.Text = CInt(TextBox2.Text)

راجع دوال التحويل في مكتبة MSDN

هذا ما اعرفة

والله اعلم

تم تعديل هذه المشاركة بواسطة محمد فؤاد تركي في 15 مايو 2009 في 10:58 — السبب: اضافة

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#3

شكرا يا باشا على التجاوب .. بس الظاهر انك ما فهمت سؤالي ..

انا لا اريد التقريب من 16.5 الى 17 ... لا .. بل اريد التقريب من انتيجر الى انتيجر .. وكيف يكون .. يكون هكذا .. اذا ادخل المستخدم الرقم 5 على اساس التقريب يكون لأقرب انتيجر يقبل القسمة على 5 فيكون هكذا :

16 = 20

21 = 25

72 = 75

22 = 25

111 = 115

503 = 505

1 = 5

9 = 10

اعتقد الان وصلت الفكرة بعد المثال ؟ فانا أعرف انه لا يوجد دالة بعينها تقوم بذلك .. بل أنا اريد اسطر الشفرة لعمل ذلك ..

تم تعديل هذه المشاركة بواسطة ريال مدريستا في 16 مايو 2009 في 15:10

#4
Private Sub btnRound_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRound.Click
		Dim modValue As Integer = CInt(txtNum1.Text) Mod CInt(txtNum2.Text)
		Dim result As Integer = CInt(txtNum1.Text) + (CInt(txtNum2.Text) - modValue)
		MsgBox(result)
	End Sub

إن قلت قال الله قال رسولـه همزوك همز المنكر المتعالي
أو قلت قد قال الصحابة والألـى تبعاً لهم بالقول والأعمال
أو قلت قـال الشافعي وأحمد و أبو حنيفة والإمام الغالي
صدوا عن وحي الإله ودينـه واحتالوا على حرام الله بالإحلال
يا أمةً لعبت بدين نبيها كتلاعب الصبيان في الأوحال
حاشا رسول الله يحكم بالهوى تلك إذاً حكومة الضلال

feed.1.gif

#5

الاخوة الاعزاء

السلام عليكم

نفس السؤال المطروح للاجابة

كيف يمكن تطبيقة على الاكسيس

و لو سمحتم لو احد كتب كود كيف ادخلة بالاستعلام

ارجوا الافادة

جزاكم الله خيرا

#6
GHOST2010 كتب:
Private Sub btnRound_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRound.Click
		Dim modValue As Integer = CInt(txtNum1.Text) Mod CInt(txtNum2.Text)
		Dim result As Integer = CInt(txtNum1.Text) + (CInt(txtNum2.Text) - modValue)
		MsgBox(result)
	End Sub

بالضبط .. هو ده الحل .. تسلم عزيزي جوست .. وشكرا لكل من شاركوا في وضع الحلول ..

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…