天天看點

[pascal入門]數組

一、本節目标

本節我們将要講述數組。本節目标:

  • 一維數組
  • 二維數組
  • 字元數組

二、一維數組

我們通過一個案例來簡單的了解數組。班主任要計算班級裡面50個同學數學成績的平均成績,道理上講這是一個比較簡單的問題,隻需要把每個人的成績加起來除以50就可以了。但是如何表示50個人的成績呢?按照我們之前的學習定義50個變量,s1,s2,s3...s50,但是你有沒有發現這樣存在的問題?第一,這是50個學生,假如是5000個呢?這樣定義很繁瑣。第二,這樣的定義沒有反應出他們之間内在的聯系,他們都是一個班級的,都是統計的數學成績,這樣的問題如何解決呢? 首先我們可以用同一個名字表示他們(如S),而在名字的右下角加一個數字來表示這是第幾名學生的成績,例如,可以用S1,S2,S3代表學生1、學生2、學生3......學生50等50個學生的成績。這個右下角的數字常稱為下标。一批具有相同名字和相同性質的資料就組成一個數組(array),就是數組名。我們首先從一維數組來了解和學習。

定義一維數組

定義一維數組一般有兩種方式:

方式1:

數組名:array[下标1..下标2] of 元素資料類型;      

例如定義以下數組:

var student:array[1..10] of integer;      

方式2:

第一步:先定義一個新的資料類型:

type 資料類型名=array[下标1..下标2] of 元素資料類型;      

如:

type arr=array[1..10] of integer;      

第二步:定義一個該資料類型的變量:

變量名:資料類型;      
var student:arr;      

注意:

(1)數組名的命名規則和變量名相同,遵循辨別符命名規則。

(2)在定義數組時,需要指定數組中元素的個數,方括号中的下标1表示數組中元素是從0開始的最後是以下标2結束的。例如,student[1..10],表示a數組有10個元素。注意,下标是從0開始的,這10個元素分别是student[0]...student[9]。一定要注意這裡面不會有student[10].

(3)常量表達式中可以包括常量和符号變量,如“int a[4*2]”是合法的。但是不能包括變量,如下面的就是不合法的:

int n;
scanf("%d",&n);
int b[n];
           

經過上面的定義,在記憶體中劃出一片存儲空間(空間大小:4*10=40位元組),存放一個含有10個整形元素的數組。

一維數組的初始化

為了讓程式簡潔,我們常常在定義數組的同時,給各數組元素指派,這就是數組的初始化。 (1)在定義數組時對全部數組元素賦予初值。例如: