【正文】
EPEAT語句后,即進入循環(huán)體,順序執(zhí)行循環(huán)體內的語句。(2)遇到UNTIL語句后,求布爾表達式的值。若值為假,則返回步驟1;若為真,執(zhí)行步驟3(3)循環(huán)結束,執(zhí)行UNTIL后面的下一條語句。第六章數組與字符串定義:var a:array[]of integer;其中:a是這一批數據的名稱,稱為數組名;array、of是定義數組的保留字;中括號中的數字是數據編號的下限和上限,財時也說明了數據的個數(上限下限);最后一個是數據的基類型,如integer,char,real,boolean。數組元素的輸入:數組名代表的并不是一個變量,而是一批變量,因而,不能直接整個數組讀入,而是要逐個數組元素讀入,通常用循環(huán)結構來完成這一功能。下面是幾個常用輸入數組元素的例子: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以內的數,賦給各數組元素}數組元素的輸出:和數組元素的輸入相同,數組元素的輸出也不能由一個write語句直接完成。同樣要逐個數組元素輸出。通常也用循環(huán)結構來完成這一功能:for i:=1 to 10 do write(a[i],39。39。);{數組元素之間用空格分隔}writeln;數組的應用:例1:從鍵盤輸入10個數,將這10個數逆序輸入,并求這10個數的和,輸出這個和。program p1;var a:array[]of integer;i,s:integer;begin for i:=1 to 10 do read(a[i]);for i:=10 downto 1do write(a[i],39。39。);writeln;s:=0;for i:=1 to 10 do s:=s+a[i];writeln(39。s=39。,s);end.例2:用篩法求100以內的素數(質數)。分析:素數是除了1和它本身以外沒有其它約數的數。用篩法求素數的方法是:用質數篩去合數:從第一個素數2開始,把它的倍數去掉;這樣2以后的第一個非0數就一定也是素數,把它的倍數也刪了…重復這個刪數過程,直到在所找到的素數后再也找不到一個非0數。把所有非0數輸出。program p2;var a:array[]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],39。39。);end.一維數組在編程中多用于描述線性的關系:如一組數;一組成績;一組解答等。數組元素只有一個下標,表明該元素在數組中的位置。二維數組在編程中多數用于描述二維的關系:如地圖、棋盤、城市街道、迷宮等等。而二維數組元素有兩個下標:第一個下標表示該元素在第幾行,第二個下標表示在第幾列。:var a:array[,]of integer;其中:a是數組名,由程序員自定;array和of是定義數組的保留字;(這兩點和一維數組定義的格式一樣)中括號中的兩個范圍表示二維數組共有多少行、多少列(第一個范圍表示行數,第二個范圍表示列數);最后一個表示數組元素的類型,規(guī)定和一維數組一樣。如上例,定義了一個二維數組a,共有10行5列。:數組元素的指稱:數組名[行號,列號]。如第三行第四個元素:a[3,4]。對某一行進行處理。如累加第4行的數據。則固定行號為4。如:for i:=1 to 5do s:=s+a[4,i];對某一列進行處理。如累加第4列的數據。則固定列號為4。如:for i:=1 to 10 do s:=s+a[i,4];二維數組的輸入輸出要用雙重循環(huán)來控制:for i:=1 to 10 do{控制行數}begin for j:=1 to 5do read(a[i,j]){第一行讀入5個元素}readln;{讀入一個換行符}end;{最常用的方法:從鍵盤讀入數據初始化二維數組}for i:=1 to 10 do for j:=1 to 5do a[i,j]:=0;{最常用的方法:將二維數組清0}for i:=1 to 10 do begin for j:=1 to 5do write(a[i,j]:4);writeln;end;{最常用的輸出方法:按矩陣形式輸出二維數組的值}例1:競賽小組共有20位同學,這學期每位同學共參與了三項比賽,請統(tǒng)計每位同學的平均分。分析:定義一個20行3列的二維數組來存放這些成績。定義一個20個元素的一維數組來存放平均分。program p1;var a:array[,]of integer;b:array[]of real;i,j:integer;begin for i:=1 to 20 do begin for j:=1 to 3do 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 3do 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.。通常編程中使用字符串存放字符化了的數字數據。如高精度運算時存放操作數和運算結果。字符串可以看作是特殊的字符串數組來處理。當然,它也有自已的特點。下面是字符串定義的格式:var s:string;s1:string[15];字符串定義時,如不指定長度,則按該類型的最大長度(255個字符)分配空間,使用時最大可用長度為255個;如果在中括號中給出一個具體的值(1255之間),則按這個值的大小分配空間。使用時,最大的可用長度即為該值。、輸出:字符串類型既可按數組方式輸入、輸出,也可直接輸入、輸出:readln(s);writeln(s);多個字符串輸入時以回車作為數據間的分隔符;每個readln語句只能讀入一個字符串。:操作類型作用返回值例子length(s)函數求字符串s的長度整型s:=39。12345678939。;l:=length(s);{l的值為9}copy(s,w,k)函數復制s中從w開始的k位字符串s:=39。12345678939。;s1:=copy(s,3,5);{s1的值是39。3456739。}val(s,k,code)過程將字符串s轉為數值,存在k中;code是錯誤代碼var s:string;k,code:integer;begin s:=39。123439。;val(s,k,code);write(k);{k=1234}str(i,s)過程將數值i轉為字符串si:=1234;str(i,s);write(s);{s=39。123439。}Delete(s,w,k)過程在s中刪除從第w位開始的k個字符s:=39。Honest Abe Lincoln39。;Delete(s,8,4);Writeln(s);{39。Honest Lincoln39。}Insert(s1,S,w)過程將s1插到s中第w位S:=39。Honest Lincoln39。;Insert(39。Abe39。,S,8);{39。Honest Abe Lincoln39。}Pos(c,S)函數求字符c在s中的位置整型S:=39。39。;i:=Pos(39。39。,S);{i的值為1}+運算符將兩個字符串連接起來s1:=39。123439。;s2:=39。567839。;s:=s1+s2;{39。1234567839。}第七章函數和過程procedure過程名(形式參數:參數說明);{也可以不帶參數}var begin.end;過程名(實在參數表);例1:求n個自然數的最大公約數;program gcd1;const maxn=100;var n,i,gcd:integer;a:array[]of integer;procedure enter;begin write(39。n=(100)39。);readln(n);for i:=1 to ndo repeat write(39。a[39。,i,39。]=39。);readln(a[i]);until a[i]0;end;procedure find_gcd(x,y:integer);{定義過程}var r:integer;begin r:=x mod y;while r0 do begin x:=y;y:=r;r:=x mod y;end gcd:=y;end;procedure print;begin writeln(39。GCD=39。,gcd);end;begin enter;gcd:=a[1];for i:=2 to ndo find_gcd(gcd,a[i]);print;end.function函數名(形參表):函數類型;{函數首部}var{局部變量說明部分}begin{函數體}.{函數語句}.函數名:=表達式end;:函數在語法上相當于一個表達式,所以,調用時,函數不能獨立成為一個語句;它可以出現(xiàn)在任何表達式可以出現(xiàn)的地方。例如賦值語句的右邊:X:=函數名(實在參數表);{X的類型與函數類型必須一致}又,如果函數類型是boolean,則還可以出現(xiàn)在條件語句中,充當條件表達式:if函數名(實在參數表)then…例3:編一程序,求從10名同學中選出3名代表,有幾種不同的選法。(公式:C(m,n)=m!/n!*(mn)!從m中選n)program zohe1;var m,n:integer;c:longint;function factor(x:integer):longint;{定義}var i:integer;p:longint;begin p:=1;for i:=1 to xdo p:=p*i;factor:=p;{這個語句必須}end;begin write(39。m,n=39。);readln(m,n);c:=factor(m)div(factor(n)*factor(mn));{調用}writeln(39。c(39。,m,39。,39。,n,39。)=39。,c);end.特別聲明:1:資料來源于互聯(lián)網,版權歸屬原作者2:資料內容屬于網絡意見,與本賬號立場無關3:如有侵權,請告知,立即刪除。