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:40]
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 นั้นๆ
 +
 +  Procedure ShowItemArray(Arr:​array of real);
 +  ​
 +นอกจากนี้ เรายังสามารถประกาศ Open Array ล่วงหน้า แล้วนำมาใส่เป็น identifier ได้เช่นกัน ดังนี้ ​
 +  ​
   Type TArrR:array of real;    Type TArrR:array of real; 
       ​       ​
-  Procedure ShowItemArray(Arr:​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=====
Line 67: Line 138:
 </​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.1545792051.txt.gz · Last modified: 2018/12/26 09:40 by admin