還是結合程序去理解起來容易.
壹維數組
1、定義:
var
a:array [1..10] of integer;
其中:a是這壹批數據的名稱,稱為數組名;array、of是定義數組的保留字;中括號中的數字是數據編號的下限和上限,財時也說明了數據的個數(上限-下限);最後壹個是數據的基類型,如integer,char,real,boolean。
2、數組元素的輸入:
數組名代表的並不是壹個變量,而是壹批變量,因而,不能直接整個數組讀入,而是要逐個數組元素讀入,通常用循環結構來完成這壹功能。下面是幾個常用輸入數組元素的例子:
for i:=1 to 10 do read(a[i]);
{————從鍵盤讀入數組元素的值;最常用的方法}
for i:=1 to 10 do a[i]:=i;
{————數組元素a[1]到a[10]的值分別為1到10;數據賦初值}
for i:=1 to 10 do a[i]:=0;
{————數組元素清0;最常用的數據初始化的方法}
for i:=1 to 10 do a[i]:=random(100);
{————隨機產生10個100以內的數,賦給各數組元素}
3、數組元素的輸出:
和數組元素的輸入相同,數組元素的輸出也不能由壹個write語句直接完成。同樣要逐個數組元素輸出。通常也用循環結構來完成這壹功能:
for i:=1 to 10 do write(a[i],' ');{————數組元素之間用空格分隔}
writeln;
4、數組的應用:
例1:從鍵盤輸入10個數,將這10個數逆序輸入,並求這10個數的和,輸出這個和。
program p1;
var
a:array [1..10] of integer;
i,s:integer;
begin
for i:=1 to 10 do read(a[i]);
for i:=10 downto 1 do write(a[i],' ');
writeln;
s:=0;
for i:=1 to 10 do s:=s+a[i];
writeln('s=',s);
end.
例2:用篩法求100以內的素數(質數)。
分析:素數是除了1和它本身以外沒有其它約數的數。用篩法求素數的方法是:用質數篩去合數:從第壹個素數2開始,把它的倍數去掉;這樣2以後的第壹個非0數就壹定也是素數,把它的倍數也刪了……重復這個刪數過程,直到在所找到的素數後再也找不到壹個非0數。把所有非0數輸出。
program p2;
var
a:array [1..100] of integer;
i,j,k:integer;
begin
for i:=1 to 100 do a[i]:=i;
a[1]:=0;i:=2;
while i<=100 do
begin
k:=i;
while k<=100 do
begin
k:=k+i;
a[k]:=0;
end;
{————上面將所有a[i]的倍數清0}
i:=i+1;
while a[i]=0 do i:=i+1;
{————查找接下來的第壹個非0數}
end;
for i:=1 to 100 do if a[i]<>0 then write(a[i],' ');
end.
二維數組
壹維數組在編程中多用於描述線性的關系:如壹組數;壹組成績;壹組解答等。數組元素只有壹個下標,表明該元素在數組中的位置。二維數組在編程中多數用於描述二維的關系:如地圖、棋盤、城市街道、迷宮等等。而二維數組元素有兩個下標:第壹個下標表示該元素在第幾行,第二個下標表示在第幾列。
1.二維數組的定義:
var
a:array[1..10,1..5] of integer;
其中:a是數組名,由程序員自定;array和of是定義數組的保留字;(這兩點和壹維數組定義的格式壹樣)中括號中的兩個範圍表示二維數組***有多少行、多少列(第壹個範圍表示行數,第二個範圍表示列數);最後壹個表示數組元素的類型,規定和壹維數組壹樣。如上例,定義了壹個二維數組a,***有10行5列。
2.使用二維數組:
1、數組元素的指稱:數組名[行號,列號]。如第三行第四個元素:a[3,4]。
對某壹行進行處理。如累加第4行的數據。則固定行號為4。如:for i:=1 to 5 do s:=s+a[4,i];
對某壹列進行處理。如累加第4列的數據。則固定列號為4。如:for i:=1 to 10 do s:=s+a[i,4];
2、二維數組的輸入輸出要用雙重循環來控制:
for i:=1 to 10 do{————控制行數}
begin
for j:=1 to 5 do read(a[i,j]){————第壹行讀入5個元素}
readln;{————讀入壹個換行符}
end;
{————最常用的方法:從鍵盤讀入數據初始化二維數組}
for i:=1 to 10 do
for j:=1 to 5 do a[i,j]:=0;
{————最常用的方法:將二維數組清0}
for i:=1 to 10 do
begin
for j:=1 to 5 do write(a[i,j]:4);
writeln;
end;
{————最常用的輸出方法:按矩陣形式輸出二維數組的值}
例1:競賽小組***有20位同學,這學期每位同學***參與了三項比賽,請統計每位同學的平均分。
分析:定義壹個20行3列的二維數組來存放這些成績。定義壹個20個元素的壹維數組來存放平均分。
program p1;
var
a:array [1..20,1..3] of integer;
b:array [1..20] of real;
i,j:integer;
begin
for i:=1 to 20 do
begin
for j:=1 to 3 do read(a[i,j]);
readln;
end;
{————從鍵盤上讀入20個同學的三次競賽成績}
for i:=1 to 20 do b[i]:=0;
{————先將平均分數組清0}
for i:=1 to 20 do
begin
for j:=1 to 3 do b[i]:=b[i]+a[i,j];{————計算總分}
b[i]:=b[i]/3;{————計算平均分}
end;
for i:=1 to 20 do write(b[i]:5:1);
{————輸出平均分}
writeln;
end.
6.3 字符串
1. 字符串用於存放整批的字符數據。通常編程中使用字符串存放字符化了的數字數據。如高精度運算時存放操作數和運算結果。字符串可以看作是特殊的字符串數組來處理。當然,它也有自已的特點。下面是字符串定義的格式:
var
s:string; s1:string[15];
字符串定義時,如不指定長度,則按該類型的最大長度(255個字符)分配空間,使用時最大可用長度為255個;如果在中括號中給出壹個具體的值(1—255之間),則按這個值的大小分配空間。使用時,最大的可用長度即為該值。
2.字符串的輸入、輸出:
字符串類型既可按數組方式輸入、輸出,也可直接輸入、輸出:readln(s);writeln(s);多個字符串輸入時以回車作為數據間的分隔符;每個readln語句只能讀入壹個字符串。