Fortran數(shù)據(jù)類型.ppt_第1頁(yè)
Fortran數(shù)據(jù)類型.ppt_第2頁(yè)
Fortran數(shù)據(jù)類型.ppt_第3頁(yè)
Fortran數(shù)據(jù)類型.ppt_第4頁(yè)
Fortran數(shù)據(jù)類型.ppt_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

5 1數(shù)據(jù)類型的概念 內(nèi)部數(shù)據(jù)類型 數(shù)值型 非數(shù)值型 派生數(shù)據(jù)類型 第五章FORTRAN90數(shù)據(jù)類型 系統(tǒng)提供了多種表示整數(shù)值的方法 每種方法定義了一個(gè)整型數(shù)據(jù)值的集合 每種方法用類別類型參數(shù)來(lái)區(qū)分 整型常量的表示形式為一個(gè)數(shù)字串 并在數(shù)字串后有一個(gè)可任選的下劃線后再跟類別類型參數(shù) 例如 373 1024 35792 0 32 2 1992110235764803 8 5 2整型數(shù)據(jù) 二進(jìn)制 八進(jìn)制和十六進(jìn)制整型常量 只能用于DATA語(yǔ)句中 二進(jìn)制常量 以字母B開頭 后跟一對(duì)撇號(hào)或雙引號(hào)括起來(lái)的數(shù)字串 數(shù)字不是0就是1 如B 10101101 B 1011101 八進(jìn)制常量 以字母O開頭 后跟一對(duì)撇號(hào)或雙引號(hào)括起來(lái)的數(shù)字串 數(shù)字是0到7之間的數(shù)字 例如 O 453 O 376 十六進(jìn)制常量 以字母Z開頭 后跟一對(duì)撇號(hào)或雙引號(hào)括起來(lái)的數(shù)字串 且每個(gè)數(shù)字是0到9或字母A到F之間的一個(gè) 例如 Z FFA9 Z 9B45 INTEGERi j kDATAi B 110010 DATAj O 62 DATAk Z 32 整型變量的說明 格式 INTEGER KIND 類別參數(shù)值 屬性列表 變量列表 類別參數(shù)可缺省 取決于計(jì)算機(jī)的字長(zhǎng) 對(duì)于32位計(jì)算機(jī)默認(rèn)為 231 231 1 類別參數(shù)值取 1248對(duì)應(yīng)字節(jié)數(shù) 1248 可等價(jià)寫成 INTEGER 2 K LIMITINTEGER 4 MIN MAX 例 INTEGERI TOTALINTEGER 2 K LIMITINTEGER KIND 4 MIN MAX 使變量具有符號(hào)常量屬性 integer 4 parameter n 10 使變量具有數(shù)組屬性 integer dimension 1 10 A 實(shí)型常量的表示方法 小數(shù)形式 類別參數(shù) 有效數(shù)E指數(shù) 類別參數(shù) 有效數(shù)D指數(shù) 5 3實(shí)型數(shù)據(jù) FORTRAN用類別類型參數(shù)區(qū)分不同類型的實(shí)型數(shù)據(jù) 實(shí)型數(shù)據(jù)有單精度和雙精度之分 單精度類別類型參數(shù)值為4 雙精度數(shù)類別類型參數(shù)值為8 默認(rèn)的類別參數(shù)是4 D表示雙精度實(shí)型常量 此時(shí)禁用類別參數(shù) 單精度 3 45E212 3E2 4雙精度 5 3D 2 表示5 3 10 2 表示為 5 3E 2 8但不能寫成 5 3D 2 8 052D0 052 8 實(shí)型變量的說明 REAL x y 單精度REAL 4 DX DY或 REAL 4 DX DY 單精度REAL 8 a1 b2或 REAL 8 a1 b2 雙精度DOUBLEPRECISION a6 b8 雙精度 REAL KIND 類別參數(shù)值 屬性列表 變量列表 單精度用REAL 4 定義 雙精度用REAL 8 或DOUBLEPRECISION定義 缺省的類別值為4 即為單精度 5 4復(fù)型數(shù)據(jù) a b類別不同 低向高轉(zhuǎn)換類別 復(fù)型常量的表示方法 復(fù)數(shù)a bi表示為 a b 其中是a b一對(duì)實(shí)數(shù)常量 例如 1 25 0 4 表示復(fù)數(shù)1 25 0 4i 1E2 3 4 表示復(fù)數(shù)100 0 3 4i 復(fù)型數(shù)據(jù)的類別類型參數(shù)是用于說明實(shí)部和虛部這兩個(gè)實(shí)型數(shù)據(jù)的類別類型 a b都為整型或都為默認(rèn)實(shí)型 則得到默認(rèn)復(fù)型 復(fù)型變量的說明 COMPLEX KIND 類別值 屬性列表 變量列表 COMPLEXZ1 Z2 單精度復(fù)型變量COMPLEX 4 COM VAL 單精度復(fù)型變量COMPLEX 8 CZ CQ 雙精度復(fù)型變量 CZ 3 0 6 3 復(fù)型常量賦給復(fù)型變量CQ 8 76E 5 67 8E 3 C CMPLX 3 0 A 6 0 B 實(shí)部虛部含變量 用CMPLX函數(shù)將實(shí)部和虛部組成復(fù)型數(shù)據(jù)再賦給復(fù)型變量 P75例5 5有一線段AB A的坐標(biāo)為 1 1 B的坐標(biāo)為 4 5 4 5 求AB的長(zhǎng)度 以及黃金分隔點(diǎn)C的坐標(biāo) 黃金分割點(diǎn)在線段的0 618處 分析 A B的坐標(biāo)可用復(fù)數(shù)表示 即A為 1 0 1 0 B為 4 5 4 5 AB的長(zhǎng)度就是 A B 的模 可用ABS函數(shù)直接求出復(fù)數(shù)的模ABS A B 黃金分隔點(diǎn)C的坐標(biāo)為A 0 618 B A PROGRAMCOMP 3IMPLICITNONECOMPLEX A B CREAL LREAD A BC A 0 618 B A L ABS A B PRINT L LPRINT C CENDPROGRAMCOMP 3 輸入 1 0 1 0 4 5 4 5 回車以2個(gè)實(shí)數(shù)作為一個(gè)復(fù)型數(shù)據(jù) 第一個(gè)實(shí)數(shù)為復(fù)數(shù)的實(shí)部 第二個(gè)實(shí)數(shù)為虛部 用括號(hào)括起來(lái) 輸出 L 4 949748C 3 163000 3 163000 5 5字符型數(shù)據(jù) 字符型常量 字符串常量 用單撇號(hào)或雙撇號(hào)括起來(lái)的字符序列 china 12345 234 4 234 4 在字符串內(nèi)部的空格是有效字符 當(dāng)字符串本身含有單撇號(hào)時(shí) 例如要將I maboy作為一個(gè)字符串來(lái)處理 可采用兩種方式表示 I maboy 用雙撇號(hào)作定界符 I maboy 用單撇號(hào)作定界符 將字符串的單撇號(hào)用兩個(gè)單撇號(hào)表示 字符串的長(zhǎng)度 字符串內(nèi)字符的個(gè)數(shù) 例 abcff 的長(zhǎng)度為5 和 為空串 長(zhǎng)度為0 字符型變量 CHARACTER LEN n 屬性說明 變量列表 n 變量的長(zhǎng)度 character len 15 a b c 長(zhǎng)度均為15的字符變量a b c 等價(jià)于 character 15 a b c 等價(jià)于 character 15 a b c Character len 10 parameter name fortran90 CHARACTER LEN 8 DIMENSION 1 10 X Y Z CHARACTER LEN 15 A B 8 C 5A的長(zhǎng)度為15 B的長(zhǎng)度為8 C的長(zhǎng)度為5 注 以下情形均可以采用 來(lái)說明長(zhǎng)度 1 character len parameter name fortran90 具有PARAMETER屬性的字符常量 給出的字符串長(zhǎng)度是確定的 因此字符符號(hào)常數(shù)name的長(zhǎng)度等于9 可用 說明 2 用字符變量做虛參時(shí) 一般可以不具體指明長(zhǎng)度 子字符串 子字符串的表示方法 字符變量名 m n m n 整數(shù) 表示子串在字符串中的起止位置 子字符串的長(zhǎng)度 n m 1 n m 1 例如 CHARACTER LEN 80 ROWROW 4 7 ROW字符串中從第4個(gè)字符到第7個(gè)字符組成的一個(gè)子串 其長(zhǎng)度為4ROW I I 表示該字符型變量的第I個(gè)字符row 5 相當(dāng)于row 1 5 row 5 相當(dāng)于row 5 80 row 相當(dāng)于row 1 80 字符表達(dá)式與字符賦值語(yǔ)句 1 字符連接符 將兩個(gè)字符型數(shù)據(jù)連接起來(lái) 成為一個(gè)字符型數(shù)據(jù)例 human shanghai 的值 humanshanghai 2 賦值 PROGRAMCHAR 1CHARACTER LEN 5 A B CCHARACTER LEN 11 DA abcde B fghij C AD A BPRINT C DENDPROGRAMCHAR 1 當(dāng)賦值號(hào)兩端數(shù)據(jù)的字符長(zhǎng)度不等時(shí) character len 7 a b 2a abcd b ef a a ba b a 結(jié)果a abcd 結(jié)果a efabcd character len 7 a ba abcde 結(jié)果a abcde a abcdefghfiemd 結(jié)果b abcdefg 對(duì)字符數(shù)據(jù)的輸入作同樣處理 字符關(guān)系表達(dá)式 1 兩個(gè)單個(gè)字符比較 以它們的代碼值決定大小 A 2 的值為真 2 兩字符串比較 先將短的字符串后面以空格補(bǔ)足再比較 兩串中的字符自左向右逐對(duì)比較 若所有對(duì)字符均相同 則兩串相等 否則 以第一次出現(xiàn)不同字符的比較結(jié)果為準(zhǔn) 例如 SHANGHAI thi 的值為真 用于字符處理的內(nèi)部函數(shù) 1 求字符串長(zhǎng)度函數(shù)LEN和LEN TRIM LEN String 函數(shù)值是String中字符個(gè)數(shù)LEN TRIM String 去掉尾部空格后的長(zhǎng)度String為字符型常量 變量等字符串 LEN 的值為3 例如 LEN abcdfg 的值為6 LEN ABC D 的值為5 LEN TRIM abc d 的值為5 LEN TRIM abcd 的值為4 LEN TRIM 的值為0 2 除去字符串尾部空格函數(shù)TRIM TRIM String TRIM ABC 的值為 ABC TRIM ABC 的值為 ABC 3 子串位置函數(shù)INDEX INDEX follow me me 的值為8 INDEX String1 String2 若string2是string1子串 返回String2在String1中起始位置 否則返回0 4 字符串比較函數(shù)LGE LGT LLE和LLT LGE string1 string2 LGT string1 string2 LLE string1 string2 LLT string1 string2 5 字符與ASCII轉(zhuǎn)化 IACHAR A 的值為65IACHAR Z 的值為90ICHAR ABC 的值為65 字符 ASCII IACHAR或ICHAR IACHAR 字符轉(zhuǎn)化為ASCII碼ICHAR 字符轉(zhuǎn)化為在相應(yīng)處理系統(tǒng)中的字符序號(hào) 函數(shù)取值 真或假 ASCII 字符 ACHAR或CHAR ACHAR 65 的值為 A ACHAR 90 的值為 Z P82例5 7在讀入的一批單詞中 把以字母B開頭的打印出來(lái) 直到輸入ZZZ結(jié)束 PROGRAMCHAR 2IMPLICITNONECHARACTER 10 WORDDOREAD WORDIF WORD ZZZ EXITIF WORD 1 1 B PRINT WORDENDDOENDPROGRAMCHAR 2 也可以用INDEX函數(shù) PROGRAMCHAR 2IMPLICITNONECHARACTER 10 WORDDOREAD WORDIF WORD ZZZ EXITIF INDEX WORD B 1 PRINT WORDENDDOENDPROGRAMCHAR 2 P82例5 8將一個(gè)字符串中的字符逆序打印出來(lái)Programchar 3implicitnoneinteger i j lenthcharacter len 8 s1 s2read s1lenth LEN TRIM s1 doi 1 lenthj lenth i 1s2 j j s1 i i enddowrite oldstring s1write newstring s2endprogramchar 3 為了保密 常不采用明碼電文 而用密碼電文 按事先約定的規(guī)律將一個(gè)字符轉(zhuǎn)換為另一個(gè)字符 收?qǐng)?bào)人則按相反的規(guī)律轉(zhuǎn)換得到原來(lái)的字符 例如 將字母A F B G C H 即將一個(gè)字母變成其后第五個(gè)字母 例如 HEISINBEIJING 應(yīng)轉(zhuǎn)換為 MJNXNSGJNONSL P83例5 9翻譯密碼 分析 可用IACHAR函數(shù)取該字母的ASCII代碼 加上5 再用ACHAR函數(shù)按其ASCII碼轉(zhuǎn)換為另一個(gè)字母 當(dāng)字母為V時(shí) 加5就超過了Z 故應(yīng)使之轉(zhuǎn)換為A 同理 W B X C Y D Z E 只對(duì)字母進(jìn)行轉(zhuǎn)換 對(duì)字母之外的字符維持原樣 integer i j kcharacter len 80 line1 line2Character len 1 l1read line1dok 1 80l1 line1 k k if lge l1 A and lle l1 Z or lge l1 a and lle l1 z theni iachar l1 j i 5if j iachar z or j iachar Z and j ichar Z 6 j j 26l1 achar j endifline2 k k l1enddowrite line2end 用表控方式輸入字符串時(shí) 要加引號(hào) 5 6邏輯型數(shù)據(jù) 邏輯常量只有真和假兩種值 TRUE 和 FALSE 變量說明的格式為 LOGICAL KIND 類別值 屬性列表 變量列表 例5 11當(dāng)某點(diǎn)的X Y坐標(biāo)落在圖中四個(gè)方塊內(nèi)和方塊邊上時(shí) Z 0 如在方塊外 Z 3 INTEGER ZREAL X YLOGICAL P Q R SREAD X YZ 3P X 5 0 AND X 1 0 AND X 6 0 AND Y 2 0 AND Y 4 0IF P AND R OR P AND S OR Q AND R OR Q AND S Z 0PRINT X X Y Y Z ZEND 作業(yè) P874 8 9 10 4 三角形面積 三個(gè)邊長(zhǎng) a b c面積 sqrt s s a s b s c 其中s a b c 2 implicitnonecharacter str1 m str 25integer i n 12str 1 1 m doi 1 nstr i 2 i 2 achar iachar str1 i str i 2 1 i 2 1 achar iachar str1 i enddoprint strend 作業(yè) P87 7把25個(gè)字母A B Y 打印出 MLNKO 作業(yè) P87 8將一個(gè)字符串中的前導(dǎo)空格 后置空格

溫馨提示

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

評(píng)論

0/150

提交評(píng)論