心情:開心 | 日期:2012-12-03 星期一 | 天氣:![]() | 地點:學校 |
無論做任何事情,都要有一定的方式方法與處理步驟。計算機程序設計比日常生活中的事務處理更具有嚴謹性、規范性、可行性。為了使計算機有效地解決某些問題,須將處理步驟編排好,用計算機語言組成“序列”,讓計算機自動識別并執行這個用計算機語言組成的“序列”,完成預定的任務。將處理問題的步驟編排好,用計算機語言組成序列,也就是常說的編寫程序。在Pascal語言中,執行每條語句都是由計算機完成相應的操作。編寫Pascal程序,是利用Pascal語句的功能來實現和達到預定的處理要求。“千里之行,始于足下”,我們從簡單程序學起,逐步了解和掌握怎樣編寫程序。
在未系統學習Pascal語言之前,暫且繞過那些繁瑣的語法規則細節,通過下面的簡單例題,可以速成掌握Pascal程序的基本組成和基本語句的用法,讓初學者直接模仿學習編簡單程序。
[例1.1]編程在屏幕上顯示“Hello World!”。
Pascal程序:
Program ex11;
Begin
Writeln(‘Hello World!’);
ReadLn;
End.
這個簡單樣例程序,希望大家的程序設計學習能有一個良好的開端。程序中的Writeln是一個輸出語句,它能命令計算機在屏幕上輸出相應的內容,而緊跟Writeln語句后是一對圓括號,其中用單引號引起的部分將被原原本本地顯示出來。
[例1.2]已知一輛自行車的售價是300元,請編程計算a輛自行車的總價是多少?
解:若總售價用m來表示,則這個問題可分為以下幾步處理:
= 1 \* GB3①從鍵盤輸入自行車的數目a;
= 2 \* GB3②用公式 m=300*a 計算總售價;
= 3 \* GB3③輸出計算結果。
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.
把處理問題的步驟編成能從上到下順序執行的程序,是簡單程序的基本特征。再來分析下面兩道例題的Pascal程序結構和繼續學習基本語句。
[例1.3]編程計算半徑為R的圓的面積和周長。
解:這是一個簡單問題,按數學方法可分以下幾步進行處理:
①從鍵盤輸入半徑的值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; { div是整除運算}
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,求該梯形的面積。
3.求邊長為5.6 的正立方體表面積。
4.已知圖園柱體的高為12,底面園的半徑為7,求園柱體表面積。
5.計算某次考試語文、數學、英語和計算機等四科的總成績與平均成績。
(請用輸入語句從鍵盤輸入各科成績分)
我也說兩句 |
版權聲明: 1.依據《服務條款》,本網頁發布的原創作品,版權歸發布者(即注冊用戶)所有;本網頁發布的轉載作品,由發布者按照互聯網精神進行分享,遵守相關法律法規,無商業獲利行為,無版權糾紛。 2.本網頁是第三方信息存儲空間,阿酷公司是網絡服務提供者,服務對象為注冊用戶。該項服務免費,阿酷公司不向注冊用戶收取任何費用。 名稱:阿酷(北京)科技發展有限公司 聯系人:李女士,QQ468780427 網絡地址:www.arkoo.com 3.本網頁參與各方的所有行為,完全遵守《信息網絡傳播權保護條例》。如有侵權行為,請權利人通知阿酷公司,阿酷公司將根據本條例第二十二條規定刪除侵權作品。 |