Chapter 指標.

Slides:



Advertisements
Similar presentations
渡黑水溝 郁永河. 2 戎克船:是明末清初時期往返兩岸的主要交通工具 ∗ 1. 關於台灣的開發歷史,我們到底了解多少呢?不妨試著說出 就我們所知有關台灣開發史的故事、小說、電影、音樂與大 家分享。 ∗ 2. 什麼是黑水溝?黑水溝為什麼會成為大陸移民渡海來臺時最 大的威脅? ∗ 3. 有聽過「六死三留一回頭」、「有唐山公,無唐山嬤」這兩.
Advertisements

等可能性事件的概率(二) 上虞春晖中学数学组欢迎你! 1 本课件制作于 §10.5 等可能事件 的概率 ( 二 )
1 教師敘薪 Q & A 教師敘薪 Q & A 新竹縣立新湖國中 陳淑芬 新竹縣立自強國中 楊美娟
103 學年度縣內介聘申請說明會 南郭國小 教務主任張妙芬.  重要作業日程 : 1 、 5/1( 四 ) 前超額學校 ( 含移撥超額 ) 備文函報縣府教 育處輔導介聘教師名單 2 、 5/7( 三 ) 超額教師積分審查( 9 : : 00 、 13 : : 00 )。 3.
大學甄選申請入學 〃備審資料 〃面試. 確認你的追求對象 學校環境概況 系別特質 有無交換學生 未來出路 性質相似的科系要清楚之間的差別 ex: 社會福利學系,社會工作學系, 社會學系.
人文行動考察 羅東聖母醫院 老人醫療大樓 吳采凌 黃玨宸 劉映姍 陳嫚萱.
焦點 1 陸域生態系. 臺灣的陸域生態系 臺灣四面環海 黑潮通過  高溫, 雨量充沛 熱帶, 亞熱帶氣候.
資源問題與環境保育 第 6 章. 學完本章我能 ……  知道中國土地資源的問題與保育  了解中國水資源的問題與保育  知道中國森林資源的問題與保育  能分析自然環境和人文環境如何影響人類 的生活型態  說舉出全球面臨與關心的課題.
景美樣品房工程變更 / 追加請款 / 說明 102/08/09 樣品房停工 102/10/10 樣品房完工 102/09/26 向工務部提出 追加工程估價單 102/10/25 經工務部審核 轉送採發部門 102/09/03 工地會議 確認後續施工方式 102/11/ /11/ /12/09.
統計之迷思問題 保險 4B 張君翌. 迷思問題及教學者之對策 常見迷思概念教學者之對策 解題的過程重於答案 例 : 全班有 50 位同學,英文不及格的有 15 人,數學不及格的有 19 人,英文與 數學都及格的有 21 人。請問英文與數 學都不及格的有幾人? 老師常使用畫圖來解決這樣的問題,英文和.
社團法人台南市癲癇之友協會 講師:王乃央老師
寓言 何謂寓言? 寓言中的主角選擇 以動物為主角,形象分析—以成語及諺語中來歸納動物形象 以人為主角,形象分析
第七章 外營力作用 第一節 風化 第二節 崩壞 第三節 侵蝕與堆積.
科學論文 鰂魚涌街的衛生情況 作者:廖梓芯 學校:北角官立上午小學 班級:P.5A.
物理治療師之僱傭關係 九十二年四月十二日.
勿讓權利睡著- 談車禍之損害賠償與消滅時效.
二、開港前的經濟發展 (一)土地開墾和農業發展 1.漢人移民的遷徙與拓墾 (1)遷徙 A.居住區 a.泉州人最多:沿海
設計新銳能量輔導 實習期中感想 實習生:賴美廷 部落格:TO13004.
日本的〈地獄劇〉 與 中國的〈目連戲〉.
授課教師:羅雅柔 博士 學員:吳沛臻/邱美如/張維庭/黃茹巧
國小教師檢定經驗分享 分享者:胡瑋婷 現職:國語日報語文中心寫作班教師 閱讀寫作營教材編輯及任課講師 榮獲「教育部教育實習績優獎」全國第三名.
民主政治的運作
教育與學習科技學系 103學年度課程說明 103年9月2日.
國有不動產撥、借用法令與實務 財政部國有財產局 接收保管組撥用科 蔡芳宜.
情緒與壓力管理 手部舒壓運動 第六組.
公務人員 育嬰留職停薪權益.
大學教、職員之法義務規範與法律效果 台南地檢署林仲斌.
第三課 政府的組織、功能與權限 一、內閣制 壹、民主國家的政府體制 二、總統制 三、混合制 四、小結 一、前言 貳、我國的中央政府體制
明代開國謀臣 劉伯溫 組員:吳政儒 林天財 王鈴秀 陳冠呈 施典均 李孟儒.
中央與地方教育權限 第八組 王湘婷 邱淑婷 全 彥 洪英博
《成佛之道》序~第三章 圓融 /
中國宦官 鄭永富 鄭雅之 莊尉慈.
約用工讀生/學生助理說明會 人事室報告
簡報大綱 壹、親師溝通 貳、學生不當行為的處理 參、學生輔導 肆、個案研討分析.
指導教授:古錦松 分享同學: 蔡斗溍、陳姿云 陳俊仰、陳國睿(助教)
福山國小 100學年度 新生家長始業輔導.
貨物稅稅務法令介紹 竹東稽徵所.
大气的受热过程 周南中学.
九年一貫課程綱要微調 健康與體育領域召集人 「課綱微調轉化」研習
公私立大學特色介紹 (以第二類組為主) 報告人:吳婉綺.
五-4 台灣的生活禮俗 組員:603 15號 黃醴萬 6號 吳家熙 5號 楊証傑 11號 李偉新.
Chapter 4 流程控制.
危險情人的特徵 危險情人的特徵.
機關團體所得稅申報實務 中區國稅局苗栗縣分局第一課林天琴.
幼兒環境學習規畫 期末報告 指導老師:蔡其蓁 老師
空間向量 朱泰吉 蔡宇翔 張力夫 莊孟霏.
財政部臺灣省北區國稅局中壢稽徵所 各類所得扣繳暨免扣繳法令.
消費者行為分析 講師 吳秀珍.
「103年寒假教育優先區中小學生營隊」 校外補助計畫申請說明會.
水土保持法中「連續處罰」及「限期改正」制度之法律研究
國有公用財產管理及被占用處理暨活化運用法規與實務(含座談) 104年度教育部暨部屬機關學校總務人員研習會-不動產管理班
行行重行行,與君生別離。 相去萬餘里,各在天一涯。 行行重行行:走了一程又一程 生別離:在有生之年分離 語出楚辭:「悲莫悲兮生別離,
Chapter 模組 台灣師範大學數學系 黃聰明.
第五章 数 组 Fortran 90数组的特点: *** 可以逐个元素对数组进行操作,也可以对数组整体、数组段直接进行操作;
提升國民小學教師健康教育專業能力三年計畫
笫11章指针 指针是现代程序设计语言中一个非常重要的概念,它使语言的功能大大加强。FORTRAN90以前的FORTRAN版本,没有指针这种数据类型,FORTRAN90对其作了重大改进,引入了指针的概念。但是值得注意的是,FORTRAN90的指针与C语言中的指针并不相同,因为它并不代表一个变量的地址,而是代表一个变量的别名,实质上它相当于C++里的引用,本章介绍指针的概念与应用。
Chapter 2 Basic Elements of Fortran
第4章 常量和变量 常量和变量都是程序中预留的用于保存数据的内存空间。常量的值在程序运行过程中始终不会发生变化。而变量的值在程序的运行过程中是可以变化的。在Fortran语言中,有五种基本的数据类型可供使用。他们分别是整型(INTEGER)、实型(REAL)、复型(COMPLEX)、字符型(CHARACTER)和逻辑型(LOGICAL)。按用途,又可以分数值型、字符型和逻辑型三种。相应的常量和变量也可以分为这三种。本章将按照用途介绍常量和变量的基本概念。
暴力、草莽、土野、情色、權慾 —華西街的成人童話
馬公高中100學年101大學博覽會 專題演講 演講主題 如何選填適合自己的大學科系
刑事訴訟法 不受理.
性騷擾防治宣導.
創業環境分析與 風險評估 赫斯提亞負責人:謝馥仲先生 主講 演講時間 : 2008/05/01.
葉脈標本的創意製作.
穿出自我… 高一家政.
第14章 基本数值算法举例 数值计算是Fortran语言的强项,也是Fortran语言发明者的初衷。本节主要介绍在计算机程序设计语言学习中经常遇到的一些基本数值算法。目的在于加深对Fortran语言的理解和分析,解决问题的一般思路,并希望通过这些例程介绍一些代码编写方面的技巧。
現代專案管理教材 第一章 專案與專案管理 博碩文化出版發行.
財政四 徐瑜鴻 財政四 林博硯 財政四 陳玄恩 財政四 王張皓鈞 財政四 李定瑜
品格:熱 性格的培養6親熱就,48頁。 (一)什麼是熱.
Presentation transcript:

Chapter 指標

P-0 指標基本概念 指標是一種間接使用資料的方法,指標變數是用 來儲存記憶體位址 指標運作步驟: 取出指標中所儲存的記憶體位置,到這個記憶體位置讀寫資料。 記憶體來源有兩種: 1). 記錄其他非指標變數的記憶體位置 2). 程式執行中動態配置一塊記憶體

P-1 使用指標 記錄其他非指標變數的記憶體位置 程式說明 將指標指向已宣告的記憶體,則可以利用指標來間接地 使用記憶體 integer, pointer :: p integer, target :: a p => a 宣告p為一個指標,其指標所指向的記憶體的資料型態為整數 宣告a為一個可以當成目標的變數 將指標p指到變數a

P-1 使用指標 < Ex. 完整程式> 記憶體 位置 變數 內容 001 a 1 002 p 3 2 001 program ex1001 implicit none integer, pointer :: p integer, target :: a=1 p=>a write(*,*) p a=2 p=3 write(*,*) a end program ex1001 記憶體 位置 變數 內容 001 a 1 002 p 指標的宣告 3 2 001 < Ex. 執行結果> 1 2 3 把指標p指到變數a 改變a的值 改變指標p指向的記憶體內容

P-1 使用指標 程式執行中動態配置一塊記憶體 程式說明 將指標指向未知的記憶體,可以在程式執行中動態配置 或釋放,但無法直接使用記憶體變數,必須藉由指標來 使用記憶體 程式說明 allocate(p) deallocate(p) 配置一塊記憶體空間給指標p。注意使用指標之前,一定要先設定好指標的目標,否則會出現記憶體使用錯誤的訊息,如 segmentation fault 經由allocate得到的記憶體空間,需用deallocate釋放回去,否則此記憶體空間一直被佔用,無法使用,直到整個程式結束為止

P-1 使用指標 < Ex. 完整程式> 記憶體 位置 變數 內容 001 a 1 002 b 2 003 p ??? 001 program ex1002 implicit none integer, target :: a=1, b=2 integer, pointer :: p allocate(p) p=100 write(*,*) p deallocate(p) p => a end program 記憶體 位置 變數 內容 001 a 1 002 b 2 003 p ??? 配置一塊可以存放integer的記憶體空間給指標p 001 ??? 得到記憶體後指標p可以像一般整數一樣來使用 100 < Ex. 執行結果> 100 釋放記憶體 把指標p指到變數a

P-2 指標相關函式 associated ( pointer, target ) 檢查指標pointer是否有設定指向目標變數target,傳回值為邏輯值。若省略目標變數target,則只檢查這個指標是否已經指定好方向 null ( ) Fortran 95 新增的函數。會傳回一個不能使用的記憶體位址,在指標還沒有指向前設定成這個值,可以讓 assocaited 函式判斷不會出錯 nullify ( pointer1, pointer2, … ) 用來把指標設定成還沒有指向任何記憶體位址。Fortran 90只能使用nullify而不能使用null函數來設定指標 Ex. integer, pointer :: p => null( ) Ex. integer, pointer :: p nullify(p)

P-3 指標陣列 指標陣列使用方法一 程式說明 把指標指向已宣告的陣列,配置記憶體空間來使用 integer, pointer :: a (:) integer, target :: b(5)=(/ 1,2,3,4,5 /) a => b 宣告a為一個一維指標陣列,其指標所指向的記憶體的資料型態為整數 宣告b為一個可以當成目標的陣列 將指標a內的元素指到b內相對應的元素

P-3 指標陣列 a a a b 1 2 3 4 5 < Ex. 完整程式> < Ex. 執行結果> 指標陣列的宣告 program ex1004 implicit none integer, pointer :: a(:) integer, target :: b(5)=(/ 1,2,3,4,5 /) a=>b write(*,*) a a=>b(1:3) a=>b(1:5:2) end program a a 指標陣列的宣告 b 1 2 3 4 5 a(1~5)=>b(1~5) < Ex. 執行結果> 1 2 3 4 5 1 2 3 1 3 5 a(1)=>b(1) a(2)=>b(2) a(3)=>b(3) a(1)=>b(1) a(2)=>b(3) a(3)=>b(5)

P-3 指標陣列 指標陣列使用方法二 程式說明 把指標指向未知的記憶體,在程式執行中動態配置或釋放 allocate(a(5)) deallocate(a) 配置5個整數的空間給指標陣列a allocate得到的記憶體要記得歸還

P-3 指標陣列 a ??? 1 2 3 4 5 < Ex. 完整程式> < Ex. 執行結果> program ex1005 implicit none integer, pointer :: a(:) allocate( a(5) ) a = (/ 1,2,3,4,5 /) write(*,*) a deallocate( a ) end program 配置5個整數的空間給指標陣列a 1 2 3 4 5 < Ex. 執行結果> 1 2 3 4 5 得到記憶體後指標陣列a可以像一般陣列一樣來使用 allocate得到的記憶體要記得歸還

P-4 指標與函式 指標變數可以當成參數在 subroutine 之間傳遞, 也可以當成 function 的傳回值。 使用原則: 1). 要把指標傳遞給 subroutine 時,要宣告這個 subroutine 的參數使用介面 interface。 2). 指標參數宣告時不需 intent 這個形容詞。 3). Function 傳回值若為指標時,需要定義 function 的 interface。

P-3 指標陣列 < Ex. 完整程式> <接下頁> program ex1007 implicit none integer, target :: a(8)=(/ 10, 15, 8, 25, 9, 20, 17, 19 /) integer, pointer :: p(:) interface function getmin(p) integer, pointer :: getmin end function end interface p=>a(1:8:2) write(*,*) getmin(p) end program <接下頁> p(1)=>a(1) p(2)=>a(3) p(3)=>a(5) p(4)=>a(7)

P-3 指標陣列 < Ex. 完整程式> < Ex. 執行結果> function getmin(p) implicit none integer, pointer :: p(:) integer, pointer :: getmin integer :: i, s, min_value s = size(p,1) min_value = 2**30 do I = 1, s if ( min_value > p(i) ) then min_value = p(i) getmin => p(i) end if end do return end function 查尋陣列的大小 先把 min_value 設定成一個很大的值 < Ex. 執行結果> 8

P-3 指標陣列 < Ex. 完整程式> <接下頁> module func contains function getmin(p) implicit none integer, pointer :: p(:) integer, pointer :: getmin integer :: i, s, min_value s=size(p,1) min_value = 2**30 do i=1,s if ( min_value > p(i) ) then min_value = p(i) getmin => p(i) end if end do <接下頁> 把function寫在module裡面,是比較好的寫法

P-3 指標陣列 < Ex. 完整程式> < Ex. 執行結果> return end function end module program ex1008 use func implicit none integer, target :: a(8)=(/ 10, 15, 8, 25, 9, 20, 17, 19 /) integer, pointer :: p(:) p => a(1:8:2) write(*,*) getmin(p) end program < Ex. 執行結果> 8