版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第三章順序結(jié)構(gòu)第1頁,課件共32頁,創(chuàng)作于2023年2月Pascal的程序結(jié)構(gòu)采用了順序、選擇、循環(huán)的控制結(jié)構(gòu),使編寫的程序結(jié)構(gòu)清晰,進(jìn)而達(dá)到易懂、易改的目的。第一節(jié)賦值語句變量既然代表一個存儲單元,其值是可變的,在pascal程序中可以通過賦值語句來進(jìn)行。賦值語句的格式為:
<變量>:=<表達(dá)式>賦值語句的作用是計算表達(dá)式的值,并將結(jié)果賦給變量。對于任何一個變量必須首先賦值,然后才能引用,否則,未賦初值的變量將以一個隨機值參與運算。另外,賦值號兩邊的類型必須相同,但表達(dá)式值為整型時,它會自動轉(zhuǎn)變?yōu)閷嵭秃筚x值給該實型變量,即符合相容賦值。第2頁,課件共32頁,創(chuàng)作于2023年2月
例3-1
關(guān)于賦值功能的例子
programexample3_1;vara,b:integer;begina:=3;b:=2;a:=a+b;b:=a-b;a:=a-b;writeln(a);writeln(b);end.
程序中整型變量a,b分別賦初值3,2,接著a的值加b的值為5仍賦給a,a的值改變?yōu)?,再接下去的兩條賦值語句同樣使b的值改為3,a的值又改為2,最后輸出的a,b的值分別為2,3。第3頁,課件共32頁,創(chuàng)作于2023年2月
例3-2
關(guān)于變量必須賦初值及相容賦值的例子
programexample3_2;varc:real;beginwriteln('c=',c);c:=5div2;writeln('c=',c);end.
經(jīng)編譯運行的結(jié)果如下:
c=1.00473604E-18c=2.0000000000E+00第4頁,課件共32頁,創(chuàng)作于2023年2月可以看出:實型變量c在未賦值前的值為隨機數(shù),賦值語句中的表達(dá)式5div2的結(jié)果應(yīng)是整數(shù)2,但左邊為實型變量c,故結(jié)果2自動轉(zhuǎn)變?yōu)閷嵭蛿?shù)2.0000000000E+00賦給c。因此,我們必須養(yǎng)成給變量賦初值的習(xí)慣,并注意賦值相容的情況。第5頁,課件共32頁,創(chuàng)作于2023年2月例3-3
某倉庫8月1日有糧食100噸,8月2日又調(diào)進(jìn)20噸,8月3日賣出庫存的三分之二,8月4日又調(diào)進(jìn)庫存的3倍糧食,問該倉庫從8月1日到8月4日期間每天的糧食分別是多少噸?(輸出每天的庫存量)分析:在這個問題中,主要要描述從8月1日到8月4日期間倉庫的糧食庫存量,且易知它是不斷變化的。因此我們可以用一個變量A來描述倉庫的糧食庫存量。程序可寫如下:Programex33;VarA:integer;BeginA:=100;Writeln(‘8/1:’,A);A:=A+20;Writeln(‘8/2:’,A);A:=Adiv3;writeln(‘8/3:’,A);A:=A*4;writeln(‘8/4:’,A)End.注: 上程序各writeln中A前的‘8/1:’,‘8/2:’,‘8/3:’,‘8/4:’都表示一個字符串(即用一對單引號括起來的一串字符),對于字符串,只輸出字符串的內(nèi)容(即引號內(nèi)的字符),而引號不會輸出。第6頁,課件共32頁,創(chuàng)作于2023年2月例3-4
有三個小朋友甲、乙、丙。甲有50粒糖果,乙有43粒糖果,丙有13粒糖果。現(xiàn)在他們做一個游戲。從甲開始,將自己的糖分三份,自己留一份,其余兩份分別給乙與丙,多余的糖果自己吃掉,然后乙與丙也依次這樣做。問最后甲、乙、丙三人分后各有多少粒糖果?第7頁,課件共32頁,創(chuàng)作于2023年2月分析:這個問題中我們關(guān)心的是在游戲過程中每個小朋友的糖果個數(shù),且他們所擁有的的糖果數(shù)是在變化的。因此可用a、b、c三個變量分別存放甲、乙、丙三個小朋友在某一時刻所擁有的糖果數(shù)。對于每個人分糖后,他的糖果數(shù)一定為原來的糖果數(shù)div3(因為分糖過程中,糖果的數(shù)目不一定都剛好分完,用整除恰恰可以表示多余的糖自己吃掉)。而其他兩人則增加與這個小朋友現(xiàn)在擁有的一樣的糖果。程序可寫如下:programex3_4;varA,B,C:integer;beginA:=50;B:=43;C:=13;{初始時每個小朋友所擁有的糖果數(shù)}A:=Adiv3;B:=B+A;C:=C+A;{甲小朋友分糖果后,每個人擁有的糖果數(shù)變化情況}B:=Bdiv3;A:=A+B;C:=C+B;{乙小朋友分糖果后,每個人擁有的糖果數(shù)變化情況}C:=Cdiv3;A:=A+C;B:=B+C;{丙小朋友分糖果后,每個人擁有的糖果數(shù)變化情況}writeln(‘A=’,A,‘B=’,B,‘C=’,C);{輸出結(jié)果}end.以上程序的運行結(jié)果為:A=51B=35C=16第8頁,課件共32頁,創(chuàng)作于2023年2月有三個小朋友甲、乙、丙。甲有50粒糖果,乙有43粒糖果,丙有13粒糖果?,F(xiàn)在他們做一個游戲。從甲開始,將自己的糖分三份,自己留一份,其余兩份分別給乙與丙,多余的糖果自己吃掉,然后乙與丙也依次這樣做。問最后甲、乙、丙三人分后各有多少粒糖果?第9頁,課件共32頁,創(chuàng)作于2023年2月輸出語句輸出語句或?qū)懻Z句是每個程序用于從屏幕顯示計算結(jié)果的語句,是必不可少的。一、輸出語句的兩種格式1、write語句格式Write(表達(dá)式1,表達(dá)式2,……);如:write(1,2,3,4);write(1.2,3.4,5);write(‘MynameisLiping’);2、writeln語句格式:Writeln(表達(dá)式1,表達(dá)式2,……)或writeln第10頁,課件共32頁,創(chuàng)作于2023年2月二、輸出語句的功能計算機執(zhí)行到某一輸出語句時,先計算出輸出語句中的每個表達(dá)式的值,并將每一個表達(dá)式的值一個接一個地輸出到屏幕上。
Write語句與writeln語句格式上都相似,但它們在功能上有所不同,兩個語句的區(qū)別在于,write語句將其后括號中的表達(dá)式一個接一個輸出后,沒有換行。而writeln語句則在輸出各個表達(dá)式的值后換行。例如以下兩個程序段的輸出分別為:write(1,2,3,4);write(5,6);輸出為:123456writeln(1,2,3,4);writeln(5,6);輸出為:123456第11頁,課件共32頁,創(chuàng)作于2023年2月三、輸出語句的輸出格式在pascal語言中輸出數(shù)據(jù)時是可以按照一定格式表示的,對整數(shù)隱含的輸出形式為按十進(jìn)制數(shù)形式。對實數(shù)的輸出,隱含的形式是科學(xué)記數(shù)法形式(如果不想用科學(xué)記數(shù)法輸出而用小數(shù)形式輸出,要自己另行定義)。事實上,輸出語句中的每個輸出項中的表達(dá)式之后可以加上格式說明,若輸出項后沒有加格式說明,則數(shù)據(jù)按系統(tǒng)隱含的格式輸出,還可加上一定格式符號按特定格式輸出。第12頁,課件共32頁,創(chuàng)作于2023年2月1、隱含的輸出格式pascal語言為整型量、實型量、布爾型量和字符串(用一對單引號括起來的字符序列)規(guī)定了每種數(shù)據(jù)所占的寬度(即一個數(shù)據(jù)占幾列),一個數(shù)據(jù)所占的寬度稱為“場寬”或“域?qū)挕?。系統(tǒng)給出的隱含場寬稱為標(biāo)準(zhǔn)場寬。下表給pascal所規(guī)定的標(biāo)準(zhǔn)場寬。數(shù)據(jù)類型標(biāo)準(zhǔn)場寬Integer實際長度Real17Boolean4或5第13頁,課件共32頁,創(chuàng)作于2023年2月在Pascal系統(tǒng)中,對于整型字符串的輸出都是按數(shù)據(jù)本身長度輸出,對于布爾型數(shù)據(jù)(只有True和False兩種值),TRUE為4列,F(xiàn)ALSE為5列,一律采用大寫輸出。而real型數(shù)據(jù)的輸出時,則按17列輸出,其中第一列為符號位,正號不顯示,后四位為“E±nn”,中間的12列為尾數(shù)部分。如:writeln(4/7);則輸出
1.1428571492E+00。這種隱含的輸出格式不容易看清楚,因此在程序中往往根據(jù)實際情況,需要自己定義場寬。第14頁,課件共32頁,創(chuàng)作于2023年2月2、指定場寬在輸出語句中輸出項允許含有格式符號,其作用就是為了指定場寬。⑴指定單場寬格式:write(表達(dá)式:N)或writeln(表達(dá)式:N),其中N為整數(shù)類型表達(dá)式,但多數(shù)情況下直接就用自然數(shù)表示,一旦指定單場寬后,所有數(shù)據(jù)不再按標(biāo)準(zhǔn)場寬輸出,而按指定場寬輸出。若數(shù)據(jù)實際長度小于指定場寬時,則一律“向右靠齊,左留空格”。如write(1234:8);write(‘a(chǎn)bcdef’:12)輸出結(jié)果:□□□□1234□□□□□□abcdef對于標(biāo)準(zhǔn)實型數(shù)據(jù)指定單場寬時,如果場寬大于標(biāo)準(zhǔn)場寬時,右靠齊按標(biāo)準(zhǔn)場寬格式輸出17位,左留空格。若場寬小于標(biāo)準(zhǔn)場寬時,第一位仍為符號位,最后四位仍為"E±nn",中間部分為尾數(shù)顯示部分。如果指定的寬度小于8位,則數(shù)據(jù)按8位格式"*.*E±nn"輸出。第15頁,課件共32頁,創(chuàng)作于2023年2月⑵指定雙場寬當(dāng)輸出項是實數(shù)時,如果希望輸出的實數(shù)不用科學(xué)記數(shù)法輸出,而用小數(shù)形式輸出,可以用指定雙場寬的方法輸出。雙場寬輸出格式為:write(實型表達(dá)式:m:n),其中m和n都是整型表達(dá)式或自然數(shù),m用以指定整個數(shù)據(jù)所占的寬度,n指定輸出實數(shù)的小數(shù)位數(shù)。如:write(8/7):9:4);輸出:□□□1.1429如果雙場寬不能滿足輸出數(shù)據(jù)的最低要求,系統(tǒng)自動突破指定的場寬限制,按實際長度輸出。如:write(8/7:5:4);要使小數(shù)點后有4位數(shù)字,而總場寬為5,是不可能的(因為還有一個小數(shù)點,小數(shù)點前面還有一個數(shù)字)。它最低限度要有6列,即輸出為:1.1429第16頁,課件共32頁,創(chuàng)作于2023年2月
例3-5
寫出下列程序的輸出結(jié)果.programex3_5;consts=‘a(chǎn)bcdefg’;var
i:integer;
r:real;
c:char;b:boolean;begin
i:=1234;r:=1234.5678;
c:=‘#’;b:=true;
writeln(i,i:6,i:3);
writeln(r,r:12:5,r:8:5);
writeln(c,c:5);
writeln(s,s:10,s:5);
writeln(b,b:5,b:3);end.運行結(jié)果如下:1234□□12341234□1.2345678000E+03□□1234.567801234.56780#□□□□#abcdefg□□□abcdefgabcdefgTRUE□TRUETRUE第17頁,課件共32頁,創(chuàng)作于2023年2月四、應(yīng)用實例分析例3-6
已知A=253,B=43,輸出A*B的運算式子。即要求輸出格式如下:253*43=10879253*43-------759+1012-------10879分析:對于該問題,我們只要控制好輸出時右靠齊即可。即前四行的總寬度一樣(例如為12),第五行總寬度比前面少1。第六、七行總寬度與前四行一樣。第18頁,課件共32頁,創(chuàng)作于2023年2月參考程序如下:vara,b:integer;begin
a:=253;b:=43;
writeln(a:10,’*’,b,’=‘,a*b);
writeln(a:12);
write(‘*’:8);writeln(b:4);
writeln(‘--------’:12);
writeln(a*3:12);
write(‘+’:6);writeln(a*4:5);
writeln(‘--------’:12);
writeln(a*b:12);end.第19頁,課件共32頁,創(chuàng)作于2023年2月第三節(jié)輸入語句在程序中變量獲得一個確定的值,固然可以用賦值語句,但是如果需要賦值的變量較多,或變量的值經(jīng)常變化,則使用本節(jié)介紹的輸入語句──讀語句,將更為方便。讀語句是在程序運行時由用戶給變量提供數(shù)據(jù)的一種很靈活的輸入動作,它有兩種格式:read(<變量名表>);readln[(<變量名表>)];其中變量名表是用逗號隔開的若干個變量名組成的。功能:從標(biāo)準(zhǔn)輸入文件(即INPUT,一般對應(yīng)著鍵盤)中讀入數(shù)據(jù),并依次賦給相應(yīng)的變量。第20頁,課件共32頁,創(chuàng)作于2023年2月說明:①read和readln是標(biāo)準(zhǔn)過程名,它們是標(biāo)準(zhǔn)標(biāo)識符。②執(zhí)行到read或readln語句時,系統(tǒng)處于等待狀態(tài),等待用戶從鍵盤上輸入數(shù)據(jù),系統(tǒng)根據(jù)變量的數(shù)據(jù)類型的語法要求判斷輸入的字符是否合法。如執(zhí)行read(a)語句,a是整型變量,則輸入的字符為數(shù)字字符時是合法的,當(dāng)輸入結(jié)束時,則自動將剛接受的一串?dāng)?shù)字字符轉(zhuǎn)換為整數(shù)賦給變量a。③在輸入數(shù)值型(整型或?qū)嵭停?shù)據(jù)時,數(shù)據(jù)間要用空格或回車分隔開各個數(shù)據(jù),輸入足夠多個數(shù)據(jù),否則仍要繼續(xù)等待輸入,但最后一定要有回車,表示該輸入行結(jié)束,直到數(shù)據(jù)足夠,該讀語句執(zhí)行結(jié)束,程序繼續(xù)運行。第21頁,課件共32頁,創(chuàng)作于2023年2月設(shè)a、b、c為整型變量,需將它們的值分別賦以10、20、30,寫出對應(yīng)下列語句的所有可能輸入格式。Read(a,b,c);
根據(jù)③,即可列出所有可能輸入格式:
(a)10□20□30↙
(b)10□20↙
30↙
(c)10↙
20□30↙
(d)10↙
20↙
30↙其中“↙”表示回車鍵。第22頁,課件共32頁,創(chuàng)作于2023年2月④read語句與readln語句的第一個區(qū)別是:
read語句是一個接一個地讀數(shù)據(jù),在執(zhí)行完本Read語句(讀完本語句中變量所需的數(shù)據(jù))后,下一個讀語句接著從該數(shù)據(jù)輸入行中繼續(xù)讀數(shù)據(jù),也就是說不換行。例如:
Read(a,b);
Read(c,d);
Read(e);如果輸入數(shù)據(jù)行如下:1□2□3□4□5□6□↙則a、b、c、d、e的值分別為1、2、3、4、5,如果后面無讀語句則數(shù)據(jù)6是多余的,這是允許的。第23頁,課件共32頁,創(chuàng)作于2023年2月
Readln則不同,在讀完本Readln語句中變量所需的數(shù)據(jù)后,該數(shù)據(jù)行中剩余的數(shù)據(jù)多余無用,或者說,在讀完本Readln語句中變量所需數(shù)據(jù)后,一定要讀到一個回車,否則多余的數(shù)據(jù)無用。例如:readln(a,b);readln(c);則對于上述4種輸入格式只有(b)(d)是有效的。⑤readln語句與read語句的第二個區(qū)別是:read后一定要有參數(shù)表,而readln可以不帶參數(shù)表,即可以沒有任何輸入項,只是等待讀入一個換行符(回車)。經(jīng)常用于暫停程序的運行,直到輸入一個回車。第24頁,課件共32頁,創(chuàng)作于2023年2月
例3-7關(guān)于輸入功能的例子設(shè)有下列語句:read(a,b,c);readln(d,e);readln;readln(f,g);其中,所有變量均為整型。再設(shè)輸入的數(shù)據(jù)如下:
1□2↙
3□4□5□6□7□8↙
9□10↙
11↙
12□13↙列表給出每個變量的值.分析:可以假想有一“數(shù)據(jù)位置指針”,每讀一個數(shù)據(jù)后,指針后移到該數(shù)據(jù)之后,每執(zhí)行一個readln語句后,指針移到下一個數(shù)據(jù)行的開頭。各變量的值如下表所示。變量名ABcDefg值123451112
第25頁,課件共32頁,創(chuàng)作于2023年2月⑥為了避免可能出現(xiàn)的錯誤,建議在程序中按下列原則使用讀語句:(A)如果沒有特殊需要,在一個程序中盡量避免混合使用read語句和readln語句;(B)盡量用readln語句來輸入數(shù)據(jù),一個數(shù)據(jù)行對應(yīng)一個readln語句;(C)由于執(zhí)行read或readln語句時,系統(tǒng)不會提供任何提示信息,因此,編程時最好在readln語句之前加以適當(dāng)提示,例如:write(‘Inputa,b,c:’);readln(a,b,c);在執(zhí)行時,屏幕上顯示:Inputa,b,c:_其中,“_”為光標(biāo)。執(zhí)行readln語句后,系統(tǒng)處于待待輸入狀態(tài),只有輸入了所需數(shù)據(jù)后才繼續(xù)往下執(zhí)行。第26頁,課件共32頁,創(chuàng)作于2023年2月第四節(jié)復(fù)合語句復(fù)合語句由若干語句組成序列,語句之間用分號“;”隔開,并以begin與end括起來,作為一條語句。復(fù)合語句的一般形式:
begin
語句1;語句2;
…
語句nend第27頁,課件共32頁,創(chuàng)作于2023年2月
例3-8
變量值交換
programex3_8;vara,b,t:integer;begina:=10;b:=20;writeln(‘a(chǎn)=',a,‘b=’,b);begint:=a;a:=b;b:=tend;writeln(‘a(chǎn)=',a,‘b=’,b)end.程序中的復(fù)合語句完成變量a,b中值的交換,整個復(fù)合語句作為一條語句,程序執(zhí)行時,按其中語句依序執(zhí)行,即完成一個復(fù)合動作。在本例中當(dāng)然去除復(fù)合語句的begin和end后,結(jié)果是一樣的。復(fù)合語句常用在某些控制語句語法上規(guī)定只能是一條語句的情況下。第28頁,課件共32頁,創(chuàng)作于2023年2月練習(xí)1、按下列輸出格式輸出,即1后面空1格,2后面空2格,……,5后面空5格,要求方法越多越好。
123452、用輸出語句輸出下列字符圖形:
\\\|///\\--//(@@)+--------oOOo-(_)-oOOo--------+|||Howdoyoudo?||||Mynameiscomputer.||||Oooo|+--------oooO---()--
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度環(huán)保型鋼管扣件運輸與回收利用協(xié)議3篇
- 二零二五版電子元件采購合同數(shù)量取消及供應(yīng)鏈調(diào)整補充協(xié)議3篇
- 2024建造師勞動合同
- 2025年度民族特色餐廳租賃及文化傳承合作協(xié)議3篇
- 二零二五年房地產(chǎn)糾紛調(diào)解估價委托合同模板3篇
- 2024年項目聯(lián)合開發(fā)協(xié)議3篇
- 二零二五年度高品質(zhì)建筑材料租賃與運輸管理合同3篇
- 二零二五版商用空調(diào)租賃與能源消耗優(yōu)化合同3篇
- 威海職業(yè)學(xué)院《突發(fā)公衛(wèi)事件應(yīng)急處理》2023-2024學(xué)年第一學(xué)期期末試卷
- 天津城市職業(yè)學(xué)院《災(zāi)害防御與避險應(yīng)急》2023-2024學(xué)年第一學(xué)期期末試卷
- DB22T 5005-2018 注塑夾芯復(fù)合保溫砌塊自保溫墻體工程技術(shù)標(biāo)準(zhǔn)
- 醫(yī)院手術(shù)室醫(yī)院感染管理質(zhì)量督查評分表
- 心內(nèi)電生理導(dǎo)管及器械
- 稱量與天平培訓(xùn)試題及答案
- 超全的超濾與納濾概述、基本理論和應(yīng)用
- 2020年醫(yī)師定期考核試題與答案(公衛(wèi)專業(yè))
- 2022年中國育齡女性生殖健康研究報告
- 各種靜脈置管固定方法
- 消防報審驗收程序及表格
- 教育金規(guī)劃ppt課件
- 呼吸機波形分析及臨床應(yīng)用
評論
0/150
提交評論