【文章內(nèi)容簡(jiǎn)介】
圖3_8(1)條件1語句1假真條件2假真語句2圖3_8(2)為了避免產(chǎn)生不同的理解,PASCAL系統(tǒng)規(guī)定ELSE總是與同一層前面最靠近它的,還沒有ELSE與之配對(duì)的THEN配對(duì)。因此,上面的語句肯定是按第一種理解,即ELSE與后一個(gè)THEN配對(duì)。如果要求按第二種理解執(zhí)行流程圖,可以通過在IF語句中加BEGIN、END的辦法來實(shí)現(xiàn)。寫成IF(條件1)THEN BEGIN IF(條件2) THEN(語句1) ENDELSE(語句2) CASE語句CASE語句是實(shí)現(xiàn)選擇結(jié)構(gòu)程序設(shè)計(jì)的另一種語句。它的使用有時(shí)比IF語句來得簡(jiǎn)單、直觀。CASE語句(或稱情況語句)的一般形式是CASE (表達(dá)式) OF (值表1):(語句1); (值表2):(語句2); …… (值表n):(語句n)END在CASE語句頭上的表達(dá)式必須是有序類型(整型、字符型、布爾型以及后面要介紹的枚舉型、子界型)。值表是一些由逗號(hào)分開的常數(shù)。表達(dá)式所有可能的值必須在值表中出現(xiàn),且每個(gè)值只能出現(xiàn)一次。如果當(dāng)前表達(dá)式的值在某個(gè)值表i中出現(xiàn),則該程序只執(zhí)行對(duì)應(yīng)該值表i的語句,然后執(zhí)行整個(gè)CASE語句后的下一語句。例L3_5 輸入年、月,輸出該月有幾天。討論:每年的12月,每月有31天;11月,每月有30天;2月閏年有29天,平年有28天。年號(hào)能被4整除,但不能被100整除,或者年號(hào)能被400整除的年均是閏年。用year、month、days分別表示年、月、每月天數(shù)。它們均為整數(shù)。閏年的條件可以寫成如下的布爾表達(dá)式:(year MOD 4 = 0) AND (year MOD 100 0) OR (year MOD 400 = 0)PROGRAM L3_5。 VAR year,month,days:integer。 BEGIN write(‘year=?’)。readln(year)。 write(‘month=?’)。readln(month)。CASE month OF 1,3,5,7,8,10,12:days:=31。 4,6,9,11:day:=30。 2:IF(year MOD 4 = 0) AND (year MOD 100 0) OR (year MOD 400 = 0) THEN days:=29 ELSE days:=28 END。 writeln(‘year=’,year,’,month=’,month,’,days=’days) END.例L3_6 輸入兩個(gè)運(yùn)算量及一個(gè)運(yùn)算符,輸出運(yùn)算結(jié)果。這相當(dāng)于計(jì)算器計(jì)算。討論:設(shè)兩個(gè)運(yùn)算量為x和y,一個(gè)運(yùn)算符為oper,運(yùn)算結(jié)果為result。現(xiàn)在假定運(yùn)算符只可能是+、*、/,將oper說明為字符型。x、y和result說明為實(shí)型。習(xí)題XT3_1 編制程序,根據(jù)輸入的x值,計(jì)算y與z并輸出。PROGRAM XT3_1。 CONST PI=。 VAR x,y,z:real。 BEGIN write(39。x=?39。)。 read(x)。 IF x= THEN y:=x*x+1 ELSE y:=x*x1。 IF x0 THEN z:=PI/2*x+3 ELSE IF x=0 THEN z:=0 ELSE z:=PI/2*x5。 writeln(39。x=39。,x:6:2,39。, y=39。,y:6:2,39。, z=39。,z:6:2) END.XT3_2 對(duì)一批貨物征收稅金,價(jià)格在1萬元以上的貨物征稅5%,在5000元以上,1萬元以下的貨物征稅3%,在1000元以上,5000元以下的貨物征稅2%,1000元以下的貨物免稅。編寫一程序,讀入貨物價(jià)格,計(jì)算并輸出稅金。XT3_3 輸入某學(xué)生成績(jī),若成績(jī)?cè)?5分以上,輸出very good,若成績(jī)?cè)?0分到85分之間,輸出good,若成績(jī)低于60分,輸出no good。XT3_4 輸入3個(gè)數(shù),將其中最小數(shù)輸出。XT3_5 輸入3個(gè)字母,按字母表順序從小到大輸出這3個(gè)字母。XT3_6 輸入二次方程的3個(gè)系數(shù)a、b、c,計(jì)算二次方程的根。程序應(yīng)考慮實(shí)根和復(fù)根兩種情形。二次方程如下:ax2+bx+c=0z=lnx+lnysinx+sinye2x+e3xtan(x+y)Ⅰ象限Ⅱ象限Ⅲ象限Ⅳ象限提示:PASCAL不能表示復(fù)數(shù)。若為復(fù)根,應(yīng)分別計(jì)算并輸出實(shí)、虛部,在輸出時(shí)將+、與i用字符形式輸出。XT3_7 輸入x、y,根據(jù)所處象限,用相應(yīng)公式計(jì)算z。XT3_8 輸入x、y及象限,計(jì)算z。z的計(jì)算公式同XT3_7題,要求用CASE語句編程序。XT3_9 輸入班號(hào),輸入該班學(xué)生人數(shù)。應(yīng)用CASE語句編程序。班號(hào)919293949596人數(shù)303230303225閱讀學(xué)習(xí)《全國(guó)信息奧林匹克聯(lián)賽培訓(xùn)教程(一)》(信息學(xué)奧林匹克科學(xué)委員會(huì)主編,清華大學(xué)出版社)及網(wǎng)上教案,閱讀要求見下表:閱讀內(nèi)容頁 碼要求 Pascal程序的一般結(jié)構(gòu)和輸入輸出語句《全國(guó)信息奧林匹克聯(lián)賽培訓(xùn)教程(一)》P94全看 順序結(jié)構(gòu)《全國(guó)信息奧林匹克聯(lián)賽培訓(xùn)教程(一)》P100全看 選擇結(jié)構(gòu)《全國(guó)信息奧林匹克聯(lián)賽培訓(xùn)教程(一)》P101看條件選擇結(jié)構(gòu)P101至P104 運(yùn)算對(duì)象的顯式定義《全國(guó)信息奧林匹克聯(lián)賽培訓(xùn)教程(一)》P116全看 表達(dá)式《全國(guó)信息奧林匹克聯(lián)賽培訓(xùn)教程(一)》P120全看 Pascal的簡(jiǎn)單類型《全國(guó)信息奧林匹克聯(lián)賽培訓(xùn)教程(一)》P121看整型;布爾類型;字符類型;實(shí)數(shù)類型CHH信息學(xué)奧賽培訓(xùn)教案(20071127)全看閱讀后完成下面題目Pascal程序可以分為三個(gè)部分,請(qǐng)將這三個(gè)部分的名稱填入下面括號(hào)中PROGRAM circle(input,output)。 CONSTPI=。 VARr,l,s:real。 BEGINread(r)。l:=2*PI*r。s:=PI*r*r。write(r,l,s)。 END.( )( )( )完成下面有關(guān)數(shù)據(jù)類型的表數(shù)據(jù)類型類型標(biāo)識(shí)符舉2個(gè)例子實(shí)型integer字符型boolean請(qǐng)將下列實(shí)型數(shù)據(jù)用另一種表示法表示小數(shù)表示法科學(xué)表示法小數(shù)表示法科學(xué)表示法例:+11e+2+1+2在Pascal中,有六個(gè)算術(shù)運(yùn)算符,它們是________________________________________。有六個(gè)關(guān)系運(yùn)算符,它們是________________________________________。有三個(gè)邏輯運(yùn)算符,它們是________________________________________。在Pascal中,各種運(yùn)算符的運(yùn)算優(yōu)先規(guī)則如下,請(qǐng)?jiān)谙旅嬷本€上畫一個(gè)箭頭表示運(yùn)算優(yōu)先級(jí)由低到高并在直線上面的括號(hào)內(nèi)填入優(yōu)先級(jí)的高低。優(yōu)先級(jí)( )括號(hào)()函數(shù)NOTAND*/DIVMODOR+-===優(yōu)先級(jí)( )填出下面Pascal詞匯所屬類別(在“語句、函數(shù)、運(yùn)算符、數(shù)據(jù)類型、符號(hào)”中選擇其一)序號(hào)詞匯類別功能序號(hào)詞匯類別功能1:=30sqr平方2abs絕對(duì)值31sqrt開方3AND邏輯運(yùn)算符“與”32succ后繼字符4BEGIN分程序開始33THEN條件語句IF…THEN…ELSE的一部分5boolean34TOFOR循環(huán)語句的一部分6CASE分支結(jié)構(gòu)語句35trunc去掉小數(shù)部分,取其整數(shù)7char36VAR說明變量8chr取字符37WHILE循環(huán)語句WHILE9CONST定義常量38sin10DIV整數(shù)商39cos11DOWHILE DO語句的一部分40arctan12ELSE條件語句IF…THEN…ELSE的一部分41+13END結(jié)束分程序4214exp以e為底的指數(shù)43*15FORFOR循環(huán)語句44/16GOTO4517IFIF條件語句46=18integer47=19ln以e為底的自然對(duì)數(shù)48=20MOD取余,整除后的余數(shù)4921NOT邏輯運(yùn)算符“非”5022odd奇函數(shù),判斷是否為奇數(shù)51write23OF分支結(jié)構(gòu)語句CASE…OF的一部分52writeln24OR邏輯運(yùn)算符“或”53read25ord取序號(hào)54readln26pred前導(dǎo)字符55:27PROGRAM程序首部5639。28real57。29round四舍五入,取其整數(shù)在第1題例中,語句write與writeln有何不同__________________。在第1題例中,哪些詞屬于保留字__________________。將下列代數(shù)式寫成Pascal的表達(dá)式(1)4[(134)247。6] (2)a(md)4247。b+3y=A2(3) (4)下列符號(hào)中,能作標(biāo)識(shí)符的是:AI, Wang, 4D4g, IF, MAX, ABS, PI, SIN, ABS_1, Begin寫出以下表達(dá)式的值及類型(1)10/2+2重復(fù)控制結(jié)構(gòu)(循環(huán)結(jié)構(gòu))循環(huán)結(jié)構(gòu)(或稱重復(fù)結(jié)構(gòu))是程序中的一個(gè)基本結(jié)構(gòu),在解許多問題中是很有用的。我們知道,在許多復(fù)雜的問題中,常常需要做大量類同的計(jì)算處理。盡管計(jì)算機(jī)的運(yùn)算速度很快,然而要把這些大量類同的計(jì)算處理的每一步都寫成語句,并輸入計(jì)算機(jī)中,其工作量是相當(dāng)大的。有時(shí)是難以完成的。循環(huán)結(jié)構(gòu)程序設(shè)計(jì)可以幫助我們有效地解決這一難題。利用循環(huán)結(jié)構(gòu)程序設(shè)計(jì),使得我們有可能只編寫少量的語句,讓計(jì)算機(jī)重復(fù)執(zhí)行它許多次,從而完成大量類同的計(jì)算要求。在PASCAL中,實(shí)現(xiàn)循環(huán)程序設(shè)計(jì)的主要語句有FOR語句、WHILE語句和REPEAT語句。一、FOR語句FOR x:=初值 TO 終值 DO 語句FOR X:= 1 TO 10 DOFOR X:=10 DOWNTO 1 DOFOR X:= ‘A’ TO ‘Z’ DOFOR X:=’Z’ DOWNTO ‘A’ DOs=0當(dāng)n=1 s=s+n=0+1=1。當(dāng)n=2 s=s+n=1+2=3當(dāng)n=3 s=s+n=3+3=6當(dāng)n=4 s=s+n=6+4=10當(dāng)n=5 s=s+n=10+5=15當(dāng)n=6 s=s+n=15+6=21當(dāng)n=7 s=s+n=21+7=28當(dāng)n=8 s=s+n=28+8=36當(dāng)n=9 s=s+n=36+9=45當(dāng)n=10 s=s+n=45+10=55T75_001 計(jì)算1+2+3+…+10PROGRAM T75_001。 VAR s,n:integer。 BEGIN s:=0。 FOR n:=1 TO 10 DO s:=s+n。 writeln(‘s=’,s) END.T75_012 計(jì)算n!(n!=123…n)T75_013 輸入10個(gè)任意整數(shù),求它們的和PROGRAM T75_001。 VAR s,n,a:integer。 BEGIN s:=0。 FOR n:=1 TO 10 DO BEGIN read(a)。 s:=s+a。