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

مقارنة بين مصفوفتين ثنائية الابعاد

مغلق
بدأه عابرة في 23 ديسمبر 2006 · 1 رد · 845 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

W.X,Y,Z داخل مصفوفة تسمى مصفوفة النقاط Point

هذا البرنامج عن طريق ألغورذيم قمت ببرمجته يقوم باختيار مجموعة من النقاط كـ center point

ولو فرصنا أن لدينا two center points(x.y) ولنفرض أن لهما نقاطهما بمعني:

x=x,w

y=y,z

برنامجي يقوم كل مرة بحساب الcenter points وما تحتويه من نقاط، باستخدام ألغورذيم خاص، ويتوفق فقط عندما تتكرر الcenter points وتتكرر معهما نقاطهما مرتين متتاليتين

أي..

في اللوب الأولى نحصل على:

x=x,w

y=y,z

واللوب الثانية:

x=x,w

y=y,z

أي لا يتغير شي!

وقياسا على ذلك وعلى حسب عدد النقاط قد يكون لدينا أكثر من center المهم أن يتكرر all center with all point في دورتين متتالين

المشكلة إني حفظت الcenter points بنقاطهما في متغير من نوع string

وأريد تحويلة إلى مصفوفة من بعدين/ البعد الأول يمثل الcenter والبعد الثاني يمثل نقاطه

أجهل طريقة التعامل مع المصفوفات

كما أجهل طريقة الاستدعاء للدالة التي ترجع مصفوفة

واحتاج لمساعدة عاجلة لأني هذا الكود يتوقف عليه تطوير اللالغورذيم ولي فترة أحاول فيه ومتعطلة!

هذا الكود الذي كتبته ولكني استخدم string وأجمع جميع الcenters بالنقاط في string واحد

Public Function makcenter() As String
Dim point As classpoint
		Dim i As Integer 

		str= ""
		For Each point In plist
			If point.iscenter = True Then
				str&= point.pGroup.center
				For i = 0 To point.pGroup.elements.Length - 1
					  str&= point.pGroup.elements(i)
				Next
				str&= vbCrLf
			End If
		Next
		MessageBox.Show(str)
		Return str
	End Function

وكود الاستدعاءد

 
Dim alg As New classalg
str2 = alg.makcenter()


			If strpoint = str2 Then
				flag = False
			Else
			   strpoint = str2
			End If
		Loop While flag

علما بإني عرفت :

Private strpoint As String = ""

أتمنى أن أجد لديكم الوقت لمساعدتي

ملاحظة مهمة:

عند المساواة بين المصفوفتين فلا يهم ترتيب العنصر

مثلا:

x=x.y

هي نفسها

x=y,x

.

تم تعديل هذه المشاركة بواسطة عابرة في 23 ديسمبر 2006 في 22:32

#2

السلام عليكم

السؤال مبهم نوع ما, لكن بشكل عام ,

يفترض أن تحفظ القيم في عنصر يقبل قيم ثنائية البعد المصفوفات المتعددة أو المجموعات Collection objects

اما مقارنة مصفوفة ثنائية البعد بمصفوفة اخرى يتم عبر السلوك العامة op_Equality

بهذا الشكل:

 If p.op_Equality(Me.point1, Me.point2) Then

		End If

و المصفوفات كثيرة منها المصفوفات الدينمكية و المصفوفات البارزة Jagged أو المصفوفات المستطيلة rectangular

ولو ارفقتي مشروع مصغر للمشروعك كان أفضل لمعاينة المشكلة بشكل مباشر,

و الخبر ليس كالمعاينة.

بالتوفيق إن شاء الله.

في المثال يتضح المقال

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

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