PASCAL超簡單問題 關於陣列

時間 2022-06-15 22:15:04

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...