Professional Documents
Culture Documents
87
7\S\LVWDH
=DMPLHP\VL
REHFQLHGZRPDVSRNUHZQLRQ\PL]HVRE]DJDGQLHQLDPLGHILQLRZDQLHP
ZDVQ\FKW\SyZRUD]VWD\PLV\PEROLF]Q\PL*yZQ\REV]DU]DVWRVRZDVWD\FKLW\SyZ ]ZL]DQ\ MHVW ] Z\NRU]\VWDQLHP W\SyZ VWUXNWXUDOQ\FK GODWHJR PyZLP\ R QLFK
ZDQLH WHUD] Z\NRU]\VWDQLH GHILQLFML W\SyZ SR]ZDOD QD RPLQL
FLH SHZQ\FK RJUDQLF]H Z SU]HND]\ZDQLX SDUDPHWUyZ ]REDF] NRQLHF SRSU]HGQLHJR UR]G]LDX 3R]D
W\P X*\ZDQLH ZDFLZLH GREUDQ\FK GHILQLFML W\SyZ L VWD\FK SROHSV]D F]\WHOQR L
HVWHW\N
SURJUDPXRUD]]PQLHMV]DU\]\NRE
GyZ
3RND]DQ\ QD NRFX SRSU]HGQLHJR UR]G]LDX SU]\NDG LOXVWUXMH QLH]U
F]Q SUyE
przekazania do procedury parametru typu strukturalnego. Niestety, nasz zapis stanowi
SUyE
SU]HP\FHQLD RSLVX GHILQLFML W\SX Z PLHMVFX GR WHJR QLH SU]H]QDF]RQ\P QD
OLFLH SDUDPHWUyZ IRUPDOQ\FK SURFHGXU\ OXE IXQNFML PRJ ]QDMGRZD VL
Z\F]QLH
LGHQW\ILNDWRU\ SDUDPHWUyZ L RGSRZLDGDMFH LP identyfikatory (nie definicje!) typw.
'RSyNL SRVXJLZDOLP\ VL
SDUDPHWUDPL W\SX SURVWHJR SUREOHP QLH LVWQLD JG\* QD
OLFLH SDUDPHWUyZ XPLHV]F]DH SR SURVWX QD]Z
RGSRZLHGQLHJR W\SX : SU]\SDGNX
W\SyZ VWUXNWXUDOQ\FK VSUDZD VL
NRPSOLNXMH 1LH GR *H QD OLFLH SDUDPHWUyZ QLH
ZROQRXPLHFLGHILQLFMLW\SXMDNZL
F]GHILQLRZDSDUDPHWUVWUXNWXUDOQ\"WRMHV]F]H
LGHQW\F]QLHZ\JOGDMFHGHNODUDFMHWDEOLF
var
t1 : array[1..100] of real;
t2 : array[1..100] of real;
ZFDOHQLHWZRU]RELHNWyZLGHQW\F]QHJRW\SXND*GD]QLFKLQWHUSUHWRZDQDMHVWMDNR
definicja nowego typu, co utrudnia niektre operacje (nie PR*QD QS GRNRQD SU]\SLVDQLD FDHM WDEOLF\ t2 do t1 1D GRELWN
RND]XMH VL
*H ]JRGQR W\SyZ Z\PDJDQD
MHVWUyZQLH*ZSU]\SDGNXSU]HND]\ZDQLDSDUDPHWUyZFRE\R]UHV]WDWZHGRSU]HZLdzenia).
:\MFLHP ] WHJR LPSDVX MHVW ]GHILQLRZDQLH identyfikatora typu F]\OL QD]Z\ E
GFHM
V\QRQLPHPGDQHJRW\SXVWUXNWXUDOQHJR,GHQW\ILNDWRUWDNLZ\NRU]\VWDP\QDVW
SQLHGR
GHNODURZDQLD]PLHQQ\FKLSDUDPHWUyZGRNDGQLHWDNVDPRMDNF]\QLOLE\P\WR]LGHQW\ILNDWRUHP W\SX SURVWHJR $E\ ]GHILQLRZD LGHQW\ILNDWRU W\SX PXVLV] X*\ VRZD
kluczowego typeW\SZQDVW
SXMFHMNRQVWUXNFML
type
nazwa-typu = opis-typu
88
'HILQLRZDQLHQRZ\FKLGHQW\ILNDWRUyZW\SyZPD]DVWRVRZDQLHJyZQLHZSURJUDPDFK
SRVXJXMF\FK VL
VWUXNWXUDOQ\PL UHSUH]HQWDFMDPL GDQ\FK FKRFLD* PR*OLZH MHVW
UyZQLH* GHILQLRZDQLH QRZ\FK W\SyZ SURVW\ch (a nawet przedefiniowywanie typw
standarGRZ\FK2WRSU]\NDG
type
IORDW H[WHQGHG^UHDOMHOLQLHPDV]NRSURFHVRUD`
Typy i stale
89
GRNRQDQLX ]PLDQ\ E
G]LHV] PXVLD Z\V]XND Z SURJUDPLH ZV]\VWNLH PLHMVFD Z NWyU\FK Z\VW
SRZDD OLF]ED L ]DVWSL M OLF]E MHOL R NWyU\P ]DSRPQLV]
NRQVHNZHQFMH PRJ E\ QLH]E\W SU]\MHPQH GR ]DZLHV]HQLD NRPSXWHUD ZF]QLH
'UXJLSUREOHP]ZL]DQ\]X*\FLHPOLF]E\OXESRMDZLDVL
ZNLONDPLHVL
F\
SRQDSLVDQLXSURJUDPXLVSURZDG]DVL
GRIDNWX*H]Z\NOHWUXGQRVRELHSU]\SRPQLH
co to za 750 i dlaczego akurat tyle.
(OHJDQFNLP VSRVREHP QD SRUDG]HQLH VRELH ] RSLVDQ\P SUREOHPHP V VWDH V\PERliczne 3RGREQLH MDN GHILQLFMD W\SX SR]ZDOD QD XWZRU]HQLH LGHQW\ILNDWRUD E
GFHJR
synonimem definicji typu, tak definicjD VWDHM V\PEROLF]QHM XPR*OLZLD XWZRU]HQLH
LGHQW\ILNDWRUD E
GFHJR V\QRQLPHP RNUHORQHM ZDUWRFL VWDHM QLHNRQLHF]QLH OLF]ERZHM 'R GHILQLRZDQLD VWD\FK X*\ZDQH MHVW VRZR NOXF]RZH const (ang. constant
VWDD]DVNDGQLDGHILQLFMLZ\JOGDQDVW
SXMFo:
const
nawa-VWDHM ZDUWR
.D*GHZ\VWSLHQLH nazwy-VWDHMZSURJUDPLH]RVWDQLHSRGF]DVNRPSLODFML]DVWpione ZDUWRFL 3RGREQLH MDN Z SU]\SDGNX W\SyZ ]GHILQLRZDQLH VWDHM QLH SRZRGXMH
]DUH]HUZRZDQLDPLHMVFDZSDPL
FLZ]ZL]NX]W\PPXVLV]SDPL
WD*HVWDDV\PERliczna nie jest l-ZDUWRFLLQLHPR*HVL
ZSURJUDPLH]QDOH(SROHZHMVWURQLHRSHUDWRUD
SU]\SLVDQLD DQL Z PLHMVFX SDUDPHWUX SU]HND]\ZDQHJR SU]H] QD]Z
SRPLMDMF RF]\ZLVWKHUH]M
MDNMHVWSUyED]PLDQ\ZDUWRFLVWDHM
Definicja sWDHM RNUHODMFHM PDNV\PDOQ SRMHPQR WDEOLF\ L VWRVRZQLH ]PRG\fikoZDQDGHNODUDFMDWDEOLF\UHNRUGyZE
G]LHZL
FZ\JOGDDQDVW
SXMFR
const
POJEMNOSC_KATALOGU = 750;
var
Katalog : array[1..POJEMNOSC_KATALOGU] of Ksiazka;
=DXZD* *H LGHQW\ILNDWRU VWDHM ]DSLVDQ\ MHVW GX*\PL OLWHUDPL MHVW WR LVWRWQH W\ONR GOD
programisty 7XUER 3DVFDO QLH RGUy*QLD GX*\FK OLWHU RG PD\FK .RQZHQFMD WD
SR]ZDODMFD DWZR RGUy*QL 67$( od zmiennych MHVW GR SRZV]HFKQLH VWRVRZDQD
SU]H]SURJUDPLVWyZLZDUWRMVRELHSU]\VZRL
-HOL QLH FKFH &L VL
SU]HOLF]D ZDUWRFL QDV]HM VWDHM SR ND*GHM ]PLDQLH VWUXNWXU\
UHNRUGXF]HJR]GUXJLHMVWURQ\QLHSRZLQLHQHUREL]E\WF]
VWRERGRZRG]LWR]HJR
]DSURMHNWRZDQLDSURJUDPXPR*HV]X*\QDVW
SXMFHMGHILQLFML
const
MAX_PAMIEC = 63000; { maksymalna wielkosc katalogu }
{ w bajtach }
POJEMNOSC_KATALOGU = MAX_PAMIEC div SizeOf(Ksiazka);
-DN QLHWUXGQR VL
GRP\OL UD] ]GHILQLRZDQHM VWDHM PR*QD X*\ Z NROHMQ\FK GHILnicjach. Co jednak znacznie ciHNDZV]HVWDDPR*H]RVWD]GHILQLRZDQD]DSRPRFZ\UD*HQLD ]DZLHUDMFHJR LQQH VWDH L QLHNWyUH RSHUDWRU\ Z\UD*HQLH PXVL GD VL
REOLF]\
w WUDNFLH NRPSLODFML QLH PR*H ZL
F ]DZLHUD LGHQW\ILNDWRUyZ ]PLHQQ\FK L IXQNFML
90
=PLHQQHSUHGHILQLRZDQHSR]ZDODMQDDWZHLQLFMDOL]RZDQLHGDQ\FKZSURJUDPLH2WR
SU]\NDG\
const
/LF]EDBNVLD]HNZRUG ^QDSRF]WNX`
{ katalog jest pusty }
Liczniki : array[1..4] of word = (0, 0, 0, 0);
{ inicjalizacja tablicy }
=DSDPL
WDM
'HNODURZDQLH SDUDPHWUyZ W\SX VWUXNWXUDOQHJR PR*OLZH MHVW Z\F]QLH SU]\
X*\FLXLGHQW\ILNDWRUyZW\SyZ
'R]GHILQLRZDQLDLGHQW\ILNDWRUDW\SXX*\ZDQHMHVWVRZRNOXF]RZHtype.
'HILQLRZDQLH VWD\FK V\PEROLF]Q\FK F]\OL LGHQW\ILNDWRUyZ SU]HFKRZXMF\FK
ZDUWRFLVWDHXPR*OLZLDVRZRNOXF]RZHconst.
6RZR const SR]ZDOD UyZQLH* QD GHNODURZDQLH ]PLHQQ\FK SRF]RQH ] QDGDZDQLHPLPZDUWRFLSRF]WNRZ\FK
8*\ZDQLH GHILQLFML W\SyZ L VWD\FK V\PEROLF]Q\FK SRSUDZLD F]\WHOQR
SURJUDPXMHJRXQLZHUVDOQRLRGSRUQRQDE
G\