版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Fortran程序設(shè)計第十四講習題課與GDB調(diào)試復習第十三講內(nèi)容舊版本的Fortran特性格式:1-5列是行號第一列是C或者星號,表示本行為注釋第六列如果不是空白或0,表示續(xù)行注釋有效語句位置續(xù)行舊版本
第一列用C或*從第7列到72列第6列非0為續(xù)行Fortran90!開始的行從第1-132列用&表示續(xù)行行號在1-5列每行程序的最前面DATA語句的使用 變量初始化: DATAa,b,c/1.0,2*2.0/ 數(shù)組初始化: REALa(2,2) DATAa/1.,2.,3.,4./!按列優(yōu)先舊的PARAMETER語句:INTEGERSIZEPARAMETER(SIZE=1000)
COMMON語句用BLOCKDATA初始化COMMON塊中的數(shù)據(jù)BLOCKDATAinitialINTEGERvar1,var2COMMON/mydata/var1,var2DATAvar1,var2/1,2/ENDBLOCKDATA四條不必要的子程序特性另一子程序的返回點另一入口點語句函數(shù)將內(nèi)置函數(shù)作為參數(shù)傳遞語句函數(shù)PAUSESTOPENDPAUSE語句用于暫停程序的執(zhí)行已經(jīng)在Fortran95中被刪掉STOP語句用于終止程序的執(zhí)行可以在STOP后面加參數(shù),形式如下:STOPstop_value例如:STOP‘Normalcompletion’當終止時,會顯示這個字符串END語句在Fortran90之前,所有的程序單元都用END結(jié)束Fortran90以后,標準是用形如:ENDPROGRAMENDMODULE之類的語句當然,也可以單用END但是,內(nèi)部過程和模塊過程必須用ENDSUBROUTINE和ENDFUNCTION算術(shù)IF語句GOTO語句計算GOTO語句賦值GOTO語句舊的DO循環(huán)與CONTINUE多文件編譯14.1迷宮的解法一設(shè)置輔助數(shù)組的解法:設(shè)置三個和maze數(shù)組一樣結(jié)構(gòu)的數(shù)組:Step_maze用于保存當前塊在路徑中的步數(shù)Leave_direction用于保存在路徑中離開當前塊的方向,0表示東面,1,2,3分別表示南西北From_direction表示從哪個方向到達當前塊過程列表:Createmaze(maze,n)創(chuàng)建一個隨機的二維方陣maze(n,n),方陣的元素要么是0要么是1,1表示迷宮的通道,0表示迷宮的墻Init_random_seed()初始化隨機數(shù)種子Solve(maze,n)在迷宮maze(n,n)中找到一條從maze(1,1)到maze(n,n)的路徑,如果找不到,輸出提示信息,找到就輸出路徑步驟get_new_position(n,i,j,direction)在數(shù)組direction中取得i,j的方向,并計算這個方向所對應(yīng)的新的i,j值check_direction(maze,n,i,j,direction,step_maze)檢查迷宮的下一個方向能否走的通14.2迷宮的解法二在這個算法中,不設(shè)置輔助數(shù)組用自定義的數(shù)據(jù)結(jié)構(gòu)來保存在每個塊上面的步數(shù)、方向等信息TYPE::maze_elementINTEGER::roadINTEGER::leave_directionINTEGER::from_directionINTEGER::stepENDTYPEmaze_element14.3迷宮的遞歸解法見代碼14.4Fortran程序的調(diào)試程序的調(diào)試 程序沒有語法錯誤,但是運行出錯 程序運行結(jié)果和預期不符 程序運行結(jié)果的精度達不到要求調(diào)試的方法:在程序中增加調(diào)試語句,來輸出一些中間結(jié)果用調(diào)試軟件圖形化的調(diào)試軟件命令行的調(diào)試軟件14.5GDB的使用如果需要調(diào)試程序,編譯的時候添加-g選項gfortran–gexample.f90–oexample生成的example.exe文件就是可執(zhí)行文件此時,可以輸入gdbexample進入調(diào)試程序14.6GDB使用概述GDB的命令可以輸入help查看輸入命令時,可以不用輸入完整的命令,只需要前面幾個字母,當然,這前面幾個字母應(yīng)該唯一區(qū)分了該命令輸入一個或多個字母后,連按兩次TAB鍵,可以列出所有以該字母打頭的命令14帝.7在GD揉B中運監(jiān)行程霞序rru腫n可以退在gd困b中運害行程殊序14賭.8暫停計與恢聲復程賞序運驕行調(diào)試塌程序曠中,社暫停炮程序暑運行餡是必惑須的藥,GD賀B可以丑方便菌地暫恒停程聚序的攜運行攝。你敘可以頑設(shè)置趣程序壓的在伯哪行適停住山,在討什么論條件稠下停育住,音在收虧到什捏么信閣號時軍停往左等等勇。以故便于隸你查嚇看運即行時沈的變叉量,擠以及福運行套時的庸流程郊。當進胖程被gd女b停住置時,改你可漏以使充用in暢fo數(shù)p當ro耐gr之a(chǎn)m來查暖看程未序的衣是否磚在運磁行,兄進程坡號,黃被暫炭停的鍵原因拾。在gd珠b中,晉我們起可以兄有以琴下幾怎種暫戚停方丙式:湯斷點待(Br橡ea叔kP究oi燒nt)、鞭觀察投點(Wa劉tc齊hP成oi滔nt)、宗捕捉奸點(Ca喜tc伐hP袋oi夜nt)、邊信號怨(Si壟gn導al幕s)、暗線程泊停止膨(Th扁re屢ad園S另to津ps)。摘如果遍要恢屋復程諒序運畫行,抓可以議使用c或是co控nt弓in后ue命令毒。14而.8蕉.1設(shè)置綠斷點br泄ea怨kbr株ea牛k鬼<s減ub錘ro或ut控in餓e>br懶ea喚k媽<li船ne罵nu描m>br宜ea叨k度..源.康if鐘<證co詳nd陣it刃io艇n>..間.可以恒是上吃述的鵲參數(shù)銀,co恩nd兇it敞io艇n表示尖條件恨,在涂條件斯成立釀時停墾住。折比如倆在循環(huán)卵體中,孔可以怨設(shè)置br蹦ea荷k采ifi=1誓00婆,表示掛當i為10鏈0時停億住程訓序。查看消斷點涼:in繪fo趙b技re描ak煎po堡in燥ts蠶[殺n]in初fo傍b邁re縣ak真[角n]14膜.8卵.2設(shè)置稍觀察但點觀察協(xié)點一動般來愈觀察跑某個儀表達賤式(科變量倆也是誓一種廊表達搜式)堡的值購是否神有變察化了閘,如翠果有昂變化肅,馬群上停太住程足序。訴我們沃有下糊面的珠幾種褲方法柏來設(shè)漆置觀登察點罷:wa足tc斬h援<ex樣pr>為表尋達式盒(變辜量)ex聰pr設(shè)置鈴一個冬觀察饑點。李一量今表達搭式值專有變怨化時徑,馬菌上停直住程來序。rw靠at球ch<ex閃pr>當表欲達式闖(變俊量)ex欠pr被讀找時,益停住懼程序庸。aw感at跳ch<ex窮pr>當表妻達式揭(變術(shù)量)鴉的值仁被讀托或被傳寫時茫,停摟住程解序。in按fowa碧tc鑄hp其oi蜓nt套s列出摸當前嬸所設(shè)稍置了濟的所給有觀教察點是。14告.8蘿.3維護層停止期點在GD臨B中,館如果未你覺容得已稻定義或好的輕停止柔點沒確有用想了,碑你可城以使皆用de員le緒te伍、c殲le該ar帥、d撒is售ab江le雷、e亮na擦bl頑e這幾擺個命蚊令來堪進行透維護寫。cl錦ea馳r清除芒所有嘆的已框定義際的停竄止點澡。cl焰ea并r拒<f鑒un代ct原io頂n>清除紅所有裳設(shè)置冰在函返數(shù)上削的停杯止點銀。cl什ea委r責<li績ne易nu總m>清除疼所有炭設(shè)置龜在指佳定行冠上的朗停止陽點。de蘭le菠te旬[剃br剪ea廢kp塌oi飼nt演s]贊[井ra吉ng傷e.巖..蛙]刪除察指定脫的斷討點,br板ea隔kp擺oi矮nt爬s為斷壟點號婦。如票果不顛指定姿斷點惑號,粥則表織示刪意除所結(jié)有的兇斷點蜘。ra御ng趴e表示限斷點困號的卸范圍房誠(如墨:3-牧7)。艦其簡躍寫命叔令為d。比刪紙除更燈好的簽一種忠方法沈是di蔥sa扔bl辭e停止內(nèi)點,di慘sa苦bl政e了的印停止假點,GD過B不會個刪除芒,當跪你還辨需要用時,en拘ab淘le即可妹,就非好像切回收塘站一蒼樣。di格sa旅bl買e牲[b龍re懼ak梳po撒in檔ts漫]壞[r娃an漸ge農(nóng)..膝.]di尾sa權(quán)bl晴e所指逼定的福停止顧點,br共ea柴kp駁oi瞞nt兇s為停盒止點類號。守如果賊什么臺都不覽指定座,表趨示di夾sa計bl定e所有驢的停著止點掘。簡框?qū)懨溋钍莇i唯s.en途ab墓le派[標br苗ea磚kp流oi桃nt翼s]燭[歐ra差ng訓e.扎..漿]en帖ab抖le所指域定的奇停止錢點,br泰ea菌kp誦oi胖nt跑s為停蹤蝶止點勿號。en沉ab圣le裹[談br弱ea受kp償oi斷nt老s]患o勿nc撲e做ra迫ng芝e.寺..en滑ab章le所指劍定的鈔停止嘴點一重次,銀當程滋序停氧止后捕,該庭停止費點馬錢上被GD喂B自動di竄sa謊bl例e。en叨ab殘le持[搬br亭ea鵲kp圾oi鎖nt易s]割d灰el江et淘e蘇ra輝ng廣e.膽..en嗽ab曉le所指更定的喝停止勒點一療次,宅當程場序停喊止后役,該霞停止政點馬翅上被GD州B自動皺刪除黎。14范.8繭.4為停諸止點貍設(shè)定鈔運行濕命令使用GD爽B提供除的co裁mm刷an有d命令辮來設(shè)糕置停胳止點蜓的運妹行命拌令。也就舟是說損,當悟運行祥的程冤序在膏被停帽止住盡時,恐我們弟可以棚讓其午自動掏運行漸一些耀別的駕命令悼。co洗mm解an畏ds婚[bn夜um]..隱.追co伐mm縮慧an塵d-明li責st及.友..en昏d為斷碗點號bn原um指寫宋一個夠命令無列表示。當孔程序賺被該惕斷點少停住獵時,gd緩b會依聾次運倒行命靠令列復表中很的命旋令。例如萄:br宰ea像kfo淋oif杏x禾>0co睜mm誦an鎮(zhèn)dspr拒in且tf"x團i管s鎮(zhèn)%d濾/n"院,xco跳nt躺in武ueen流d斷點明設(shè)置踩在函扣數(shù)fo哨o中,帆斷點塊條件神是x>妥0,如額果程析序被哭斷住妖后,射也就速是,撒一旦x的值親在fo劫o函數(shù)晃中大蹤蝶于0,GD哲B會自幻玉動打往印出x的值高,并伍繼續(xù)黨運行凝程序灶。如果指你要箏清除之斷點介上的陷命令態(tài)序列冬,那息么只尺要簡悅單的的執(zhí)行繞一下co臉mm炸an鎖ds命令污,并類直接忠在打博個en框d就行產(chǎn)了。14蝕.8塌.5恢復默程序布運行僵和單測步調(diào)訴試當程父序被墾停住捷了,油你可剝以用co鋼nt禮in岔ue命令拆恢復尼程序飼的運滋行直嫩到程放序結(jié)源束,聲或下獵一個巖斷點證到來襪。也災(zāi)可以昆使用st蕩ep或ne赴xt命令茫單步魚跟蹤前程序莊。co搬nt蛇in轎ue木[行ig朝no殿re躍-c延ou雨nt月]c園[i字gn培or致e-捧co饅un年t]fg[i聰gn禿or帽e-籮co彩un爆t]恢復便程序惱運行變,直鏈到程陷序結(jié)木束,蜓或是經(jīng)下一雕個斷刷點到努來。ig墾no嘩re齒-c綁ou玻nt表示震忽略下其后嬌的斷出點次給數(shù)。co顏nt栽in沃ue采,c針,f飄g三個月命令管都是附一樣愛的意督思。st匪ep怒<叨co恒un招t>單步匆跟蹤赴,如要果有躺函數(shù)英調(diào)用篇,他恭會進法入該撤函數(shù)熔。進紫入函花數(shù)的流前提穴是,發(fā)此函霧數(shù)被稍編譯箱有de痕bu鹿g信息松。很擁像VC等工臨具中準的st筒ep村i窯n。后掛面可因以加co裳un趁t也可叮以不瘡加,巨不加臺表示邊一條良條地銜執(zhí)行氣,加咸表示食執(zhí)行具后面模的co像un壩t條指少令,謀然后斧再停項住。ne雕xt尤<脂co竭un蠻t>同樣飼單步心跟蹤面,如悔果有萬函數(shù)禮調(diào)用扒,他養(yǎng)不會租進入削該函置數(shù)。乖很像VC等工辰具中蜂的st陜ep碌o讀ve田r。后面蠻可以狐加co嗓un法t也可凡以不蜂加,蘋不加幅表示紀一條勒條地遮執(zhí)行圓,加貨表示拐執(zhí)行漆后面終的co美un時t條指污令,秩然后訂再停特住。un全ti楊l或u當你狂厭倦涌了在袍一個擔循環(huán)遞體內(nèi)言單步節(jié)跟蹤憑時,績這個侄命令葉可以抱運行裂程序勾直到乏退出懂循環(huán)米體。14彩.9查看骨棧信腥息查看裂棧信很息——外——賣—當程凝序被獵停住凱了,綠你需織要做狂的第貞一件瀉事就霜是查殼看程窩序是饅在哪忠里停落住的針。當凈你的怪程序意調(diào)用返了一哄個函饑數(shù),遲函數(shù)串的地殃址,廳函數(shù)流參數(shù)寨,函諷數(shù)內(nèi)中的局努部變首量都憶會被豆壓入存“棧梢”(St缸ac宅k)中兩。你挖可以柄用GD統(tǒng)B命令平來查演看當施前的僵棧中梁的信斥息。查看節(jié)函數(shù)斷調(diào)用閉棧信恢息的GD略B命令判:ba澇ck智tr伍ac庭ebt14僅.1圈0顯示筍源代億碼GD片B可以惜打印滅出所宏調(diào)試緒程序吼的源遷代碼東,當粘然,踩在程源序編醋譯時景一定噴要加縣上-g的參玩數(shù),賓把源廚程序戰(zhàn)信息大編譯芽到執(zhí)孕行文槳件中貍。不腥然就踐看不嫩到源溫程序場了。另當程它序停畏下來榜以后菌,GD也B會報梳告程賞序停緩在了育那個距文件天的第定幾行肢上。箱你可測以用li部st命令票來打栗印程僚序的盜源代嫂碼。li鄭st睜<li銀ne丸nu留m>顯示款程序逆第li豎ne真nu嗚m行的邊周圍只的源抵程序碧。li室st杠<潔fu而nc榜ti鏟on排>顯示籃函數(shù)銀名為fu豪nc貴ti嶼on的函港數(shù)的哲源程哭序。li困st顯示劈燕當前甚行后報面的夢源程錦序。li含st匪-顯示鑰當前晉行前崇面的爬源程方序。14往.1效1查看抓運行井時數(shù)蒙據(jù)在你紅調(diào)試戚程序劃時,判當程氏序被飛停住灣時,腎你可埋以使讓用pr在in娘t命令思(簡郵寫命狠令為p),樸或是林同義旋命令in千sp裂ec站t來查胞看當殲前程連序的慕運行復數(shù)據(jù)滲。pr辦in該t命令依的格是式是箏:pr砍in六t刮<ex詞pr>pr象in母t概/<皇f>談<ex宏pr><ex客pr>是表壓達式蛙,是趣你所田調(diào)試微的程它序的高語言著的表澤達式膨(GD肌B可以瓜調(diào)試穗多種栗編程賢語言緞),<f酒>是輸輔出的肯格式后,比團如,枝如果偶要把懶表達頃式按16進制竹的格削式輸真出,豬那么誤就是/x。一般云來說漠,GD兄B會根致?lián)冐Q量的蘇類型醉輸出藍變量覆的值懼。但帖你也兵可以易自定許義GD笑B的輸機出的掩格式陡。例努如,深你想比輸出帆一個麻整數(shù)遮的十翁六進佩制,譯或是側(cè)二進聽制來職查看盈這個諷整型貍變量盾的中集的位否的情史況。竄要做劫到這爪樣,勒你可繪以使奪用GD之B的數(shù)侍據(jù)顯贈示格頃式:x按十終六進櫻制格程式顯櫻示變卸量。d按十勉進制蕩格式弟顯示伸變量魚。u按十尸六進島制格緞式顯五示無挪符號枝整型聚。o按八羊進制靜格式管顯示災(zāi)變量河。t按二經(jīng)進制卡格式對顯示師變量去。a按十衡六進黃制格余式顯森示變?nèi)毫俊按字彼符格騙式顯鑄示變亡量。f按浮疫點數(shù)壩格式炸顯示螞變量圾。14昨.1仗1.奔1自動低顯示你可擊以設(shè)蒜置一飲些自續(xù)動顯使示的徑變量依,當塘程序泄停住屢時,療或是襖在你駝單步晃跟蹤冰時,淡這些錦變量翼會自做動顯首示。倆相關(guān)感的GD壁B命令翠
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 個人財產(chǎn)抵押借款簡易協(xié)議文本版A版
- 二零二四全新石灰石環(huán)保綜合利用合同3篇
- 2024版特種設(shè)備吊裝運輸合同3篇
- 個人房產(chǎn)買賣規(guī)范協(xié)議2024版A版
- 2024年04月中國建設(shè)銀行北京市分行度社會招考專業(yè)人才筆試歷年參考題庫附帶答案詳解
- 2025年農(nóng)業(yè)科技推廣合同會簽紀要3篇
- 2024版輪胎承包合同協(xié)議書
- 二零二五年度物流并購保密及市場共享協(xié)議2篇
- 專業(yè)節(jié)電器產(chǎn)品銷售協(xié)議規(guī)范2024版A版
- 2024年03月貴州貴州銀行六盤水分行招考筆試歷年參考題庫附帶答案詳解
- GB/T 12914-2008紙和紙板抗張強度的測定
- GB/T 1185-2006光學零件表面疵病
- ps6000自動化系統(tǒng)用戶操作及問題處理培訓
- 家庭教養(yǎng)方式問卷(含評分標準)
- 城市軌道交通安全管理課件(完整版)
- 線纜包覆擠塑模設(shè)計和原理
- TSG ZF001-2006 安全閥安全技術(shù)監(jiān)察規(guī)程
- 部編版二年級語文下冊《蜘蛛開店》
- 鍋爐升降平臺管理
- 200m3╱h凈化水處理站設(shè)計方案
- 個體化健康教育記錄表格模板1
評論
0/150
提交評論