algoritmi ramificați

În acest curs, vă voi spune ce algoritm ramificat și modul în care este pus în aplicare în limbaje de programare Pascal și C.

Algoritmul Ramificat se numește un algoritm, în care cel selectat dintre mai multe moduri posibile (variante) de proces de calcul.







Filiala a algoritmului se numește o cale similară.

algoritmi ramificați sunt complete și part-time ramificare ramificații. Mai jos este un exemplu de ramificare completă organigrame.

algoritmi ramificați

Aici algoritmul cu ramificare parțială.

algoritmi ramificați

Logică de tip de date

date Boolean în orice limbaj de programare are doar două valori - adevărate și false, respectiv adevărate și false sau 0 și 1, astfel încât o memorie de 1 bit. Cu acest tip de date sunt posibile operații logice, pe care le considerăm, precum și unele matematice ca un tip de date logic este secvența de bază și, cu ea puteți face un anumit set de acțiuni, mai mult pe acest lucru într-o prelegere pe tipuri de date. Tabelul de mai jos prezintă etapele logice, adică tabelul de adevăr pentru ei.

algoritmi ramificați

Deci, desemnat de către operatorii logici în C. - logic și diferit conjuncție (în Pascal, este indicat și în manualele scrise ^), || - disjuncție logică sau altfel (PASCAL indicat sau, în manuale scrise ˅). - negație logică diferită de inversare (PASCAL nu a fost desemnat în manuale de scris.). Prioritatea operațiilor într-o expresie logică astfel încât prima inversare se realizează, atunci logic „AND“ și apoi logic „sau“. Parantezele schimba ordinea acțiunii: prima efectuat operațiunea între paranteze, în cazul în care este nevoie de a efectua mai multe operațiuni, funcționează prioritatea operațiilor logice.







Condiționalele în limbaje de programare

Pentru a specifica starea într-un limbaj de programare, este nevoie de o declarație condițională, asta se pare că în limbajul de programare Pascal.

Rețineți că, înainte de cuvântul altcineva (atunci când este prezent, desigur) a „;“ nu a pus - de fapt, ar fi rupt operatorul în două părți. În cazul în care există doi sau mai mulți operatori, după atunci sau altceva, în funcție de ramura operatorului, operatorul a pus între paranteze începe ... capăt; dar, în cazul în care stau în fața altceva, atunci o virgulă nu este atribuit.

Iată cum funcționează declarația condiționată:

  1. Valoarea calculată mai întâi <условия> - ea poate fi orice expresie care returnează o valoare boolean.
  2. Apoi, în cazul în care rezultatul obținut „adevărul“ (adevărat), atunci declarația este executată, în picioare, după cuvântul cheie atunci. și în cazul în care „o minciună“ (fals) - fără verificări suplimentare efectuate în picioare operatorul după cuvântul cheie altceva. Dacă nu există nici Q ramură altceva, nu face nimic.

Și iată ce o declarație condiționată în limbajul C, funcționează la fel de bine:

if ([expresie booleană])
[Declarațiile executate la adevăr logic
expresie]
>
altfel
[Declarațiile executate la o valoare de fals pentru logice
expresie]
>

condiționale imbricate

Este adesea astfel încât una dintre cele două condiții și scenarii programator ar putea să nu fie suficient, și apoi ce să fac? Puteți oferi imediat un răspuns - să scrie câțiva operatori dacă. dar acest răspuns ar fi la fel de bine și rău. Iată de ce: în fapt, este o cale de ieșire din această situație, vom fi testate o serie de condiții, iar operatorii sunt executate în ele, ci în cursul uneia dintre condițiile se poate întâmpla ca variabilele vor avea valori astfel încât va câștiga condiția unui alt operator din dreapta și apoi el începe să lucreze, de asemenea, nu avem nevoie să avem. Dar atunci se pune întrebarea: ce să fac? Și aici vine răspunsul, ca și utilizarea unor condiții imbricate, adică, astfel încât operatorul efectuează doar una din mai multe ramuri, și că soluția la problema:

În cazul în care (<условие>) atunci <операторы>

elseif (<условие>) atunci <операторы>

A fost dat un record în Pascal. Desigur, dacă aveți nevoie pentru a efectua două sau mai multe dintre operatorului, operatorul a pus între paranteze. Dar recordul în C: