You are on page 1of 4

48

Turbo Pascal programowanie

Instrukcja warunkowa
$E\XQLNQE
GXZ\QLNDMFHJR]SUyE\SLHUZLDVWNRZDQLDOLF]E\XMHPQHMZ\SDdaRE\XPLHFLZQDV]\PSURJUDPLH]DVWU]H*HQLHZSRVWDFLMH*HOLZ\]QDF]QLNMHVWZL
Nszy od zera to wykonaj dalsze obliczenia, w przeciwnym przypadku wypisz odpowiedni
NRPXQLNDW3U]HNDGDMFWRQDM
]\NDQJLHOVNLLQLHFRXRJyOQLDMFRWU]\PXMHP\VWUXNWXU
instrukcji warunkowej:
if warunek
then instrukcja-1
else instrukcja-2

: SRZ\*V]\P ]DSLVLH warunek MHVW QLF]\P LQQ\P MDN Z\UD*HQLHP GDMF\P Z


Z\QLNX ZDUWR true lub false QD RJy Z\NRU]\VWXMF\P ]QDQH &L MX* RSHUDWRU\
UHODF\MQH PyZLF SR OXG]NX MHVW WR ]Z\NH SRUyZQDQLH  Instrukcje RSLVXM
czynnRFLNWyUHSRZLQQ\E\Z\NRQDQHSRVSHQLHQLXOXEQLHVSHQLHQLXZDUXQNXSU]\
F]\P F]
 ]DF]\QDMFD VL
 RG VRZD NOXF]RZHJR else QLH MHVW RERZL]NRZD WM QLH
PXVLV]RNUHODZDULDQWXDZDU\MQHJR 
,QVWUXNFMDZDUXQNRZDGRVW
SQDSUDNW\F]QLHZND*G\PM
]\NXSURJUDPRZDQLDVWDQRZL
SRGVWDZRZH QDU]
G]LH XPR*OLZLDMFH SRGHMPRZDQLH GHF\]ML Z ]DOH*QRFL RG DNWXDOQ\FK ZDUXQNyZ F]\OL ZEXGRZ\ZDQLH Z SURJUDP LQWHOLJHQFML SR]ZDODMFHM PX
]DFKRZD VL
 RGSRZLHGQLR GR V\WXDFML 6SUyEXMP\ ZNRPSRQRZD LQVWUXNFM
 ZDUunNRZZQDV]SRSU]HGQLSURJUDP
program Nowe_Rownanie_Kwadratowe;
^3URJUDPUR]ZL]XMHUyZQDQLHNZDGUDWRZHPHWRGZ\]QDF]QLNyZ`
^XZ]JO
GQLDMFPR*OLZRXMHPQHJR]QDNXZ\]QDF]QLND`
var
DEFUHDO^ZVSyF]\QQLNL`
delta : real;
{ wyznacznik }
x1, x2 : real;
{ pierwiastki }
begin
writeln('Program rozwiazuje rownanie kwadratowe')
writeln('a*x^2 + b*x + c');
ZULWH
3RGDMZVSROF]\QQLND
^ZSURZDG(ZVSyF]\QQLNL`
readln(a);

Instrukcja warunkowa

49

write('Podaj wspolczynnik b: ');


readln(b);
write('Podaj wspolczynnik c: ');
readln(c);
delta := sqr(b) - 4*a*c;
{ oblicz wyznacznik }
if delta >= 0 then
{ wyznacznik OK }
begin
{ wykonujemy obliczenia}
x1 := (-b + sqrt(delta))/(2*a); { oblicz pierwiastki }
x2 := (-b - sqrt(delta))/(2*a);
ZULWHOQ
3LHUZLDVWNL
^Z\ZLHWOSLHUZLDVWNL`
writeln('x1 = ', x1:12:4);
writeln('x2 = ', x2:12:4);
end
{ tu 1,(0$UHGQLND`
else
{ wyznacznik ujemny }
writeln('Rownanie nie ma pierwiastkow rzeczywistych.');
readln;
end.

3RVWDZDUXQNXMHVWZQDV]\PSU]\SDGNXRF]\ZLVWD
if delta >=0

F]\OL MH*HOL Z\]QDF]QLN QLH MHVW PQLHMV]\ RG ]HUD =DXZD* *H MHOL ZDUXQHN MHVW
VSHQLRQ\ QDOH*\ Z\NRQD ZL
FHM QL* MHGQ LQVWUXNFM
 D ]DWHP FDD JUXSD LQVWUXNFML
]DMPXMF\FK VL
 REOLF]DQLHP L Z\ZLHWODQLHP SLHUZLDVWNyZ PXVL ]RVWD RWRF]RQD
VRZDPLNOXF]RZ\PLbegin i endR]QDF]DMF\PLtzw. LQVWUXNFM
]R*RQ, czyli zestaw
LQVWUXNFML Z\NRQ\ZDQ\FK MDNR MHGQD FDR =DSRPLQDQLH R W\P Z\PDJDQLX MHVW MHGQ\P]SRVSROLWV]\FKE
GyZSRSHQLDQ\FKSU]H]SURJUDPLVWyZSDVFDORZ\FK QLHW\ONR
SRF]WNXMF\FK  L PR*H SURZDG]L GR QLH]E\W SU]\MHPQ\FK E
GyZ Z\NRQDQLD 2WR
SU]\NDG
if n <> 0 then
LiczbaProbek := n;
srednia := suma/LiczbaProbek;

3RZ\*V]\IUDJPHQWSRZLQLHQSU]\SLV\ZD]PLHQQHM LiczbaProbekZDUWR n, a nasW


SQLHREOLF]D srednia jako suma podzielona przez LiczbaProbekJZDUDQWXMF*H
w przypadku n UyZQHJR ]HUR G]LHOHQLH QLH E
G]LH Z\NRQ\ZDQH 3RQLHZD* MHGQDN
SU]\SLVDQLD QLH ]RVWD\ SRF]RQH Z LQVWUXNFM
 ]R*RQ GOD n rwnego zeru pierwsze
SU]\SLVDQLH QLH Z\NRQD VL
 D ]DWHP ]PLHQQD LiczbaProbek E
G]LH PLDD ZDUWR
QLHRNUHORQ 0R*H WR E\ ]HUR ZyZF]DV Z\NRQDQLH SURJUDPX ]RVWDQLH SU]HUZDQH 
OXE GRZROQD ZDUWR FR RF]\ZLFLH GRSURZDG]L GR ]XSHQLH EH]VHQVRZQHJR Z\QLNX
3UDZLGRZDSRVWDSRZ\*V]HMLQVWUXNFMLE
G]LHZ\JOGDDQDVW
SXMFR
if n <> 0 then
begin
LiczbaProbek := n;
srednia := suma/LiczbaProbek;
end;

50

Turbo Pascal programowanie


:UyP\GRQDV]HJRUyZQDQLD=DXZD**HZSHZQ\PV]F]HJyOQ\PSU]\SDGNX gdy
wyznacznik jest rwny zeru ma ono tylko jeden pierwiastek: jest tak dla rwnania
x 2 + 2x + 1

ktrego podwjnym pierwiastkiem jest liczba 1. W tym przypadku musimy


XZ]JO
GQLWU]\PR*OLZRFLZ]DOH*QRFLRGZDUWRFLZ\]QDF]QLND
Wyznacznik
ZL
NV]\RG]HUD
rwny zeru
mniejszy od zera

Pierwiastki

b + b
i
2a
2a
b

2a
brak pierwiastkw rzeczywistych

3RQLHZD*SRMHG\QF]DLQVWUXNFMDZDUXQNRZDSRWUDILREVX*\W\ONRGZLHZ]DMHPQLHVL

Z\NOXF]DMFH V\WXDFMH DE\ XZ]JO
GQL ZV]\VWNLH ZDULDQW\ QLH]E
GQH MHVW ]DJQLH*G*HQLHGZyFKWDNLFKLQVWUXNFML6FKHPDWSRVW
SRZDQLDSRND]DQ\MHVWSRQL*HMZUDPDFK
ZLF]HSURSRQXM
&LVDPRG]LHOQHGRNRQDQLHRGSRZLHGQLFKPRG\ILNDFMLZSURJUDPLH
if delta < 0 then
{ brak pierwiastkw rzeczywistych }
else
if delta = 0 then
{ oblicz i wypisz pojedynczy pierwiastek }
else^RGQRVLVL
GRdrugiego if-a }
{ oblicz i wypisz obydwa pierwiastki }

: SU]\SDGNX ZL
NV]HM OLF]E\ ZDULDQWyZ WDNLH SL
WURZH NRQVWUXNFMH VWDM VL
 QLHSRU
F]QH WUXGQH Z LQWHUSUHWDFML L SRGDWQH QD E
G\ =DVWDQyZ VL
 QD SU]\NDG MDN
Z\JOGDDE\LQVWUXNFMDZDUXQNRZDZ\SLVXMFDQDHNUDQLHQD]Z
GQLDW\JRGQLDGDQHJR
QXPHUHP QLHFKR]QDF]DSRQLHG]LDHN 0R*HWDN
if dzien = 1 then writeln('Poniedzialek')
else if dzien = 2 then writeln('Wtorek')
else if ...

&RSUDZGDX*\ZDQLHSHQHMIRUP\LQVWUXNFMLZDUXQNRZHM if-then-else) nie jest tu


NRQLHF]QH L VRZD else PR*QD XVXQ SDPL
WDMF R UHGQLNDFK  MHGQDN Z GDOV]\P
FLJXSRZ\*V]\WZyUE
G]LHFRQDMPQLHMQLHHOHJDQFNL6NXWHF]Q\PVSRVREHPREVXJL
wyborw wielowariantowych jest instrukcja wyboru case RGSRZLDGDMFD ] JUXEV]D
VWHUFLH]DJQLH*G*RQ\FKLQVWUXNFMLZDUXQNRZ\FK
caseSU]HF]QLNof
ZDUWR-1 : akcja-1;
ZDUWR-2 : akcja-2;
...
else akcja-GRP\OQD
end;

Instrukcja warunkowa

51

3RZ\*V]DVWUXNWXUDMHVWVZRLVWWDEOLFDNFMLRGSRZLDGDMF\FKSRV]F]HJyOQ\PZDUWRciom zmiennej SU]HF]nik L GRVNRQDOH QDGDMH VL


 GR UHDOL]DFML ZLHORZDULDQWRZ\FK
Z\ERUyZ NWyU\FK NODV\F]Q\P SU]\NDGHP MHVW PHQX =DXZD* *H RSUyF] DNFML VNRMDU]RQ\FK ] SRV]F]HJyOQ\PL ZDUWRFLDPL SU]HF]QLND PDV] PR*OLZR RNUHOHQLD DNFML
GRP\OQHMUHDOL]RZDQHMZSU]\SDGNXZ\VWSLHQLDZDUWRFLQLH]QDMGXMFHMVL
ZQDV]HM
WDEOLF\ 2GSRZLDGD ]D QL VRZR NOXF]RZH else XPLHV]F]RQH QD NRFX LQVWUXNFML
3HZQ\P RJUDQLF]HQLHP QDU]XFDQ\P SU]H] LQVWUXNFM
 case jest wymaganie, by
zmienna SU]HF]QLN E\D W\SX SRU]GNRZHJR WDN ZL
F QLH E
G]LHP\ PRJOL
]DVWRVRZD MHM Z QDV]\P SURJUDPLH Z NWyU\P Z\]QDF]QLN MHVW OLF]E U]HF]\ZLVW 
8DWZLHQLHP QDWRPLDVW MHVW PR*OLZR JUXSRZHJR GHILQLRZDQLD ZDUWRFL
RGSRZLDGDMF\FKSRV]czeglnym akcjom, np.:
case liczba_interesantow of
0
: mozna_wyjsc_do_fryzjera;
1, 2 : niech_czekaja;
3..6 : trzeba_obsluzyc;
else wypisz('INWENTARYZACJA')
end;

:DUWRFLRGSRZLDGDMFHSRV]F]HJyOQ\PDNFMRPPRJE\Z\OLF]DQHMDZQLHOXESRGDZDQH Z SRVWDFL ]DNUHVyZ RGGR  R LOH W\ONR WZRU] FLJ JUXS


 0XVLV] UyZQLH*
SDPL
WD *H  Z RGUy*QLHQLX RG LQVWUXNFML ZDUXQNRZHM  SU]HG VRZHP else
PR*HV]SRVWDZLUHGQLN
,WRE\E\RQDW\OHFRRF]\ZLFLHQLH]QDF]\*HPR*HV]VSRF]QDODXUDFK0LRMHVW
PLH SURJUDP SRWUDILF\ UR]ZL]D UyZQDQLH NZDGUDWRZH MHGQDN ]QDF]QLH SU]\MHPQLHMV]H E\RE\ SRVLDGDQLH QDU]
G]LD GR UR]ZL]\ZDQLD EDUG]LHM VNRPSOLNRZDQ\FK
UyZQD$OHF]\WRDE\QLH]DWUXGQH"%\QDMPQLHM

=DSDPL
WDM
'R ZDUXQNRZHJR Z\NRQ\ZDQLD RSHUDFML VX*\ Z SURJUDPDFK SDVFDORZ\FK
instrukcja warunkowa if-then-else.
8*\ZDMF LQVWUXNFML ZDUXQNRZ\FK PXVLV] SDPL
WD R ZDFLZ\P VWRVRZDQLX
LQVWUXNFML]R*RQHMRUD]REUDNXUHGQLNDSU]HGVRZHPelse.
$E\REVX*\ZL
FHMQL*GZDZDULDQW\PR*HV]X*\]DJQLH*G*RQ\FKLQVWUXNFML
warunkowych.
-HOL Z\ERUHP VWHUXMH ZDUWR W\SX SRU]GNRZHJR OHSV]\P UR]ZL]DQLHP MHVW
X*\FLHLQVWUXNFMLZ\ERUXcase.

You might also like