Scheme structurale de algoritmi

Una dintre proprietățile algoritmului este discreența - posibilitatea de a dezmembra procesul de calcul prescris de algoritm în etape separate, posibilitatea identificării secțiunilor de program cu o anumită structură. Este posibilă identificarea și reprezentarea grafică a celor trei structuri simple:







Secvența a două sau mai multe operații;

Orice proces de calcul poate fi reprezentat ca o combinație a acestor structuri elementare algoritmice. În consecință, procesele computaționale efectuate pe un calculator de către un program dat pot fi împărțite în trei tipuri principale:

Linear este procesul de calcul în care operațiile sunt efectuate secvențial, în ordinea în care sunt înregistrate. Fiecare operație este independentă, independentă de orice condiții. În diagramă, blocurile care afișează aceste operații sunt aranjate într-o secvență liniară.

Procesele computaționale liniare au loc, de exemplu, în calcularea expresiilor aritmetice, atunci când există date numerice specifice și corespund condiției sarcinii de acțiune. În Fig. 1a prezintă un exemplu de algoritm liniar care determină procesul de calcul al unei expresii aritmetice

Fig. 1. Exemple de algoritmi: a) algoritm liniar; b) algoritmul de ramificare

Un proces de calcul se numește ramificare, dacă sunt prevăzute mai multe direcții (sucursale) pentru implementarea acestuia. Fiecare direcție separată a procesului de prelucrare a datelor este o ramură separată a calculului. Ramificarea în program alege una din mai multe secvențe de comenzi atunci când execută programul. Alegerea direcției depinde de o caracteristică predeterminată, care se poate referi la datele originale, la rezultatele intermediare sau finale. O caracteristică caracterizează o proprietate a datelor și are două sau mai multe valori.







Un proces de ramificare care implică două ramuri este numit simplu, mai mult de două ramuri - complexe. Un proces complex de ramificație poate fi reprezentat utilizând procese simple de ramificare.

Direcția ramificării este selectată printr-o verificare logică, rezultând două răspunsuri: "da" - condiția este îndeplinită și "nu" - condiția nu este îndeplinită.

Se va aprecia că, deși în schema algoritm de calcul toate destinațiile posibile pentru a fi afișate în funcție de îndeplinirea anumitor condiții (sau condiții), în procesul de trecere a unică programului se realizează numai la o ramură, iar restul sunt excluse. Orice sucursală pe care se efectuează calculele trebuie să conducă la finalizarea procesului de calcul.

În Fig. 11.1, b prezintă un exemplu de algoritm de ramificare pentru calculul expresiei următoare:

Y = (a + b) dacă X <0;

Programele ciclice sunt numite cicluri. Un ciclu este o secțiune repetată a unui program.

Organizarea ciclului poate fi împărțită în următoarele etape:

· Pregătirea (inițializarea) ciclului (AND);

• • Calcularea buclelor (corpul ciclului) (T);

• verificați starea finală a ciclului (Y).

Ordinea de execuție a acestor etape, de exemplu, T și M. poate varia. În funcție de locația verificării, condițiile de sfârșit de ciclu se disting prin bucle cu capătul inferior și superior (Figura 2). Pentru un ciclu cu capăt inferior (figura 11.2, a), corpul buclei este executat cel puțin o dată, deoarece calculele sunt efectuate mai întâi și apoi este verificată starea de ieșire din buclă. În cazul unui ciclu cu capătul superior (Figura 11.2, b), corpul ciclului nu poate executa o singură dată dacă condiția de ieșire este imediat îndeplinită.

Fig. 2. Exemple de algoritmi ciclici

Un ciclu se numește determinist dacă numărul de repetări ale corpului unui ciclu este cunoscut sau determinat în avans. Se spune că un ciclu este iterativ dacă numărul de repetiții ale corpului ciclului este necunoscut în avans, dar depinde de valorile parametrilor (unele variabile) implicate în calcule.

În Fig. 3 prezintă un exemplu de algoritm ciclic pentru calculul sumei a zece numere.

Fig. 3. Algoritmul pentru găsirea sumei de 10 numere







Articole similare

Trimiteți-le prietenilor: