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:55]
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 32: Line 33:
  
 =====การกำหนด/​เรียกดู ค่าสมาชิกของ Arrays===== =====การกำหนด/​เรียกดู ค่าสมาชิกของ Arrays=====
-สำหรับ Array ทั่วไป (ที่ไม่ใช่ Constant Array) ​การกำหนดค่าสมาชิกของ ​Array สามารถทำได้ดังตัวอย่างต่อไปนี้ ​+การกำหนดค่าสมาชิกของ ​Arrays ​สามารถทำได้ดังตัวอย่างต่อไปนี้ ​
  
 +<hidden Defining/​Reporting Arrays>
 <sxh delphi;> <sxh delphi;>
   Var ArrX:​array[1..3] of integer; //Static Array - 1D   Var ArrX:​array[1..3] of integer; //Static Array - 1D
Line 40: Line 42:
   ​   ​
   begin   begin
-    //Assign ​ArrX+    //Define values of ArrX
     ArrX[1]:​=10;​     ArrX[1]:​=10;​
     ArrX[2]:​=20;​     ArrX[2]:​=20;​
     ArrX[3]:​=30;​     ArrX[3]:​=30;​
     ​     ​
-    //Assign ​ArrY+    //Define values of ArrY
     ArrY[0,​1]:​=1.20;​     ArrY[0,​1]:​=1.20;​
     ArrY[1,​1]:​=2.54;​     ArrY[1,​1]:​=2.54;​
Line 51: Line 53:
     ArrY[1,​2]:​=4.31;​     ArrY[1,​2]:​=4.31;​
     ​     ​
-    //Assign ​ArrZ+    //Define values of ArrZ
     setlength(ArrZ,​3);​     setlength(ArrZ,​3);​
     ArrZ[0]:​=True;​     ArrZ[0]:​=True;​
Line 57: Line 59:
     ArrZ[2]:​=False;​     ArrZ[2]:​=False;​
     ​     ​
-    //Print Arrays+    //​Print ​values of all Arrays
     writeln('​ArrX[1] = ',​ArrX[1]);​     writeln('​ArrX[1] = ',​ArrX[1]);​
     writeln('​ArrX[2] = ',​ArrX[2]);​     writeln('​ArrX[2] = ',​ArrX[2]);​
Line 71: Line 73:
   end   end
 </​sxh>  ​ </​sxh>  ​
 +</​hidden>​
 +\\
 +=====Open Array As Parameters=====
  
-=====Array As Arguments===== +การส่งผ่าน Array เป็นตัวแปร สามารถทำได้โดยการประกาศ ​identifier ของ ​Array ให้เป็น Open Array (Dynamic Array) ​ใน Argument นั้น
- +
-การส่งผ่าน Array เป็นตัวแปร สามารถทำได้โดยการประกาศ Array ใน Argument นั้นให้รับค่า Dynamic Array ดังนี้+
  
 +  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 108: 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.1545792953.txt.gz · Last modified: 2018/12/26 09:55 by admin