1樓:
pascal基本語句
hb007 發表於 2006-4-13 13:57:30
名 稱 格 式 功 能
賦值語句 變數識別符號:=表示式; 先計算表示式的值,再將表示式的值賦給變數。
輸入語句 read(變數表);
readln(變數表); 從鍵盤上為變數表中的變數賦值。
從鍵盤上為變數表中的變數賦值(換行讀入)。
輸出語句 write(輸出表); 將輸出項顯示在螢幕上或用印表機輸出。
writeln(輸出表); 將輸出項通過螢幕或印表機輸出(換行輸出)。
write(輸出項:場寬); 輸出項佔有的位數=場寬表示式的值。
write(輸出項:總場寬:小數位數); 輸出項佔有的位數=總場寬表示式的值。
輸出項小數部分佔有的位數=小數位數。
條件語句 if 條件 then 語句1; 若條件為真,則執行語句1。
若條件為假,執行if語句的下一個語句。
if 條件 then 語句1
else 語句2; 若條件為真,則執行語句1,否則執行語句2。
分情況語句 case 表示式 of
常數表1:語句1:
常數表2:語句2;
……常數表n:語句n;
end 先計算表示式的值,然後執行與表示式的值相同的常數所對應的語句。如果所有的常數表中沒有與表示式的值相同的常數,則執行case語句的下一個語句。
case表示式of
常數表1:語句1;
常數表2:語句2;
常數表n:語句n;
……else 語句n+l;
end 先計算表示式的值,再執行與表示式的值相同的常數所對應的語句。如果所有的常數表中沒有與表示式的值相同的常數,則執行語句n+l。
迴圈語句 for 迴圈變數:=初值 to 終值 do
迴圈體; 先把初值賦給迴圈變數,然後將此值與迴圈終值比較,當此值小於等於終值時,執行迴圈體語句。
for 迴圈變數:=初值 downto 終值 do
迴圈體; 先把初值賦給迴圈變數,然後將此值與迴圈終值比較,當此值大於等於終值時,執行迴圈體語句。
while 布林表示式 do 語句: 先計算布林表示式的值,當其值是真時,執行do後面的語句,若是假則退出迴圈。
repeat
語句1;
語句2;
……語句n
until 布林表示式; 先執行語句1到語句n,再對布林表示式進行判斷。當布林表示式值為真時重複執行語句1到語句n,直到布林表示式的值為假時退出迴圈,執行until語句下面的語句。
轉向語句 goto 標號; 轉到標號指向的語句去執行。
開域語句 with 記錄名 do 語句; 簡化對記錄的引用。
[例1.1]程式設計在螢幕上顯示「hello world!」。
pascal程式:
program ex11;
begin
writeln(『hello world!』);
readln;
end.
這個簡單樣例程式,希望大家的程式設計學習能有一個良好的開端。程式中的writeln是一個輸出語句,它能命令計算機在螢幕上輸出相應的內容,而緊跟writeln語句後是一對圓括號,其中用單引號引起的部分將被原原本本地顯示出來。
[例1.2]已知一輛自行車的售價是300元,請程式設計計算a輛自行車的總價是多少?
解:若總售價用m來表示,則這個問題可分為以下幾步處理:
①從鍵盤輸入自行車的數目a;
②用公式 m=300*a 計算總售價;
③輸出計算結果。
pascal程式:
program ex12;
var a,m : integer;
begin
write(『a=』);
readln(a);
m := 300*a;
writeln(『m=』,m);
readln;
end.
此題程式結構完整,從中可看出一個pascal 程式由三部分組成:
(1)程式首部
由保留字program開頭,後面跟一個程式名(如:exl1);其格式為:
program 程式名;
程式名由使用者自己取,它的第一個字元必須是英文字母,其後的字元只能是字母或數字和下劃線組成,程式名中不能出現運算子、標點符和空格。
(2)說明部分
程式中所用的常量、變數,或型別、及過程與自定義函式,需在使用之前預先說明,定義資料的屬性(型別)。[例1.2] 程式中 var s,r,c:
real; 是變數說明,此處說明s,r,c三個變數均為實數型別變數。只有被說明為某一型別的變數,在程式中才能將與該變數同型別的數值賦給該變數。變數說明的格式為:
var 變數表:型別;
(3)語句部分
指由保留字 begin (開始)至 end. (結尾)之間的語句系列,是解決問題的具體處理步驟,也是程式的執行部分。
pascal程式不管是哪部分,每句末尾都必須有分號(;),但允許最接近 end 的那個語句末尾的分號省略;程式結束的end末尾必須有圓點(. ),是整個程式的結束標誌。
程式中花括號「」之間的部分為註釋部分。
pascal程式結構可歸納用如下的示意圖來表示:
program 程式名; 程式首部
標號說明; (label)
常量說明; (const) 說明部分
型別說明; (type)
變數說明; (var)
過程或函式說明;
begin 程式體 (主程式)
語句系列; 語句部分
end.
圖1.1 pascal程式的結構
把處理問題的步驟編成能從上到下順序執行的程式,是簡單程式的基本特徵。再來分析下面兩道例題的pascal程式結構和繼續學習基本語句。
〔例1.3〕程式設計計算半徑為r的圓的面積和周長。
解:這是一個簡單問題,按數學方法可分以下幾步進行處理:
① 從鍵盤輸入半徑的值r;
② 用公式 s=πr2 計算圓面積;
③ 用公式 c=2πr 計算圓周長;
④ 輸出計算結果。
pascal程式:
program ex13;
var r,s,c: real;
begin
write ('r=?');
readln(r);
s:=pi*r*r; {圓面積公式s=πr2}
c:=2*pi*r; {圓周長公式c=2πr}
writeln('s=',s);
writeln('c=',c);
readln {等待輸入回車鍵}
end.
程式中pi是pascal提供的標準函式,它返回圓周率的近似值:3.1415926…。
(:=)是賦值符號,賦值語句的格式為:
變數:=表示式;
賦值語句的作用是將:=右邊表示式的值記錄到左邊的變數中。
writeln是輸出語句,輸出語句有三種格式:
① write (輸出項1,輸出項2) ; {執行輸出後游標不換行}
② writeln (輸出項1,輸出項2) ; {執行輸出後游標換到下一行}
③ writeln {僅輸出空白且游標換到下一行}
writeln語句後面的圓括號以內部分均為輸出項,可以是多項,各項間用逗號分隔; 對單引號裡的內容按照引號內的原樣(字元)輸出顯示。如果輸出項是表示式,則只輸出表示式的值,而不是表示式本身。
[例1.4] 輸出兩個自然數相除的商和餘數。
解:設被除數、除數、商和餘數,分別為a,b,c,d,均為變數,且都是整數型別。題中未給出具體的自然數a、b,可採用鍵盤輸入方式。
① 給出提示,從鍵盤輸入a, b;
② 顯示兩數相除的數學形式;
③ 求出a除以b的商c;
④ 求出a除以b的餘數d;
⑤ 緊接等式後面輸出顯示商和餘數。
pascal程式:
program ex14;
var a,b,c,d : integer;
begin
write('input a,b:'); {給出提示資訊}
readln(a,b); {輸入a,b}
writeln; {輸出一空行}
write(a,'/',b,'='); {輸出等式之後不換行}
c:=a div b; {整除運算,取商的整數部分}
d:=a mod b; {相除求餘運算,取商的餘數部分}
writeln(c,'…',d);
readln
end.
執行本程式中第一個write語句,輸出其引號以內的一串提示資訊,是給緊接著的輸入語句提供明確的提示(要求),有「一目瞭然,人機對話」之效果。
readln是一個特殊的輸入語句,要求輸入一個回車(換行)才能往下執行。
readln是輸入語句,它的一般格式為:
① read (變數1,變數2);
② readln (變數1,變數2);
③ readln
前兩種格式均要從鍵盤給變數輸入資料,輸入時,所鍵入的資料之間以空格為分隔,以回車為輸入結束。若多輸入了資料(即資料個數超過變數個數),read語句讀完資料之後,能讓後續的讀語句接著讀取多下來的資料;而readln 語句對本行多輸入的資料不能讓後續語句接著讀取多下來的資料。為了防止多輸入的資料影響下一個輸入語句讀取資料,建議儘量使用readln語句輸入資料。
第三種格式不需輸入資料,只需按入一個回車鍵。
[例1.5]自然數的立方可以表示為兩個整數的平方之差,比如43=102-62,請輸出自然數1996的這種表示形式。(這裡的43用自乘三次的形式4*4*4表示;102也用自乘二次的形式10*10表示)
解:此題沒有現成的計算公式能直接利用,但可以自行推出處理方法或構建適當的運算公式,按著構想的處理方案編排出各步驟。
設這個自然數為n,兩個平方數分別為x,y, 將問題表示為求 n3=x2—y2
① 先找出x的值,仔細觀察題中的示例,用數學方法歸納可得出x=n*(n+1)/2;(構成本題可用的計算公式)
② 再仔細觀察,發現y值比x小一個n值,即 y=x—n;
③ 輸出等式 n3=x2—y2 或n*n*n=x*x—y*y
pascal程式:
program ex15;
const n=1996;
var x,y: longint;
begin
x:=n*(n+1) div 2;
y:=x-n;
writeln(n,'*',n,'*', n,'=', x,'*', x,'—',y,'*',y);
readln
end.
本程式中n是常量,x,y是變數,為長整數型別(longint); 程式中的div 是整除運算,其結果只取商的整數部分;
[例1.6] 求一元二次方程x2+3x+2=0的兩個實數根。
解:方程的係數是常量,分別用a,b,c表示,可運用數學上現成的求根公式求方程的根,採取如下方法:
① 先求出d=b2-4ac;(求根公式中需用開方運算的那部分)
② 再用求根公式算出x1,x2的值。(x1,x2 = ? )
③ 輸出x1,x2.
pascal程式:
program ex16;
const a=1;
b=3;
c=2; {a,b,c表示方程係數}
var d : integer; {d為整型變數}
x1,x2: real; {x1,x2為實型變數}
begin
d:=b*b-4*a*c;
x1:=(-b+sqrt(d))/(2*a); {求方程的根}
x2:=(-b-sqrt(d))/(2*a);
writeln('x1=',x1,' ':6,'x2=',x2);
readln {等待輸入一個回車鍵}
end.
本程式中的a,b,c均為常量;變數d是整數型別,而變數x1,x2則是實數型別,因為運算式中的sqrt(d)開平方運算和(/)除法運算使結果為實數。sqrt( ) 是開平方函式,是pascal系統的一個標準函式。
習題1.1 模仿例題程式設計
1. 加法計算器:程式設計由鍵盤輸入兩個整數a和b,計算出它們的和並輸出到螢幕上。
2. 某梯形的上底、下底和高分別為8,12,9,求該梯形的面積。
( 梯形面積公式為 s=
3. 求右圖所示邊長為5.6 的正立方體表面積。
4. 已知圖園柱體的高為12,底面園的半徑為7,求園柱體表面積。
5. 計算某次考試語文、數學、英語和計算機等四科的總成績與平均成績。
(請用輸入語句從鍵盤輸入各科成績分)
關於濃硝酸稀硝酸的有點白痴的問題
我們知道,鐵 鋁在稀hno3或稀h2so4中能很快溶解,但在濃hno3或濃h2so4中溶解現象幾乎完全停止了,碳鋼通常很容易生鏽,若在鋼中加入適量的ni cr,就成為不鏽鋼了。金屬或合金受一些因素影響,化學穩定性明顯增強的現象,稱為鈍化。由某些鈍化劑 化學藥品 所引起的金屬鈍化現象,稱為化學鈍化。如...
關於宗教優劣問題,我有個疑問
其他的宗教給你向善之心,卻不提供向善之法,亦不提供向善之力。而唯獨 教不但提供前者所提供的,更是提供前者所無法提供的,教導你向善,幫助你向善。真正改變人生的信仰 教。 紫綾淚 你有宗教歧視嗎?伊斯蘭教的兄弟姐妹又叫穆斯林,是順從的意思。戰爭最大的受害者就是穆斯林,為什麼有戰爭啊?是因為那些有企圖的國...
關於證明牛頓萊布尼茲公式這裡我有個問題
永夜書為伴 這是哪塊的公式?我沒有見過這樣的牛頓萊布尼茨公式,我只見過解定積分裡的牛頓萊布尼茨公式,而且這個公式的證明也不是你給的這樣的。關於牛頓萊布尼茲公式的證明問題 以上c f a 為什麼還能代入進去啊?我不能理解 這是計算常數c的一個方法而已,既然常數c計算出來了,當然能帶入證明的第二行的等式...