SlideShare a Scribd company logo
VB .NET 2005 By Warawut Khangkhan
การใชตวแปรชน#ดอาร&เรย& (Array) ใน VB.NET 2005 express Edition



         การใชตวแปรชนดอารเรย (Array) ใน VB .NET 2005 Express Edition
       อาร&เรย& (Array) เป4นกล67มของขอม;ลชน#ดเด<ยวกนท<>ใชเน?@อท<>ในหน7วยความจDาต7อเน?>องกนไป อาร&เรย&ม<ประโยชน&อย7าง
มากในการเข<ยนโปรแกรม เพราะช7วยลดความย67งยากในการประกาศตวแปรชน#ดเด<ยวกนจDานวนมาก และช7วยใหการใชงาน
ตวแปรเหล7าน@นทDาไดง7ายขJน@
       เช7น หากเราตองการเกKบคะแนนของนกศJกษาจDานวน 100 คน ไวในหน7วยความจDาเพ?>อคDานวณเกรด เราอาจตอง
ประกาศตวแปร ดงน<@

                  Dim StudentScore1 As Short
                  Dim StudentScore2 As Short
                  Dim StudentScore3 As Short
                  ....
                  Dim StudentScore100 As Short

        แต7หากเราใชอาร&เรย&ขนาด 100 สมาช#กในการจดเกKบขอม;ลแทนการใชตวแปรเด<>ยว ๆ จDานวน 100 ตวแปร จะทDาให
ความย67งยากในการเข<ยนโปรแกรมลดลงไปอย7างมาก ดงตวอย7าง

                  Dim StudentScore(99) As Short

          เป4นการประกาศตวแปรอาร&เรย&ช?>อ StudentScore ท<>ม< 100 สมาช#ก เราสามารถเขาถJงสมาช#กใด ๆ ในอาร&เรย&ไดโดยใช
อ#น เดKกซ& (index) ในการอางอ# ง เช7น จากตวอย7 า งหากเราตองการอางถJ ง คะแนนของนกศJ ก ษาคนท< > 2 เราจะอางถJ งดวย
StudentScore(1) เป4นตน
          อ#นเดKกซ&ในอาร&เรย&ของ VB .NET จะเร#มท<> 0 เสมอ (เหม?อน C#, C++ และ Java) ดงน@นถาประกาศอาร&เรย&ดวยตวเลข
                                              >
99 อาร& เรย&น<@ จะม<จD า นวน 99 + 1 = 100 สมาช# ก โดย StudentScore(0) จะหมายถJง สมาช#ก แรกของอาร& เรย& (คะแนนของ
นกศJกษาคนท<> 1), StudentScore(1) จะหมายถJงสมาช#กท<> 2 ของอาร&เรย& (คะแนนของนกศJกษาคนท<> 2) และ StudentScore(99)
จะหมายถJงสมาช#กท<> 100 ของอาร&เรย& (คะแนนของนกศJกษาคนท<> 100)




                                                                -1-
VB .NET 2005 By Warawut Khangkhan
การใชตวแปรชน#ดอาร&เรย& (Array) ใน VB.NET 2005 express Edition


อารเรยหลายมต (Multidimensional Array)
         จากตวอย7างขางตน ตวแปร StudentScore เป4นอาร&เรย&ท<>สามารถเกKบคะแนนของนกศJกษาแต7ละคนไดเพ<ยงว#ชาเด<ยว
เท7าน@น เร<ยกว7าเป4นอาร&เรย&ม#ต#เด<ยว (One Dimensional Array) แต7ในบางคร@งเราอาจจDาเป4นตองจดเกKบขอม;ลท<>ม<หลายม#ต# เช7น
เกKบคะแนนท6ก ๆ ว#ชาของนกศJกษาแต7ละคนเอาไวเพ?>อค#ดเกรดเฉล<>ย เป4นตน ว#ธ<หนJ>งท<>ทDาไดกKค?อ การใชอาร&เรย&หลายม#ต#
(Multidimensional Array)
         การประกาศตวแปรอาร&เรย&หลายม#ต#จะม<ร;ปแบบคลายกบการประกาศอาร&เรย&ม#ต#เด<ยว เช7น ถาเราตองการประกาศ
ตวแปรอาร&เรย&ช?>อ StudentScore ใหสามารถจดเกKบคะแนนท@ง 5 ว#ชา ไดแก7 คณ#ตศาสตร&, ว#ทยาศาสตร&, สงคมศาสตร&, ภาษา
ไทย และภาษาองกฤษ ของนกศJกษาจDานวน 100 คนไว จะตองประกาศ ดงน<@

                  Dim StudentScore(99, 4) As Short 'ประกาศอาร&เรย& 2 ม#ต# ขนาด 100 x 5

       ตวอย7างขางตนเป4นการประกาศอาร&เรย& 2 ม#ต# ขนาด 100 x 5 (รวม 500 สมาช#ก) โดยอ#นเดKกซ&ต วแรกใชอางถJง
นกศJกษาแต7ละคน ส7วนอ#นเดKกซ&ตวท<>สองใชอางถJงว#ชาต7าง ๆ (0, 1, 2, 3, 4 ใชแทนคณ#ศาสตร&, ว#ทยาศาสตร&, สงคมศาสตร&,
ภาษาไทย และภาษาองกฤษ ตามลDาดบ)
       ตวอย7างต7อไปจะเป4นการประกาศตวแปรอาร&เรย& 3 ม#ต# ขนาด 9 x 5 x 3 (รวม 135 สมาช#ก) และอาร&เรย& 4 ม#ต#
ขนาด 21 x 11 x 51 x 3 (รวม 35,343 สมาช#ก) ตามลDาดบ

                  Dim Arr3Dimension(8, 4, 2) As String                     'อาร&เรย& 3 ม#ต# ขนาด 9 x 5 x 3
                  Dim Arr4Dimension(20, 10, 50, 2) As Integer              'อาร&เรย& 4 ม#ต# ขนาด 21 x 11 x 51 x 3

         เราสามารถกDาหนดค7าเร#มตนและขอบเขตของตวแปรอาร&เรย& ไดเช7นเด<ยวกบตวแปรปกต# ดงน<@
                              >

                  [ Dim | Private | Public | Static ] <ชอตวแปรอารเรย> (<ขนาดของม)ตแรก>,
                                                                                    )
                  <ขนาดของม)ต)ท- 2>, ..., <ขนาดของม)ต)ท- n>) As <ชน)ดข5อม6ล> = <Expression>
         เช7น
                  Dim Arr1(4) As Short = {50, 60, 0, 3, 7} 'อาร&เรย& 1 ม#ต# ขนาด 5 สมาช#ก
                                                           'ม<ค7าเร#มตน 50, 60, 0, 3 และ 7
                                                                    >

           เราสามารถเคล< ยร&ค 7 าท6 ก ๆ สมาช# ก ของอาร& เ รย& ให เป4 นค7 า เร# > มต น (ขJ@ น อย; 7ก บชน# ดข อม; ล ) ได โดยใชคD าส> ง
Erase <ช?ออาร&เรย&> เช7น
         >
                 Erase StudentScore       'เป4นการเคล<ยร&คะแนนของนกศJกษาท6กคนใหเป4น 0




                                                                -2-
VB .NET 2005 By Warawut Khangkhan
การใชตวแปรชน#ดอาร&เรย& (Array) ใน VB.NET 2005 express Edition


ไดนามกอารเรย (Dynmic Array)
          ในบางคร@งเราไม7สามารถร;ขนาดท<>แน7นอนของอาร&เรย&ได เช7นถาตองการเกKบช?>อหนงส?อท@งหมดในหองสม6ด ซJ>งเรายง
ไม7ร;จDานวนหนงส?อท<แน7นอนในช7วงเข<ยนโปรแกรม กKจะทDาใหเราไม7สามารถกDาหนดขนาดท<แน7นอนของอาร&เรย&ได ทางออกง7าย ๆ
                      >                                                             >
ของปsญหาน<@ค?อ เราอาจกDาหนดขนาดของอาร&เรย&เผ?>อไวมาก ๆ แต7การกDาหนดขนาดอาร&เรย&ใหญ7เก#นความจDาเป4นจะทDาใหส#@น
เปล?องเน?@อท<หน7วยความจDาโดยใช7เหต6 นอกจากน<@ยงทDาใหโปรแกรมของเราไม7ม<ความย?ดหย6นเท7าท<ควรดวย
              >                                                                        7       >
          ว#ธ<ท<>เหมาะสมกว7า ค?อ การใชไดนาม#กอาร&เรย& (Dynamic Array) ซJ>งหมายถJง อาร&เรย&ท<>เราสามารถเปล<>ยนแปลงขนาด
ไดในขณะรนโปรแกรม การประกาศไดนาม#กอาร&เรย&ม<ร;ปแบบดงน<@

                  Dim <ชอตวแปรอารเรย>( ) As <ชน)ดของข5อม6ล>

         เช7นถาหากตองการกDาหนดไดนาม#กอาร&เรย&เพ?>อเกKบคะแนนสอบของนกศJกษา เราอาจประกาศว7า

                  Dim StudentScore( ) As Short          'ประกาศอาร&เรย& 1 ม#ต# เป4นไดนาม#กอาร&เรย&
                                                        'ม<ชน#ดขอม;ลเป4น Short

       หลงจากน@นเม?อทราบจDานวนขอม;ลท<แน7นอน เราสามารถเปล<>ยนแปลงขนาดของอาร&เรย&ไดโดยใชคDาส>ง Redim เช7น ถา
                   >                   >
ต7อมาทราบว7านกศJกษาม<จDานวนท@งส#@น 50 คน เราสามารถใชคDาส>งต7อไปน<@เพ?>อกDาหนดใหตวแปรอาร&เรย&ดงกล7าวม<ขนาด 50
สมาช#ก

                  Redim StudentScore(49) As Short 'กDาหนดขนาดของอาร&เรย&ใหม<ขนาด 50 สมาช#ก

         อย7า งไรกKด < เราควรเปล<> ย นแปลงขนาดของอาร&เ รย&ด วยความระมดระวง เพราะถาหากม<ก ารจดเกK บขอม; ล ไวใน
อาร&เรย&แลว การลดขนาดอาร&เรย&ใหเลKกลงจะทDาใหขอม;ลบางส7วนส;ญหายไป

หมายเหต8
        เพ?>อปwองกนไม7ใหขอม;ลท<>อย;7ในอาร&เรย&ส;ญหาย เราสามารถใชคDาส>ง Redim ร7วมกบออปช>น (Option) Preserve ได เช7น
Redim Preserve StudentScore(49) As Short




                                                                -3-

More Related Content

PDF
Object-Oriented Programming 5
PDF
Object-Oriented Programming 10
PDF
Management Information System 4
PDF
Object-Oriented Programming 9
PDF
Business Computer Project 4
PDF
Chapter 2 Strategy & Information System
PDF
Business Computer Project 2
PDF
Management Information System 3
Object-Oriented Programming 5
Object-Oriented Programming 10
Management Information System 4
Object-Oriented Programming 9
Business Computer Project 4
Chapter 2 Strategy & Information System
Business Computer Project 2
Management Information System 3

Similar to การใช้ตัวแปรอาร์เรย์ (Array) ใน VB.NET 2005 Express Editor (20)

PPTX
บทที่ 2
DOC
ตัวแปรชุดและตัวแปรอักขระ
PDF
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
PDF
งานทำ Blog บทที่ 8
PDF
งานทำ Blog บทที่ 8
PDF
งานทำ Blog บทที่ 8
PDF
ชนิดของข้อมูลและตัวแปร
PDF
การใช้ตัวแปรแบบคงที่ใน VB.NET 2005 Express Editor
PDF
งาน
DOC
Vb6 5 ข้อมูลและตัวแปร
PPT
08 arrays
PDF
Sheet4
PPTX
ข้อมูลชนิดอาร์เรย์และสตริง
PPT
งาน
PPTX
อาร์เรย์
PDF
Convert Data type
PPT
ตัวแปรชุดและตัวแปรอักขระ PPT
PPT
ตัวแปรชุดและตัวแปรอักขระ
บทที่ 2
ตัวแปรชุดและตัวแปรอักขระ
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
ชนิดของข้อมูลและตัวแปร
การใช้ตัวแปรแบบคงที่ใน VB.NET 2005 Express Editor
งาน
Vb6 5 ข้อมูลและตัวแปร
08 arrays
Sheet4
ข้อมูลชนิดอาร์เรย์และสตริง
งาน
อาร์เรย์
Convert Data type
ตัวแปรชุดและตัวแปรอักขระ PPT
ตัวแปรชุดและตัวแปรอักขระ
Ad

More from Warawut (20)

PDF
Database design
PDF
Object-Oriented Programming 8
PDF
Object-Oriented Programming 7
PDF
Object-Oriented Programming 6
PDF
Management Information System 6
PDF
Management Information System 5
PDF
Business Computer Project 3
PDF
Object-Oriented Programming 4
PDF
Business Computer Project 1
PDF
Chapter 1 Organization & MIS
PDF
Object-Oriented Programming 3
PDF
Object-Oriented Programming 2
PDF
Object-Oriented Programming 1
PDF
Upload File
PDF
Login
PDF
Session and Cookie
PDF
Form Validation
PDF
Tips & Track
PDF
Edit & Delete Data
PDF
Search Data
Database design
Object-Oriented Programming 8
Object-Oriented Programming 7
Object-Oriented Programming 6
Management Information System 6
Management Information System 5
Business Computer Project 3
Object-Oriented Programming 4
Business Computer Project 1
Chapter 1 Organization & MIS
Object-Oriented Programming 3
Object-Oriented Programming 2
Object-Oriented Programming 1
Upload File
Login
Session and Cookie
Form Validation
Tips & Track
Edit & Delete Data
Search Data
Ad

การใช้ตัวแปรอาร์เรย์ (Array) ใน VB.NET 2005 Express Editor

  • 1. VB .NET 2005 By Warawut Khangkhan การใชตวแปรชน#ดอาร&เรย& (Array) ใน VB.NET 2005 express Edition การใชตวแปรชนดอารเรย (Array) ใน VB .NET 2005 Express Edition อาร&เรย& (Array) เป4นกล67มของขอม;ลชน#ดเด<ยวกนท<>ใชเน?@อท<>ในหน7วยความจDาต7อเน?>องกนไป อาร&เรย&ม<ประโยชน&อย7าง มากในการเข<ยนโปรแกรม เพราะช7วยลดความย67งยากในการประกาศตวแปรชน#ดเด<ยวกนจDานวนมาก และช7วยใหการใชงาน ตวแปรเหล7าน@นทDาไดง7ายขJน@ เช7น หากเราตองการเกKบคะแนนของนกศJกษาจDานวน 100 คน ไวในหน7วยความจDาเพ?>อคDานวณเกรด เราอาจตอง ประกาศตวแปร ดงน<@ Dim StudentScore1 As Short Dim StudentScore2 As Short Dim StudentScore3 As Short .... Dim StudentScore100 As Short แต7หากเราใชอาร&เรย&ขนาด 100 สมาช#กในการจดเกKบขอม;ลแทนการใชตวแปรเด<>ยว ๆ จDานวน 100 ตวแปร จะทDาให ความย67งยากในการเข<ยนโปรแกรมลดลงไปอย7างมาก ดงตวอย7าง Dim StudentScore(99) As Short เป4นการประกาศตวแปรอาร&เรย&ช?>อ StudentScore ท<>ม< 100 สมาช#ก เราสามารถเขาถJงสมาช#กใด ๆ ในอาร&เรย&ไดโดยใช อ#น เดKกซ& (index) ในการอางอ# ง เช7น จากตวอย7 า งหากเราตองการอางถJ ง คะแนนของนกศJ ก ษาคนท< > 2 เราจะอางถJ งดวย StudentScore(1) เป4นตน อ#นเดKกซ&ในอาร&เรย&ของ VB .NET จะเร#มท<> 0 เสมอ (เหม?อน C#, C++ และ Java) ดงน@นถาประกาศอาร&เรย&ดวยตวเลข > 99 อาร& เรย&น<@ จะม<จD า นวน 99 + 1 = 100 สมาช# ก โดย StudentScore(0) จะหมายถJง สมาช#ก แรกของอาร& เรย& (คะแนนของ นกศJกษาคนท<> 1), StudentScore(1) จะหมายถJงสมาช#กท<> 2 ของอาร&เรย& (คะแนนของนกศJกษาคนท<> 2) และ StudentScore(99) จะหมายถJงสมาช#กท<> 100 ของอาร&เรย& (คะแนนของนกศJกษาคนท<> 100) -1-
  • 2. VB .NET 2005 By Warawut Khangkhan การใชตวแปรชน#ดอาร&เรย& (Array) ใน VB.NET 2005 express Edition อารเรยหลายมต (Multidimensional Array) จากตวอย7างขางตน ตวแปร StudentScore เป4นอาร&เรย&ท<>สามารถเกKบคะแนนของนกศJกษาแต7ละคนไดเพ<ยงว#ชาเด<ยว เท7าน@น เร<ยกว7าเป4นอาร&เรย&ม#ต#เด<ยว (One Dimensional Array) แต7ในบางคร@งเราอาจจDาเป4นตองจดเกKบขอม;ลท<>ม<หลายม#ต# เช7น เกKบคะแนนท6ก ๆ ว#ชาของนกศJกษาแต7ละคนเอาไวเพ?>อค#ดเกรดเฉล<>ย เป4นตน ว#ธ<หนJ>งท<>ทDาไดกKค?อ การใชอาร&เรย&หลายม#ต# (Multidimensional Array) การประกาศตวแปรอาร&เรย&หลายม#ต#จะม<ร;ปแบบคลายกบการประกาศอาร&เรย&ม#ต#เด<ยว เช7น ถาเราตองการประกาศ ตวแปรอาร&เรย&ช?>อ StudentScore ใหสามารถจดเกKบคะแนนท@ง 5 ว#ชา ไดแก7 คณ#ตศาสตร&, ว#ทยาศาสตร&, สงคมศาสตร&, ภาษา ไทย และภาษาองกฤษ ของนกศJกษาจDานวน 100 คนไว จะตองประกาศ ดงน<@ Dim StudentScore(99, 4) As Short 'ประกาศอาร&เรย& 2 ม#ต# ขนาด 100 x 5 ตวอย7างขางตนเป4นการประกาศอาร&เรย& 2 ม#ต# ขนาด 100 x 5 (รวม 500 สมาช#ก) โดยอ#นเดKกซ&ต วแรกใชอางถJง นกศJกษาแต7ละคน ส7วนอ#นเดKกซ&ตวท<>สองใชอางถJงว#ชาต7าง ๆ (0, 1, 2, 3, 4 ใชแทนคณ#ศาสตร&, ว#ทยาศาสตร&, สงคมศาสตร&, ภาษาไทย และภาษาองกฤษ ตามลDาดบ) ตวอย7างต7อไปจะเป4นการประกาศตวแปรอาร&เรย& 3 ม#ต# ขนาด 9 x 5 x 3 (รวม 135 สมาช#ก) และอาร&เรย& 4 ม#ต# ขนาด 21 x 11 x 51 x 3 (รวม 35,343 สมาช#ก) ตามลDาดบ Dim Arr3Dimension(8, 4, 2) As String 'อาร&เรย& 3 ม#ต# ขนาด 9 x 5 x 3 Dim Arr4Dimension(20, 10, 50, 2) As Integer 'อาร&เรย& 4 ม#ต# ขนาด 21 x 11 x 51 x 3 เราสามารถกDาหนดค7าเร#มตนและขอบเขตของตวแปรอาร&เรย& ไดเช7นเด<ยวกบตวแปรปกต# ดงน<@ > [ Dim | Private | Public | Static ] <ชอตวแปรอารเรย> (<ขนาดของม)ตแรก>, ) <ขนาดของม)ต)ท- 2>, ..., <ขนาดของม)ต)ท- n>) As <ชน)ดข5อม6ล> = <Expression> เช7น Dim Arr1(4) As Short = {50, 60, 0, 3, 7} 'อาร&เรย& 1 ม#ต# ขนาด 5 สมาช#ก 'ม<ค7าเร#มตน 50, 60, 0, 3 และ 7 > เราสามารถเคล< ยร&ค 7 าท6 ก ๆ สมาช# ก ของอาร& เ รย& ให เป4 นค7 า เร# > มต น (ขJ@ น อย; 7ก บชน# ดข อม; ล ) ได โดยใชคD าส> ง Erase <ช?ออาร&เรย&> เช7น > Erase StudentScore 'เป4นการเคล<ยร&คะแนนของนกศJกษาท6กคนใหเป4น 0 -2-
  • 3. VB .NET 2005 By Warawut Khangkhan การใชตวแปรชน#ดอาร&เรย& (Array) ใน VB.NET 2005 express Edition ไดนามกอารเรย (Dynmic Array) ในบางคร@งเราไม7สามารถร;ขนาดท<>แน7นอนของอาร&เรย&ได เช7นถาตองการเกKบช?>อหนงส?อท@งหมดในหองสม6ด ซJ>งเรายง ไม7ร;จDานวนหนงส?อท<แน7นอนในช7วงเข<ยนโปรแกรม กKจะทDาใหเราไม7สามารถกDาหนดขนาดท<แน7นอนของอาร&เรย&ได ทางออกง7าย ๆ > > ของปsญหาน<@ค?อ เราอาจกDาหนดขนาดของอาร&เรย&เผ?>อไวมาก ๆ แต7การกDาหนดขนาดอาร&เรย&ใหญ7เก#นความจDาเป4นจะทDาใหส#@น เปล?องเน?@อท<หน7วยความจDาโดยใช7เหต6 นอกจากน<@ยงทDาใหโปรแกรมของเราไม7ม<ความย?ดหย6นเท7าท<ควรดวย > 7 > ว#ธ<ท<>เหมาะสมกว7า ค?อ การใชไดนาม#กอาร&เรย& (Dynamic Array) ซJ>งหมายถJง อาร&เรย&ท<>เราสามารถเปล<>ยนแปลงขนาด ไดในขณะรนโปรแกรม การประกาศไดนาม#กอาร&เรย&ม<ร;ปแบบดงน<@ Dim <ชอตวแปรอารเรย>( ) As <ชน)ดของข5อม6ล> เช7นถาหากตองการกDาหนดไดนาม#กอาร&เรย&เพ?>อเกKบคะแนนสอบของนกศJกษา เราอาจประกาศว7า Dim StudentScore( ) As Short 'ประกาศอาร&เรย& 1 ม#ต# เป4นไดนาม#กอาร&เรย& 'ม<ชน#ดขอม;ลเป4น Short หลงจากน@นเม?อทราบจDานวนขอม;ลท<แน7นอน เราสามารถเปล<>ยนแปลงขนาดของอาร&เรย&ไดโดยใชคDาส>ง Redim เช7น ถา > > ต7อมาทราบว7านกศJกษาม<จDานวนท@งส#@น 50 คน เราสามารถใชคDาส>งต7อไปน<@เพ?>อกDาหนดใหตวแปรอาร&เรย&ดงกล7าวม<ขนาด 50 สมาช#ก Redim StudentScore(49) As Short 'กDาหนดขนาดของอาร&เรย&ใหม<ขนาด 50 สมาช#ก อย7า งไรกKด < เราควรเปล<> ย นแปลงขนาดของอาร&เ รย&ด วยความระมดระวง เพราะถาหากม<ก ารจดเกK บขอม; ล ไวใน อาร&เรย&แลว การลดขนาดอาร&เรย&ใหเลKกลงจะทDาใหขอม;ลบางส7วนส;ญหายไป หมายเหต8 เพ?>อปwองกนไม7ใหขอม;ลท<>อย;7ในอาร&เรย&ส;ญหาย เราสามารถใชคDาส>ง Redim ร7วมกบออปช>น (Option) Preserve ได เช7น Redim Preserve StudentScore(49) As Short -3-