User Tools

Site Tools


tutorial:array

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tutorial:array [2018/12/26 09:23]
admin
tutorial:array [2019/01/07 15:14] (current)
admin [Arrays]
Line 1: Line 1:
 ======Arrays====== ======Arrays======
-Arrays คือ ตัวแปรที่มีลักษณะเป็นโครงสร้างขอตัวแปรที่มีชนิดเดียวกันทั้งหมด ​+Arrays คือ ตัวแปรที่มีลักษณะเป็นโครงสร้าง ​(Structured Type) ชนิดหนึ่ง ที่มีสมาชิกเป็น Data Type ชนิดเดียวกันทั้งหมด ​
  
-=====Static/​Dynamic ​Arrays===== +=====Type of Arrays===== 
-โดยทั่วไป Array จะสามารถแยกได้เป็น 2 ชนิด คือ Static Array และ Dynamic Array รายละเอียดของแต่ละชนิดสามารถสรุปได้ตามนี้+โดยทั่วไป Array จะสามารถแยกได้เป็น 2 ชนิด คือ Static Array และ Dynamic Array (หรือ เรียกว่า Open Array) ​รายละเอียดของแต่ละชนิดสามารถสรุปได้ตามนี้
  
 ^  Array Type  ^  การประกาศ (Declaration) ​ ^  ^  Array Type  ^  การประกาศ (Declaration) ​ ^ 
 |Static Array|<​sxh delphi;> |Static Array|<​sxh delphi;>
-const //Constant static array 
-  ArrC1:​array[1..2] of integer = (10,20); 
-  ArrC2:​array[1..2,​1..3] of integer =  
-             ​((10,​20,​30),​(40,​50,​60));​ 
-  ArrC3:​array[1..2] of array[1..3] of integer =  
-             ​((10,​20,​30),​(40,​50,​60));​ 
 var var
   ArrX1:​array[3..10] of real;   ArrX1:​array[3..10] of real;
   ArrX2:​array[1..2,​1..3] of integer;   ArrX2:​array[1..2,​1..3] of integer;
   ArrX3:​array[1..2] of array[1..3] of integer;   ArrX3:​array[1..2] of array[1..3] of integer;
 +  ​
 +  //static array with initial value
 +  Arr1:​array[1..2] of integer = (10,20);
 +  Arr2:​array[1..2,​1..3] of integer = 
 +             ​((10,​20,​30),​(40,​50,​60));​
 +  Arr3:​array[1..2] of array[1..3] of integer = 
 +             ​((10,​20,​30),​(40,​50,​60));​
   ​   ​
 </​sxh>​ | </​sxh>​ |
Line 31: Line 32:
 \\ \\
  
-=====Array As Arguments=====+=====การกำหนด/​เรียกดู ค่าสมาชิกของ Arrays===== 
 +การกำหนดค่าสมาชิกของ Arrays สามารถทำได้ดังตัวอย่างต่อไปนี้ ​
  
-การส่งผ่าน Array เป็นตัวแปร สามารถทำได้โดยการประกาศ Array ใน Argument นั้นให้รับค่า ​Dynamic Array ดัง+<hidden Defining/​Reporting Arrays>​ 
 +<sxh delphi;>​ 
 +  Var ArrX:​array[1..3] of integer; //Static Array - 1D 
 +      ArrY:​array[0..1,​1..2] of real; //Static Array - 2D 
 +      ArrZ:array of Boolean; //Dynamic Array - 1D 
 +   
 +  begin 
 +    //Define values of ArrX 
 +    ArrX[1]:​=10;​ 
 +    ArrX[2]:​=20;​ 
 +    ArrX[3]:​=30;​ 
 +     
 +    //Define values of ArrY 
 +    ArrY[0,​1]:​=1.20;​ 
 +    ArrY[1,​1]:​=2.54;​ 
 +    ArrY[0,​2]:​=3.21;​ 
 +    ArrY[1,​2]:​=4.31;​ 
 +     
 +    //Define values of ArrZ 
 +    setlength(ArrZ,​3);​ 
 +    ArrZ[0]:​=True;​ 
 +    ArrZ[1]:​=False;​ 
 +    ArrZ[2]:​=False;​ 
 +     
 +    //Print values of all Arrays 
 +    writeln('​ArrX[1] = ',​ArrX[1]);​ 
 +    writeln('​ArrX[2] = ',​ArrX[2]);​ 
 +    writeln('​ArrX[3] = ',​ArrX[3]);​ 
 +    writeln('​ArrY[0,​1] = ',​ArrY[0,​1]);​ 
 +    writeln('​ArrY[1,​1] = ',​ArrY[1,​1]);​ 
 +    writeln('​ArrY[0,​2] = ',​ArrY[0,​2]);​ 
 +    writeln('​ArrY[1,​2] = ',​ArrY[1,​2]);​ 
 +    writeln('​ArrZ[0] = ',​ArrZ[0]);​ 
 +    writeln('​ArrZ[1] = ',​ArrZ[1]);​ 
 +    writeln('​ArrZ[2] = ',​ArrZ[2]);​ 
 +    readln(); 
 +  end 
 +</​sxh> ​  
 +</​hidden>​ 
 +\\ 
 +=====Open Array As Parameters===== 
 + 
 +การส่งผ่าน Array เป็นตัวแปร สามารถทำได้โดยการประกาศ ​identifier ของ ​Array ให้เป็น Open Array (Dynamic Array) ใน Argument นันๆ
  
-  Type TArrR:array of real;  
-    
   Procedure ShowItemArray(Arr:​array of real);   Procedure ShowItemArray(Arr:​array of real);
 +  ​
 +นอกจากนี้ เรายังสามารถประกาศ Open Array ล่วงหน้า แล้วนำมาใส่เป็น identifier ได้เช่นกัน ดังนี้ ​
 +  ​
 +  Type TArrR:array of real; 
 +      ​
   Procedure ShowItemArray(Arr:​TArrR);​   Procedure ShowItemArray(Arr:​TArrR);​
  
-**หมายเหตุ**-index ของ Array ที่ส่งผ่านเข้ามาใน Procedure/​Function จะเริ่มจาก 0 เสมอตามรูปแบบของ Dynamic Array +**หมายเหตุ** - index ของ Array ที่ถูกส่งผ่านเข้ามาใน Procedure/​Function ​แล้วนั้น ​จะเริ่มจาก 0 เสมอ ​
  
 +\\
 +=====Array of Const=====
 +หากเราต้องการส่งค่า Array เป็นตัวแปร โดยที่ Array ดังกล่าวเป็นค่าคงที่ซึ่งไม่ได้มีการประกาศ identifier ชัดเจน (ไม่มีการประกาศ array of ...) เช่น [1,2,3,4] หรือ ['​A','​B','​C'​] หรือ [true,​false,​false] เป็นต้น เราเรียก identifier ของ Array ดังกล่าวว่าเป็น Array of Const ดังตัวอย่างต่อไปนี้
 +
 +<sxh delphi;>
 +procedure Print_Length_Array(Arr:​Array of const);
 +begin
 +   ​writeln('​Number of member in Array = ',​length(Arr));​
 +end; 
 +
 +begin
 +  Print_Length_Array([1,​2,​3,​4,​5,​6]);​
 +  Print_Length_Array([1.234,​-8.432]);​
 +  Print_Length_Array(['​Hi','​Everybody','​How','​Are','​You?'​]);​
 +  Print_Length_Array([True,​True,​False]);​
 +end.
 +
 +</​sxh>​
 +
 +Compiled Results:
 +  Number of member in Array = 6
 +  Number of member in Array = 2
 +  Number of member in Array = 5
 +  Number of member in Array = 3
 \\ \\
 =====Array Functions===== =====Array Functions=====
-มี ​Function ​ี่ใช้งานโดยการรับค่า ​Array เข้ามาเป็น Argument มากมาย สำหรับ Function ​ที่เราจะได้ใช้บ่อยๆ มีดังนี้+Function ​เกี่ยกับ Array ที่เราจะได้ใช้บ่อยๆ มีดังนี้
  
 กำหนดให้ ​ กำหนดให้ ​
Line 53: Line 124:
   ​   ​
  
-^  ​Function ​ ​^  ​Details ​ ^  +^  ​Functions ​ ​^  ​Examples ​ ^  
-|**Low()** - หาค่าของ Array ตัวแรกสุด|<​sxh delphi;>​ +|**Low()** - หาค่า ​index ของ Array ตัวแรกสุด|<​sxh delphi;>​ 
-writeln(Low(Arr1)) // = 10 +writeln(Low(Arr1))// = 1 
-writeln(Low(Arr2)) // = 5 +writeln(Low(Arr2))// = 5
-  ​+
 </​sxh>​ | </​sxh>​ |
-|**High()** - หาค่าของ Array ตัวสุดท้าย|<​sxh delphi;>​ +|**High()** - หาค่า ​index ของ Array ตัวสุดท้าย|<​sxh delphi;>​ 
-writeln(High(Arr1)) // = 20 +writeln(High(Arr1))// = 2 
-writeln(High(Arr2)) // = 8+writeln(High(Arr2))// = 8 
 +</​sxh>​ | 
 +|**Length()** - หาจำนวนสมาชิกของ Array|<​sxh delphi;>​ 
 +writeln(Length(Arr1));​ // = 2 
 +writeln(Length(Arr2));​ // = 4
 </​sxh>​ | </​sxh>​ |
 \\ \\
 +
 +=====References=====
 +http://​wiki.freepascal.org/​Array \\
 +https://​www.freepascal.org/​docs-html/​ref/​refsu68.html\\
 +https://​www.freepascal.org/​docs-html/​ref/​refsu69.html
  
  
tutorial/array.1545791004.txt.gz · Last modified: 2018/12/26 09:23 by admin