Declarație condiționată dacă altfel. dacă și altfel condiții
Această lecție privește operatorul condiționat în Pascal ( dacă). Explică cum să folosești mai multe condiții într-un singur construct ( ȘIȘi SAU). Sunt luate în considerare exemple de lucru cu un operator
Vă reamintim că acest site nu pretinde a oferi o prezentare completă a informațiilor pe această temă. Scopul portalului este de a oferi oportunitatea de a învăța material pe baza exemplelor rezolvate gata făcute pe tema „Limbajul de programare Pascal” cu sarcini practice pentru consolidarea materialului. Sarcinile Pascal prezentate pe site sunt aranjate secvențial pe măsură ce complexitatea lor crește. Site-ul web poate fi folosit de profesori și lectori ca ajutor vizual auxiliar.
Înainte de a lua în considerare acest subiect, au fost utilizați în principal algoritmi liniari în Pascal, care sunt tipici pentru probleme foarte simple când acțiunile (operatorii) sunt efectuate secvenţial, unul după altul. Algoritmii mai complecși implică utilizarea unui construct de ramificare.
Diagrama bloc operator condiționat:
Instrucțiunea condiționată în Pascal are următoarea sintaxă:
Versiune prescurtată:
if condition then statement;
Versiunea completa:
if condition then statement else statement;
Operatorul condiționat în Pascal - if - servește la organizarea progresului unei sarcini în așa fel încât succesiunea de execuție a operatorilor să se modifice în funcție de o anumită condiție logică. O condiție logică poate lua una din două valori: fie adevărată, fie falsă, respectiv, poate fi adevărată sau falsă.
Operator compus
Dacă, într-o condiție adevărată, este necesar să se execute mai multe instrucțiuni, atunci Conform regulilor limbajului Pascal, acestea trebuie să fie închise într-un bloc, începând cu cuvântul funcție begin și se termină cu cuvântul funcție end . Un astfel de bloc este de obicei numit paranteze operator, și această construcție - operator compus:
Paranteze operator și operator compus în Pascal:
if logic expression then begin statement1; operator2; end else begin statement1; operator2; Sfârşit;
Traducerea din engleză a operatorului de condiție va facilita înțelegerea utilizării acestuia:
DACĂ | APOI | ALTE |
DACĂ | ACEA | IN CAZ CONTRAR |
Condiția (într-o expresie logică) folosește operatori relaționali.
Luați în considerare lista de operatori relaționali a lui Pascal:
- mai mult >
- Mai puțin
- mai mare sau egal cu în Pascal >=
- mai mic sau egal cu în Pascal
- comparație în Pascal =
- nu este egal în Pascal
Exemplu: găsiți cel mai mare dintre două numere
Opțiunea 1 | Opțiunea 2 |
![]() |
![]() |
Înțelegeți lucrarea în detaliu puteți folosi operatorul condiționat în Pascal urmărind tutorialul video:
Exemplu: calculați valoarea variabilei y folosind una dintre cele două ramuri
Afișați soluția:
var x,y:real; începe scrieln("introduceți x"); citeste(x); dacă x>0 atunci y:=ln(x) altfel y:=exp(x); writeln ("y=", y:6:2) (numărul rezultat va ocupa 6 poziții și va avea 2 zecimale) end.
Observați cum iese y în acest exemplu. Când deduceți variabile de tip în pascal, puteți utiliza așa-numitele ieșire formatată, sau notație cu două puncte:
y:6:2
- numărul de după primele două puncte (6) indică câte caractere va ocupa numărul atunci când este afișat pe ecran
- numărul de după al doilea două puncte (2) indică câte zecimale ale numărului real vor fi afișate
Astfel, utilizarea unei astfel de notații în pascal vă permite practic să rotunjiți la sutimi, miimi etc.
Sarcina 0. Calculați valoarea variabilei y folosind una dintre cele două ramuri:
Sarcina 1. Două numere sunt introduse în computer. Dacă primul este mai mare decât al doilea, calculați suma lor, în caz contrar - produsul. După aceasta, computerul ar trebui să imprime rezultatul și textul PROBLEMĂ REzolvată
Sarcina 2. Dragonul crește trei capete în fiecare an, dar după ce împlinește 100 de ani, doar două. Câte capete și ochi are un dragon? N ani?
Operații logice în Pascal (în expresie logică)
Când trebuie să utilizați o condiție dublă în Pascal, veți avea nevoie de operații logice.
- Operație logică ȘI (Și), plasat între două condiții, spune că ambele condiții trebuie îndeplinite simultan (trebuie să fie adevărate). Sensul logic al operației este „conjuncție”.
- Plasat intre doua conditii, semnul SAU (OR) spune că este suficient dacă cel puțin una dintre ele este îndeplinită (una dintre cele două condiții este adevărată). Sensul logic al operației este „disjuncție”.
- În Pascal XOR - un semn al unei operații logice care are sensul de „disjuncție strictă” și indică faptul că este necesar ca una dintre cele două condiții să fie îndeplinită (adevărată), iar cealaltă să nu fie îndeplinită (falsă).
- Operație logică NU înaintea unei expresii sau variabile logice înseamnă „negație” sau „inversie” și indică faptul că, dacă o anumită variabilă sau expresie este adevărată, atunci negația ei este falsă și invers.
Important: Fiecare condiție simplă trebuie inclusă între paranteze.
Exemplu: Să ne uităm la exemple de operații logice în expresii logice în Pascal
1 2 3 4 5 6 7 8 | var n: întreg ; începe n: = 6 ; dacă (n>5) și (n<10 ) then writeln ("истина" ) ; if (n>7) sau (n<10 ) then writeln ("истина" ) ; if (n>7)xor(n<10 ) then writeln ("истина" ) ; if not (n>7) apoi writeln("adevărat"); Sfârşit. |
var n:întreg; începe n:=6; dacă (n>5) și (n<10) then writeln("истина"); if (n>7) sau (n<10) then writeln("истина"); if (n>7)xor(n<10) then writeln("истина"); if not(n>7) apoi writeln("adevărat"); Sfârşit.
Exemplu: Compania recrutează angajați cu vârsta cuprinsă între 25 și 40 de ani inclusiv. Introduceți vârsta persoanei și stabiliți dacă este potrivit pentru această companie (afișați răspunsul „potrivit” sau „nepotrivit”).
Particularitate: trebuie să verificăm dacă două condiții sunt îndeplinite simultan.
Exemplu: Având în vedere un număr întreg A. Verificați adevărul afirmației: „Numărul A este impar”.
Lucrări de laborator
Pe tema: " Operator de condiție dacă - altfel "
1. Scop și sintaxă
Declarația de condiție if-else este utilizată pentru a selecta direcția de funcționare a programului în funcție de condițiile existente la un anumit punct al programului în momentul executării acestuia.
Forma generală de scriere a unui operator condiționat
dacă ( <условие>)
<блок операторов 1>;
<блок операторов 2>;
Dacă în momentul executării<условие>adevărat, programul transferă controlul<блоку операторов 1>și, mai departe, la prima declarație din afara constructului if-else. în care<блок операторов 2>nu este executat. Altfel, dacă<условие>fals, executat<блок операторов 2>, A<блок операторов 1>sarit. Diagrama bloc corespunzătoare
Acoladele din sintaxa instrucțiunii if-else sunt folosite pentru a evidenția blocurile 1 și 2 din text. Încercați să plasați acoladele de închidere sub cea de deschidere pentru a îmbunătăți lizibilitatea codului programului. În același scop, textul din interiorul acoladelor trebuie deplasat la dreapta cu mai multe poziții.
Orice expresie booleană care se evaluează la adevărat sau fals poate fi folosită ca o condiție în declarațiile if-else. Mai jos este un tabel care arată cele mai simple operații de comparare între numere întregi și numere reale
Exemplul 1. Trebuie să scrieți un program care convertește temperatura de pe scara Celsius T C (°C) în temperatura de pe scara Kelvin T K (K). Valoarea T C este introdusă de utilizator de la tastatură.
Soluţie. Folosim binecunoscuta formulă de conversie – T K = T C – T 0, unde T 0 = –273 °C este temperatura zero absolut. Vom considera T C introdus ca fiind incorect dacă este mai mic de T 0 .
// – KelvinvsCelsius–
#include
#include
#pragma argsused
floatT0 = -273; // declară și inițializează T0
floatTc, Tk; // declară Tc și Tk reale
cout<<» VvediteTc=»; // выводим приглашение
cin>>Tc; // solicita Tc
dacă
(
Tc
<
T
0)
// verifica starea Tc cout<<» Tc < T0!»; // условие истинно, выводим на }
// ecran cu mesaj de eroare Tk = Tc-T0; // condiția este falsă, calculează cout<< «Tk =» << Tk; // Tk и выводим на экран getch(); // întârzie înainte de a apăsa o tastă întoarce 0; // încheie programul Tastați codul de mai sus, compilați-l și rulați programul. Examinați rezultatele operației la diferite valori ale T C . 2. Opțiuni de înregistrare scurtate În programare, este obișnuit să se constate că o anumită acțiune este necesară ca răspuns la condițiile existente (de exemplu, dacă sunt primite date de intrare incorecte de la utilizator, atunci emiteți un mesaj de eroare și părăsiți programul). În astfel de cazuri, programele C++ pot folosi o notație scurtă a instrucțiunii condiționate cu blocul else lipsă. Forma generală a unei astfel de înregistrări dacă
(
<условие>)
<блок операторов>; Aici, dacă condiția este adevărată, controlul este transferat blocului de instrucțiuni în acolade. Dacă condiția este falsă, acest bloc este omis. Diagrama bloc corespunzătoare diferă de cea anterioară în absența unui „braț” O altă opțiune de prescurtare este utilizată atunci când oricare dintre blocurile if sau else constă dintr-o singură instrucțiune. În acest caz, este permisă absența bretelelor care delimitează acest bloc. dacă
(
<условие>)
operator 1; operator 2; Aici, operatorii 1 și 2 pot fi nu numai operații aritmetice simple pe o linie sau operatori I/O, ci și constructe complexe cu mai multe linii, cum ar fi alte instrucțiuni condiționale (imbricate) sau operatori de buclă, care vor fi discutate mai jos. 3. Declarații imbricate Declarațiile condiționate pot fi imbricate unele în altele, în conformitate cu algoritmul software pe care îl implementează. Este permis un grad arbitrar al „cuibării” lor. Dacă o instrucțiune if-else este imbricată în alta, atunci prima instrucțiune este inclusă în a doua complet, și nu oricare dintre părțile sale if sau else. Suprapunerea parțială a blocurilor lor individuale este inacceptabilă. În exemplul de mai sus, una dintre declarații (afișată cu aldine) este imbricată în alta. Intrarea B) este incorectă datorită faptului că blocul else al instrucțiunii condiționale interioare se suprapune parțial atât cu blocurile if și else ale instrucțiunii exterioare. Exemplul 2. Utilizatorul introduce trei numere întregi a, b, c de la tastatură. Este necesar să afișați cel mai mare dintre aceste numere. Soluţie. Unul dintre algoritmii posibili pentru rezolvarea acestei probleme este prezentat în diagrama bloc următoare. Schema poate fi implementată programatic folosind instrucțiuni if-else imbricate // – Selectarea celui mai mare dintre 3 numere – #include #include #pragma argsused int main (int argc, char* argv) plutitor a, b, c; // declar trei variabile cout<< «Vvedite a –»; // вводимзначения a, b, c cout<< «Vvedite b –»; cout<< «Vvedite c –»; dacă (a>b) // dacă a > b dacă (a>c) // dacă a > c