Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Javascript while, do-while dhe for loops. Deklarata if në gjuhën C

Hapi i dytë në krijimin e programeve të plota në Gjuha MatLabështë studimi i operatorëve të degëve dhe lakeve. Me ndihmën e tyre, ju mund të zbatoni logjikën e ekzekutimit të algoritmeve matematikore dhe të krijoni llogaritjet e përsëritura (përsëritëse, të përsëritura).

2.1. Deklarata e kushtëzuar nëse

Për të qenë në gjendje të zbatohet logjika në program, përdoren deklarata të kushtëzuara. Në mënyrë spekulative, këta operatorë mund të përfaqësohen si pika kyçe, deri në të cilat programi zgjedh se në cilin nga drejtimet e mundshme do të vazhdojë. Për shembull, ju dëshironi të përcaktoni nëse një variabël arg përmban një numër pozitiv ose negativ dhe të shfaqni mesazhin e duhur në ekran. Për ta bërë këtë, mund të përdorni deklaratën if (nëse), e cila kryen kontrolle të tilla.

Në mënyrën më të thjeshtë, sintaksa për këtë deklaratë if është:

nëse<выражение>
<операторы>
fund

Nëse vlera e parametrit të shprehjes është e vërtetë, atëherë deklarata ekzekutohet, përndryshe ai anashkalohet nga programi. Duhet të theksohet se "shprehja" është një shprehje e kushtëzuar në të cilën testohet një kusht. Në tabelë. 2.1 paraqet variante të shprehjeve të thjeshta logjike të pohimit if.

Tabela 2.1. Shprehje të thjeshta logjike

E vërtetë nëse a është më e vogël se b, e gabuar përndryshe.

E vërtetë nëse a është më e madhe se b, e gabuar përndryshe.

E vërtetë nëse ndryshorja a është e barabartë me ndryshoren b dhe e gabuar ndryshe.

E vërtetë nëse a është më e vogël ose e barabartë me b dhe e gabuar ndryshe.

E vërtetë nëse ndryshorja a është më e madhe ose e barabartë me ndryshoren b dhe e gabuar ndryshe.

E vërtetë nëse ndryshorja a nuk është e barabartë me ndryshoren b dhe e gabuar ndryshe.

Më poshtë është një shembull i zbatimit të funksionit sign(), i cili kthen +1 nëse numri është më i madh se zero, -1 nëse numri është më i vogël se zero dhe 0 nëse numri është zero:

funksioni im_sign
x=5;
nëse x > 0
disp (1);
fund
nëse x< 0
disp(-1);
fund
nëse x == 0
disp(0);
fund

Analiza e shembullit të dhënë tregon se të tre këto kushte përjashtojnë njëra-tjetrën, d.m.th. kur njëra prej tyre nxitet, nuk ka nevojë të kontrolloni të tjerët. Zbatimi i një logjike të tillë do të rrisë shpejtësinë e ekzekutimit të programit. Kjo mund të arrihet duke përdorur konstruktin

nëse<выражение>
<операторы1>% ekzekutohet nëse kushti është i vërtetë
tjetër
<операторы2>% ekzekutohet nëse kushti është i rremë
fund

Atëherë shembulli i mësipërm mund të shkruhet si më poshtë:

funksioni im_sign
x=5;
nëse x > 0
disp (1);
tjetër
nëse x< 0
disp(-1);
tjetër
disp(0);
fund
fund

Ky program fillimisht kontrollon nëse ndryshorja x është pozitive, dhe nëse po, atëherë vlera 1 shfaqet në ekran dhe të gjitha kushtet e tjera shpërfillen. Nëse kushti i parë rezulton i gabuar, atëherë ekzekutimi i programit vazhdon tjetër (ndryshe) në kushtin e dytë, ku ndryshorja x kontrollohet për negativitet, dhe nëse kushti është i vërtetë, vlera -1 shfaqet në ekrani. Nëse të dyja kushtet janë false, atëherë del 0.

Shembulli i mësipërm mund të shkruhet në një formë më të thjeshtë duke përdorur një tjetër konstrukt MatLab nëse deklarata:

nëse<выражение1>
<операторы1>% ekzekutohet nëse shprehja 1 është e vërtetë
tjeter nese<выражение2>
<операторы2>% ekzekutohet nëse shprehja 2 është e vërtetë
...
tjeter nese<выражениеN>
<операторыN>% ekzekutohet nëse shprehja N është e vërtetë
fund

dhe shkruhet si më poshtë:

funksioni im_sign
x=5;
nëse x > 0
disp (1); % ekzekutohet nëse x > 0
otherif x< 0
disp(-1); % ekzekutohet nëse x< 0
tjetër
disp(0); % ekzekutohet nëse x = 0
fund

Nëpërmjet operator i kushtëzuar nëse , mund të kontrolloni për kushte më komplekse (të përbëra). Për shembull, duhet të përcaktoni: a bie ndryshorja x brenda intervalit të vlerave nga 0 në 2? Kjo mund të bëhet duke kontrolluar njëkohësisht dy kushte: x >= 0 dhe x<=2. Если эти оба условия истинны, то x попадает в диапазон от 0 до 2.

Për të zbatuar kushtet e përbëra në MatLab, përdoren operatorë logjikë:

& - logjike DHE
| - logjik OSE
~ - logjike JO

Le të shohim një shembull të përdorimit të kushteve të përbëra. Le të kërkohet të kontrollohet nëse ndryshorja x është në intervalin nga 0 në 2. Programi do të shkruhet si më poshtë:

funksioni my_if
x = 1;
nëse x >= 0 & x<= 2
tjetër
disp("x nuk është në rangun 0 deri në 2");
fund

Në shembullin e dytë, le të kontrollojmë nëse ndryshorja x nuk i përket diapazonit nga 0 në 2. Kjo arrihet duke shkaktuar një nga dy kushtet: x< 0 или x > 2:

funksioni my_if
x = 1;
nëse x< 0 | x > 2
disp("x nuk është në rangun 0 deri në 2");
tjetër
disp("x është në rangun 0 deri në 2");
fund

Duke përdorur operatorët logjikë DHE, OSE, JO, ju mund të krijoni një sërë kushtesh komplekse. Për shembull, mund të kontrolloni që ndryshorja x është në intervalin nga -5 në 5, por jo në intervalin nga 0 në 1. Natyrisht, kjo mund të zbatohet si më poshtë:

funksioni my_if
x = 1;
nëse (x >= -5 & x<= 5) & (x < 0 | x > 1)
disp("x i përket [-5, 5] por nuk është në ");
tjetër
disp("x nuk është ose në [-5, 5] ose në ");
fund

Vini re se kllapat janë përdorur në gjendjen komplekse të përbërjes. Fakti është se përparësia e operacionit AND është më e lartë se përparësia e operacionit OR, dhe nëse nuk do të kishte kllapa, atëherë kushti do të dukej kështu: (x >= -5 dhe x<= 5 и x < 0) или x >1. Natyrisht, një kontroll i tillë do të jepte një rezultat të ndryshëm nga sa pritej.

Kllapat në programim përdoren për të ndryshuar përparësinë e ekzekutimit të deklaratave. Ashtu si operatorët aritmetikë, edhe operatorët logjikë mund të modifikohen sipas dëshirës së programuesit. Falë përdorimit të kllapave, kontrolli kryhet fillimisht brenda tyre, e më pas jashtë tyre. Kjo është arsyeja pse, në shembullin e mësipërm, ato janë të nevojshme për të arritur rezultatin e dëshiruar.

Prioriteti i operacioneve logjike është si më poshtë:

NOT (~) - prioriteti më i lartë;
Dhe (&) - prioritet i mesëm;
OSE (|) është prioriteti më i ulët.

Aftësia për të kontrolluar rrjedhën e programit ju lejon të ekzekutoni në mënyrë selektive seksione individuale të kodit, dhe kjo është një veçori shumë e vlefshme e programimit. Deklarata if select na lejon të ekzekutojmë ose jo të ekzekutojmë seksione të caktuara të kodit, në varësi të faktit nëse kushti i kësaj deklarate është i vërtetë ose i gabuar. Një nga përdorimet më të rëndësishme të deklaratës if select është se lejon programin të ndërmarrë një veprim sipas zgjedhjes së tij, në varësi të asaj që përdoruesi ka futur. Një shembull banal i përdorimit të if është për të kontrolluar fjalëkalimin e futur nga përdoruesi, nëse fjalëkalimi është i saktë, programi i lejon përdoruesit të kryejë disa veprime, nëse fjalëkalimi është futur gabimisht, atëherë programi nuk do ta lejojë përdoruesin të ketë akses të kufizuar burimet.

Pa deklaratën e kushtëzuar, programi do të funksiononte në të njëjtën mënyrë pa pushim, pavarësisht se çfarë të dhënash dha përdoruesi. Nëse përdorni deklarata të zgjedhura, atëherë rezultati i programit mund të jetë shumë më interesant, pasi do të varet drejtpërdrejt nga të dhënat hyrëse të përdoruesit.

Para se të filloni të kuptoni strukturën e deklaratës if, ia vlen t'i kushtoni vëmendje vlerave të tilla si TRUE dhe FALSE në kontekstin e programimit dhe terminologjisë kompjuterike.

Vlera e vërtetë (TRUE) ka një vlerë të ndryshme nga zero, FALSE është ekuivalente me zero. Kur përdorni operatorë krahasimi, operatori do të kthejë një nëse shprehja e krahasimit është e vërtetë, ose -0 nëse shprehja e kushtëzuar është false. Për shembull, shprehja 3 == 2 do të kthejë vlerën 0, sepse tre nuk është e barabartë me dy. Shprehja 5 == 5 vlerësohet në true dhe do të kthejë vlerën 1. Nëse e keni të vështirë për t'u kuptuar, provoni të printoni këto shprehje në ekran, për shembull: printf ("%d", 7 == 0);

Në procesin e programimit, shpesh është e nevojshme të krahasohen disa variabla me të tjerët dhe, bazuar në këto krahasime, të kontrollohet rrjedha e programit. Ekziston një listë e tërë operatorësh që ju lejon të bëni krahasime, këtu është:

Me shumë mundësi ju jeni njohur me këta operatorë krahasimi, por për çdo rast, unë i kam treguar në tabelën e mësipërme. Nuk duhet të jenë të vështira për t'i kuptuar, shumica e këtyre operatorëve i keni mësuar në shkollë në orët e matematikës. Tani që e kuptoni se çfarë janë E VËRTETA dhe E FALSE, është koha për të vënë në provë deklaratën nëse zgjidhni në betejë. nëse struktura:

Nëse (shprehje e kushtëzuar) // këtu është një deklaratë që do të ekzekutohet nëse shprehja e kushtëzuar është e vërtetë

Këtu është një shembull i thjeshtë i përdorimit të deklaratës if:

Nëse (7 > 6) printf("Shtatë është më e madhe se gjashtë");

Në këtë shembull, programi vlerëson shprehjen e kushtëzuar - "është shtatë më i madh se gjashtë?" Për të parë rezultatin e kësaj pjese të kodit, thjesht ngjiteni atë në funksionin main() dhe mos harroni të përfshini kokën stdio.h, ekzekutoni programin dhe shikoni rezultatin - true . Ndërtimi i deklaratës if me kllapa kaçurrelë:

Nëse (TRUE) ( /* i gjithë kodi që vendoset brenda kllapave do të ekzekutohet */ )

Nëse nuk përdorni kllapa kaçurrela, atëherë vetëm një, pohimi i parë, do t'i referohet trupit të deklaratës if. Nëse keni nevojë të kontrolloni deklarata të shumta, atëherë duhet t'i vendosni ato në kllapa kaçurrelë. Unë rekomandoj që gjithmonë të vendosni kllapa pas deklaratës if - kjo është praktikë e mirë programimi dhe nuk do të ngatërroni kurrë në kodin tuaj, pasi një deklaratë e tillë është më e kuptueshme.

deklaratë tjetër

Ndonjëherë, kur shprehja e kushtëzuar është false, do të ishte e përshtatshme që një kod të ekzekutohej ndryshe nga kodi që ekzekutohet kur kushti është TRUE. Si bëhet?
Këtu është një shembull duke përdorur deklaratën if else:

Nëse (TRUE) ( /* ekzekutoni këtë kod nëse kushti është i vërtetë */ ) tjetër ( /* ekzekutoni këtë kod nëse kushti është false */ )

tjetër nëse ndërtohet

Zakonisht deklarata të tjera if përdoret kur nevojitet përzgjedhje e shumëfishtë, domethënë, për shembull, përcaktohen disa kushte që mund të jenë të vërteta në të njëjtën kohë, por na duhet vetëm një shprehje e vërtetë kushtore. Ju mund të përdorni një deklaratë if else menjëherë pas deklaratës Select if, pas trupit të saj. Në një rast të tillë, nëse kushti i deklaratës së parë select është TRUE, atëherë konstrukti else if do të injorohet, ndërsa në të kundërtën, nëse kushti i deklaratës së parë select është FALSE, atëherë konstrukti else if do të kontrollohet. Kjo do të thotë, nëse kushti i një deklarate if është i vërtetë, atëherë të tjerët nuk do të kontrollohen. Tani, për ta rregulluar mirë të gjithë këtë në kokën tonë dhe për ta kuptuar, le të shohim një shembull të thjeshtë duke përdorur konstruksionet e operatorëve të zgjedhur.

#përfshi #përfshi int main() ( int age; // pa variabël, asgjë... printf("Sa vjeç je?"); // pyet përdoruesin për moshën e tij scanf("%d", &age); // përdoruesi shkruani numrin e viteve nëse (mosha< 100) { // если введенный возраст меньше 100 printf ("Вы очень молоды!\n"); // просто показываем что программа сработала верно... } else if (age == 100) { // используем else для примера printf("Молодость уже позади\n"); // \n - символ перевода на новую строку. } else { printf("Столько не живут\n"); // если ни одно из выше-перечисленных условий не подошло, то программа покажет этот вариант ответа } return 0; }

Merrni parasysh shprehjet e kushtëzuara interesante duke përdorur operatorë logjikë.

Operatorët logjikë ju lejojnë të krijoni më komplekse shprehjet e kushtëzuara. Për shembull, nëse doni të kontrolloni nëse ndryshorja juaj është më e madhe se 0 por më e vogël se 10, atëherë ju duhet vetëm të përdorni operatorin logjik - AND. Kështu bëhet - var > 0 dhe var< 10 . В языке СИ есть точно такой же же оператор, только обозначается он иначе — && .
Kur përdorni deklaratat if, shpesh është e nevojshme të kontrolloni disa kushte të ndryshme, kështu që është shumë e rëndësishme të kuptohen operatorët logjik OSE, JO dhe DHE. Operatorët logjikë punojnë saktësisht si operatorët e krahasimit: ata kthejnë 0 nëse janë false ose 1 nëse janë false. shprehje boolean- e vertete.
Më shumë për operacionet logjike ju mund të lexoni në.

Në këtë artikull, ne do të vazhdojmë të eksplorojmë Bazat e PHP dhe flasim për cikle dhe kushte. Para së gjithash, merrni parasysh konstruktin IF - ELSE, i cili ju lejon të kryeni veprime të caktuara në varësi të faktit nëse kushti plotësohet apo jo. Pastaj do të kalojmë në cikle. Në total, do të merren parasysh tre konstruksione të lakut - këto janë sythe WHILE, DO - WHILE dhe cikli FOR.

Bazat e PHP. IF-ELSE konstrukton

Konstrukti IF-ELSE lejon që disa veprime të kryhen në varësi të plotësimit të kushteve apo jo. Ky dizajn mund të përdoret gjerësisht në praktikë, për shembull, për të krijuar një mbrojtje të thjeshtë të një seksioni të faqes me një fjalëkalim. Nëse përdoruesi hyn fjalëkalimi i saktë, atëherë atij i jepet akses në seksionin privat. Përndryshe, ne mund t'i japim atij, për shembull, një mesazh gabimi.

Në praktikë, konstrukti IF-ELSE duket si ky:

Pra le të komentojmë. Së pari, variablave u caktohen vlera. Pastaj vendoset një kusht. Nëse ndryshorja $a është e barabartë me variablin $b, atëherë kodi në të parën mbajtëse kaçurrelë. Nëse kushti nuk plotësohet, atëherë çdo gjë në kllapat e para kaçurrelë anashkalohet dhe kodi në mbajtëset kaçurrela pas ELSE ekzekutohet. Siç mund ta shihni, gjithçka është e zakonshme dhe e thjeshtë.

përveç kushte të thjeshta në PHP, mund të përdorni disa kushte dhe konstruksione IF - ELSE. Për shembull, le të shqyrtojmë kodin e mëposhtëm:

"; nëse ($e != $c) (echo "Ndryshorja E nuk është e barabartë me ndryshoren C
"; ) else (echo "Variabla E është e barabartë me variablin C
"; ) ) else (echo "Ndryshoret nuk janë të barabarta
"; } ?>

Së pari, ne u caktojmë vlera të caktuara variablave. Pastaj ka konstruksione të mbivendosura IF-ELSE. Siç mund ta shihni në PHP, çdo konstrukt IF - ELSE mund të përmbajë konstruksione të tjera të ngjashme, numri i të cilave, në parim, nuk është i kufizuar.

Tani le të shohim shenjat që përdoren në kushte.

  • == - në PHP kjo shenjë do të thotë barazohet. Shenja "=" në PHP është një shenjë caktimi.
  • != jo të barabartë, për shembull, $a != $b - ndryshorja $a nuk është e barabartë me ndryshoren $b.
  • dhe ose &&- domethënie DHE, për shembull, $a != $b && $c != $d - $a nuk është e barabartë me $b dhe $c nuk është e barabartë me $d.
  • ose ose ||- domethënie OSE, për shembull, $a != $b || $c != $d - $a nuk është e barabartë me $b ose $c nuk është e barabartë me $d.

Pra, ne kuptuam interpretimin e të gjitha shenjave. Tani le të fillojmë të lexojmë kodin e mësipërm, i cili me fjalë mund të formulohet si më poshtë:

Nëse ndryshorja $a është e barabartë me variablin $b dhe ndryshorja $c është e barabartë me variablin $d ose ndryshorja $e është e barabartë me variablin $d, atëherë shfaqim mesazhin "Variablet janë të barabarta" dhe bëjmë një thyerje rreshti. Më pas bëjmë një kontroll tjetër. Nëse ndryshorja $e nuk është e barabartë me ndryshoren $c, atëherë shfaqim mesazhin "Variabla E nuk është e barabartë me variablin C" dhe bëjmë një thyerje rreshti. Nëse kushti nuk plotësohet, atëherë shfaqim "Variable E është e barabartë me ndryshoren C". Nëse kushti i parë nuk plotësohet, atëherë i gjithë kodi në kllapat e para kaçurrelë anashkalohet dhe menjëherë shfaqet mesazhi "Ndryshoret nuk janë të barabarta" dhe bëhet një ndërprerje rreshti (etiketa
).

Kjo përfundon diskutimin tonë për konstruktin IF-ELSE. Shpresoj të kuptoni thelbin e sa më sipër dhe të kalojmë në studime të mëtejshme. Bazat e PHP-së– studimi i cikleve.

Bazat e PHP. WHILE dhe DO sythe - WHILE

Loop-et në PHP kanë një aplikim shumë të gjerë, pasi ju lejojnë të zbatoni shumë funksione që janë të pranishme në çdo sajt dinamik. Një nga detyrat më të zakonshme që zgjidhet duke përdorur sythe është, për shembull, dalja lajmet e fundit faqe. E gjithë qëllimi i sytheve është të kryeni një veprim të caktuar për sa kohë që plotësohet një kusht. Për shembull, le të zgjidhim problemin e llogaritjes së shumës së numrave nga një në 10. Në këtë rast numri i numrave mund të jetë çdo gjë, por si shembull, le të marrim numrin 10, pasi në këtë rast do të jetë më e lehtë të kontrolloni rezultatin.

Për të zgjidhur këtë problem, ne do të përdorim ndërsa lak . Kodi për llogaritjen e shumës së numrave nga një në dhjetë do të ishte si më poshtë:

Para së gjithash, ne vendosim variablat $s (shuma) dhe $i (counter) dhe u caktojmë atyre vlera. Pastaj shkruajmë ciklin WHILE, në gjendjen e të cilit tregojmë se cikli duhet të ekzekutohet derisa ndryshorja $i (counter) të jetë më e vogël ose e barabartë me 10. Ne shkruajmë vlerën e ndryshores $s në trupin e ciklit dhe rrisni numëruesin e $i me një. Kjo bëhet duke përdorur dy shenja + ($i++) ose shtim i thjeshtë njësi ($i = $i + 1). Vlera e kundërvlerësimit duhet të ndryshohet pa dështuar në mënyrë që të shmanget looping (ekzekutimi i ciklit të pafund).

Tani le të shohim se si ekzekutohet programi. Së pari caktojmë një vlerë për ndryshoret. Gjendja më pas kontrollohet në lak. Nëse ekzekutohet, atëherë ekzekutohet kodi që ndodhet në trupin e lakut (në kllapa kaçurrelë). Pas ekzekutimit të trupit të lakut dhe rritjes së vlerës së numëruesit, gjendja kontrollohet përsëri dhe, nëse është e vërtetë, cikli përsëritet përsëri. Lakja do të përsëritet për sa kohë të plotësohet kushti. Pas përfundimit të ciklit, rezultati shfaqet në ekran duke përdorur deklaratën e daljes Echo. Mund të gjeni më shumë informacion në lidhje me variablat dhe operatorët e daljes në artikullin "".

Në te njejtën mënyrë funksionon edhe cikli DO-WHILE. Dallimi i vetëm këtu është se kontrolli i gjendjes bëhet pasi të ekzekutohet cikli. Kështu, ekzekutimi i lakut në çdo rast do të ndodhë të paktën një herë. Në praktikë, cikli DO - WHILE duket kështu:

Siç mund ta shihni, në zgjidhjen e problemit të llogaritjes së shumës së numrave nga një në dhjetë, duke përdorur ciklin DO - WHILE, variablave fillimisht u caktohen vlera. Pastaj ekzekutohet kodi dhe rritet vlera e numëruesit dhe vetëm pas gjithë kësaj kontrollohet gjendja. Nëse është, atëherë cikli përsëritet përsëri. Përndryshe, rezultati shfaqet në ekran duke përdorur deklaratën e daljes.

Bazat e PHP. PER lak

Me ndihmë PER lak mund të kryeni të gjitha veprimet e njëjta si me ciklin WHILE. Përdoret gjithashtu gjatë krijimit të sajteve, por, për mendimin tim, në një masë më të vogël se cikli WHILE. Personalisht preferoj këtë të fundit, por në kuadër të këtij artikulli do të shqyrtojmë edhe ciklin FOR, pasi është pjesë e gjuhës PHP dhe duhet ta dini.

Le të shohim zgjidhjen e problemit të mëparshëm duke përdorur një unazë FOR. Kodi për llogaritjen e shumës së numrave nga një në dhjetë duke përdorur një cikli FOR do të duket kështu:

Siç mund ta shihni, sintaksa e lakut FOR është si më poshtë. Fillimisht inicializohen variablat, më pas specifikohet gjendja, pas së cilës tregohet veprimi që do të kryhet pas kalimit të një cikli. Skematikisht do të duket diçka si kjo:

Për (inicializimi; kushti; veprimi pas ekzekutimit të një laku) ( Trupi i lakut (veprimi) )

Siç mund ta shihni Sintaksa PHP e ngjashme me sintaksën C++. Nëse keni studiuar C++, atëherë do ta keni më të lehtë të mësoni PHP. Por edhe nëse nuk keni studiuar gjuhë të tjera programimi më parë, mund të zotëroni lehtësisht bazat e PHP, pasi është një nga më gjuhë të thjeshta programimit.

Kjo përfundon këtë artikull mbi bazat e PHP. Nëse ju pëlqen stili im i të shkruarit të artikujve dhe vetë përmbajtja e tyre, mund të regjistroheni në lajmet e faqes në çdo mënyrë të përshtatshme për ju në artikullin "Abonimi".

Kjo eshte e gjitha. Fat i mirë dhe shihemi së shpejti në faqet e blogut

C++ ofron një grup standard operatorësh për zgjedhjen e një përzgjedhjeje dhe ciklesh.

Fjalët kyçe që lidhen me ndërtimin e kushteve të degëzimit për kodin janë:

  • kaloni
  • thyej
  • default

Fjalët kyçe që lidhen me ndërtimin e cikleve janë:

  • derisa
  • thyej
  • vazhdojnë

Deklaratat e kushteve

Deklarata Nëse

Ndërtimi i kushtit duke përdorur deklaratën if është formuar si më poshtë:

int x = 56; bool check_x() (nëse (x > 0) kthen true; kthe false; )

Në këtë rast, kushti vendoset në kllapa pas deklaratës if. në këtë ndërtim, kodi i kthimit është i vërtetë; do të ekzekutohet nëse x është më i madh se 0. rreshti tjetër kthehet false; Nuk vlen më për kodin që do të ekzekutohet kur të plotësohet kushti. Në konstruktet e kushteve, nëse plotësohet ky kusht, vetëm një rresht kodi do të ekzekutohet nëse kodi nuk është i mbyllur në kllapa kaçurrelë, domethënë nëse trupi i kodit ekzekutohet me kusht që të mos formohet. Le të shqyrtojmë dy variante të kodit:

Opsioni i parë:

int x = 56; bool check_x() (nëse (x > 0) x = 0; kthe e vërtetë; kthe false; )

në këtë kod, ktheni true; do të ekzekutohet gjithmonë, sepse vetëm vargu x = 0 është i rëndësishëm për kodin që ekzekutohet;

Opsioni i dytë:

int x = 56; bool check_x() (nëse (x > 0) ( x = 0; kthe e vërtetë; ) kthe false; )

në këtë kod, ktheni true; Do të plotësohet vetëm nëse plotësohet kushti x> 0.

Deklarata tjetër

tjetër Deklarata përdoret së bashku me nëse deklaratë për të formuar një sekuencë kushtesh.

int x = 56; bool check_x() (nëse (x > 0) ( x = 0; kthe e vërtetë; ) tjetër nëse (x< 0) { x = 0; return false; } else { return false; } }

Deklarata else mund të përdoret për të shtuar një kusht të ri nëse kushti i mëparshëm, përndryshe nëse deklarata dështon. Dhe si kod përfundimtar në një sekuencë kushtesh, nëse nuk plotësoheshin kushtet e mëparshme. Përndryshe, është e mundur të përdoren mbajtëset për trupin e kodit nëse kodi përshtatet në një rresht.

Ndërrimi i deklaratave, rasti, pushimi, parazgjedhja

rasti i ndërprerësit konstrukti përdoret për zgjedhjen e degëzimit të kodit, në gjendjen e të cilit zgjedhja bëhet me vlera të plota. Kjo do të thotë se rasti i ndërprerës mund të përdoret vetëm për vlera të plota, numërime dhe zgjedhje nga kodi i simbolit.

int x = 100; bool check_x() ( switch (x) (rasti 0: kthen true; rasti 50: x = 0: break; rasti 100: kthen false; parazgjedhje: ktheje false; )

Në kodin e mësipërm, ndryshorja x kontrollohet të jetë e barabartë me numrat 0, 50, 100. Operatori i paracaktuar zgjedh kodin që ekzekutohet nëse nuk plotësohet asnjë nga kushtet. Vini re gjithashtu se në bllokun e kodit me rastin 50: shtuar një deklaratë break, kjo deklaratë del nga kushti, ndërsa deklarata kthyese del nga funksioni. Nëse nuk shtoni një deklaratë pushimi, ekzekutimi i kodit do të vazhdojë në rastin 100:. Për shkak të kësaj veçorie të ndërtimit të rastit të ndërprerësit, është e mundur të kombinohen kushtet për të cilat është e nevojshme të ekzekutohet i njëjti kod. Për shembull:

int x = 100; bool check_x() ( switch (x) (rasti 0: rasti 50: rasti 100: ktheje e vërtetë; parazgjedhje: ktheje false; ) )

Kështu, për x të barabartë me 0, 50, 100, funksioni kthehet true, ndërsa për të gjitha vlerat e tjera funksioni i kthen false.

Gjithashtu, kodi për Zgjedhja e rastit në këtë konstrukt mund të mbështillet në blloqe kodi, të cilat do të kufizojnë shtrirjen dhe do të përdorin deklaratat e variablave me të njëjtin emër.

int x = 100; int check_x() ( switch (x) ( case 0: ( int y = 1; return y; ) case 50: ( int y = 2; return y; ) case 100: ( int y = 3; return y; ) default : kthe x;))

Kështu, duke kufizuar shtrirjen, ne jemi në gjendje të përdorim variabla me të njëjtat emra në kushtet e rastit. Por mos harroni se jashtë fushëveprimit, i kufizuar nga kllapa kaçurrelë, ndryshorja y nuk do të ekzistojë në këtë rast.

Operatorët e ciklit

Deklarata while

Deklarata while përsërit kodin në trupin e saj për sa kohë që plotësohet kushti. Për shembull:

Int i = 0; nderkohe une< 10) { i = i + 1; }

Në këtë kod unë do të jem 10 pas ciklit.

Deklarata do

Deklarata do përdoret së bashku me deklaratën while dhe lejon që trupi i ciklit të ekzekutohet të paktën një herë, përpara se të kontrollohet kushti i ciklit. Për shembull:

Int i = 15; bëj (i = i - 5; std::cout<< i << std::endl; } while (i >0 && i< 13);

Në këtë kod, ndryshorja I nuk përputhet fillimisht me kushtin dhe në ciklin e zakonshëm while, kodi i trupit të lakut nuk është ekzekutuar, por duke qenë se përdoret cikli do-while, testi do të kryhet pasi trupi i ciklit të jetë ekzekutuar. Si rezultat, dalja e std::cout është:

Ju mund të pyesni, pse ka 0 në dalje? Nuk i përshtatet kushtit. Përsëri, për faktin se kontrolli kryhet pasi kodi është ekzekutuar në trupin e lakut. Kjo do të thotë, trupi i lakut është ekzekutuar dhe më pas kryhet një kontroll, rezultati i të cilit cikli përfundon punën e tij.

Deklarata e pushimit

Ashtu si në rastin e ndërprerësit, kjo deklaratë mund të përdoret në sythe. Kjo është e nevojshme për të dalë nga cikli, përpara se të plotësohet kushti i ciklit. Për shembull:

Int i = 15; nderkohe une< 50) { if (i < 0) { break; } i = i - 5; }

Në këtë shembull artificial, do të rezultonte një cikël i përjetshëm sepse ndryshorja i zvogëlohet në vend që të rritet, dhe nga kushti i ciklit, prodhimi do të prodhohet vetëm nëse i është më i madh se 50. Por falë deklaratës break dhe kushtit të testit për vlerën negative të ndryshores i Ekzekutimi i programit do të dalë nga ky cikli sapo i bëhet më i vogël se 0.

Deklarata e vazhdueshme

Ky operator ju lejon të anuloni përsëritjen e një cikli dhe të filloni një përsëritje të re të ciklit përpara se të ekzekutoni të gjithë kodin në trupin e ciklit. Për shembull:

Int i = 0; nderkohe une< 5) { if (i == 3) { i = i + 1; continue; } std::cout << i << std::endl; i = i + 1; }

Kur ekzekutojmë këtë kod, marrim daljen e mëposhtme:

Kjo do të thotë, prodhimi i numrit 3 do të hiqet.

Deklarata për

Sythet me deklaratën for ju lejojnë të kombinoni inicializimin e variablave, gjendjen dhe ndryshimin e këtyre variablave.

Kjo është, cikli i mëposhtëm while

Int i = 0; nderkohe une< 10) {

Do të jetë ekuivalente me ciklin e mëposhtëm:

Për (int i = 0; i< 10; i++) { // ToDo Something }

Avantazhi i këtij cikli for do të jetë se ndryshorja I do të jetë në shtrirjen lokale të ciklit for.

Për sythe mund të inicializohen me disa variabla të të njëjtit lloj. Për shembull:

Për (int i = 0, *p = i< 9; i += 2) { std::cout << i << ":" << *p << " "; }

Gjithashtu, kushti mund të jetë një deklaratë, inicializimi i një ndryshoreje. Për shembull:

Char cstr = "Përshëndetje"; për (int n = 0; char c = cstr[n]; ++n) ( std::cout<< c; }

Duke pasur parasysh standardin C++ 11, ndryshorja automatike mund të përdoret si lloj variabli, i cili ju lejon të nxirrni llojin e ndryshores nga iniciatori:

std::vektor v = (3, 1, 4, 1, 5, 9); për (auto iter = v.begin(); iter != v.end(); ++iter) (std::cout<< *iter << " "; }

Gjithashtu një pikë interesante është se iniciatori, kushti dhe blloku i ndryshimit mund të jenë shprehja:

int n = 0; për (std::cout<< "Loop start\n"; std::cout << "Loop test\n"; std::cout << "Iteration " << ++n << "\n") { if(n >1) pushim; )

Duke filluar me standardin C++11, për sythe, përsëritja është shtuar për kontejnerët që mbështesin përsëritjen. Për shembull, kontejneri vektorial nga biblioteka standarde:

std::vektor v = (0, 1, 2, 3, 4, 5); për (konst int& i: v) std::cout<< i << " ";

Në këtë kod, ndërtimi i lakut është si më poshtë:

Për (Marrë nga kontejneri në çdo përsëritje të objektit: kontejner) ( // Trupi i ciklit )

Gjithashtu, sythe të bazuara në Range mbështesin deklaratën automatike. Për shembull:

std::vektor v = (0, 1, 2, 3, 4, 5); për (auto& i: v) std::cout<< i << " ";

Mësimi trajton operatorin e kushtëzuar në Pascal ( nëse). Shpjegon se si të përdoren kushte të shumta në një konstrukt ( DHE Dhe OSE). Janë konsideruar shembuj të punës me operatorin.

Ju kujtojmë se kjo faqe nuk pretendon të jetë një prezantim i plotë i informacionit mbi temën. Qëllimi i portalit është të ofrojë një mundësi për të përvetësuar materialin bazuar në shembuj të zgjidhur të gatshëm në temën "Gjuha e Programimit Pascal" me detyra praktike për të konsoliduar materialin. Detyrat Pascal të paraqitura në sajt renditen në mënyrë sekuenciale ndërsa kompleksiteti i tyre rritet. Faqja e faqes mund të përdoret nga mësuesit dhe pedagogët si një ndihmë vizuale.

Para shqyrtimit të kësaj teme, kryesisht janë përdorur algoritme lineare në Pascal, të cilat janë tipike për detyra shumë të thjeshta, kur veprimet (operatorët) kryhen në mënyrë sekuenciale, njëri pas tjetrit. Algoritmet më komplekse përfshijnë përdorimin e një konstrukti degëzimi.

Grafiku i rrjedhës së deklaratës së kushtëzuar:

Operatori i kushtëzuar në Pascal ka sintaksën e mëposhtme:

Versioni i shkurtuar:

nëse kushti atëherë deklaratë;

Versioni i plotë:

nëse kushti, atëherë deklarata tjetër;

Operatori i kushtëzuar në Pascal - nëse - shërben për të organizuar ecurinë e detyrës në atë mënyrë që sekuenca e ekzekutimit të operatorëve të ndryshojë në varësi të disa kushteve logjike. Një kusht logjik mund të marrë një nga dy vlerat: ose e vërtetë (e vërtetë) ose e rreme (false), përkatësisht, mund të jetë ose e vërtetë ose e rreme.

Deklaratë e përbërë

Nëse, në një kusht të vërtetë, është e nevojshme të ekzekutohen disa deklarata, atëherë sipas rregullave të gjuhës Pascal, ato duhet të mbyllen në një bllok, duke filluar me funksionin filloj dhe duke përfunduar me fjalën funksion fund . Një bllok i tillë quhet kllapat e operatorit, dhe ky ndërtim operator i përbërë:

Kllapat e operatorit dhe operatori i përbërë në Pascal:

nëse shprehja boolean atëherë filloni deklaratën1; operatori2; fundi tjetër fillojë deklarata1; operatori2; fundi;

Përkthimi nga operatori i kushteve në anglisht do ta bëjë më të lehtë kuptimin e përdorimit të tij:

NËSE PASTAJ TJETER
NËSE PASTAJ PER Ndryshe


Në një gjendje (në një shprehje logjike), përdoren operatorë relacionalë.
Konsideroni një listë të operatorëve relacionalë të Pascal:

  • më shumë >
  • më pak
  • më i madh ose i barabartë me në Pascal >=
  • më pak se ose e barabartë me në Pascal
  • krahasimi në Pascal =
  • jo e barabartë në Pascal

Shembull: gjeni më të madhin nga dy numrat

opsioni 1 Opsioni 2


Kuptoni punën në detaje Mund të përdorni operatorin e kushtëzuar në Pascal duke parë video tutorial:

Shembull: njehsoni vlerën e ndryshores y nga njëra prej dy degëve

Trego zgjidhjen:

varx,y:real; filloni të shkruani ("Fut x"); lexo (x); nëse x>0 atëherë y:=ln(x) tjetër y:=exp(x); Writln ("y=", y:6:2) (numri përfundimtar do të marrë 6 pozicione dhe do të ketë 2 shifra dhjetore) fundi.

Vini re se si shtypet y në këtë shembull. Kur nxirren variablat e tipit në pascal, mund të përdoret i ashtuquajturi dalje e formatuar, ose shënim me dy dy pika:
y:6:2
- numri pas dy pikave të para (6) tregon se sa karaktere do të marrë numri kur të shfaqet në ekran
- numri pas dy pikave të dyta (2) tregon se sa shifra dhjetore të numrit real do të shfaqen

Kështu, përdorimi i një shënimi të tillë në paskal praktikisht lejon rrumbullakimin në të qindtat, të mijëtat, etj.

Detyra 0. Llogaritni vlerën e ndryshores y duke përdorur një nga dy degët:

Detyra 1. Dy numra futen në kompjuter. Nëse e para është më e madhe se e dyta, atëherë llogaritni shumën e tyre, përndryshe - produktin. Pas kësaj, kompjuteri duhet të printojë rezultatin dhe tekstin PROBLEM SOLVED

Detyra 2. Dragoi rrit tre koka çdo vit, por pasi të jetë 100 vjeç - vetëm dy. Sa koka dhe sy ka dragoi N vjet?

Operacionet Boolean në Pascal (në shprehje boolean)

Kur duhet të përdorni një kusht të dyfishtë në Pascal, keni nevojë për operacione logjike.

  • Operacioni Boolean DHE (Dhe), i vendosur midis dy kushteve, thotë se të dyja këto kushte duhet të plotësohen menjëherë (duhet të jenë të vërteta). Kuptimi logjik i operacionit është "lidhja".
  • E vendosur mes dy kushteve, shenja OSE (OR) thotë se mjafton nëse të paktën njëri prej tyre është i vërtetë (një nga dy kushtet është i vërtetë). Kuptimi logjik i operacionit është "ndarje".
  • Në Pascal XOR - një shenjë e një operacioni logjik, që do të thotë "ndarje e rreptë" dhe që tregon se është e nevojshme që një nga dy kushtet të plotësohet (e vërtetë) dhe tjetra të mos plotësohet (e rreme).
  • Operacioni Boolean JO para një shprehjeje ose ndryshoreje logjike, ka kuptimin "negim" ose "inversion" dhe tregon se nëse ndryshorja ose shprehja e dhënë është e vërtetë, atëherë mohimi i saj është i gabuar dhe anasjelltas.

E rëndësishme: Secila prej kushteve të thjeshta duhet të vendoset në kllapa.

Shembull: Shqyrtoni shembuj të veprimeve logjike në shprehjet logjike në Pascal

1 2 3 4 5 6 7 8 varn: numër i plotë; fillimi:= 6 ; nëse (n>5 ) dhe (n<10 ) then writeln ("истина" ) ; if (n>7 ) ose (n<10 ) then writeln ("истина" ) ; if (n>7)xor(n<10 ) then writeln ("истина" ) ; if not (n>7) pastaj shkruani ("vërtetë"); fund.

varn:integer; fillimi:=6; nëse (n>5) dhe (n<10) then writeln("истина"); if (n>7) ose (n<10) then writeln("истина"); if (n>7) xor(n<10) then writeln("истина"); if not(n>7) pastaj shkruani ("vërtetë"); fund.

Shembull: Kompania rekruton punonjës nga 25 deri në 40 vjeç përfshirëse. Futni moshën e personit dhe përcaktoni nëse ai është i përshtatshëm për këtë kompani (shfaq përgjigjen "i përshtatshëm" ose "jo i përshtatshëm").
Veçori: duhet të kontrollojmë nëse dy kushte janë përmbushur njëkohësisht.

Shembull: Jepet një numër i plotë A. Kontrollo vërtetësinë e pohimit: "Numri A është tek."

Artikujt kryesorë të lidhur