01R14.pdf

(1053 KB) Pobierz
Microsoft Word - PROWTP44.DOC
7\S\VWUXNWXUDOQHF]\OLMDNSU]HFKRZDüZLFHMGDQ\FK
77
Typy strukturalne,
F]\OLMDNSU]HFKRZDü
ZLFHMGDQ\FK
=SXQNWXZLG]HQLDX*\WNRZQLNDWDEOLFDMHVWSRSURVWXFLJLHPMHGQROLW\FKÄV]XIODGHN´
SU]HFKRZXMF\FKWRZD*QHGDQHWHJRVDPHJRW\SX.D*GDV]XIODGNDNWyUZQDV]\P
SU]\SDGNX PR*QD ] JUXEV]D XWR*VDPLDü ] NDUW NDWDORJRZ MHVW LGHQW\ILNRZDQD
numerem — tzw. indeksem NWyU\ PXVL E\ü W\SX SRU]GNRZHJR WUXGQR ERZLHP
Z\REUD]LüVRELHHOHPHQWWDEOLF\RQXPHU]HSyáWRUD7DEOLFHGHNODURZDQHV]DSRPRF
VáRZDNOXF]RZHJR array WDEOLFD]DVNáDGQLDGHNODUDFMLMHVWQDVWSXMFD
nazwa_tablicy : array [indeks_dolny..indeks_górny] of typ;
-
F]DOQ\FKZGHILQLFMDFKVWDá\FK3DVFDOZ\PDJDRNUHOHQLDUR]PLDUXWDEOLF\ZFKZLOL
NRPSLODFMLLQLHGRSXV]F]DX*\FLDW]ZWDEOLFG\QDPLF]Q\FKRUR]PLDU]HRNUHODQ\P
podczas wykonania) znan
\FK]%DVLFD2EDLQGHNV\PRJPLHüGRZROQHZDUWRFLDOH
PXV]E\üWHJRVDPHJRW\SXSRU]GNRZHJRDJyUQ\LQGHNVQLHPR*HE\üPQLHMV]\RG
GROQHJR=Z\NOHWDEOLFHLQGHNVXMHVLRGMDNQSWDEOLFDXWRUyZNVL*HN
var
Autorzy : array [1..1000] of string[30];
DOHFDáNRZLFLHOHJDOQHVUyZQLH*GHNODUDFMH
var
Sinusy : array [0..359] of real;
Odchylka : array [–10..10] of real;
:QDZLDVDFKNZDGUDWRZ\FKF]\QLHNRMDU]&LVL]WDEOLF"PXVLV]XPLHFLüGZLH
VWDáHRNUHODMFHQDMPQLHMV]\LQDMZLNV]\GRSXV]F]DOQ\LQGHNVWDEOLF\3DPLWDM *H
ZDUWRFL X*\WH Z GHNODUDFML PXV] E\ü ]QDQH Z PRPHQFLH NRPSLODFML SURJUDPX
QDMF]FLHM SRGDZDQH V MDZQLH HZHQWXDOQLH Z SRVWDFL SURVW\FK Z\UD*H GRSXV]
107067980.002.png
78
Turbo Pascal programowanie
1LH GRü WHJR WDEOLFH ZFDOH QLH PXV] E\ü LQGHNVRZDQH OLF]EDPL -HOL QS FKFHV]
]OLF]\ü F]VWRü Z\VWSRZDQLD Z WHNFLH SRV]F]HJyOQ\FK ]QDNyZ DOIDEHWX PR*HV]
X*\üHIHNWRZQHMNRQVWUXNFML
var
Liczniki : array ['a'..'z'] of word;
.D*G\]HOHPHQWyZWDNLHMWDEOLF\MHVWOLF]QLNLHPRSRMHPQRFLRNRáRW\VLF\ÄLPSXO
-
VyZ´DGUHVRZDQ\P]DSRPRFRGSRZLHGQLHJR]QDNXDOIDEHWX
$E\RGZRáDüVLGRHOHPHQWXWDEOLF\RGDQ\PQXPHU]HPXVLV]X*\üVNáDGQL
nazwa_tablicy[indeks]
Autorzy[5] := 'Ernest Hemingway';
XVWDOLQD]ZLVNRDXWRUDSLWHMNVL*NLZNDWDORJX:SU]\SDGNXQDV]HMWDEOLF\OLF]QLNyZ
]QDNyZRGZRáDQLDEGZ\JOGDá\QDVWSXMFR
,QF/LF]QLNL>]QDN@^]ZLNV]\OLF]QLNGOD]QDNXR`
ZULWHOQ/LF]QLNL>D@^Z\ZLHWOLZDUWRü`
{ licznika znaków 'a' }
3UyED X*\FLD LQGHNVX OH*FHJR SR]D ]DGHNODURZDQ\P ]DNUHVHP NRF]\ VL QD RJyá
EáGHPZ\NRQ ania, o ile opcja kontroli zakresów ( Options-Compiler-Range checking )
QLH]RVWDáDZ\áF]RQD uwaga GRP\OQLHRSFMDWDMHVWZ\áF]RQD:W\PRVWDWQLP
SU]\SDGNXRGF]\W]WDEOLF\]ZUyFLEH]VHQVRZQZDUWRü]D]DSLVPR*HPLHüVNXWNL
RSáDNDQH ] ]DZLHV]HQLHP NRPSXWHUD ZáF]QLH JG\* ZDUWRü ]RVWDQLH ZVWDZLRQD
w PLHMVFHSU]H]QDF]RQHQDFR]XSHáQLHLQQHJR
'ZDJáyZQHREV]DU\]DVWRVRZDQLDWDEOLFWRED]\GDQ\FKF]\OLSURJUDP\VáX*FHGR
SU]HFKRZ\ZDQLDL]DU]G]DQLDLQIRUPDFMRSLVXMFU]HF]\ZLVWHRELHNW\QSNVL*NL
w ELEOLRWHFH WRZDU\ ZKXUWRZQLLWSRUD]RSURJUDPRZDQLHLQ*\QLHUVNLHLQDXNRZH
Z\NRU]\VWXMFHW]ZZHNWRU\LPDFLHU]HF]\OLOLQLRZHLSURVWRNWQHWDEOLFHOLF]E-DN
]DSLVDüZHNWRUF]\OLOLQLRZOXEMHGQRZ\PLDURZWDEOLFOLF]EMX*ZLHV]3U]\NáDGR -
ZHPXZHNWRURZL]áR*RQHPX]G]LHVLFLXOLF]EU]HF]\ZLVW\FK
[
xx
2
...
x
]
EG]LHRGSRZLDGDáDWDEOLFD
Wektor : array [1..10] of real
]DGODSURVWRNWQHMWDEOLF\PDFLHU]\RZ\PLDUDFK m na n :
gdzie indeks MHVWQXPHUHP*GDQHJRHOHPHQWXVWDáOXE]PLHQQW\SXSRU]GNRZHJR
R ZDUWRFL ]DZDUWHM SRPLG]\ GROQ\P D JyUQ\P ]DGHNODURZDQ\P LQGHNVHP $E\
]DWHPZ\ZLHWOLüWU]HFL]NROHLSR]\FMWDEOLF\DXWRUyZZ\VWDUF]\X*\üLQVWUXNFML
writeln(Autorzy[3]);
]DLQVWUXNFMD
1
10
107067980.003.png
7\S\VWUXNWXUDOQHF]\OLMDNSU]HFKRZDüZLFHMGDQ\FK
79
é
x
11
x
12
x
13
...
...
...
x
1
n
n
n
ù
ê
ê
ê
ê
ú
ú
ú
ú
x
x
x
x
21
22
23
2
x
x
x
x
31
32
33
3
...
...
...
ë
x
m
1
x
m
2
x
m
3
...
x
mn
û
X*\MHP\GHNODUDFML
Macierz : array [1..M, 1..N] of real
-DNZLGDüWZRU]HQLHWDEOLFRGSRZLDGDMF\FKGZX - LZLFHMZ\PLDURZ\PVWUXNWXURP
GDQ\FK QLH VWDQRZL Z 3DVFDOX WUXGQHJR ]DGDQLD 2JyOQD VNáDGQLD GHNODUDFML WDEOLF\
ZLHORZ\PLDURZHMZ\JOGDWDN
nazwa_tablicy : array [zakres_1, zakres_2, ... zakres_n] of typ
gdzie zakres_k opisuje zakres indeksów dla k - WHJR Z\PLDUX L PD IRUP SRF] -
tek..koniec . Dla tablic dwuwymiarowych pierwszy indeks oznacza numer wiersza,
]DGUXJL QXPHUNROXPQ\ZSDPLFLNRPSXWHUDGDQHSU]HFKRZ\ZDQHVZLHUV zami
XáR*RQ\PLMHGHQ]DGUXJLP&KRFLD*3DVFDOQLHQDU]XFDRJUDQLF]HQLDQDOLF]EZ\PLD -
UyZWDEOLF\MHG\Q\PLRJUDQLF]HQLDPLVáF]Q\UR]PLDUHOHPHQWyZQLHPRJF\SU]HN -
UDF]DüEDMWyZRUD]]DNUHVLQGHNVyZQLHPRJF\Z\NUDF]DüSR]D]DNUHVOLF]E
FDáNRZLW\FK WDEOLF ZLFHM QL* GZXZ\PLDURZ\FK X*\ZD VL EDUG]R U]DGNR 7DEOLFH
GZXZ\PLDURZH VWRVRZDQH V SU]HGH ZV]\VWNLP Z SURJUDPDFK REOLF]HQLRZ\FK
UHDOL]XMF\FK REOLF]HQLD W]Z UDFKXQNX PDFLHU]RZHJR L QLH EG]LHP\ VL WX QLPL
V]F]HJyáRZR]DMPRZDü$E\MHGQDNQLHSRSU]HVWDZDüQDVDP\PRSLVLH]DGHPRQVWUXM -
P\NUyWNLSU]\NáDGRWRSURJUDPSR]ZDODMF\QDZSURZDG]HQLH]NODZLDWXU\ZDUWRFL
HOHPHQWyZPDFLHU]\RZ\PLDUDFKQDLZ\ZLHWODMF\QDMZLNV]\ZSURZDG]RQ\
HOHPHQWRUD]VXPZV]\VWNLFKHOHPHQWyZOH*F\FKQDSU]HNWQHMLSRZ\*HMQLHM
program Macierz3x3;
{ program demonstruje elementarne obliczenia macierzowe }
var
t : array [1..3, 1..3] of real; { macierz 3x3 }
max, sum : real; { tymczasowe maksimum i suma elementów }
i, j : integer; { liczniki wierszy i kolumn }
begin
^ZF]\WDQLH]DZDUWRFLPDFLHU]\`
for i := 1 to 3 do
for j := 1 to 3 do
begin
write('Podaj element macierzy x[',i,',',j,']: ');
readln(t[i,j]);
end ;
{ wyszukanie maksymalnego elementu }
max := -H^SDPLWDMRLQLFMDOL]DFMLPDNVLPXP`
for i := 1 to 3 do
for j := 1 to 3 do
if t[i,j] > max then max := t[i,j];
^REOLF]HQLHVXP\HOHPHQWyZQDLQDGSU]HNWQ`
VXP ^SDPLWDMRZ\]HURZDQLXVXP\SU]HGREOLF]DQLHP`
for i := 1 to 3 do
107067980.004.png
80
Turbo Pascal programowanie
for j := i to 3 do
sum := sum+t[i,j];
writeln('Najwiekszy element: ', max:8:3);
writeln('Suma elementow na i nad przekatna: ', sum:8:3);
readln;
end.
-DN QLHWUXGQR VL GRP\OLü REVáXJD WDEOLF QLH W\ONR GZXZ\PLDURZ\FK Z\PDJD
LQWHQV\ZQHJRX*\FLDSWOL for QDRJyáÄSU]HFKRG]LP\´NROHMQRSRHOHPHQWDFKZLHUV]D
OXE NROXPQ\ ]QDMF QXPHU SLHUZV]HJR L RVWDWQLHJR HOHPHQWX 3RZ\*V]\ SURJUDP
demonstruje dwie typowe operacje na tablicach:
·
wyszukanie maksymalnego (minimalnego) elementu SROHJDMFH QD
VSUDZG]DQLX F]\ NROHMQ\ HOHPHQW QLH MHVW ZLNV]\ PQLHMV]\ RG DNWXDOQHM
ZDUWRFL PDNVLPXP PLQLPXP D MHOL WDN SU]\MFLH MHJR ZDUWRFL MDNR
nowego maksimum (minimum);
· REOLF]HQLHZDUWRFLVXP\HOHPHQWyZQDLSRQDGSU]HNWQZ]EOL*RQ\VSRVyE
REOLF]DVLVXPHOHPHQWyZSRGSU]HNWQVXPZV]\VWNLFKHOHPHQWyZGRGDW -
nich itp.).
=DXZD**HZWUDNFLHREOLF]HQDOH*\SU]HV]XNLZDü]DUyZQRZLHUV]HMDNLNROXPQ\FR
UHDOL]RZDQHMHVW]DSRPRFGZyFK]DJQLH*G*RQ\FKXPLHV]F]RQ\FKMHGQDZGUXJ iej)
SWOL for =DJQLH*G*DMFSWOHPXVLV]SDPLWDüE\X*\ZDá\RQHUy*Q\FK OLF]QLNyZ ,
w SU]HFLZQ\PSU]\SDGNXERZLHPZHZQWU]QDSWODEG]LHZQLH]DPLHU]RQ\VSRVyE
PRG\ILNRZDáDOLF]QLNSWOL]HZQWU]QHMEáGWHQMHVWW\OH*SRVSROLW\FRQLHSU]\MHPQ\
=DXZD*SRQDGWR*HZHZQWU]QDSWODUR]SRF]\QDVLQLHRGMHG\QNLOHF]RGELH*FHJR
LQGHNVXSWOL]HZQWU]QHMG]LNLF]HPXRGUD]XRPLMDP\HOHPHQW\OH*FHSRGSU]H -
NWQPDMFHQXPHUZLHUV]DZLNV]\RGQXPHUXNROXPQ\
0DMF GR G\VSR]\FML WDEOLFH PR*HP\ MX* ]DSURMHNWRZDü VWUXNWXU\ GDQ\FK RSLVXMFH
]DZDUWRü NDWDORJX ELEOLRWHF]QHJR 'OD XSURV]F]HQLD ]Dáy*P\ *H ZV]\VWNLH GDQH
EG]LHP\SU]HFKRZ\ZDOLZSDPLFLNRPSXWHUD3RQLHZD*PDRQDRJUDQLF]RQSRMHP -
QRüZDUWRRGUD]XSU]\MüSHZQH]DáR*HQLDFRGRPDNV\PDOQHMSRMHPQRFLNDWDORJX
i SRV]F]HJyOQ\FKIUDJPHQWyZRSLVXNVL*NL'RüRF]\ZLVW\PSRGHMFLHPEG]LHRJ ra-
QLF]HQLH GáXJRFL SyO SU]H]QDF]RQ\FK QD W\WXá L QD]ZLVNR DXWRUD RUD] RVRE\ Z\SR -
*\F]DMFHM1LHFKRSLVSRMHG\QF]HMNVL*NLZ\JOGDWDN
· W\WXá string [30] ;
·
nazwisko autora: string [25] ;
· QD]ZLVNRZ\SR*\F]DMFHJR string [25] ;
· OLF]QLNZ\SR*\F]H word .
:V]\VWNLHSRODáF]QLH]DMPXMEDMWyZWDNZLF]DNáDGDMF*HPDP\GRG\VSR]\FML
N%FRWU]HEDMHV]F]H]RVWDZLüQDSRPRFQLF]H]PLHQQHMHVWHP\ZVWDQLHRSLVDü
RNRáR SR]\FML 6NG MHGQDN Z]Lá\ VL WH NLOREDMW\ SU]HFLH* Z NRPSXWHU]H
SDPLFLMHVW]QDF]QLHZLFHM PyJáE\]DS\WDü7RSUDZGDMHGQDNDE\VLGRQLHM
107067980.005.png
7\S\VWUXNWXUDOQHF]\OLMDNSU]HFKRZDüZLFHMGDQ\FK
81
GRVWDü SRWU]HEQH V QLHFR EDUG]LHM Z\P\OQH UR]ZL]DQLD NWyUH ]RVWDQRPyZLRQH
w rozdziale pt. :LFHMSDPLFL (strona 114).
:\JOGDáRE\QDWR*HPR*QD]DNDVDüUNDZ\LZ]LüVLGRURERW\F]\OL]DGHNODURZDü
QDVWSXMFHWDEOLFH
var
Tytul : array [1..750] of string [30];
Autor : array [1..750] of string [25];
Wypozyczajacy : array [1..750] of string [25];
Licznik : array [1..750] of word;
-
OLFDFK&RSUDZGDSRV]F]HJyOQHHOHPHQW\RSLVXVÄ]MHGQRF]RQH´ZVSyOQ\PQXPHUHP
(indeksem), jednak z punktu wi G]HQLDORJLNLUR]ZL]DQLHWDNLHMHVWQLHVSyMQHLPDáR
HOHJDQFNLHFKRFLD*GDVLZ\NRU]\VWDü5R]SURV]HQLHGDQ\FKRSLVXMF\FKSRMHG\QF]\
RELHNW Z IL]\F]QLH RGUEQ\FK VWUXNWXUDFK GDQ\FK PD WH*WZDG *H áDWZLHM MHVW
SU]HRF]\ü MDNL IUDJPHQW LQIRUPDFML OXE SRP\OLü QXPHUDFM -DN WHPX ]DUDG]Lü"
3U]\MU]\MP\VLQDV]HMNDUFLHNDWDORJRZHM
7\WXá
Emigranci
Autor
0UR*HN6áDZRPLU
:\SR*\F]DMF\
Nowak Krzysztof
Licznik
78
:V]\VWNLHGDQHRSLVXMFHIL]\F]Q\RELHNWVWXSRáF]RQHZMHGQORJLF]QLHVSyMQ
FDáRüVWDQRZLF]QDF]QLHEDUG]LHMSU]HNRQXMF\LVHQVRZQ\RSLVDQL*HOLSRSU]HGQLR
Z\REUD( VRELH MDN XFLHV]\áE\ VL ELEOLRWHNDU] JG\E\ ND]DQR PX SRVáXJLZDü VL
RGUEQ\PL NDWDORJDPL ]DZLHUDMF\PL W\WXá\ QD]ZLVND LWG 3DVFDORZ\P
odpowiednikiem takiego opisu jest rekord .
2LOHWDEOLFHSR]ZDODá\QDSRPLHV]F]HQLHZMHGQHMVWUXNWXU]HZLHOXGDQ\FKWHJRVDPHJR
W\SXUHNRUG\XPR*OLZLDM]DPNQLFLHZFDáRüGDQ\FKUy*Q\FKW\SyZQLHSR]ZDODMF
]NROHLQDLQGHNVRZDQ\GRQLFKGRVWS6NáDGQLDGHNODUDFML]PLHQQHMW\SX rekordowego
MHVWQDVWSXMFD
nazwa : record
pole-1 : typ-1;
pole-2 : typ-2;
...
pole-n : typ-n;
end ;
gdzie pola VSRSURVWXQD]ZDPLHOHPHQWyZSyOUHNRUGX]DZLHUDMF\FKSRV]F]HJyOQH
GDQH ]D
typy
var
Ksiazka : record
=DXZD*MHGQDN*HRSLVSRMHG\QF]HMNVL*NLUR]SURV]RQ\MHVWZF]WHUHFKUy*Q\FKWDE
RNUHODM LFK W\S 3U]\NáDGRZ\ UHNRUG RGSRZLDGDMF\ QDV]HM NDUFLH
NDWDORJRZHMQDOH*DáRE\]DGHNODURZDüWDN
107067980.001.png
Zgłoś jeśli naruszono regulamin