Acasă - Internet
Turbo Pascal. Declarații structurate

Operatorul de salt condiționat în Turbo Pascal are forma:

Dacă stare apoi operator 1 altfel operatorul 2;

stare este o expresie logică, în funcție de care este selectată una dintre cele două ramuri alternative ale algoritmului. Dacă valoarea condiției este TRUE, atunci operator 1, scris după cuvântul cheie atunci. Altfel se va executa operatorul 2, urmând cuvântul else, while operator 1 sărit. După executarea instrucțiunilor specificate, programul trece la executarea comenzii imediat după instrucțiunea if.

Este important să rețineți că un punct și virgulă nu este niciodată plasat înaintea cuvântului cheie else!

else - poate lipsi o parte din declarația if:

Dacă stare apoi operator 1;

Apoi, dacă condiția logică nu este îndeplinită, controlul este imediat transferat operatorului situat în program după construcția if.

Operații de bază și proceduri și funcții matematice

Expresiile matematice în notație algoritmică constau din operații și operanzi. Majoritatea operațiunilor sunt binare, adică conțin doi operanzi (operațiile unare conțin un operand, de exemplu: -a, ia adresa @B).

Operatii aritmetice:

+, -, /, *, div (diviziune întreagă), mod (diviziune rest),

Logic: nu, și, sau, xor,

Operații relaționale: >,<, >=, <=, <>, =.

Calcule logice și operații relaționale

Prezența tipului boolean și operațiunile cu acesta vă permit să programați calcule logice, care se bazează pe algebra booleană. Sunt introduse patru operații logice, al căror rezultat este întotdeauna de tip boolean și poate avea doar una dintre cele două valori (Trueº1 (adevărat) sau Falseº0 (fals)).

Pentru a evita erorile, este mai bine să plasați singur parantezele în timpul calculelor logice. Deci, de exemplu, notația Not A și B va fi interpretată de compilator ca (Nu A)Și B, dar poate că ar fi necesar după cum urmează: Nu (A și B).

Proceduri și funcții matematice

Biblioteca de sistem Turbo Pascal este prezentată în tabel:

Funcțiile matematice sunt foarte sensibile la gama argumentelor lor. În plus, valorile returnate ale tipurilor întregi trebuie să se încadreze în ele, altfel sunt posibile consecințe fatale

Majoritatea funcțiilor sunt standard și nu necesită comentarii. Separat, aș dori să mă opresc asupra unora anume.

Funcția PI generează numărul „Pi” cu o precizie în funcție de prezența unui coprocesor și conține de la 10 la 14 cifre semnificative după virgulă, poate fi folosită în calcule ca constantă, dar nu poate fi plasată în constantele calculabile; a blocului Const.

Setul de funcții trigonometrice este limitat, dar face posibilă extinderea bibliotecii matematice prin introducerea propriilor funcții care definesc matematica standard.

Tipuri de date

Lucrare de laborator nr 2(2 ore)

Opțiunea 5

Un operator este un element indivizibil al unui program care face posibilă efectuarea anumitor acțiuni algoritmice. Diferența dintre un operator și alte elemente este că implică întotdeauna un fel de acțiune. În Pascal, operatorii constau din cuvinte funcționale. Operatorii utilizați într-un program sunt separați unul de celălalt și de alte elemente de program prin simbolul (;). Toate Operatori Pascal poate fi împărțit aproximativ în doua grupuri:

  1. simplu;
  2. structurat.

Operatori simpli sunt operatori care nu conțin alți operatori. Acestea includ:

  • operator de atribuire (:=);
  • declarație de procedură;
  • operator de sărituri necondiționate (GOTO).

Declarații structurate sunt operatori care conțin alți operatori. Acestea includ:

  • operator compus;
  • operatori condiționali (IF, CASE);
  • operatori de buclă (FOR, WHILE, REPEAT);
  • operator de unire (CU).

Operatori simpli

Operator de procedură

Operator de procedură servește la apelarea unei proceduri.

Format: [nume_procedură] (lista parametrilor de apel);

O instrucțiune de procedură constă dintr-un identificator de procedură, urmat imediat de o listă de parametri de apel între paranteze. Pascal are proceduri fără parametri. În acest caz, atunci când este apelat, nu există o listă de parametri. Executarea unei instrucțiuni de procedură duce la activarea acțiunilor descrise în corpul acesteia. Există două tipuri de proceduri în Pascal:

  • Cele standard, care sunt descrise în limba însăși și fac parte din limbaj;
  • Proceduri de utilizator care sunt create de utilizator.

Pentru a apela proceduri standard, trebuie să vă conectați în secțiunea UTILIZĂRI a numelui modulului (bibliotecă), unde este descrisă această procedură. O serie de proceduri situate în modulul SISTEM sunt întotdeauna conectate automat la program și conectarea lor în secțiunea UTILIZĂRI nu este necesară. Procedurile Pascal standard sunt READ, WRITE, REWITE, CLOSE, RESET.

CITEȘTE ([variabilă_fișier], [listă_intrare])

CITEȘTE(x,y)

Procedurile utilizator (non-standard) trebuie create înainte de utilizarea lor în program și sunt situate fie în secțiunea de descriere a programului în sine, fie în unități de program separate ale modulului. Dacă procedura este într-un modul, atunci numele acelui modul trebuie menționat în aplicația USES.

Operator GOTO necondiționat

Format: GOTO [etichetă];

GOTO este un cuvânt rezervat în Pascal. [label] este un identificator arbitrar care vă permite să marcați o anumită instrucțiune de program și să vă referiți la ea în viitor. În Pascal, este posibil să folosiți numere întregi fără semn ca etichete. Eticheta este plasată înainte și separată de operatorul marcat (:). O declarație poate fi marcată cu mai multe etichete. De asemenea, sunt despărțiți unul de celălalt (:). Înainte de a utiliza o etichetă în secțiunea declarație, aceasta trebuie descrisă în secțiunea LABEL (secțiunea descriere).

Acțiunea GOTO transferă controlul către instrucțiunea marcată corespunzătoare. Când utilizați etichete, trebuie să respectați următoarele reguli:

  • eticheta trebuie descrisă în secțiunea descrieri și trebuie folosite toate etichetele;
  • dacă numerele întregi sunt folosite ca etichete, acestea nu sunt declarate.

Contrazice principiile tehnologiei de programare structurată. Limbajele de programare moderne nu includ un astfel de operator și nu este nevoie să îl utilizați. În plus, computerele moderne folosesc așa-numita metodă de transport. Dacă un operator de salt necondiționat este întâlnit într-un program, atunci un astfel de operator rupe întreaga conductă, forțând să fie creat din nou, ceea ce încetinește semnificativ procesul de calcul.

Declarații structurate

IF instrucțiuni de condiție

Operatorul condiționat este utilizat în program pentru a implementa structura algoritmică - ramificare. În această structură, procesul de calcul poate continua în una dintre direcțiile posibile. Alegerea direcției se realizează de obicei prin verificarea unei anumite condiții. Există două tipuri de structuri de ramificare: structuri cu furcă și ocolire.

În limbajul Pascal, operatorul IF condiționat este un mijloc de organizare a unui proces de calcul ramificat.

Format: IF [expresie_booleană] Apoi [operator_1]; Else [operator_2];

IF, Then, Else sunt cuvinte funcționale. [operator_1], [operator_2] - operații obișnuite ale limbajului Pascal. Partea Else este opțională (poate lipsi).

Instrucțiunea IF funcționează astfel: mai întâi verifică rezultatul unei expresii booleene. Dacă rezultatul este TRUE, atunci [statement_1] după cuvântul funcției Then este executat și [statement_2] este omis. Dacă rezultatul este FALS, atunci [statement_1] este omis și [statement_2] este executat.

Dacă partea Else lipsește, atunci instrucțiunea IF nu este în formă completă:

IF [expresie booleană] Apoi [operator];

În acest caz, dacă rezultatul este True (TRUE), atunci [instrucțiunea] este executată dacă False (FALSE), atunci controlul este transferat instrucțiunii care urmează instrucțiunii IF.

Sunt 2 numere A și B. Aflați numărul maxim.

Operator compus

O instrucțiune compusă este o secvență de operații arbitrare dintr-un program, închisă în așa-numitele paranteze operator (Început-Sfârșit).

Format: Începe [operatori]; Sfârşit;

Instrucțiunile compuse permit reprezentarea unui grup de instrucțiuni ca o singură instrucțiune.

Declarație de selecție CASE

Proiectat pentru a implementa mai multe ramuri, deoarece operatorul IF poate implementa doar două direcții ale procesului de calcul, nu este întotdeauna convenabil să îl utilizați pentru a implementa mai multe ramuri. Ramificarea multiplă este implementată de instrucțiunea CASE.

Format: CAZ [select_key] OF

[selection_constant_1]:[operator_1];

[selection_constant_2]:[operator_2];

[selection_constant_N]:[operator_N];

ELSE [operator];

CAS, OF, ELSE, END - cuvinte funcționale. [select_key] este un parametru al unuia dintre tipurile ordinale. [selection_constants] - constante de același tip ca și cheia de selecție care implementează selecția. [operator_1(N)] este un operator obișnuit. ELSE poate lipsi.

Operatorul de selecție funcționează după cum urmează: înainte ca operatorul să opereze, se determină valoarea parametrului cheie de selecție. Acest parametru poate fi exprimat fie ca o variabilă în program, fie într-un alt mod. Apoi parametrul cheie de selecție este comparat secvenţial cu constanta de selecție. Dacă valoarea cheii de selecție se potrivește cu una dintre constantele de selecție, operatorul care urmează acestei constante este executat și toți ceilalți operatori sunt ignorați. Dacă tasta de selecție nu se potrivește cu niciuna dintre constante, se execută instrucțiunea următoare Else. Adesea Else este opțional și dacă cheia de selecție nu se potrivește cu niciuna dintre constantele de selecție și în absența Else, controlul este transferat instrucțiunii care urmează instrucțiunii CASE.

Instrucțiunea CASE nu are verificarea condiționată explicită care este tipică pentru instrucțiunea IF. Totodată, operația de comparare se realizează implicit. CASE introduce disonanța într-un program Pascal, deoarece această declarație se termină cu cuvântul de serviciu End, care nu are un început asociat.

Creați un algoritm și un program pentru o problemă care simulează funcționarea unui semafor. Când introduceți simbolul primei litere a culorilor semaforului, programul ar trebui să afișeze un mesaj despre culoarea și acțiunile corespunzătoare.

Programul funcționează după cum urmează: folosind procedura Citire, de la tastatură se introduce o literă simbol de culoarea unui semafor. Dacă este introdusă litera „z” corespunzătoare culorii verde, atunci în instrucțiunea CASE valoarea introdusă în lista de selecție va găsi constanta de selecție „z” și va fi afișat mesajul „Culoare verde, mișcarea este permisă”. Când introduceți simbolul literelor „k” și „zh”, vor fi afișate mesaje similare. Dacă introduceți orice alt caracter, va fi afișat mesajul „Semaforul nu funcționează”, deoarece în acest caz funcționează partea Else a instrucțiunii CASE.

Instrucțiuni de buclă

O structură algoritmică ciclică este o structură în care unele acțiuni sunt efectuate de mai multe ori. Există două tipuri de structuri de buclă în programare: bucla cu un parametru și bucla iterativă.

Într-un ciclu cu un parametru există întotdeauna așa-numiții parametri de ciclu: X, X n, X k, ∆X. Uneori, o buclă cu un parametru se numește buclă obișnuită. O caracteristică caracteristică este că numărul de bucle și repetări poate fi determinat înainte de executarea buclei.

Într-o buclă iterativă, este imposibil să se determine numărul de bucle înainte de a o executa. Se execută atâta timp cât condiția de continuare a buclei este îndeplinită.

Limbajul Pascal are trei operatori care implementează structuri de calcul ciclice:

  • operator de numărare FOR. Este destinat să implementeze o buclă cu un parametru și nu poate fi folosit pentru a implementa o buclă iterativă;
  • operator de buclă cu precondiția WHILE;
  • operator de buclă cu postcondiție REPEAT.

Ultimele două sunt concentrate pe implementarea unei bucle iterative, dar pot fi folosite și pentru a implementa o buclă cu un parametru.

PENTRU operator

Format: FOR [loop_parameter] := [n_z_p_ts] To [k_z_p_ts] Do [operator];

FOR, To, Do sunt cuvinte funcționale. [cycle_parameter] - parametru de ciclu. [n_z_p_ts] - valoarea inițială a parametrului ciclului. [k_z_p_ts] - valoarea finală a parametrului ciclului. [operator] - operator arbitrar.

Parametrul buclei trebuie să fie o variabilă ordinală. Valorile de început și de sfârșit ale parametrului buclei trebuie să fie de același tip cu parametrul buclei.

Să luăm în considerare munca operatorului folosind algoritmul său:

La primul pas, valoarea parametrului ciclului ia [n_z_p_ts], apoi se verifică ca parametrul ciclului să fie mai mic sau egal cu [k_z_p_ts]. Această condiție este condiția pentru continuarea buclei. Dacă este executată, bucla își continuă funcționarea și se execută [instrucțiunea], după care parametrul buclei este mărit (scăzut) cu unu. Apoi, cu noua valoare a parametrului buclă, se verifică condiția de continuare a buclei. Dacă este îndeplinită, atunci acțiunile se repetă. Dacă condiția nu este îndeplinită, atunci bucla se oprește.

Operatorul For este semnificativ diferit de operatorii similari din alte limbaje de programare. Diferențele sunt după cum urmează:

  • corpul operatorului For. Instrucțiunea nu poate fi niciodată executată deoarece condiția de continuare a buclei este verificată înaintea corpului buclei;
  • treapta de schimbare a parametrilor ciclului este constantă și egală cu 1;
  • Corpul buclei din instrucțiunea For este reprezentat de o singură instrucțiune. Dacă acțiunea corpului buclei necesită mai mult de o instrucțiune simplă, atunci aceste instrucțiuni trebuie convertite într-o instrucțiune compusă folosind paranteze operator (BEGIN-END);
  • Un parametru de buclă poate fi doar o variabilă ordinală.

Exemplu de utilizare a operatorului FOR: creați un tabel pentru conversia rublelor în dolari.

Instrucțiunea WHILE (instrucțiunea buclă cu precondiție)

Format: WHILE [condiție] Do [operator];

WHILE, Do - cuvinte funcționale. [condiție] - expresie de tip logic. [operator] - operator obișnuit.

;

Instrucțiunea While funcționează după cum urmează: mai întâi, rezultatul condiției logice este verificat. Dacă rezultatul este adevărat, atunci instrucțiunea este executată, după care se revine la verificarea condiției cu noua valoare a parametrilor în expresia logică a condiției. Dacă rezultatul este fals, atunci bucla este încheiată.

Când lucrați cu While, trebuie să acordați atenție proprietăților sale:

  • Condițiile utilizate în While sunt condiția de continuare a buclei;
  • în corpul buclei, valoarea parametrului inclus în expresia condiției se schimbă întotdeauna;
  • Bucla While poate să nu se execute nici măcar o dată, deoarece verificarea condiției în continuarea buclei este efectuată înainte de corpul buclei.

Instrucțiune REPEAT (instrucțiune buclă cu postcondiție)

Format: REPEAT [cycle_body]; PÂNĂ [condiție];

Instrucțiunea REPEAT funcționează după cum urmează: mai întâi, sunt executate instrucțiunile corpului buclei, după care rezultatul este verificat pentru condiția logică. Dacă rezultatul este fals, atunci se revine la executarea instrucțiunilor din următorul corp al buclei. Dacă rezultatul este adevărat, atunci operatorul iese.

Operatorul Repeat are următoarele caracteristici:

  • în Repeat, se verifică condiția de terminare a buclei și dacă condiția este îndeplinită, bucla încetează să funcționeze;
  • Corpul buclei este întotdeauna executat cel puțin o dată;
  • parametrul pentru verificarea stării este modificat în corpul buclei;
  • Instrucțiunile corpului buclei nu trebuie să fie incluse în paranteze operator (BEGIN-END), în timp ce rolul parantezelor operator este îndeplinit de Repeat și Until.

Calculați y=sin(x), unde xn=10, xk=100, pasul este 10.

Se întâmplă că programele trebuie să organizeze ramificarea. În acest caz, procesul de rezolvare a unei probleme are loc pe baza îndeplinirii sau neîndeplinirii unei anumite condiții.

În limbajul Pascal, selecția unei acțiuni, în funcție de o anumită condiție, poate fi implementată folosind construcția

daca... atunci... altfel...daca... atunci...

2. Care este forma completă a operatorului de salt condiționat dacă este în Pascal?

Forma completă a operatorului de salt condiționat dacă :

dacăstareapoioperator1altfeloperator2;

Acțiunea operatorului este următoarea: mai întâi se calculează valoarea expresiei stare . Dacă este adevărat (egal cu TRUE ), atunci instrucțiunea care urmează cuvântului este executată apoi (operator1). Dacă valoarea este falsă (FALSE), atunci instrucțiunea care urmează cuvântului este executată altfel(operator2 ).

Operatori operator1Şi operator2 poate fi compus, adică conține mai multe linii de cod. Astfel de operatori sunt plasați în paranteze operator incepe...sfarsit. Această nevoie apare dacă după cuvinte rezervate apoi sau altfel trebuie să specificați mai mulți operatori.

În acest caz, forma generală a operatorului de salt condiționat poate avea, de exemplu, următoarea formă:

dacăstareapoiÎNCEPE// mai multi operatori ... SfârşitaltfelÎNCEPE// mai multi operatori ... Sfârşit ;

3. Care este forma prescurtată a operatorului de salt condiționat?

Forma scurtă a operatorului de salt condiționat nu conține un bloc altfel si are forma:

dacăstareapoioperator;

În acest caz, operatorul funcționează după cum urmează. În primul rând, se calculează valoarea expresiei logice (booleene). stare . Dacă rezultatul unei expresii logice stare adevărat (egal ADEVĂRAT), apoi se execută operatorul care urmează cuvântului apoi. Dacă rezultatul este FALSE, atunci instrucțiunea care urmează instrucțiunii este executată dacă(în declarație daca...atunci nu se face nimic).

Dacă, atunci când o condiție este îndeplinită, trebuie să fie executați mai mulți operatori, atunci forma generală a operatorului de salt condiționat poate fi următoarea:

dacăstareapoiÎNCEPE// doi sau mai mulți operatori ... Sfârşit ;

4. Exemple de utilizare a operatorului de salt condiționat, care are o formă de reprezentare completă.

Exemplul 1. Fragment de program pentru găsirea valorii maxime între două numere reale.

var a,b:real; // a, b - variabile pentru care se caută maximul max:real; // maxim ... ÎNCEPE ... // a, b - sunt specificate dacă a>b apoi max:=a altfel max:=b; Sfârşit ;

...

Exemplul 2. Fragment codul programului

... var rezolvarea acestei probleme: ÎNCEPE ... // x,f:real; dacă -5 apoi x - specificat altfel f:= x*x+8 // f:= -x*x*x+2; ... Sfârşit ;

în variabila f - rezultatul

Exemplul 1. 5. Exemple de utilizare a operatorului de salt condiționat, care are o formă scurtă de reprezentare. Fragment de cod care găsește valoarea minimă dintre două numere realeŞi x .

... var y ÎNCEPE ... // min:real; ... x, y - dat dacă min:= x; apoi min Sfârşit ;

... min:= y;

var... ÎNCEPE ... // Calculați valoarea unei funcții în funcție de o condiție. Să presupunem că trebuie să găsim valoarea unei funcții: dacă x, f:real;<-6 apoi x - dat dacă (-6 <=x) x f:=3 *x*x-x;<=5 ) apoişi dacă(x apoi f:=sqrt(7 -x); Sfârşit ;

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 posibilitatea de a asimila material bazat pe exemple rezolvate gata făcute pe tema „Limbă” Programare Pascal» cu sarcini practice de consolidare a 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, acestea au fost utilizate în principal algoritmi liniariîn Pascal, tipic pentru sarcini foarte simple, când acțiunile (operatorii) sunt efectuate secvenţial, una după alta. 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ă:

Varianta scurta:

if condition then statement;

Versiune 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, A acest designoperator compus:

Paranteze operator și operator compusîn Pascal:

dacă expresie logică apoi începe declarația1;

operator2; end else begin statement1;

operator2; Sfârşit; Traducerea din engleză a operatorului de afecțiune va facilita înțelegerea utilizării acestuia: DACĂ
APOI ALTE DACĂ



ALTFEL

  • 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

comparație în Pascal =Înțelegeți lucrarea în detaliu

puteți folosi operatorul condiționat în Pascal urmărind tutorialul video:

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. Vă rugăm să rețineți cum în în acest exemplu y este ieșit. La retragere variabile de tipîn pascal, puteți folosi așa-numitul
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ă) ŞI Când trebuie să utilizați o condiție dublă în Pascal, veți avea nevoie de operații logice.
  • Operație logică 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ții logice în Pascal (în expresie 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;<10 ) then writeln ("истина" ) ; if (n>începe n: = 6 ;<10 ) then writeln ("истина" ) ; if (n>dacă (n>5) și (n<10 ) then writeln ("истина" ) ; if not (n>7) sau (n

7 )xor (n<10) then writeln("истина"); if (n>7) apoi writeln("adevărat");<10) then writeln("истина"); if (n>Sfârşit.<10) then writeln("истина"); if not(n>var n:întreg; începe n:=6; dacă (n>5) și (n

comparație în Pascal = 7) sau (n
7)xor(n 7) apoi writeln("adevărat"); Sfârşit.

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.

Operator de tranziție 1..9999 De data aceasta voi continua să iau în considerare subiectul „Operatori”. Instrucțiunile de salt (necondiționate) sunt concepute pentru a transfera controlul unei instrucțiuni marcate cu o etichetă (precedată de etichetă). Versiunea autorului a limbii presupune că eticheta este formatată ca un număr zecimal întreg în interval

. Ca semne

Turbo Pascal

permite utilizarea identificatorilor. Când utilizați operatori de sărituri, trebuie respectate următoarele reguli:

Utilizarea unui salt necondiționat într-un program este considerată teoretic redundantă, deoarece poate provoca confuzie în lanțul de operațiuni ale programului plasate logic, ceea ce poate duce la mari dificultăți în depanarea și modificarea unui astfel de program. Se recomandă utilizarea operatorilor de tranziție urmând următoarele reguli:

1) dacă pare imposibil să faci fără operatorii de tranziție, ar trebui să te străduiești să îi folosești pentru a transfera controlul numai în jos pe textul programului (înainte); dacă este nevoie să transferați controlul „înapoi”, este mai bine să utilizați operatori de buclă (vezi mai jos);

2) pentru claritate, distanța dintre etichetă și operator pentru a sări la ea nu trebuie să depășească o pagină de text (sau înălțimea ecranului de afișare), altfel sensul unei astfel de tranziții necondiționate va fi greu de înțeles.

Etichetele sunt definite prin descrieri care încep cu un cuvânt funcțional etichetași conțin o secvență de nume de etichete separate prin virgule. Pentru a transfera controlul către operatorul marcat cu o etichetă, este furnizat un operator de tranziție necondiționat du-te la. O etichetă este separată de următoarea afirmație printr-un „:” (coloană). Exemplu:

var j:întreg;

(anunțăm două etichete)

eticheta Start, Finish;

Start: writeln(‘Începutul programului’);

du-te la Termina;

Finish: writeln('Sfârșitul programului');

Operator compus

Cel mai simplu operator de structură este operatorul compus. Această instrucțiune specifică succesiunea de execuție a operatorilor conținute în ea. Un operator compus este formatat ca o listă de operatori separați unul de celălalt prin simbolul „;” (punct și virgulă) și încadrați între cuvintele auxiliare ÎNCEPEŞi Sfârşit.

Necesitatea unui operator compus poate apărea în cazurile în care sintaxa limbajului Pascal permite utilizarea unui singur operator într-un loc din program în care este nevoie de o serie întreagă de acțiuni (operatori), vezi exemplele de mai jos. Iată un exemplu simplu de operator compus:

Operator condiționat

Semnificația unui operator condiționat este de a analiza o anumită condiție logică și, în funcție de faptul că această condiție este îndeplinită sau nu, transferul controlului către operatorul corespunzător. Condiția poate fi o expresie care returnează o valoare booleană. Rezultatul analizei stării poate fi valoarea adevărat, adică condiţia este îndeplinită şi fals, adică condiția nu este îndeplinită.

Instrucțiunea condiționată se execută după cum urmează. Expresia specificată după cuvântul de serviciu este precalculată operator2; Sfârşit;. Dacă condiția este îndeplinită, atunci controlul este transferat operatorului specificat după cuvântul de serviciu apoi, dacă nu, atunci operatorul specificat după cuvântul de serviciu else este executat. În acest caz, poate lipsi o parte a operatorului condiționat, începând cu cuvântul else. Iată exemple de declarații condiționale:

Dacă Tastată apăsată apoi writeln('Tasta apăsată');

Dacă A>B apoi Min:= B

altfel Min:= A;

dacă X1 > X2 apoi începe

Ultimul exemplu este exact cazul când este necesar ca un număr de operatori să fie executat conform condiției, dar datorită faptului că în spatele cuvântului de serviciu apoi sau altfel poate urma doar o singură afirmație, adică este posibil să se rezolve situația folosind o instrucțiune compusă care conține doar un număr dintre acele afirmații necesare.

Când compuneți instrucțiuni condiționale imbricate, rețineți că ramura else aparține întotdeauna ramurii anterioare operator2; Sfârşit;, care nu are încă o ramură else. Aceste. următoarea construcție

dacă Condiția 1 atunci dacă Condiția 2 apoi Operatorul 1 altfel Operator2;

pentru claritate, poate fi interpretat după cum urmează

dacă Condiția 1 apoi începe

dacă Condiția 2 apoi Operatorul 1 altfel Operator2;

Este necesar să fiți atenți atunci când utilizați instrucțiuni condiționale imbricate, astfel încât în ​​căldura momentului când compuneți următoarea instrucțiune condiționată a programului, să nu pierdeți din vedere un detaliu atât de mic, care poate duce la o execuție complet diferită a ramificare condiționată.

Operator variantă

Destul de des apare o situație când un lanț de declarații condiționate crește la proporții enorme, de exemplu, următorul exemplu ilustrează o ramificare care este modestă ca dimensiune, dar conține deja complexitatea perceperii semnificației inerente acesteia:

tip TWay = (Sus, Dreapta, Jos, Stânga);

var Way: TWay;

MapX, MapY: cuvânt;

dacă Drum = Sus apoi MapY:= MapY - 1

altfel dacă Calea = corect apoi MapX:= MapX + 1

altfeldacă Drum = Jos apoi MapY:= MapY + 1

altfel MapX:= MapX - 1;

Ultima ramură else nu are o declarație Dacă, deoarece dacă nu sunt îndeplinite toate cele trei condiții, ar fi logic ca operatorul corespunzător celei de-a patra și ultimei opțiuni de valori posibile de tip să intre în vigoare TWay.

În acest caz, suntem norocoși că tipul TWay are doar patru valori posibile. Compunerea unor astfel de ramuri ar deveni o corvoadă dacă ar exista zece sau mai multe opțiuni? Dar în ramificarea prezentată este vizibil un model simplu. Deci, este posibil să o simplificăm cumva și să o facem mai eficientă și mai lizibilă? Este posibil, iar în acest scop limbajul oferă un operator variant, a cărui construcție poate conține un număr arbitrar de alternative pentru o anumită expresie. Apoi ultimul exemplu poate fi rescris într-un mod nou:

caz Mod de

Sus: MapY:= MapY - 1;

Dreapta: MapX:= MapX + 1;

Jos: MapY:= MapY + 1;

Stânga: MapX:= MapX - 1;

Ei bine, asta e cu totul altă chestiune. Acum să ne uităm la ordinea de execuție a acestei instrucțiuni. Valoarea expresiei care urmează cuvântului funcție este precalculată caz, dar deoarece în acest caz numele variabilei este Mod, atunci valoarea acestei variabile este citită. Valoarea rezultată este comparată pe rând cu fiecare alternativă (valoare constantă, imediată) specificată după cuvântul de serviciu de. Dacă valoarea unei expresii este egală cu următoarea constantă, se execută operatorul alternativ care urmează acestei constante, separat de aceasta prin două puncte. După ce instrucțiunea alternativă termină execuția, acțiunea se mută la instrucțiunea care urmează instrucțiunii variante. Dacă valoarea nu se potrivește Mod fără constantă acest operator opțiunea nu efectuează nicio acțiune.

Dar dacă este necesar să se furnizeze o anumită ramură de operatori care ar fi executată dacă valoarea expresiei nu se potrivește cu nicio constantă? Puteți utiliza o altă alternativă pentru aceasta, de exemplu:

caz Mod de

Sus: MapY:= MapY - 1;

Dreapta: MapX:= MapX + 1;

Jos: MapY:= MapY + 1;

altfel MapX:= MapX - 1;

Prin urmare, construcția construită folosind operatorul de caz este complet echivalentă cu construcția construită anterior folosind operatorul operator2; Sfârşit;. În plus, este mai clar și nu există riscul de a se confunda în numeroase altfel.

Încă o dată, vreau să vă atrag atenția asupra faptului că constantele din operatorul variantă pot fi atât numere întregi directe, cât și numele constantelor netipizate descrise mai devreme. Utilizarea constantelor tipizate în alternative la operatorul variantă nu este permisă. Mai mult, în fiecare opțiune puteți specifica o listă întreagă de constante separate prin virgule sau un interval de valori, de exemplu:

caz Mod de

Sus, Jos: writeln(‘Mișcare pe verticală’);

Dreapta, Stânga: writeln(‘Mișcare pe orizontală’);

caz X de

10,20,30: writeln('zecis');

1..9: writeln('unități');

În ultima construcţie operatorul writeln('unități') va fi executat dacă variabila X are una dintre valori 1,2,3,..,8,9 .

După cum probabil ați observat, am aliniat liniile cu constante prin două puncte, deoarece mi se pare că acest tip este mai vizual, deși este o chestiune de gust și, după cum știți, nu există niciun prieten de gust;O)

Operatorul variant trebuie utilizat în conformitate cu următoarele reguli:

1) Valori acceptabile ale expresiei - „comutator”, scris după cuvântul funcției caz, trebuie să satisfacă tip discret: pentru un tip întreg trebuie să fie în interval -32768..32767 .

2) Toate constantele alternative specificate trebuie să fie de un tip compatibil cu tipul expresiei.

3) Constantele din alternative nu trebuie repetate într-o declarație de variantă, iar intervalele nu trebuie să se suprapună și nu trebuie să conțină constante specificate în aceasta sau în alte alternative.

Și încă un lucru. Proiecta caz oferă o declarație pentru fiecare alternativă. Dacă trebuie să executați mai multe instrucțiuni, ar trebui să le grupați într-o instrucțiune compusă incepe...sfarsit. Este posibil să specificați un operator gol pentru o alternativă prin plasarea simbolului „;”. (punct și virgulă) imediat după colon, care nu va face nimic. Și sintaxa ramurilor altfel prevede specificarea unei secvențe de operatori separați prin simbolul ‘;’ (punct și virgulă).

 


x>5



Citire:

Citire:

Care unități flash USB sunt cele mai fiabile și mai rapide?

Schimbarea interfeței Steam - de la imagini simple la întreaga prezentare pe ecran Design nou steam

Schimbarea interfeței Steam - de la imagini simple la întreaga prezentare pe ecran Design nou steam

Conectarea unui laptop la un televizor prin cablu USB pentru conectarea unui laptop la un televizor VGA

De ce editorii nu pot edita toate paginile

De ce editorii nu pot edita toate paginile

Caracteristicile și avantajele serviciului Megogo Unul dintre cele mai mari servicii video din Europa de Est și CSI este Megogo. Catalogul conține peste 80 de mii...

Cum să anulați un abonament Megogo la televizor: instrucțiuni detaliate Cum să vă dezabonați de la abonamentele Megogo

Cum să anulați un abonament Megogo la televizor: instrucțiuni detaliate Cum să vă dezabonați de la abonamentele Megogo

Împărțirea unui hard disk în partiții utilizând Windows7 Partiționarea unității C:\ în Win7 Când cumpărați un computer sau laptop nou cu...

Utilizatorii care lucrează frecvent în Microsoft Word pot întâmpina anumite probleme din când în când.  Am discutat deja despre soluția multora dintre ele... Uneori, când încerci să intri în magazinul oficial al gigantului digital, Play Market scrie pentru a activa un cod promoțional. Pentru a obține o cuprinzătoare...