You are on page 1of 3

Jak uruchamiaRSRUQHSURJUDP\

131

-DNXUXFKDPLD
oporne programy
,P EDUG]LHM ]R*RQ\ SURJUDP W\P PQLHMV]D V]DQVD *H XGD &L VL
 RG UD]X QDSLVD JR
EH]E
GQLH :\DSDQLH ZV]\VWNLFK E
GyZ NRPSLODFML WR GRSLHUR SRF]WHN ]DZV]H
PR*H &L VL
 SU]\WUDIL G]LHOHQLH SU]H] ]HUR F]\ SUyED RWZDUFLD QLHLVWQLHMFHJR SOLNX
%
G\WH]ZDQHE
GDPLZ\NRQDQLD DQJruntime errors V]QDF]QLHPQLHMSU]\MHPQH
i trudniejsze do XVXQL
FLDRGE
GyZNRPSLODFML,FKORNDOL]DFMDZ\PDJDQDRJyX*\FLD
VSHFMDOQHJR QDU]
G]LD XUXFKRPLHQLRZHJR ]ZDQHJR ] DQJLHOVND debuggerem (czyli
RGSOXVNZLDF]HP  6\VWHP XUXFKRPLHQLRZ\ 7XUER 3DVFDOD E
G]LH WHPDWHP RVWDWQLHJR
MX*UR]G]LDXSRZL
FRQHJRWHmu kompilatorowi.
3ROHFHQLD V\VWHPX XUXFKRPLHQLRZHJR ]JUXSRZDQH V Z PHQX Run oraz Debug, przy
F]\P ZL
NV]RFL ] QLFK RGSRZLDGDM NODZLV]H VNUyWX 'R HNVSHU\PHQWyZ ] GHEXJJHUHP PR*QD Z\NRU]\VWD SUDNW\F]QLH GRZROQ\ SURJUDP FKRFLD* ZDUWR E\ ]DZLHUD
on GHILQLFMHSURFHGXUL]PLHQQ\FKORNDOQ\FK'ODQDV]\FKSRWU]HERGSRZLHGQLE
G]LH
przedstawiony na stronie 62 program Bisekcja.
-DNMX*ZLHV]Z\VWSLHQLHE
GXZ\NRQDQLDSRZRGXMHSU]HUZDQLHG]LDDQLDSURJUDPX
i ZVND]DQLH NXUVRUHP LQVWUXNFML NWyUD WHQ EG VSRZRGRZDD 1LHVWHW\ QD RJy LQIRUPDFMD WDND MHVW QLHZ\VWDUF]DMFD JG\* GR VNXWHF]QHM ORNDOL]DFML E
GX Z\PDJDQH MHVW
SU]HOHG]HQLH ]DFKRZDQLD SURJUDPX QD FR QDMPQLHM NLOND LQVWUXNFML SU]HG MHJR Z\VWSLHQLHP 0R*OLZR WDN GDMH Z QRZRF]HVQ\FK QDU]
G]iach uruchomieniowych tzw.
tryb krokowySR]ZDODMF\QDZ\NRQ\ZDQLHSURJUDPXLQVWUXNFMDSRLQVWUXNFML
Turbo Pascal pozwala na krokowe wykonywanie programu na dwa sposoby, realizowane odpowiednio poleceniami Trace Into i Step Over z menu Run (lub odpowiadaMF\PLLPNODZLV]DPLF7 i F8 5y*QLFDSRPL
G]\RE\GZRPDWU\EDPLVSURZDG]DVL

do innego sposobu traktowania procedur i funkcji: polecenie Trace Into pozwala na
ZHMFLH GR ZQ
WU]D SURFHGXU\ ]D Step Over Z\NRQXMH M MDNR MHGQ LQVWUXNFM

W obu przypDGNDFK DNWXDOQLH Z\NRQ\ZDQD LQVWUXNFMD ]RVWDMH Z\Uy*QLRQD Z WHNFLH
SURJUDPX NRORURZ\P SDVNLHP $E\ Z\SUyERZD G]LDDQLH WU\EX NURNRZHJR
skompiluj program Bisekcja (F9  L Z\NRQDM JR Z REX WU\EDFK =DXZD* WH* *H

132

Turbo Pascal programowanie


wydanie polecenia Program Reset (CTRL-F2) pozwala na zrestartowanie programu, co
PR*HVL
SU]\GDJG\VL
RND*H*HGDOV]HMHJRZ\NRQ\ZDQLHQLHPDVHQVX
3RZ\*V]D ZSUDZND QLH SU]\QLRVD FK\ED *DGQ\FK QLHVSRG]LDQHN L QLHZLHOH LQIRUPDFML 7U\E NURNRZ\ SR]ZDODMF\ QD XVWDOHQLH GURJL MDN SU]HE\wa wykonanie
SURJUDPX QLH GDMH *DGQ\FK ZVND]yZHN QD WHPDW ZDUWRFL SU]\MPRZDQ\FK SU]H]
]PLHQQH NWyUH Z ZL
NV]RFL SU]\SDGNyZ V RGSRZLHG]LDOQH ]D VWHURZDQLH SUDF
SURJUDPX D ZL
F L HZHQWXDOQH NROL]MH 1D V]F]
FLH SRGHMU]HQLH ]DZDUWRFL Z\EUDQHM
zmiennHM MHVW EDUG]R DWZH Z\VWDUF]\ GR WHJR SROHFHQLH Evaluate/modify (CTRL-F4)
z menu Debug -HJR Z\GDQLH SRZRGXMH Z\ZLHWOHQLH RNLHQND ]DZLHUDMFHJR LQIRUPDFM
RZDUWRFL]PLHQQHMRUD]SR]ZDODMFHJRQDMHM]PLDQ
 WDN 

Rysunek 14. Pole dialogowe Evaluate and Modify


W pole Expression ZSLVXMHP\ Z\UD*HQLH QS QD]Z
 ]PLHQQHM Z QDV]\P SU]\SDGNX
eps  NWyUHJR ZDUWR FKFHP\ REHMU]H :DUWR Z\ZLHWODQD MHVW Z SROX Result ]D
pole New valueXPR*OLZLDMHM]PLDQ
 ]F]\PMHGQDNQDOH*\QLHFRXZD*D 
&]DVDPLRND]XMHVL
*HSRGHMU]DQ]PLHQQQDOH*\OHG]LFD\F]DV:WDNLHMV\WXDFML
]DPLDVW PDR Z\JRGQHJR SRGJOGDQLD SROHFHQLHP Evaluate OHSLHM MHVW X*\ SROHFHQLD
Watch (CTRL-F7). Po jego wydaniu (i wpisaniu nazwy odpowiedniej zmiennej lub
wyra*HQLDZRNLHQNXAdd Watch QDGROHHNUDQXSRMDZLVL
RNLHQNRWatches, zawieraMFH ZDUWRFL OHG]RQ\FK ]PLHQQ\FK Z QDV]\P SU]\SDGNX ]PLHQQHM a, czyli lewej
JUDQLF\SU]HG]LDXSRV]XNLZDSLHUZLDVWND 

Rysunek 15. Okienko Watches


3RQLHZD*SRZUyWGRRNLHQNDHG\WRUD]Z\NOHSRZRGXMHSU]\VRQL
FLHRNLHQNDWatches,
ZDUWR XSRU]GNRZD XNDG RNLHQHN QD HNUDQLH QS SU]HVXZDMF MH ]D SRPRF P\V]NL
OXEZ\GDMFSROHFHQLHTile z menu Window.
'\VSRQXMF W\PL ZLDGRPRFLDPL PR*HV] MX* Z\NRU]\VWD WU\E NURkowy i polecenia
SRGJOGDQLD ]PLHQQ\FK GR SU]HOHG]HQLD ]DFKRZDQLD ]PLHQQHM c E
GFHM ELH*F
ZDUWRFLSLHUZLDVWND

Jak uruchamiaRSRUQHSURJUDP\

133

:SU]\SDGNXZL
NV]\FKSURJUDPyZPR*HVL
RND]D*HGRWDUFLHGRIDWDOQHMLQVWUXNFML
] Z\NRU]\VWDQLHP WU\EX NURNRZHJR MHVW ]E\W F]DVRFKRQQe. W takich sytuacjach
z SRPRFSU]\FKRG]LSROHFHQLHGo to cursor (F4 SRZRGXMFHZ\NRQDQLHZV]\VWNLFK
LQVWUXNFML D* GR PLHMVFD ZVND]DQHJR NXUVRUHP D QDVW
SQLH SU]HMFLH GR SUDF\
NURNRZHM:\NRU]\VWXMFMHPR*HV]DWZRZVNRF]\QSGRZQ
WU]DIXQNFMLf(x) bez
konieczQRFLZ\NRQ\ZDQLDLQVWUXNFMLSRSU]HG]DMF\FKMHMZ\ZRDQLH
-HOLSRZ\*V]HF]\QQRFLPDV]Z\NRQ\ZDZLHORNURWQLH]QDF]QLHEDUG]LHMX*\WHF]QH
od funkcji Go to cursorRND]XMHVL
SROHFHQLHAdd breakpoint z menu Debug (CTRLF8). Jego wydanie pozwala na ustawienie w miejscu wskazanym kursorem tzw. punktu
wstrzymaniaSRZRGXMFHJR]DWU]\PDQLHSURJUDPXSRND*GRUD]RZ\PMHJRRVLJQL
FLX
1LH GR WHJR GRGDWNRZH SDUDPHWU\ SXQNWX ZVWU]\PDQLD Condition i Pass count)
XPR*OLZLDMMHJRZDUXQNRZHZ\NRQ\ZDQLHOXE]LJQRURZDQLHRNUHORQHMOLF]E\SU]HM
2SFMHWHX*\ZDQHVU]DGNRLQLHE
G]LHP\LFKWXRPDZLDZZL
NV]RFLSU]\SDGNyZ
X*\FLH SXQNWyZ ZVWU]\PDQLD VSURZDG]D VL
 GR LFK XVWDZLDQLD L XVXZDQLD ]D SRPRF
klawiszy CTRL-F8 (odpowiednia instrukcja zosWDQLH Z\Uy*QLRQD Z WUHFL SURJUDPX
NRORURZ\PSDVNLHP 3RGRMFLXSURJUDPXGRSXQNWXZVWU]\PDQLDQDRJyZ\VWDUF]\
VSUDZG]L]DZDUWRSRGHMU]DQHM]PLHQQHMSROHFHQLHPEvaluate lub Add Watch.
6NUyWRZHRPyZLHQLHSROHFHV\VWHPXXUXFKRPLHQLRZHJRNRF]\QDV]Hwprowadzenie
GRSURJUDPRZDQLDL7XUER3DVFDOD'DOV]HZLDGRPRFL]GRE
G]LHV]NRU]\VWDMF]EDUdziej zaawansowanej literatury, a przede wszystkim na drodze praktycznej  SLV]F
SURJUDP\3DPL
WDM
.RU]\VWDQLH]NRPSXWHUDQLH]ZDOQLDRGP\OHQLD

,P ZL
NV]\ QDFLVN SRR*\V] QD ZDFLZH ]DSURMHNWRZDQLH UR]ZL]DQLD W\P PQLHM
F]DVX E
G]LHV] PXVLD SRZL
FL QD MHJR ]DSURJUDPRZDQLH L W\P PQLHMV]H V]DQVH *H
E
G]LHV]PXVLDRGZR\ZDVL
GRSRPRF\URGNyZXUXFKRPLHQLRZ\FK
Powodzenia!

You might also like