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

سؤال حول التعامل مع النصوص

بدأه السندبااد في 7 سبتمبر 2009 · 5 رد · 578 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

أريد مساعدتي في المعادلة التالية:

مربع نص مؤلف من ثلاثة أجزاء (تفصل بينها إشارة ناقص) وكل جزء أربع خانات بهذا الشكل:

1111 - 2222 - 3333

الجزء الأول عشوائي والجزء الثالث عشوائي

أما الجزء الثاني = الجزء الأول + الجزء الثالث - 2000

وفي كل مرة أضغط زر موافق يعطيني أرقاماً جديدة بشرط أن تكون وفق الشروط السابقة

طبعاً أنا حاولت ومثالي بالمرفقات ولكن فشلت في ذلك

فأرجو التعديل عليه

:wacko:

سؤال آخر:

كيف أجعل مربع النص يعطيني رقماً عشوائيا مؤلفاً من أربعة خانات؟

جربت هذه الطريقة وهي تعمل

اقتباس
Do

Text1.Text = 11111 * Rnd + 0

Loop Until Len(Text1.Text) = 4

ألا يوجد غيرها؟

تقبل الله صيامكم

textbox.rar

تم تعديل هذه المشاركة بواسطة السندبااد في 7 سبتمبر 2009 في 12:50

فاعلم أنه لا إله إلا الله

#2

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

في زر كوماند ضع الكود التالي

randomize

a = int((Rnd(1)) * 9999)

aaa = int((Rnd(1)) * 9999)

aa = a + aaa

Text1.text = a & " - " & aa & " - " & aaa

شرح الكود

randomize = توليد رقم عشوائي يختلف كل مره تعيد تشغيل البرنامج فيها.

a = الجزء الأول من الأرقام العشوائية وهو متغير يحمل قيمة الرقم العشوائي وحددنا هنا أن الرقم العشوائي يكون محصور بين الرقم 1 والرقم 9999 يعني يتكون من أربع خانات والمسؤولة أن العدد يكون عدد صحيح int

aaa = الجزء الثالث من الأرقام العشوائية ونفس طريقة a

aa = الجزء الثاني من الأرقام العشوائية ويساوي مجموع الجزء الأول + الجزء الثالث

ملاحظه أحنا هنا نتحكم في الرقم العشوائي الخاصة بالجزء الأول والجزء الثالث

ولكن الجزء الثاني إحتمال يكون أكثر من أربع خانات مثال لو الجزء الأول كان 9999 والجزء الثالث 9888 سيكون ناتج الجزء الثاني يساوي 19887 وهنا اصبح 5 خانات

هنا ممكن نلعب لعبة ونقول له لو الجزء الثاني أكبر من أربع خانات عيد التوزيع مره أخرى ولو كان = أربع خانات أعرض النتيجة

لو ما عرفت تسويها أخبرني وأنا أسويها لك أتمنى أني أفدتك .. تحياتي

تم تعديل هذه المشاركة بواسطة محمدvb في 7 سبتمبر 2009 في 16:44

#3

بارك الله فيك أخ محمد وجعلك من عتقاء رمضان

لكن الكود ليس دقيقاً فالجزء الثاني فيه خلل

أولاً يجب أن لا يتجاوز أربع خانات

أيضا الجزء الثاني أريده يساوي = الجزء الأول + الجزء الثالث - الرقم 2000

كل الخانات يجب أن لا تتجاوز الأربع

انظر لقد وصلت لهذا الكود وهو دقيق 100%

		Dim part1, part2, part3 As Integer
		Do
			part1 = Random()
			part3 = Random()
			part2 = (part1 + part3) - 2000
			TextBox1.Text = part1 & "-" & part2 & "-" & part3
		Loop Until Len(TextBox1.Text) = 14

Public Function Random() As String
Random = Int(9999 * Rnd + 0)
End Function

لكن أشعر بأنه هنالك طريقة عملية أكثر

تم تعديل هذه المشاركة بواسطة السندبااد في 7 سبتمبر 2009 في 19:27

فاعلم أنه لا إله إلا الله

#4

السلام عليكم...

أرجو التوضيح: كل جزء يتكون من 4 خانات ليست بمشكلة، لكن هل يجب أن تتألف الخانات الأربع من نفس الرقم، أي 1111 أو 2222 أو 3333 ... إلى 9999 أم أنها يمكن أن تكون أرقاماً مختلفة مثل 3409 أو 1275 ... إلخ. ؟ و هل يمكن أن يكون الرقم المؤلف من 4 خانات أصغر من 1111، مثلاً الرقم 19 و يتم عرضه هكذا 0019 أو الرقم 1 هكذا 0001 ... إلخ. ؟

نرجو التوضيح و السلام.

وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ

صدق الله العظيم

#5

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

أخ ناجي :

الجزء الأول: عشوائي

الجزء الثاني: (الجزء الأول + الجزء الثالث) - 2000

الجزء الثالث: عشوائي

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

انظر أخ ناجي:

هذا الكود يقوم بالمهمة :

		Dim part1, part2, part3 As Integer
		'لتوليد رقم عشوائي في كل مرة تعيد فيها تشغيل البرنامج
		Randomize()
		Do
			part1 = Int((Rnd(1)) * 9999)
			part3 = Int((Rnd(1)) * 9999)
			part2 = (part1 + part3) - 2000
			TextBox1.Text = part1 & "-" & part2 & "-" & part3
		Loop Until Len(TextBox1.Text) = 14

لكن ألا يوجد طريقة أخرى؟!

تم تعديل هذه المشاركة بواسطة السندبااد في 7 سبتمبر 2009 في 22:03

فاعلم أنه لا إله إلا الله

#6
السندبااد كتب:
بارك الله فيك أخ محمد وجعلك من عتقاء رمضان

لكن الكود ليس دقيقاً فالجزء الثاني فيه خلل

أولاً يجب أن لا يتجاوز أربع خانات

أيضا الجزء الثاني أريده يساوي = الجزء الأول + الجزء الثالث - الرقم 2000

كل الخانات يجب أن لا تتجاوز الأربع

انظر لقد وصلت لهذا الكود وهو دقيق 100%

		Dim part1, part2, part3 As Integer
		Do
			part1 = Random()
			part3 = Random()
			part2 = (part1 + part3) - 2000
			TextBox1.Text = part1 & "-" & part2 & "-" & part3
		Loop Until Len(TextBox1.Text) = 14

Public Function Random() As String
Random = Int(9999 * Rnd + 0)
End Function

لكن أشعر بأنه هنالك طريقة عملية أكثر

شكرا أخي الكريم على اللطف في الكلام والدعاء بالخير وللمعلومية من دعى لأخية عن ظهر غيب ردت الملائكة وقالت ولك بالمثل حديث صحيح

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

أولاً يجب أن لا يتجاوز أربع خانات

الجزء الأول والثالث مستحيل يتجاوز أربع خانات

أما الجزء الثاني فهنا تكلمت عنه بما يرضى ربنا... وقلت لك أنه في حالة كان الجزء الثاني أكبر من أربع خانات عيد التوزيع وهو ما فعلته أنته بهذا الكود

do

loop

أيضا الجزء الثاني أريده يساوي = الجزء الأول + الجزء الثالث - الرقم 2000

بسيطة ضيف - 2000

الحقيقة ما أدري كيف ما شفتها لكن انته عارف انا رديت عليك بعد العصر يعني بعد ما أفطرت .. فالمعذرة أخوي

كل الخانات يجب أن لا تتجاوز الأربع

أكيد ولكن الجزء الثاني يحكمه مجموع الأول والثاني

انظر لقد وصلت لهذا الكود وهو دقيق 100%

الحمدلله انك توصلت لما تريد وأنا سعيد بذلك وشكراً مره أخرى ... تحياتي

تم تعديل هذه المشاركة بواسطة محمدvb في 8 سبتمبر 2009 في 02:25

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