Professional Documents
Culture Documents
Jak program
SRUR]XPLHZDVL
]IXQNFM"
-DN SRZLHG]LHOLP\ Z SRSU]HGQLP UR]G]LDOH IXQNFMD SURFHGXUD SR]ZDOD ]DPNQ
]HVWDZ ]R*RQ\FK RSHUDFML Z VZRLVW\ SRMHPQLN Z\NRU]\VW\ZDQ\ SU]H] Z\ZRXMF\
SURJUDP QD ]DVDG]LH F]DUQHM VNU]\QNL SR ZR*HQLX GR IXQNFML ]HVWDZX LQIormacji,
progUDP RGELHUD Z\QLN QLH SU]HMPXMF VL
VSRVREHP MHJR X]\VNDQLD 1LHVWHW\ MDN
PRJH VL
MX* SU]HNRQD QDV]D VNU]\QND QLH MHVW V]F]HOQD L VWRVXQNRZR DWZR
GRSURZDG]L GR V\WXDFML Z NWyUHM IXQNFMD Z VSRVyE QLHNRQWURORZDQ\ XV]NRG]L
zmienne programu. Zjawiska tego typu (zarwno kontrolowane, jak i niekontrolowane)
]ZDQH V efektami ubocznymi (ang. side effects L GR F]
VWR XWUXGQLDM *\FLH PQLHM
GRZLDGF]RQ\PSURJUDPLVWRP1DV]F]
FLHHIHNWyZXERF]Q\FKPR*QDDWZRXQLNQ
SR]ZDODMQDWRzmienne lokalne6.
-DN VDPD QD]ZD ZVND]XMH ]PLHQQD ORNDOQD MHVW SU\ZDWQ ZDVQRFL IXQNFML OXE
SURFHGXU\ ZHZQWU] NWyUHM ]RVWDD ]GHILQLRZDQD =PLHQQD WDND QLH MHVW ZLGRF]QD QD
]HZQWU]IXQNFMLF]\OLQSZZ\ZRXMF\PMSURJUDPLHQDWRPLDVWMHVWGRVW
SQDGOD
ZV]HONLFK IXQNFML L SURFHGXU ]GHILQLRZDQ\FK Z REU
ELH GDQHM IXQNFML OXE SURFHGXU\
(o LOHLFKGHILQLFMHXPLHV]F]RQHVSRGHNODUDFML]PLHQQHM3U]HFLZLHVWZHP]PLHQQHM
ORNDOQHMMHVWRF]\ZLFLH]PLHQQDglobalnaZLGRF]QDZFD\PREV]DU]HSURJUDPXod
PRPHQWXMHM]DGHNODURZDQLD.D*GD]GHILQLRZDQDZSURJUDPLHIXQNFMDLSURFHGXUDPD
SHQ\GRVW
SGRZV]\VWNLFK]PLHQQ\FKJOREDOQ\FKF]HJRMHGQDNQLHQDOH*\QDGX*\ZD
DZU
F]QLHQDOH*\X*\ZDZRJyOH=DNUHVZLG]LDOQRFL]PLHQQHMQD]\ZDQ\MHVWMHM
]DVL
JLHP (ang. scope).
=DUyZQRGHNODUDFMDMDNLVSRVyEZ\NRU]\VWDQLD]PLHQQ\FKORNDOQ\FKVQDRNRWDNLH
VDPH MDN GOD ]PLHQQ\FK JOREDOQ\FK 5y*QLFD NU\MH VL
Z ORNDOL]DFML ]PLHQQ\FK REX
6
FLOHM obiekty ORNDOQH ERZLHP RSUyF] ]PLHQQ\FK ORNDOQH PRJ E\ UyZQLH* VWDH
i typy, o ktrych jednak na ra]LHQLHPyZLOLP\
-DNSURJUDPSRUR]XPLHZDVL
]IXQNFM"
67
7DNSRSUDZLRQ\SURJUDPSRZLQLHQG]LDDSRSUDZQLHQLH]DOH*QLHRG*GDQHMGXJRFL
FLJX ]QDNyZ :SURZDG]DMF GR SURFHGury Szlaczek GHNODUDFM
]PLHQQHM i
spowodoZDH*HSRGF]DVND*GHJRZ\ZRDQLDNRU]\VWDRQDQLH]H]PLHQQHMJOREDOQHM
DOH ]H VZRMHM SU\ZDWQHM ]PLHQQHM ORNDOQHM =DXZD* SU]\ RND]ML *H RELH ]PLHQQH
QD]\ZDMVL
WDNVDPRDPLPRWRSURJUDPG]LDDSRSUDZQLH=MDZLVNRPDVNRZDQLD
]PLHQQHM JOREDOQHM SU]H] LGHQW\F]QLH QD]ZDQ ]PLHQQ ORNDOQ QD]\ZD VL
SU]\VDQLDQLHP L GDMH &L JZDUDQFM
*H QDZHW MHOL ]DGHNODUXMHV] Z IXQNFML ]PLHQQ
ORNDOQ R QD]ZLH WDNLHM VDPHM MDN ]PLHQQD ]HZQ
WU]QD Z V]F]HJyOQRFL JOREDOna),
ZV]HONLHRGZRDQLDZHZQWU]IXQNFMLE
G]DZV]HNLHURZDQHGR]PLHQQHMORNDOQHM]D
RGSRZLHGQLD ]PLHQQD ]HZQ
WU]QD SR]RVWDQLH QLHQDUXV]RQD ']L
NL WHPX QLH PXVLV]
GED R WR E\ ]PLHQQH GHNODURZDQH Z UDPDFK SRV]F]HJyOQ\FK IXQNFML PLD\ Uy*QH
QD]Z\ L E\ NWyUD SU]\SDGNLHP QLH QD]\ZDD VL
WDN VDPR MDN RGSRZLHGQLD ]PLHQQD
globalna.
$E\]REUD]RZDSRM
FLD]DVL
JXLSU]\VDQLDQLDZ\REUD(P\VRELHSHZLHQDEVWUDNF\MQ\
program, w ktrym zdefiniowano kilka zmiennych globalnych oraz procedur i funkcji
7
68
-DNSURJUDPSRUR]XPLHZDVL
]IXQNFM"
69
SURJUDP=DVLHJL
YDULMLQWHJHU
[UHDO
SURFHGXUH3LHUZV]D
YDUNLQWHJHU
SURFHGXUH'UXJD[UHDO
YDUNLQWHJHU
SURFHGXUH7U]HFLD[UHDO
YDUNLQWHJHU
SURFHGXUH:HZQ
YDUNOLQWHJHU
Zmienna
ZDFLFLHO
Program
Pierwsza
=DVL
J
Druga
Trzecia
Wewn
i (program)
tak
tak
tak
tak
tak
j (program)
tak
nie (*)
tak
tak
tak
x (program)
tak
tak
nie (*)
nie (*)
nie
j (Pierwsza)
nie
tak
nie
nie
nie
k (Pierwsza)
nie
tak
nie
nie
nie
x (Druga)
nie
nie
tak
nie
nie
k (Druga)
nie
nie
tak
nie
nie
x (Trzecia)
nie
nie
nie
tak
tak
k (Trzecia)
nie
nie
nie
tak
nie (*)
k (Wewn)
nie
nie
nie
nie
tak
l (Wewn)
nie
nie
nie
nie
tak
70
-DNSURJUDPSRUR]XPLHZDVL
]IXQNFM"
71
begin
6LQ&RV3LVF^REOLF]ZDUWRFL`
writeln(s:8:3, c:8:3); { i wypisz je na ekranie }
end.
E\ZV]\VWNR]DF]
RG]LDDSRSUDZQLH&RWDNLHJRVL
]PLHQLR"
2Wy*GRGDQLHVRZDNOXF]RZHJR varSU]HGQD]ZSDUDPHWUXSDUDPHWUyZ]DVDGQLF]R
]PLHQLD VSRVyE LFK SU]HND]\ZDQLD 3RSU]HGQLR PLHOLP\ GR F]\QLHQLD ] WDN ]ZDQ\P
SU]HND]\ZDQLHPSU]H]ZDUWRXPR*OLZLDMF\PZ\F]QLHZR*HQLHGDQ\FKGRIXQNFML
SURFHGXU\ ']LDDQLH SU]HND]\ZDQLD SU]H] QD]Z
VSURZDG]DR VL
GR XPLHV]F]HQLD
w odpowiednim miejscu (tj. na stosie) NRSLLZDUWRFLSDUDPHWUXDNWXDOQHJR, ktra nasW
SQLHPRJDE\SU]HWZDU]DQDZHZQWU]IXQNFMLOXESURFHGXU\2EHFQLHZ\NRU]\VW\ZDQ\ PHFKDQL]P QRVL QD]Z
SU]HND]\ZDQLD SU]H] QD]Z
LQQH PGUH RNUHOHQLH WR
SU]HND]\ZDQLHSU]H]ZVND(QLNOXESU]H]UHIHUHQFM
LUy*QLVL
RGSRSU]HGQLHJRW\P*H
SURFHGXUD RWU]\PXMH QLH NRSL
ZDUWRFL SDUDPHWUX DNWXDOQHJR OHF] LQIRUPDFM
R MHJR
SRR*HQLX0R*QDWRSU]HGVWDZLQDVW
SXMFR
:SU]\SDGNXSU]HND]\ZDQLDSU]H]ZDUWRIXQNFMDRWU]\PXMHMHG\QLHNRSL
U]HF]\ZLVWHJRSDUDPHWUX=DVL
JRSHUDFMLGRNRQ\ZDQ\FKQDWDNLHMNRSLLRJUDQLF]DVL
GRZQ
WU]D
IXQNFML ]D JG\ WD NRF]\ G]LDDQLH ZDUWR SDUDPHWUX MHVW WUDFRQD 3DUDPHWU\
SU]HND]\ZDQH SU]H] ZDUWR ]DFKRZXM VL
ZL
F LGHQW\F]QLH MDN ]PLHQQH ORNDOQH
Uy*QLF VL
RG QLFK MHG\QLH SU]H]QDF]HQLHP ,QDF]HM Z\JOGD VSUDZD Z SU]\SDGNX
SU]HND]\ZDQLDSU]H]QD]Z
IXQNFMDRWU]\PXMHWXQLHNRSL
SDUDPHWUXOHF]W]ZZVND(nik opLVXMF\MHJRU]HF]\ZLVWHSRR*HQLH:V]HONLHRSHUDFMHGRNRQ\ZDQHSU]H]IXQNFM
QD SDUDPHWU]H SU]HND]\ZDQ\P SU]H] QD]Z
GRW\F] QLH NRSLL DOH U]HF]\ZLVWHJR
RELHNWXE
GFHJRZDVQRFLSURJUDPX0R*QDZL
FSRZLHG]LH*HIXQNFMDVL
JDQD
72
-DNSURJUDPSRUR]XPLHZDVL
]IXQNFM"
73
-HOLMX*WR]URELH]PLHQDJyZHNSURFHGXU\Pusta na
procedure Pusta(var t : TablInt)
7\PUD]HPSURJUDPSRZLQLHQZ\NRQDVL
E\VNDZLF]QLHSU]\QDMPQLHMZSRUyZQDQLX
GR SRSU]HGQLHM ZHUVML ']LHMH VL
WDN GODWHJR *H SRGF]DV ND*GHJR Z\ZRDQLD SURFHGXU\QDVWRVLHXPLHV]F]DQ\MHVWMHG\QLHZVND(QLNGRWDEOLF\tZVXPLHW\VLFUD]\SR
EDMW\SRGF]DVJG\SRSU]HGQLRQDVWRVNRSLRZDQDE\DFDDWDEOLFDW\VLFUD]\
EDMWyZ F]\OL UD]\ ZL
FHM 'RGDWNRZ DWUDNFM ]ZL]DQ ] SU]HND]\ZDQLHP
ZL
NV]\FK VWUXNWXU SU]H] ZDUWR MHVW PR*OLZR SU]HSHQLHQLD Vtosu (standardowo
ZLHONRVHJPHQWXVWRVXXVWDZLDQDMHVWSU]H]7XUER3DVFDODQDN%$E\VL
RW\P
SU]HNRQD ]PLH Z SLHUZRWQHM ZHUVML SURJUDPX WHM EH] VRZD var Z QDJyZNX
procedury) rozmiar tablicy na 10000 liczb:
type
TablInt = array [1..10000] of integer;
=DSDPL
WDM
:V]HONLH RELHNW\ ]DGHNODURZDQH ZHZQWU] IXQNFML SURFHGXU\ V W]Z RELHNWDPLORNDOQ\PL2ELHNW\ORNDOQHVQLHZLGRF]QHQD]HZQWU]IXQNFML
2ELHNW\ ]DGHNODURZDQH Z SURJUDPLH JyZQ\P QD ]HZQWU] ZV]\VWNLFK SURFHGXULIXQNFMLVRELHNWDPLJOREDOQ\PL6RQHGRVW
SQHGODZV]\VWNLFKHOHPHQtw programu.
Wszelkie obiekW\ SU]H]QDF]RQH Z\F]QLH GR X*\WNX ZHZQ
WU]QHJR IXQNFML
SURFHGXU\SRZLQQ\E\GHNODURZDQHMDNRORNDOQH
=DNUHVZLG]LDOQRFLRELHNWX]ZDQ\MHVWMHJR]DVL
JLHP
Zadeklarowanie w funkcji (procedurze) obiektu lokalnego o takiej samej nazwie
MDNRELHNW]EORNXQDGU]
GQHJRSRZRGXMHSU]\VRQL
FLHWHJRRVWDWQLHJR
74