
- Pascal 教程
- Pascal - 首頁
- Pascal - 概述
- Pascal - 環境設定
- Pascal - 程式結構
- Pascal - 基本語法
- Pascal - 資料型別
- Pascal - 變數型別
- Pascal - 常量
- Pascal - 運算子
- Pascal - 決策
- Pascal - 迴圈
- Pascal - 函式
- Pascal - 過程
- Pascal - 變數作用域
- Pascal - 字串
- Pascal - 布林值
- Pascal - 陣列
- Pascal - 指標
- Pascal - 記錄
- Pascal - 變體
- Pascal - 集合
- Pascal - 檔案處理
- Pascal - 記憶體
- Pascal - 單元
- Pascal - 日期與時間
- Pascal - 物件
- Pascal - 類
- Pascal 有用資源
- Pascal - 快速指南
- Pascal - 有用資源
- Pascal - 討論
Pascal - 陣列
Pascal 程式語言提供了一種稱為陣列的資料結構,它可以儲存大小固定的相同型別元素的順序集合。陣列用於儲存資料集合,但通常更方便地將陣列視為相同型別變數的集合。
無需宣告單獨的變數,例如 number1、number2、… 和 number100,您可以宣告一個數組變數,例如 numbers,並使用 numbers[1]、numbers[2]、… 和 numbers[100] 來表示單個變數。陣列中的特定元素透過索引訪問。
所有陣列都由連續的記憶體位置組成。最低地址對應於第一個元素,最高地址對應於最後一個元素。
請注意,如果您想要從索引 0 開始的 C 風格陣列,只需將索引從 1 開始改為 0 即可。

宣告陣列
要在 Pascal 中宣告陣列,程式設計師可以宣告型別然後建立該陣列的變數,或者直接宣告陣列變數。
一維陣列的型別宣告的一般形式為:
type array-identifier = array[index-type] of element-type;
其中:
陣列識別符號 - 表示陣列型別的名稱。
索引型別 - 指定陣列的下標;它可以是除實數以外的任何標量資料型別。
元素型別 - 指定要儲存的值的型別。
例如:
type vector = array [ 1..25] of real; var velocity: vector;
現在,velocity 是一個向量型別的變數陣列,足以容納最多 25 個實數。
要從索引 0 開始陣列,宣告將為:
type vector = array [ 0..24] of real; var velocity: vector;
陣列下標的型別
在 Pascal 中,陣列下標可以是任何標量型別,例如整數、布林值、列舉或子範圍,但實數除外。陣列下標也可以具有負值。
例如:
type temperature = array [-10 .. 50] of real; var day_temp, night_temp: temperature;
讓我們來看另一個下標為字元型別的例子:
type ch_array = array[char] of 1..26; var alphabet: ch_array;
下標可以是列舉型別:
type color = ( red, black, blue, silver, beige); car_color = array of [color] of boolean; var car_body: car_color;
初始化陣列
在 Pascal 中,陣列是透過賦值初始化的,可以透過指定特定的下標或使用 for-do 迴圈來完成。
例如:
type ch_array = array[char] of 1..26; var alphabet: ch_array; c: char; begin ... for c:= 'A' to 'Z' do alphabet[c] := ord[m]; (* the ord() function returns the ordinal values *)
訪問陣列元素
透過索引陣列名稱來訪問元素。這是透過在陣列名稱後方方括號中放置元素的索引來完成的。例如:
a: integer; a: = alphabet['A'];
上面的語句將從名為 alphabet 的陣列中獲取第一個元素並將該值賦給變數 a。
以下是一個例子,它將使用上述三個概念,即宣告、賦值和訪問陣列:
program exArrays; var n: array [1..10] of integer; (* n is an array of 10 integers *) i, j: integer; begin (* initialize elements of array n to 0 *) for i := 1 to 10 do n[ i ] := i + 100; (* set element at location i to i + 100 *) (* output each array element's value *) for j:= 1 to 10 do writeln('Element[', j, '] = ', n[j] ); end.
編譯並執行上述程式碼後,將產生以下結果:
Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104 Element[5] = 105 Element[6] = 106 Element[7] = 107 Element[8] = 108 Element[9] = 109 Element[10] = 110
詳細的 Pascal 陣列
陣列對於 Pascal 非常重要,需要更多詳細資訊。以下是 Pascal 程式設計師應該瞭解的與陣列相關的幾個重要概念:
序號 | 概念與描述 |
---|---|
1 |
多維陣列
Pascal 支援多維陣列。多維陣列最簡單的形式是二維陣列。 |
2 |
動態陣列
在這種型別的陣列中,初始長度為零。必須使用標準的 SetLength 函式設定陣列的實際長度。 |
3 |
緊湊陣列
這些陣列是按位打包的,即每個字元或真值儲存在連續的位元組中,而不是使用一個儲存單元,通常是一個字(4 個位元組或更多)。 |
4 |
將陣列傳遞給子程式
您可以透過指定陣列的名稱而不指定索引來將指向陣列的指標傳遞給子程式。 |