PASCAL FOR 循環語句
循環次數已知時,可以用for語句實現循環結構。
for語句有兩種格式:遞增型和遞減型。
(1)遞增型for語句格式
for<;循環變量>:=<;初值>to<;終值>do<;語句>;
(2)遞減型for語句格式 ,
for<;循環變量>:=<;初值>downto<;終值>do<;語句>;
其中,“循環變量"為一個有序類型的數據,
在第一種形式中,使用的是保留字to,循環變量則從“初值"開始逐一增加到“終值";
在第二種形式中,使用的是保留字downto,“循環變量"則從“初值"開始逐一遞減到“終值",每次執行一次循環體語句。
下面繼續改寫上述求1~1 O之和的程序代碼如下:
var i,s:integer;
begin
s:=0;
for i:=1 to 10 do
s:=s+i;
end;
pascal 語言中的FOR循環語句的結構
Pascal語言中for循環語句是計數型循環,所以可以知道循環的次數,結構如下:
for := to do ;
for := downto do ;
解釋:
在第一種格式中,先被賦值于,然后執行一次,之后自加1,再執行一次……一直到等于,執行最后一次后,結束循環。
在第二種格式中,先被賦值于,然后執行一次,之后自減1,再執行一次……一直到等于,執行最后一次后,結束循環。
注意事項:
其中的的數據類型必須為順序類型,但不能為int64型,與也得是順序類型;
如果是第一種格式,只有小于或等于時才能執行循環體,如果大于,則跳過該for循環語句而不執行;
如果是第二種格式,只有大于或等于時才能執行循環體,如果小于,則跳過該for循環語句而不執行;
在中,不可給賦值,否則會使得循環提前結束或進入死循環;
在for循環語句中,允許嵌套。
pascal中for語句可以這樣寫嗎
當然可以,事實證明可以
運行下面的代碼,只輸出10,11
program dd;
var t:integer;
begin
t:=10;
for t:=t to t+1 do
writeln(t);
end.
說明賦值號后面怎么寫無所謂,只要格式規范,有數值就行,解釋如下:
如果是這樣:
for i:=1 to i+1 do
begin
i:=i+1;{對i進行新的賦值}
。.
end;
這樣就會改變循環中的i值,但仍不會改變初值;
pascal中for循環的工作機理應該是這樣的
for i:=x to y do
。.
先用兩個變量記錄下x值,y值,然后i從x開始為初值,一直到i等于y后結束
所以不管你循環中怎么改變i值,初值不會變,只是循環值和循環次數發生改變而已。
pascal語言中for循環什么意思
for循環是一種自動計數型循環。
for 循環語句有兩種格式:(1) for 循環變量:=初值 To 終值 do 語句; (2) for 循環變量:=初值 downto 終值 do 語句;第(1)種格式的初值小于等于終值,循環變量值按自動加1遞增變化;第(2)種格式的初值大于或等于終值,循環變量值按自動減1遞減變化。for 循環是 (以遞增1或以遞減1) 計數型循環。
[例3.1] 試打印出1~20的自然數。解:① 用a代表1~20各數,同時也用a兼作計數,以控制循環次數; ② 讓a從1開始; ③ 輸出a; ④ a自動計數(加1),如果未超越所規定的循環范圍則重復步驟③,否則結束循環。
Pascal程序:Program Exam12;Var a: byte;Begin for a:=1 to 20 do Writeln (a); ReadlnEnd。.。
pascal題目,要用for語句
*:integer;j,p:char;w:array[a..d] of Integer;beginfor i:=1 to n dobegin read(p); case p of a:Inc(w[a]); b:Inc(w[b]); c:Inc(w[c]); d:Inc(w[d]); end;end;for j:='a' to 'd' dowriteln(j,'piao shu wei',w[j]);end;20.w:=45,x:=70for i:=1 to 13 dobeginwrite(char(ord(w+i-1)));w:=w+2;write(char(ord(x-i+1)));x:=x-2;end;21const n=自己寫上;varmax,min,i,maxhao,minhao:integer;a:array[1..n] of Integer;beginmax:=a[1];min:=a[1];for i:=2 to n tobeginif a[i]>max then begin max:=a[i]; maxhao:=i; end;if a[i] .。 第一個: var c,sum:integer; begin sum:=0; for c:=1 to 50 do sum:=sum+2*c-1; writeln(sum); end. 第二個: var c,sum:integer; begin sum:=0; for c:=1 to 34 do sum:=sum+c*3-2; writeln(sum); end. 第三個: var a:array[1..10] of integer;c,d,e:integer;k:real; begin for c:=1 to 10 do read(a[c]); for c:=1 to 9 do for d:=c+1 to 10 do if a[c]>a[d] then begin e:=a[c];a[c]:=a[d];a[d]:=e; end; k:=0; for c:=2 to 9 do k:=k+a[c]; writeln(k/8:0:2); end. 第三題的排序沒必要用快排,冒泡足矣,最后的結果保留了2位小數 轉載請注明出處華閱文章網 » pascalfor語句 關于pascal語言for語句的幾個小問題(急)