1樓:匿名使用者
呵..不好解釋.突然有人問陣列是什麼還真的不好回答.
還是結合程式去理解起來容易.
一維陣列
1、定義:
vara: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;
for i:=1 to 10 do a[i]:=0;
for i:=1 to 10 do a[i]:=random(100);
3、陣列元素的輸出:
和陣列元素的輸入相同,陣列元素的輸出也不能由乙個write語句直接完成。同樣要逐個陣列元素輸出。通常也用迴圈結構來完成這一功能:
for i:=1 to 10 do write(a[i],' ');
writeln;
4、陣列的應用:
例1:從鍵盤輸入10個數,將這10個數逆序輸入,並求這10個數的和,輸出這個和。
program p1;
vara: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;
vara: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;
i:=i+1;
while a[i]=0 do i:=i+1;
end;
for i:=1 to 100 do if a[i]<>0 then write(a[i],' ');
end.
二維陣列
一維陣列在程式設計中多用於描述線性的關係:如一組數;一組成績;一組解答等。陣列元素只有乙個下標,表明該元素在陣列中的位置。
二維陣列在程式設計中多數用於描述二維的關係:如地圖、棋盤、城市街道、迷宮等等。而二維陣列元素有兩個下標:
第乙個下標表示該元素在第幾行,第二個下標表示在第幾列。
1.二維陣列的定義:
vara: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])
readln;
end;
for i:=1 to 10 do
for j:=1 to 5 do a[i,j]:=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;
vara: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;
for i:=1 to 20 do b[i]:=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. 字串用於存放整批的字元資料。通常程式設計中使用字串存放字元化了的數字資料。
如高精度運算時存放運算元和運算結果。字串可以看作是特殊的字串陣列來處理。當然,它也有自已的特點。
下面是字串定義的格式:
vars:string; s1:string[15];
字串定義時,如不指定長度,則按該型別的最大長度(255個字元)分配空間,使用時最大可用長度為255個;如果在中括號中給出乙個具體的值(1—255之間),則按這個值的大小分配空間。使用時,最大的可用長度即為該值。
2.字串的輸入、輸出:
字串型別既可按陣列方式輸入、輸出,也可直接輸入、輸出:readln(s);writeln(s);多個字串輸入時以回車作為資料間的分隔符;每個readln語句只能讀入乙個字串。
2樓:匿名使用者
1陣列就是一組數
2一維就是……………………這個一行,2維就像excel 一樣3100
4從1-n經陣列中每乙個賦值
關於Pascal的問題
語法錯誤是 program esatj 後面有 程式錯誤x 90 0.7 x 改為x 90 0.7 x 100 附加題var a,b,c real procedure max var a,b real vart real begin if aend begin read a,b,c max a,b ...
超超 簡單的問題,快來!!!
根據現代漢語詞典,黃帝是約前26世紀初,距今4700年。幫忙啊!急急急啊!1。設底面長a,寬b,所以a b 900 總面積s 3a 3b 3a 3b 900 6 a b 900最省錢就要a b最小。因為a b 900,所以確定a b範圍,得901 a b 60所以面積最小s 1260,此時a 30....
很簡單,超簡單的英語問題,很簡單,超簡單的英語問題
任何人anybody anyone 某些人somebody 有些人some people 沒有人nobody 每人everybody 任何事anything 某些事something 有些事something 沒有事nothing 每件事everything 任何時候any time 某時somet...