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

سؤال عن المصفوفات الثنائية البعد ..

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

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

اخوان .. كيف يمكن ان اطبع مصفوفة ثنائية البعد بالشكل المربع ( matrix ) .

مثلا مصفوفة 5 * 5 ,, اريد ان اطبع المصفوفة بان تكون 5 صفوف وخمس اعمدة ..

او حتى وان لم تكن متساوية ..

ارجو ان يتم وضع الكود الخاص بهذه العملية ..

او شرح الطريقة فقط..

تحياتي العطرة للجميع ..

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#2

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

  1.  
  2. Dim Row As Long ' عداد الصفوف
  3. Dim Col As Long ' عداد الأعمدة
  4.  
  5. For Row = 1 To 5
  6. For Col = 1 To 5
  7. Print AAray(Row, Col),
  8. Next Col
  9. Print
  10. Next Row
  11.  

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

إذا كنت ستطبع العديد من المصفوفات بهذه الكيفية، و دون التقيد بحجم المصفوفة، فاكتب إجراءً كالتالي:

  1.  
  2. Private Sub Print2DimArray(SomeArray As Variant)
  3. Dim Row As Long
  4. Dim Col As Long
  5.  
  6. If UBound(SomeArray) >= LBound(SomeArray) Then
  7. For Row = LBound(SomeArray, 1) To UBound(SomeArray, 1)
  8. For Col = LBound(SomeArray, 2) To UBound(SomeArray, 2)
  9. Print SomeArray(Row, Col),
  10. Next Col
  11. Print
  12. Next Row
  13. End If
  14. End Sub
  15.  

ثم قم باستدعائه عند الحاجة مع تمرير اسم المصفوفة:

  1.  
  2. Private Sub Command1_Click()
  3. Dim MyArr(1 To 5, 1 To 4) As Long
  4. ' ...
  5. ' ...
  6. ' ...
  7. Print2DimArray MyArr ' استدعاء الإجراء السابق و تمرير اسم المصفوفة
  8. End Sub
  9.  

نرجو الاستفادة و السلام.

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

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

#3

شكرا جزيلا لك اخي العزيز على الطريقة الجميلة وهي المطلوبة في الحل ..

ولكن هذا يطبع على الفورم نفسه ..

طيب هناك حاجتين الان ..

الاولى .. اريد ان اغير من مكان الطبع على الفورم .. مثلا في الوسط وكذلك الخط اغيره ( لون ، حجم ..... ) ؟

الثانية .. لو اردت الاخراج في اداة اخرى .. مثلا picturebox او richTextBox ؟؟

شكرا لك مرة اخرى ...

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

#4

عدل أمر الطباعة من Print إلى Picture1.Print ، ويمكنك تعديل الخط واللون من خصائص Picture1

سبحان الله وبحمده ... سبحان الله العظيم

#5
اقتباس
عدل أمر الطباعة من Print إلى Picture1.Print ، ويمكنك تعديل الخط واللون من خصائص Picture1

شكرا لك اخي .

انا عدلتها سابقا قبل ان اسال المرة الثانية ..

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

فهل يمكن ان اقلص بين العناصر .

او ان تكون هناك مرونة في العرض بين العناصر كما افعلها بالسي ++ ؟

يَارَبُ إِن ضَاقَت قُلُوُب الْنَّاسٍ عَنْ مّافِي .. مِنْ خَيْرٍٍ فَعَفْوكَ لَا يَضِيْقْ ..

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