第三課帶格式的輸出語句及輸入語句_第1頁
第三課帶格式的輸出語句及輸入語句_第2頁
第三課帶格式的輸出語句及輸入語句_第3頁
第三課帶格式的輸出語句及輸入語句_第4頁
第三課帶格式的輸出語句及輸入語句_第5頁
免費預覽已結束,剩余2頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第三課 帶格式的輸出語句及輸入語句一、寫語句的輸出格式在Pascal語言中輸出數(shù)據(jù)時是可以按照一定格式的,對整數(shù)隱含的輸出形式為按十進制數(shù)形式。對實 數(shù)的輸出,隱含的形式是科學記數(shù)法形式(如果不想用科學記數(shù)法輸出而用小數(shù)形式輸出,要自己另行 定義)。若輸出項后沒有加格式說明,事實上,輸出語句中的每個輸出項中的表達式之后可以加上格式說明, 則數(shù)據(jù)按系統(tǒng)隱含的格式輸出,還可加上一定格式符號按特定格式輸出。1.隱含的輸出格式Pascal語言為整型量、實型量、布爾型量和字符串(用一對單引號括起來的字符序列)規(guī)定了每種數(shù)據(jù)pascal所占的寬度(即一個數(shù)據(jù)占幾列),一個數(shù)據(jù)所占的寬度稱為 場寬或字段寬”

2、。系統(tǒng)給出的隱含場寬稱 為標準場寬。每一種 Pascal版本給定的標準場寬不盡相同。下表給出標準Pascal和pc機上兩種版所規(guī)定的標準場寬。標準場寬數(shù)據(jù)類型標準Pascal Turbo pascal integer 10實際長度real 22 17 布爾型10 4或5 字符串串長串長True則按 1在Turbo PascaI系統(tǒng)中,對于整型字符串的輸出都是按數(shù)據(jù)本身長度輸出,對于布爾型數(shù)據(jù)(只有 和False兩種值),TRUE為4列,F(xiàn)ALSE為5列,一律采用大寫輸出。而real型數(shù)據(jù)的輸出時,7列輸出,其中第一列為符號位,正號不顯示,后四位為E nn,中間的12列為尾數(shù)部分。如:write

3、l n( sqrt(75);則輸出 8.6602540379E+00。而 writeln(sqrt(81);則輸出 9.0000000000E+00。有時,在程序中往往根據(jù)實際情況,需要自己定義場寬。2.指定場寬在寫語句中輸出項含有格式符號時,就是為了指定場寬。指定單場寬.格式:write(表達式:N)或write In(表達式:N),其中N為自然數(shù),指定單場寬后,所有數(shù)據(jù)不再按標準場 寬輸出,而按指定場寬輸出。若數(shù)據(jù)實際長度小于指定場寬時,則一律”向右靠齊,左留空格”。女0 write(1234:8);write(abcdef:12)輸出結果: 1234口口口口口口 abcdef右靠齊按標準

4、場寬格式輸出17位,左留E nn,中間部分為尾數(shù)顯示部分。對于標準實型數(shù)據(jù)指定單場寬時,如果場寬大于標準場寬時,空格。若場寬小于標準場寬時,第一位仍為符號位,最后四位仍為如果指定的寬度小于8位,則數(shù)據(jù)按8位格式*.*E nn 輸出。指定雙場寬如果輸出項是實數(shù)時,如果希望輸出的實數(shù)不用科學記數(shù)法輸出,而用小數(shù)形式輸出,可以用指定雙場寬方法輸出。雙場寬輸出格式為:write(實型表達式:m: n),其中m和n都是自然數(shù),m用以指定整個數(shù)據(jù)所占的 寬度,n指定輸出實數(shù)的小數(shù)位數(shù)。如:write(sqrt(75):9:4);輸出:口 8.6602如果雙場寬不能滿足輸出數(shù)據(jù)的最低要求,系統(tǒng)自動突破指定的

5、場寬限制,按實際長度輸出。如:write(sqrt(75):5:4);要使小數(shù)點后有4位數(shù)字,而總場寬為5,是不可能的(因為還有一個小數(shù)點,小數(shù)點前面還有一個數(shù)字)。它最低限度要有 6列,即輸出為:8.6602例1寫出下列程序在turbo Pascal下的輸出結果.Program ex; const s=abcdefg;vari:i nteger;r:real;c:char;b:boolea n;begini:=1234;r:=1234.5678; c:=#;b:=true;writel n(i,i:6,i:3);writel n(r,r:12:5,r:8:5); write In (c,c:

6、5);writel n(s,s:10,s:5);writel n(b,b:5,b:3);end.運行結果如下:1234口口 12341234 1.2345678000E+03 1234.567801234.56780# abcdefg abcdefgabcdefgTRUE:TRUETRUE3 .應用例析例2:已知A=253 , B=43,輸出A*B的運算式子。即輸出如下: 253*43=10879253+ 1012 10879分析:12),第五行總對于該問題,我們只要控制好輸出時右靠齊即可。即前四行的總寬度一樣(例如為 寬度比前面少1。第六、七行總寬度與前四行一樣。參與程序如下:var a,b

7、:integer;begina:=253;b:=43;writel n( a:10,*,b,=,a*b);writel n(a:12);write(*:8);writel n(b:4);writeln(:12);writel n( a*3:12);write(+:6);writel n(a*4:5);writeln(:12);writel n( a*b:12);en d.輸入語句(讀語句)在程序中變量獲得一個確定的值,固然可以用賦值語句,但是如果需要賦 值的變量較多,或變量的值經(jīng)常變化,則使用本節(jié)介紹的輸入語句一一讀語句,將更為方便。讀語句是 在程序運行時由用戶給變量提供數(shù)據(jù)的一種很靈活的輸入

8、動作,它有兩種格式:1. 讀語句的一般格式:read();readln();其中變量名表是用逗號隔開的若干個變量名組成的。功能:從標準輸入文件(即INPUT, 般對應著鍵盤)中讀入數(shù)據(jù),并依次賦給相應的變量。說明: read和readln是標準過程名,它們是標準標識符。 執(zhí)行到read或readln語句時,系統(tǒng)處于等待狀態(tài),等待用戶從鍵盤上輸入數(shù)據(jù),系統(tǒng)根據(jù)變量的數(shù)據(jù)類型的語法要求判斷輸入的字符是否合法。如執(zhí)行read(a)語句,a是整型變量,則輸入的字符為數(shù)字字符時是合法的,當輸入結束時,則自動將剛接受的一串數(shù)字字符轉換為整數(shù)賦給變量a。 在輸入數(shù)值型(整型或實型)數(shù)據(jù)時,數(shù)據(jù)間要用空格或回

9、車分隔開各個數(shù)據(jù),輸入足夠個數(shù)的數(shù) 據(jù),否則仍要繼續(xù)等待輸入,但最后一定要有回車,表示該輸入行結束,直到數(shù)據(jù)足夠,該讀語句執(zhí)行 結束,程序繼續(xù)運行。例3.設a、b、c為整型變量,需將它們的值分別賦以10,20,30,寫出對應下列語句的所有可能輸入格式。Read(a,b,c);解根據(jù),即可列出所有可能輸入格式(a) 10 20 30(b) 10 201301(c) 10120 301(d) 101201301其中J表示回車鍵。下同。 read語句與readln語句的第一個區(qū)別是:read語句是一個接一個地讀數(shù)據(jù),在執(zhí)行完本Read語句(讀完本語句中變量所需的數(shù)據(jù))后,下一個讀語句接著從該數(shù)據(jù)輸入

10、行中繼續(xù)讀數(shù)據(jù),也就是說,不換行。如:Read(a,b);Read(c,d);Read(e);如果輸入數(shù)據(jù)行如下:1 2口 3口 4口 5 6口1則a,b,c,d,e的值分別為1,2,3,4,5,如果后面無讀語句則數(shù)據(jù)6是多余的,這是允許的。Readln則不同,在讀完本Readln語句中變量所需的數(shù)據(jù)后,該數(shù)據(jù)行中剩余的數(shù)據(jù)多余無用,或者說,在讀完本Readln語句中變量所需數(shù)據(jù)后,一定要讀到一個回車,否則多余的數(shù)據(jù)無用。例4設要達到例1同樣的目的,但語句改為:readl n( a,b);readl n(c)則例3中的4種輸入格式只有(b)(d)是有效的. readln語句與read語句的第二

11、個區(qū)別是:read后一定要有參數(shù)表,而readln可以不帶參數(shù)表,即可以沒 有任何輸入項,只是等待讀入一個換行符 (回車)。經(jīng)常用于暫停程序的運行,直到輸入一個回車。例5設有下列語句:read(a,b,c);readl n(d,e);readl n;readl n( f,g);其中,所有變量均為整型。再設輸入的數(shù)據(jù)如下:1口 213口 4 5口6 7口 819口 10111 12口 13列表給出每個變量的值.分析:可以假想有一數(shù)據(jù)位置指針”,每讀一個數(shù)據(jù)后,指針后移到該數(shù)據(jù)之后,每執(zhí)行一個readln語句后,指針移到下一個數(shù)據(jù)行的開頭。各變量的值如下表所示。變量名 a b cd e f g值

12、1 2 3 4 5 11 12為了避免可能出現(xiàn)的錯誤,建議在程序中按下列原則使用讀語句:(A)如果沒有特殊需要,在一個程序中盡量避免混合使用read語句和readln語句;(B)盡量用readln語句來輸入數(shù)據(jù),一個數(shù)據(jù)行對應一個 readln語句;(C)由于執(zhí)行read或readln語句時,系統(tǒng)不會提供任何提示信息,因此,編程時最好在readln語句之前加以適當提示,例如:write(Input a,b,c:);readl n( a,b,c);在執(zhí)行時,屏幕上顯示:Inp ut a,b,c:其中,”為光標。執(zhí)行readln語句后,系統(tǒng)處于待待輸入狀態(tài),只有輸入了所需數(shù)據(jù)后才繼續(xù)往下執(zhí)行。 三

13、、順序結構程序設計到目前為止,我們可以用讀、寫語句和賦值語句編寫一些簡單的程序。通過閱讀這些程序,可以逐步 熟悉Pascal程序的編寫方法和應遵循的規(guī)則,為以后各章的學習打基礎。例6試編一程序,輸入一梯形的上底、下底、高,求該梯形的面積。分析:整個程序分為三段:輸入、計算、輸出。程序中用 a,b,h三個變量分別存放梯形的上、下底與高,S存放面積。要而使用這些變量都要先說明,程序的執(zhí)行部分中先輸入上、下底與高,接著求面積S最后輸出結果So源程序如下:Program Tixing; 程序首咅B(yǎng) var a,b,h,s:real; 程序說明部分beginwrite(Input a,b,h:);rea

14、dln(a,b,h); 程序執(zhí)行部分s:=(a+b)*h/2;write(s=,s:10:3);end.例7某幼兒園里,有5個小朋友編號為1 , 2, 3, 4, 5,他們按自己的編號順序圍坐在一張圓桌旁。他們 身上都有若干個糖果,現(xiàn)在他們做一個分糖果游戲。從1號小朋友開始,將他的糖果均分三份(如果有多余的,則他將多余的糖果吃掉),自己留一份,其余兩份分給他的相鄰的兩個小朋友。接著2號、3號、4號、5號小朋友也這如果做。問一輪后,每個小朋友手上分別有多少糖果。分析:這道問題與第二課中的例 2基本一樣,只不過這里有5位小朋友,且他們初始時糖果的數(shù)目不確定。這里用a,b,c,d,e分別存放5個小朋

15、友的糖果。初始時它們的值改為由鍵盤輸入。其它都與第二課中的例2類似。參考程序如下:program fentang; var a,b,c,d,e:integer;beginwrite( PI ease En ter init nu mbers );read ln( a,b,c,d,e);a:=adivb:=bc:=cd:=ddivdivdivdiv3;b:=b+a;e:=e+a;13;c:=c+b;a:=a+b;23;b:=b+c;d:=d+c;33;c:=c+d;e:=e+d;43;d:=d+e;a:=a+e;5號均分后, 號均分后, 號均分后, 號均分后, 號均分后,1、1、2、3、4、2、5號的糖果數(shù)變化情況2、3號的糖果數(shù)變化情況3、4號的糖果數(shù)變化情況4、5號的糖果數(shù)變化情況5、1號的糖果數(shù)變化情況e:=e輸出結果writel n( a=,a);writel n( b=,b);writel n( c=,c);writel n( d=,d);writel n( e=,e);readln; 暫停en d.例8編一程序求半徑為R的圓的周長與面積?分析:程序要先輸入半徑R,然后求周長c和面積S,最后輸出c和s.源程序如下:Program circle; con st P 1=3.14159;var r,c,s:real;beginwrite(Enter R=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論