تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
Nested Control Structures او التراكيب المتداخلة
#1
كاتب الموضوع : جهاد العريقي


بسم الله الرحمن الرحيم


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


اولا ما معنى تراكيب متداخلة ...?

لناخذ مثال اولا على هذا النوع ..
يمكن عمل تركيب تحكم متداخلة كا الاتي :

كا استخدام جملة If ….. Then ….. End If For …… Loop أي استخدام جمل تحكم مختلفة في لالمهام ومتداخلة مع بعضها البعض .. كما اسلفنا عبارة IF , FOR .. اذن هذا ا نقصد به التراكيب المتداخلة ..

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

ما هي الفائدة من التراكيب المتداخلة ?
جعل البرنامج سهل القراءة .. وذلك ليسهل معرفة الاخطاء ..

ملاحظة هامة :


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

ما ذا اعني بهذه الملاحظة ..

المعنى هو لايمكن مثلا ان استخدم For … Next أي الدوران بــ For وانا بداخل جملة If الشرطية . .. وان اقوم باغلاق الدوران (أي كتابة العبارة Next ) بعد End If أي بعد ان انهي جملة الشرط فهذا خطاء ويجب التأكد من اغلاق For … قبل End If ...


لناخذ مثال بشكل عام على التراكيب المتداخلة :



كود :
[color=#000000][COLOR=#007700]For [/color][color=#0000bb]a [/color][color=#007700]= [/color][COLOR=#0000bb]1 To 100
      [/COLOR][color=#007700]{ [/color][color=#0000bb]statements [/color][COLOR=#007700]}
      
    If [/COLOR][color=#0000bb]a [/color][color=#007700]= [/color][COLOR=#0000bb]99 Then
          [/COLOR][color=#007700]{ [/color][color=#0000bb]statements [/color][COLOR=#007700]}
    [/COLOR][color=#0000bb]End [/color][COLOR=#007700]If

     While [/COLOR][color=#0000bb]b [/color][color=#007700]< [/color][COLOR=#0000bb]a
[/COLOR][color=#007700]{ [/color][color=#0000bb]statements [/color][COLOR=#007700]}

If [/COLOR][color=#0000bb]total [/color][color=#007700]<= [/color][COLOR=#0000bb]0 Then
    [/COLOR][color=#007700]{ [/color][color=#0000bb]statements [/color][COLOR=#007700]}
[/COLOR][color=#0000bb]End [/color][COLOR=#007700]If

     [/COLOR][color=#0000bb]End [/color][COLOR=#007700]While
      
      For [/COLOR][color=#0000bb]c [/color][color=#007700]= [/color][COLOR=#0000bb]1 to a
           [/COLOR][color=#007700]{ [/color][color=#0000bb]statements [/color][COLOR=#007700]}
       [/COLOR][COLOR=#0000bb]Next

Next  
[/COLOR][/COLOR]



اذا هذا مثال للتراكيب وانظر الى الجمل المستخدمة في الكود السابق.... لكل جملة نهاية ولكن ضمن نفس التركيب For ….. Next وليس بعده .. ايضا انظر الى كل جملة بشكل مستقل لها نهايتها..



لناخذ مثال عملي على التراكيب وليكن على المصفوفات ...

انشاء مشروع جديد ومن ثم اختار Consol Application

ومن ثم نكتي الكود الاتي:



كود :
[COLOR=#000000][COLOR=#0000bb]Module Module1

    Sub Main[/COLOR][COLOR=#007700]()

        [/COLOR][color=#0000bb]Dim Array2D[/color][color=#007700]([/color][color=#0000bb]6[/color][color=#007700], [/color][color=#0000bb]4[/color][color=#007700]) As [/color][COLOR=#0000bb]Integer
        Dim iRow[/COLOR][color=#007700], [/color][color=#0000bb]iCol [/color][color=#007700]As [/color][COLOR=#0000bb]Integer
        
        [/COLOR][color=#007700]For [/color][color=#0000bb]iRow [/color][color=#007700]= [/color][color=#0000bb]0 To Array2D[/color][color=#007700].[/color][color=#0000bb]GetUpperBound[/color][color=#007700]([/color][color=#0000bb]0[/color][COLOR=#007700])

            For [/COLOR][color=#0000bb]iCol [/color][color=#007700]= [/color][color=#0000bb]0 To Array2D[/color][color=#007700].[/color][color=#0000bb]GetUpperBound[/color][color=#007700]([/color][color=#0000bb]1[/color][COLOR=#007700])
  
              [/COLOR][color=#0000bb]Array2D[/color][color=#007700]([/color][color=#0000bb]iRow[/color][color=#007700], [/color][color=#0000bb]iCol[/color][color=#007700]) = [/color][color=#0000bb]iRow [/color][color=#007700]* [/color][color=#0000bb]100 [/color][color=#007700]+ [/color][COLOR=#0000bb]iCol
  
               Console[/COLOR][color=#007700].[/color][color=#0000bb]Write[/color][color=#007700]([/color][color=#0000bb]iRow [/color][color=#007700]& [/color][color=#dd0000]", " [/color][color=#007700]& [/color][color=#0000bb]iCol [/color][color=#007700]& [/color][color=#dd0000]" = " [/color][color=#007700]& [/color][color=#0000bb]Array2D[/color][color=#007700]([/color][color=#0000bb]iRow[/color][color=#007700], [/color][color=#0000bb]iCol[/color][color=#007700]) & [/color][color=#dd0000]" "[/color][COLOR=#007700])
  
           [/COLOR][COLOR=#0000bb]Next iCol
  
           Console[/COLOR][color=#007700].[/color][color=#0000bb]WriteLine[/color][COLOR=#007700]()

    
     [/COLOR][COLOR=#0000bb]Next iRow
  
       Console[/COLOR][color=#007700].[/color][color=#0000bb]Read[/color][COLOR=#007700]()
  
   [/COLOR][COLOR=#0000bb]End Sub

End Module  
[/COLOR][/COLOR]

الدوران الخارجي (iRow العداد ) يقوم بفحص كل صفوف المصفوفة ..
اما الدوران الداخلى (iCol) فيقوم بفحص كل عمود في الصف الحالي..

في كل تكرار التكرار الداخلي يقوم بفحص كل عنصر في الصف المحدد بواسطة العداد في التكرار الخارجي (iRow) بعد الانتها من العداد الداخلي أي عندما يصل الى نهايتة عداد الدوران الخارجي يزيد بمقدار واحد ومن ثم ينفذ الدوران الداخلي وهكذا ...

وويكون شكل العنصر الحالي في كل تكرار هو Array2D(iRow,iCol) ....

فيصبح الناتج كما في الشكل الاتي:


0, 0 = 0 0, 1 = 1 0, 2 = 2 0, 3 = 3 0, 4 = 4

1, 0 = 100 1, 1 = 101 1, 2 = 102 1, 3 = 103 1, 4 = 104
2, 0 = 200 2, 1 = 201 2, 2 = 202 2, 3 = 203 2, 4 = 204
3, 0 = 300 3, 1 = 301 3, 2 = 302 3, 3 = 303 3, 4 = 304
4, 0 = 400 4, 1 = 401 4, 2 = 402 4, 3 = 403 4, 4 = 404
5, 0 = 500 5, 1 = 501 5, 2 = 502 5, 3 = 503 5, 4 = 504
6, 0 = 600 6, 1 = 601 6, 2 = 602 6, 3 = 603 6, 4 = 604


والسلام ورحمة الله وبركاتة ..
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  Control Finder Class silverlight 3 51 اليوم, 06:11 AM
آخر رد: أبو عمر
  Generic Delegates & ًWindows Forms Control - Part 2 silverlight 0 194 19-01-16, 02:01 PM
آخر رد: silverlight
  Generic Delegates & ًWindows Forms Control - Part 1 silverlight 1 250 16-01-16, 06:35 PM
آخر رد: 10468
  [كود] Line Control silverlight 0 194 14-01-16, 03:03 PM
آخر رد: silverlight
  Retrieve Owner and Form of a Control silverlight 0 179 12-12-15, 05:28 AM
آخر رد: silverlight
  Capture Mouse Position within Control Coordinates silverlight 0 222 11-12-15, 10:30 PM
آخر رد: silverlight
Rainbow Toolbox in VB.NET - Common Controls - Lesson One - Button Control Properties Genius Live 18 4,213 26-03-14, 09:21 PM
آخر رد: رابح11
Rainbow Toolbox in VB.NET - Common Controls - Lesson Two - Button Control Events Genius Live 2 1,282 18-03-14, 05:46 AM
آخر رد: Genius Live
  مقال- تطوير الكونترول Skin Control RaggiTech 0 530 06-10-12, 12:08 AM
آخر رد: RaggiTech
  مقال - مقدمة لصناعة Nested Control RaggiTech 1 403 05-10-12, 06:20 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم