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

عندي تشابة بعناصر المصفوفة ومش راضي يحقق الشرط لاني مابدي تشابه

مغلق
بدأه tariq84 في 27 أبريل 2007 · 10 رد · 780 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
Private Sub Command1_Click()
Dim flag As Boolean
Dim tH(15), cH(16), tiH(51), rtiH(51), tC(51), cC(51), q, coC(51), rcC(51), t(7), c(7), r(51), rr(51), tT(12), cT(12), teT(51), rtT(51), ta(51, 4), z, b, v, x As Integer
'THISE IS APART FOR PROCESS THE TIME THE TIME
For i = 1 To 15
tH(i) = i
'Print tH(i)
Next i
For i = 1 To 9
cH(i) = 3
'Print cH(i)
Next i
For i = 10 To 15
cH(i) = 4
'Print cH(i)
Next i
i = 1
List1.AddItem "Course   Teacher    Room    Time"
While (i < 52)
Randomize
x = Rnd() * 15 + 1
If cH(Int(x)) > 0 Then
tiH(i) = Int(x)
cH(Int(x)) = cH(Int(x)) - 1
rtiH(i) = Int(x)
'c3.AddItem (tiH(i))
'Print rtiH(i);
i = i + 1
End If
Wend

'THES PART FOR PROCESS THE CORSES THE CORSES
For i = 1 To 51
tC(i) = i
'Print tC(i);
Next i

For i = 1 To 51
cC(i) = 1
'Print cC(i)
Next i
i = 1
While (i < 52)
Randomize
x = Rnd() * 50 + 1
If cC(Int(x)) > 0 Then
coC(i) = Int(x)
cC(Int(x)) = cC(Int(x)) - 1
'c4.AddItem coC(i)
rcC(i) = Int(x)
'Print rcC(i);
i = i + 1

End If
Wend
'THES PART FOR PROCESS THE ROMS THE ROMS
For i = 1 To 7
t(i) = i
'Print t(i)
Next i
For i = 1 To 5
c(i) = 7
'Print c(i)
Next i
For i = 6 To 7
c(i) = 8
'Print c(i)
Next i
i = 1
While (i < 52)
Randomize
x = Rnd() * 6 + 1
If c(Int(x)) > 0 Then
r(i) = Int(x)
c(Int(x)) = c(Int(x)) - 1
'c2.AddItem (r(i))
rr(i) = Int(x)
'Print rr(i);
i = i + 1
End If
Wend

'THES PART FOR PROCESS THE TEACHERS THE TEACHERS
For i = 1 To 1
cT(1) = 3
'Print cT(i)
Next i

For i = 2 To 8
cT(i) = 4
'Print cT(i)
Next i

For i = 9 To 12
cT(i) = 5
'Print cT(i)
Next i

i = 1
While (i <= 51)
Randomize
x = Rnd() * 11 + 1
If cT(Int(x)) > 0 Then
teT(i) = Int(x)
cT(Int(x)) = cT(Int(x)) - 1
'C1.AddItem (teT(i))
rtT(i) = Int(x)
'Print rtT(i);

i = i + 1
End If
Wend
For i = 1 To 51
'List2.AddItem rcC(i)
'List3.AddItem Str(I) + Str(rtT(I))
'List4.AddItem Str(I) + Str(rr(I))
'List5.AddItem Str(I) + Str(rtiH(I))

Next i
 Dim rnd1, rnd2, rnd3, rnd4, TTT, TTTT, lz As Integer
 i = 1
While (i < 52)

10: lz = Int(Rnd() * 51) + 1
'flag = True
If (rcC(lz) <> 0) Then

rnd1 = rcC(lz)
'rcC(lz) = 0
Else
GoTo 10
End If
Randomize
20:
z = Int(Rnd() * 51) + 1
'List2.AddItem z

If rtT(z) <> 0 Then

rnd2 = rtT(z)

'rtT(z) = 0
Else
GoTo 20
End If
Randomize
30: TTT = Int(Rnd() * 51) + 1

If rr(TTT) <> 0 Then

rnd3 = rr(TTT)
'rr(TTT) = 0
Else
GoTo 30

End If
Randomize
40: TTTT = Int(Rnd() * 51) + 1

If rtiH(TTTT) <> 0 Then

rnd4 = rtiH(TTTT)
'Print rtiH(TTTT)
'rtiH(TTTT) = 0
Else
GoTo 40
End If

ta(i, 1) = rnd1
ta(i, 2) = rnd2
ta(i, 3) = rnd3
ta(i, 4) = rnd4



    flag = True
 For j = 1 To i - 1

     If ((ta(i, 4) = ta(j, 4)) And (ta(i, 3) <> ta(j, 3)) And (ta(i, 2) <> ta(j, 2))) And Not flag Then
         flag = False
         End If
         Next j

 If flag Then

List1.AddItem Str(ta(i, 1)) + "           " + Str(ta(i, 2)) + "           " + Str(ta(i, 3)) + "           " + Str(ta(i, 4))
  i = i + 1
 rtT(z) = 0
 rr(TTT) = 0
 rtiH(TTTT) = 0
rcC(lz) = 0
 End If

 Wend

End Sub

ارجو من كل من عنده خبرة يفيدني ويجرب هالكود والله اتعقدت وعجزت عن حلها ومو لاقي حد يعرف لحلها حتى دكتورنا ماقدرلها

يااخوان انا بعتت برنامج عبارة عن مصفوفة من 51 صف واربع اعمدة ورح تشوفوة لمى تطبقو الكود رح تشوفو list فيها اربع اعمدة واسماء هالاعمدة كالتالي(course,,teacher,,room,,time) بالترتيب وزي ماانتم شايفين انا عملت هالمصفوفة وحاط شروط بس مابحققلي الشروط بشكل تمام يعني انا حاكيلو مايعطيني تشابة

بحيث مثلا مايطلع عندي تعارض الوقت مع المادة..او دكتورين مختلفين يكونو عندهم بنفس الوقت وبنفس القاعه..او يكون نفس الدكتور عندو بقاعتين مختلفتين وبنفس الوقت وغيرو من امور التعارض

فانا حطيت هالشروط انو مابدي يعطيني هيك تعارض ولكن لافائدة بعطيني

مثال توضيحي لصفين من المصفوفة 2 3 4 5

5462

هون مثلا مابدي يطلع عندي هيك حالة لانه هاذ بعني انو الماده(5) للدكتور (4) عندو بالقاعه(3) وبالوقت(2)

والصف الثاني برضو انو المادة (5) للدكتور (4) عندو ايضا بقاعه ثانية(6) وبنفس الوقت(2)

فالمطلوب انو مابدي ياه يطلع هيك حالة لانو هون صار في تعارض لانه هيك بكون الدكتور بعطي نفس المادة وبنفس الوقت ولكن بقاعات مختلفه وهذا لايجوز اتمنى انو الفكرة تكون وصلت

كل اللي بدي ياه انو مايطلعلي تعارض وبس

مشكورين ارجوووو تطبيق الكود لحتى تبين فكرة البرنامج

الاردن ارض النشامة..طارق حلوش

#2

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

تنسيق الكود يوجد به اخطائ كثير ....

الافضل ان ترفقه كملف "مشروع".

بالتوفيق ..........

A7med_prof

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

أخي ربما سؤالك اجابته في أحدى هذه المواضيع فإن لم تجد قم بالبحث وان لم تجد اطرح سؤالك مع وضع عنوان مناسب بحيث ان يكون هذا العنوان دال على محتوى الموضوع فغير ذلك من أكبر الكبائر في المنتدى وسيؤدي الى غلق او حذف موضوعك .

.

</
#3

وعليكم السلام ورحمة اله وبركاتة واشكرك اخوي كثيرا على الاهتمام والرد المباشر

انا بعتلك ياه كلو ارجو ان يكون هذا طلبك

بس تطبق الكود بظهرلك list فية اربع اعمده والمطلوب كتذكير انو مايكون تعارض باي شي

project.zip

الاردن ارض النشامة..طارق حلوش

#4

اخي الكود طوووووووووووووويل جدا .

ارجو منك ان تتحدث بالعربيه وليس باللهحه الاردونيه ( لن استطيع استيعابها )

وتقول ما هي وظيفة الكود ؟

وايضا ما هي المشاكل التي تواجهك ؟

بالتوفيق ..........

A7med_prof

اقتباس

آسف الدخول متقطع هذه القتره

اقتباس

[يمين]

.[/يمين]

A7med_prof-4-2007.jpg

اخر مواضيعي 2007

االمثال مطبق على موقع بورصه سعودي

.

.

مواضيع مهمه ومطلوبه بكثره VB6

.

بــرامج ومشــاريع عربيه كامــله {HnHn} والمزيد في قسم برامج الاعضاء || ربط قواعد بيانات اكسس مع الفيجوال بيسك, مادة دراسية كاملة {بنت اليمن}|| المرجع الشامل لجمل SQL ا {GENIUS-IT} || كيفية التعامل مع مكتبة الـ DAO, في الوصول إلى قاعدة بيانات {رمضان} || مثال ريط Visaul Basic 6.0 مع SQL SERVER ا || العمليات التي تجرى على قاعدة البيانات, مثال كامل {بنت اليمن} || تصدير البيانات من الاكسل الي الاكسس بالفيجوال بيسك {HnHn} || البحث في قاعدة البيانات {MANSUR} || قواعد البيانات العلائقية وتقنيات الوصول إليها {عبد الله فتحي} || كيفية أظهار بيانات جدولين بواسطة التاريخ ,,,,,,,

.

أخي ربما سؤالك اجابته في أحدى هذه المواضيع فإن لم تجد قم بالبحث وان لم تجد اطرح سؤالك مع وضع عنوان مناسب بحيث ان يكون هذا العنوان دال على محتوى الموضوع فغير ذلك من أكبر الكبائر في المنتدى وسيؤدي الى غلق او حذف موضوعك .

.

</
#5

اخوي احمد انا الان بعتلك نسخه ثانية نهائية من البرنامج نفذو وشوف ماذا ينفذ لك

سوف تلاحظ وجود اربع اعمدة هي للدكاترة والمواد والقاعات والاوقات كما هو واضح في الفورم كل واحد بحتوي على عناصر معينة انا عملتها بشكل عشوائي ومكرر ليصبح مجموع كل عمود 51 عنصر والذي يساوي مجموع عدد المواد لكل عمود وراندوم ومافي مشكلة كل هذا انا عملتو

لكن المشكلة انه لايحقق لي الشرط الاخير الموجود في اسفل الكود والذي يفيد اني لااريد ان يكون هناك تعارض بين الوقت والمدرس والقاعه ساظع لك حزء من الشرط مثلا if(ta(i, 4) = ta(j, 4

هنا i:تعني الصف الجاري دراسته و j:يعني الصفوف الذي قبلو 4:تعني العمود رقم اربعه وهو الوقت

الان تلاحظ انه عند التنفيذ بعطيك مصفوفة من 51 عنصر بشكل عشوائي وكلو تمام ولكن لايحقق لي الشرط اللي انا حاطو

هاي شرحتلك باللهجة العربية الفصحى

كيف اجعله يحقق الشرط الاخير

التعارض يكون كالتالي مثلا خذ هالصفين

2345و4365

هنا تلاحظ ان الاول عبارة عن المادة 2 للدكتور 3 بالقاعه 4 وبالوقت 5

والثاني المادة 4 للدكتور 3 وبالقاعه 6 وبالوقت 6

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

ارجووووو ان تكون قد وصلت فكرة البرنامج

last_stage.zip

الاردن ارض النشامة..طارق حلوش

#6

تعقيب على مثال التعارض الذي لااريدو ان يكون في التنفيذ

5344 ووو 4364

هذا يعني ان المادة 5 للدكتور 3 وبالقاعه 4 وبالوقت 4

والصف الاخر ان المادة 4 للدكتور 3 وبالقاعه 6 وبالوقت 4

هنا يحدث تعارض لانه في عندك مادتين لنفس الدكتور وبقاعتين مختلفتين ولكن بوقت واحد وهذا لايجوز يجب ان يكون في وقتين مختلفين

الاردن ارض النشامة..طارق حلوش

#7

انا مش فاهمه حااااجه

ممكن تدينا معلومات اكتر شويا

انا عملت مشروع ذى دا قبل كدا وكان ابسط

يعنى معلومات اساسية

عندك كم دكتور؟ كم قاعة؟ زمن المحاضرة؟ كم ماده؟

عدد محاضرات كل ماده؟

الخ ............. الخ ............. الخ

انا كنت هابعتلك المشروع بتاعى بس للاسف مبرمجاه بالسى :(

#8

عدد المواد 51

عدد القاعات 7

عدد الدكاترة 12

عدد الاوقات 15

عدد القاعات والاوقات والدكاترة مكررات على حسب عدد المواد ليصبح عدد كل منهم 51

واي معلومات ثانية انا جاهز

وشكرا اختي الكريمة على المرور

الاردن ارض النشامة..طارق حلوش

#9

يااخوان انتم بس شاطرين تتطلبوا معلومات وابصر اييييييييييييييييييييييييييش اعطيتكم كل المعلومات وكل الافكار

ولحد الان مافي اي حل للهبرنامج ...يعني معقول يكون صعب للهدرجه...لو في واحد بس يكون متمكن وعبقري باللغة يعطيني ايميلو وانا رح اشرحلو سطر بسطر ...بس المهم الاقي شي صح

والله ماضل في اعصااااااااااب...المناقشة بعد شهر عليها

الاردن ارض النشامة..طارق حلوش

#10

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

اخي العزيز هذا الحل المتواضع و الصراحة لم ارجعه ولكن بنسبة 99% متأكد منه

تفضل الكود

' Super_Pro  Jordan - Amman
'			00962 79 51 90 80 1
'			00962 78 85 93 39 6
'			A.Noorallh@yahoo.com
'			A.Noorallh@Gmail.com
'	  Www.arabteam2000.com
'	  www.arabmoheet.net
' To visit my CV www.Soft.ueuo.com

Private Sub Command1_Click()
	Dim Cours As Integer, Tech As Integer, Class As Integer, Tim As Integer
	Dim Arr(53, 4) As Integer
	Dim CountArr As Byte
	Dim Add2Arr As Boolean

	Add2Arr = True

	For i = 0 To 51
		Randomize
' Create Rnd values

		Cours = Rnd * 50 + 1
		Tech = Rnd * 50 + 1
		Class = Rnd * 50 + 1
		Tim = Rnd * 50 + 1

		For j = 0 To CountArr

			If Arr(j, 0) <> Cours And Arr(j, 1) <> Tech And Arr(j, 2) <> Class And Arr(j, 3) <> Tim Then
				Add2Arr = True
			Else
				Add2Arr = False
			End If
		Next
' Save values
		If Add2Arr = True Then
			Arr(j, 0) = Cours
			Arr(j, 1) = Tech
			Arr(j, 2) = Class
			Arr(j, 3) = Tim
		End If

		CountArr = CountArr + 1
	Next

	CountArr = 0
' For Output System
	For i = 0 To 50
		Print Arr(i, 0); Arr(i, 1); Arr(i, 2); Arr(i, 3)
	Next
End Sub

او قم بتحميل المرفق

Rndomize_values.rar

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

أستضافة مواقع (Website Hosting) ابتداء من 35دينار اردني (50$) سنوي 962799247524+ أضغط هنا

logo.png

#11

تم حل المشكلة بتوفيق من الله سبحانه وتعالى واشكر كل الذين حاولو مساعدتي وشكر خااااااص بكل مايملكه قلبي من تواضع الى الاخ والصديق Super_Pro

الذي لولاه ولولا نصيحتة لما توصلت لحل هذة المشكلة بنفسي

شكرا لك كثيرا اخيSuper_Pro

ولكل الاعضاء

الاردن ارض النشامة..طارق حلوش

هذا الموضوع مغلق.

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

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

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

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

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