《第70講 信號(hào)信息與計(jì)算機(jī)基礎(chǔ)(十)(2010年新版)》由會(huì)員分享,可在線閱讀,更多相關(guān)《第70講 信號(hào)信息與計(jì)算機(jī)基礎(chǔ)(十)(2010年新版)(7頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、
三、賦值語(yǔ)旬
賦值語(yǔ)句的一般格式為:
變量名=表達(dá)式
其中,連接變量名和表達(dá)式的符號(hào)" ="稱為賦值號(hào)。在FORTRAN 77中,有三種賦值 語(yǔ)句:算術(shù)賦值語(yǔ)句,邏輯賦值語(yǔ)句和字符賦值語(yǔ)句。
(一)算術(shù)賦值語(yǔ)句
1.算術(shù)賦值語(yǔ)句中賦值號(hào)右邊是算術(shù)表達(dá)式。算術(shù)表達(dá)式可以是單個(gè)變量或數(shù)組元 素,可以是用算術(shù)運(yùn)算符號(hào)連接起來(lái)的數(shù)值計(jì)算過(guò)程。
(1)算術(shù)表達(dá)式中的各個(gè)數(shù)據(jù)量(常量或變量)的類型一般應(yīng)該一致。如果不一致, FORTRAN程序在運(yùn)行中先將其進(jìn)行轉(zhuǎn)換,再進(jìn)行計(jì)算。例如實(shí)型變量和整型變量進(jìn)行 計(jì)算時(shí),整型變量的數(shù)值先被轉(zhuǎn)換為實(shí)型。
(2)算術(shù)表達(dá)式計(jì)算中,特別應(yīng)注意兩個(gè)整型量
2、之間的除法(稱為整除)。例如,算術(shù)表達(dá)式10.0-2/4*10.0的計(jì)算過(guò)程是
10.0 – 0*10.0= 10.0 -0.0= 10.0
如果表達(dá)式寫(xiě)為10.0-2/4.0*10.0,則計(jì)算過(guò)程是
10.0-2.0/4.0*10.0=10.0-0.5*10.0=5.0
因?yàn)?/4是整除,其結(jié)果為0,而進(jìn)行2/4.0的計(jì)算時(shí),整型量2先被轉(zhuǎn)化為實(shí)型。
2.算術(shù)賦值左邊只能是數(shù)值型變量名或數(shù)值型數(shù)組元素。如果賦值號(hào)左邊的變量與 右邊的表達(dá)式類型不一樣時(shí),系統(tǒng)將自動(dòng)把右邊表達(dá)式計(jì)算的結(jié)果轉(zhuǎn)換為與左邊變量的類 型一致后再賦給該變量。
(二)邏輯賦值語(yǔ)句
在邏輯賦值語(yǔ)句中,賦值號(hào)
3、左邊為邏輯變量或邏輯型數(shù)組元素,右邊為一個(gè)邏輯表 達(dá)式。
(三)字符賦值語(yǔ)句
1.字符賦值語(yǔ)句賦值號(hào)的左邊為字符變量或字符型數(shù)組元素。
2.賦值號(hào)的右邊為字符表達(dá)式,可以是單個(gè)字符串或用字符運(yùn)算符連接起來(lái)的字符 串。字符運(yùn)算符只有一個(gè),表示為礦,含義為連接該符號(hào)兩邊的字符串.
3.執(zhí)行字符賦值語(yǔ)句時(shí),應(yīng)注意字符串的長(zhǎng)度與賦值號(hào)右邊變量或數(shù)組元素的長(zhǎng)度 的關(guān)系。例如:
CHARACTER*4 A, B*6, C
A= 'FILE
B=A//’'NAME'
C=B (5:6)
定義字符型變量時(shí),根據(jù)類型說(shuō)明語(yǔ)句的規(guī)定,A長(zhǎng)度為4,而變量B因有專門說(shuō) 明,其長(zhǎng)度為6。程序運(yùn)行
4、后,變量A的長(zhǎng)度與賦值號(hào)右邊字符串長(zhǎng)一致,A的值為 ‘FILE' ;而B(niǎo)的長(zhǎng)度小于‘FILE'和‘NAME'兩個(gè)字符串長(zhǎng)度之和,因此多余的字 符被截去,B的值為‘FILENA'; C的結(jié)果為‘NA__' ,其中最后兩格為空格符,這是 因?yàn)镃的長(zhǎng)度為4,大于字符串‘NA'的長(zhǎng)度,于是在其右邊補(bǔ)上2個(gè)空格符后形成4 個(gè)字符長(zhǎng)再賦值給C.在上面的程序例中,出現(xiàn)表達(dá)式B (5:6),稱為"子串",表示取出字符串的一部分,本例中,表示將B的字符串‘FILENA'中的第5個(gè)字符至第6 個(gè)字符取出。
四、循環(huán)語(yǔ)句
(一)DO語(yǔ)句
DO語(yǔ)句的一般形式為:
DO n V = el, e2, e3
5、n循環(huán)體
其中,n為語(yǔ)句標(biāo)號(hào);V為循環(huán)控制變量,它只能是簡(jiǎn)單變量(整型或?qū)嵭停?,不能是表 達(dá)式; el, e2, e3分別為循環(huán)控制變量的初值、終值與增量(步長(zhǎng)) ,它們都可以是表達(dá) 式,當(dāng)e3為1時(shí)可以省略不寫(xiě)。循環(huán)體是若干語(yǔ)句的集合,其中最后一個(gè)語(yǔ)句稱為循環(huán) 終端語(yǔ)句;若循環(huán)體只有一個(gè)語(yǔ)句,則該語(yǔ)句也就是終端語(yǔ)句。終端語(yǔ)句必須有標(biāo)號(hào)n。
在DO循環(huán)執(zhí)行時(shí),首先計(jì)算表達(dá)式el, e2, e3的值,并將它們化為與循環(huán)控制變 量V的類型一致;然后將初值賦給循環(huán)控制變量v,并計(jì)算需要循環(huán)的次數(shù);最后根據(jù) 循環(huán)次數(shù)重復(fù)執(zhí)行循環(huán)體中的語(yǔ)句,并每次執(zhí)行完循環(huán)體后,將循環(huán)控制變量增值一次, 循環(huán)次數(shù)
6、減少一次。當(dāng)循環(huán)次數(shù)為零時(shí),則結(jié)束循環(huán),轉(zhuǎn)向程序規(guī)定的下一個(gè)語(yǔ)句。
(二)繼續(xù)語(yǔ)句CONTINUE
CONTINUE是一個(gè)可執(zhí)行語(yǔ)句,其功能是使程序的流程繼續(xù)到邏輯上的下一個(gè)語(yǔ)句。
FORTRAN 77規(guī)定,循環(huán)終端語(yǔ)句必須是一個(gè)可執(zhí)行語(yǔ)句,但不能是GOTO語(yǔ)句、 塊IF語(yǔ)句、ELSE語(yǔ)句、ELSE IF 語(yǔ)句、ENDIF語(yǔ)句、00語(yǔ)句、STOP語(yǔ)句、END語(yǔ) 句。由于這些限制,通常用CONTINUE 語(yǔ)句作為循環(huán)的終端語(yǔ)句。當(dāng)然, CONTINUE 語(yǔ)句也可用在其他場(chǎng)合。
(三)循環(huán)嵌套
使用循環(huán)嵌套可以實(shí)現(xiàn)多重循環(huán)。這時(shí)應(yīng)注意各重循環(huán)的層次和循環(huán)變量的關(guān)系。例如,編寫(xiě)
7、一個(gè)計(jì)算乘法表的程序段,可以寫(xiě)為:
DO 10 1=1, 9
DO 8 J=l, 9
IJ = I*j
8 CONTINUE
10 CONTINUE
本例中,外層循環(huán)控制變量I初值為1,終值為9,內(nèi)層循環(huán)控制變量J初值為外層循環(huán) 控制變量I的當(dāng)前值,終值為9。外層的第1次循環(huán),內(nèi)層經(jīng)過(guò)9-1+1=9次循環(huán),依次 計(jì)算1×1=1,1×2=2,…,1×9=9,外層的第2次循環(huán),內(nèi)層經(jīng)過(guò)9-2+1=8次循 環(huán),依次計(jì)算2×2=4, 2×3=6,…, 2×9 = 18……
(四)使用循環(huán)語(yǔ)句應(yīng)注意的若干問(wèn)題
1.正確選定循環(huán)變量的初值。比如,對(duì)累加問(wèn)題和連乘問(wèn)題,變量初值不正確,
8、使 影響最終結(jié)果。
例如計(jì)算m=1!十2! +……十10! ,采用循環(huán)語(yǔ)句編寫(xiě)程序,涉及到累加和連乘。 其程序可編寫(xiě)如下:
m=0
n=1
DO 20 I= 1, 10
n=n×I
m=m十n
20 CONTINUE
PRINT*,m
END
例中, n用于存放連乘結(jié)果,其初值設(shè)定為1,而m用于存放累加結(jié)果,其初值設(shè)定為0。
2. DO語(yǔ)句可以和轉(zhuǎn)換語(yǔ)句,條件語(yǔ)句等結(jié)合起來(lái)使用,此時(shí)應(yīng)注意從循環(huán)體內(nèi)可以 轉(zhuǎn)向循環(huán)體外,但不允許從循環(huán)體外轉(zhuǎn)向循環(huán)體內(nèi);從內(nèi)層循環(huán)中可以轉(zhuǎn)向外層循環(huán),但 不允許從外層循環(huán)轉(zhuǎn)向內(nèi)層循環(huán)中。
3.當(dāng)內(nèi)外層循環(huán)體的終端語(yǔ)句相同,且兩個(gè)終端語(yǔ)句之間
9、沒(méi)有其他語(yǔ)句時(shí),可以合 并使用一個(gè)終端語(yǔ)句。例如,前面計(jì)算乘法表的程序段可以寫(xiě)為:
DO 10 I=1. 9
DO 10J=I,9
IJ = I*j
10 CONTINUE
或?qū)憺?
DO 10 I=1,9
00 10 J=I, 9
10 IJ=I*J
五、輸入輸出語(yǔ)旬
(一)表控輸入輸出
表控輸入輸出語(yǔ)句是一種隱含格式的輸入輸出語(yǔ)句,其格式由程序編譯系統(tǒng)提供,在 程序語(yǔ)句中不予表示。
1.表控輸出語(yǔ)句
FORTRAN 77表控輸出語(yǔ)句有兩種方式:
PRINT*,輸出量表
WRITE (*,*)輸出量表
這兩種表控輸出語(yǔ)句的作用是相同的,但一般微機(jī)上的FORT
10、RAN 77子集不提供PRINT 語(yǔ)句,所以通常使用WRITE 語(yǔ)句。
2.表控輸入
FORTRAN 77表控輸入語(yǔ)句有兩種型式:
READ*,輸入量表
READ (*,*)輸入量表
表控輸入又稱為自由格式輸入。表控輸入語(yǔ)句要求用戶在隱含的輸入設(shè)備(通常是鍵 盤)上輸入所需的數(shù)據(jù),在輸入數(shù)據(jù)時(shí),各數(shù)據(jù)之間用逗號(hào)或空格分隔。
(二)格式輸入輸出
1.格式輸出數(shù)據(jù)語(yǔ)句WRITE語(yǔ)句和FORMAT語(yǔ)句
WRITE語(yǔ)句的一般形式為:
WRITE (u, f)輸出量表
其中, u為部件說(shuō)明符,用以指出在哪個(gè)設(shè)備上進(jìn)行輸出,通常也稱為通道號(hào),當(dāng)U為記號(hào)*時(shí),表示在顯示器(標(biāo)準(zhǔn)輸出
11、設(shè)備)上進(jìn)行輸出。f為格式說(shuō)明,它通常是一個(gè)格式語(yǔ)句的標(biāo)號(hào),用以指出輸出數(shù)據(jù)所采用的格式。
格式語(yǔ)句的一般形式為:
標(biāo)號(hào)FORMAT (格式說(shuō)明)
例如:
WRITE (*, 10) A, B, A*B
10 FORMAT (lX, F6.2, F7.3, F10.4)
FORMAT語(yǔ)句中,第一個(gè)"1X"稱為縱向控制符,它表示前進(jìn)一空格后再輸出后面的數(shù) 據(jù),后面的三個(gè)項(xiàng)分別說(shuō)明了三個(gè)實(shí)型數(shù)據(jù)輸出的,稱為格式編輯符。
FORTRAN 77也允許在WRITE語(yǔ)句中直接指定輸出格式,從而可以省略格式語(yǔ)句 FORMAT。例如,上面的輸出語(yǔ)句與格式語(yǔ)句可以合并成一個(gè),即:
WRITE (
12、*, I (1X , F6. 2, F7. 3, F10.4) ') A, B, A*B
2.格式編輯符 FORTRAN常用的格式符有十幾種,詳細(xì)可參照任何一本FORTRAN教材或?qū)S糜趦?cè)。
(三)隱循環(huán)的輸入輸出
數(shù)組元素的輸入輸出可以采用循環(huán)方式實(shí)現(xiàn)。 例如:
DIMENSION X (20)
DO 10 1= 1, 20
10 READ*, X (I)
程序段執(zhí)行時(shí)進(jìn)行20次循環(huán),每次輸入1個(gè)數(shù)據(jù)。這個(gè)輸入程序段可以改寫(xiě)如下: DIMENSION X (20)
READ*, (X (I), I = 1, 20)
其中第2句就是隱循環(huán)的輸入語(yǔ)句。循環(huán)控制變量I的初值
13、為1,終值為20,步長(zhǎng)為1而 予以省略。隱循環(huán)語(yǔ)句的作用與DO語(yǔ)句是相同的;但使用隱循環(huán)語(yǔ)句時(shí), 20個(gè)數(shù)據(jù)允 許一次性輸入,當(dāng)然,數(shù)據(jù)與數(shù)據(jù)之間要用空格符或逗號(hào)區(qū)別開(kāi)來(lái)。
隱循環(huán)語(yǔ)句也用于輸出語(yǔ)句,也可使用多重循環(huán)。例如
DIMENSION Y (l0, 6)
READ (*,*) ((Y (I, J), J=1, 6), I=1, 10)
WRITE (*, 5) ((Y (I, J), J=1, 6), I=1, 10)
5 FORMAT (lX, 6F10.2)
運(yùn)行程序段時(shí),首先讀入60個(gè)數(shù)據(jù), Y (1, 1), Y (1,2),……, Y (1, 6), Y
14、(2, 1), Y (2, 2),……, Y (2, 6),……, Y (10, 1), Y (10, 2),……, Y (10, 6), 然后輸出60個(gè)數(shù)據(jù),每行輸出6個(gè)數(shù)據(jù),數(shù)據(jù)的排列順序與輸入時(shí)相同。
例:
1.FORTRAN 語(yǔ)句: I=25 + 3.0**2 / 2 執(zhí)行后,整型變量 I 的值是()。
A . 29 . 5;
B . 30;
C . 29;
D . 28
【 解 】 由條件, I 為整型變量知 A 項(xiàng)不對(duì),應(yīng)排除。 I=25 + 3 . 0**2 / 2=29 ,所以應(yīng)選 C 項(xiàng)。
2.FORTRAN 語(yǔ)句: B=10 . 0 -2/
15、 4 * 10 . 0 執(zhí)行后,變量 B 的值是()。
A . 10 . 0;
B . 5 . 0;
C . 10;
D . 5
【 解 】 由條件, B=10 . 0 -0×10 . 0=10 . 0 ,所以應(yīng)選 A 。
3.不等式 2 . 0≤Y≤10.0對(duì)應(yīng)的 Y表達(dá)式是(A)
A . 2 . 0 . LE . Y . AND . Y . LE .10.0;
B . 2 . 0 . GE.Y. LE .10.0;
C. 2 . 0 . LE.Y. LE .10.0;
D Y . GE.2.0 . OR.LE.10.0
4.下列各符號(hào)中, 可作為 RORTRAN77 合法變量名的是(C)
A . 112FA ;
B . F- 312;
C. ABD;
D π
5.若有語(yǔ)句: INTEGERB (-1:2 , 3:7 ) ,則數(shù)組 B 中所包含的元素個(gè)數(shù)為(C)。
A . 10;
B . 15;
C . 20;
D . 24
7頁(yè)