Re: [問題] 我想問有關宣告的問題

看板Fortran作者 (Desperate Alex)時間15年前 (2009/03/04 22:44), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/3 (看更多)
integer 整數 變數┼real 浮點數 └character 字串 以上三個都是變數,當然還有logical等等 parameter 常數,常數可以是整數,浮點數,字串等等 電腦裡的變數是儲存在記憶體(就是RAM)裡面的東西, 當你宣告的時候,就是告訴電腦要分配記憶體某個部份來儲存這個變數。 但是常數不是,常數是不可以改變數值的東西,它也不是記錄在記憶體。 例如: real :: abc 這樣就是叫電腦分配記憶體的某個區塊,這個區塊的名字叫做abc,且這個區塊 儲存的變數必須「只能」以浮點數的方式儲存 「=」這個等號不是你平常數學裡的等號,等號的意思是把「等號右邊的值」儲存到 「等號左邊的變數」 例如: abc=3.0 這樣電腦就會去找名叫abc的記憶體區塊,然後把3.0這個浮點數儲存在這個記憶體區塊。 又例如: abc=1.5*2.0 這樣電腦就會去找名叫abc的記憶體區塊,然後把1.5*2.0的值(也就是3.0這個浮點數), 儲存在這個記憶體區塊。 再舉例: integer :: i i=3 這樣電腦就會先分配一個記憶體區塊並把這個記憶體區塊命名為i,而且這個 叫做i的記憶體區塊「只能」儲存整數。然後電腦就會去找命名為i的記憶體區塊, 將3這個整數值儲存進這個區塊。 再再舉例: integer :: i i=3.0 同上,但是這次問題來了。3.0這個浮點數要存入「只能」儲存整數的i, 這樣就怪怪的,所以大部分的電腦就會無條件捨去法,自動變成 「把整數3儲存到名為i的記憶體區塊」。 這樣看來好像還是沒有問題,但是如果是下面這個程式 integer :: i i=3.5 就慘了,因為3.5這個浮點數被轉換成3這個整數,然後在儲存在名為i的記憶體區塊。 這就是初學者很常犯的毛病。 累了,還沒跟你說到常數, 其餘不懂的地方可以看彭國倫的書,或是板上其他大大指點。 ※ 引述《john11894324 (維尼)》之銘言: : INTEGER REAL CHARACTER : 常數 實數 字串 : 我想問的是有關宣告的問題? : 不宣告 所代表的是哪一種東西?上述三者 : 代表一個空間嗎? : 還有常數與實數差在哪? : 我知道我的問題有點多! : 拜託大家了 : (第一個學的程式語言是fortran真不知該如何理解) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.128.128.198

03/05 20:41, , 1F
謝謝
03/05 20:41, 1F
文章代碼(AID): #19hfFaxC (Fortran)
文章代碼(AID): #19hfFaxC (Fortran)