Tipuri de algoritmi - Knowledge Hypermarket. Executarea unui algoritm cu un set fix de comenzi Executorul algoritmului poate fi cineva care înțelege

MBOU „Școala secundară Glinnovskaya”

districtul Novooskolsky

Regiunea Belgorod

Plan - rezumatul lecției

(clasa a 9-a)

„Algoritmi, concepte de algoritm, proprietăți ale algoritmului. Executori ai algoritmului"

Pregătite de:

Învață informatica

Tarasova N.G.

2011

Subiect: Conceptul de algoritmi, proprietățile algoritmului. Executori de algoritmi, sistem de comenzi executori. Metode de înregistrare a algoritmilor. Executarea formală a algoritmilor.

Tip de lecție: familiarizarea cu material nou.

Obiective:

  1. Promovarea dezvoltării gândirii algoritmice;
  2. Dați conceptul de algoritm, vorbiți despre proprietățile acestuia, oferiți o clasificare a algoritmilor;
  3. Introduceți forma algoritmilor de înregistrare - organigramă.

Echipament: proiector, prezentare.

În timpul orelor

1 org. Moment

Salutare, îmbarcare, apel nominal.

2 Actualizarea materialului suport

Băieți, vă rog să-mi spuneți, cum înțelegeți cuvântul algoritm? Unde întâlnim acest concept?

3 Prezentarea materialului

Originea termenului „algoritm” este legată de matematică. Istoria originii sale este următoarea. În secolul al IX-lea, omul de știință al(al)-Khorezmi (nume complet - Muhammad ben Musa al-Khorezmi, adică Muhammad fiul lui Musa din Khorezm), matematician, astronom, geograf a trăit la Bagdad. Într-una dintre lucrările sale, el a descris sistemul numeric zecimal și a formulat pentru prima dată regulile pentru efectuarea operațiilor aritmetice pe numere întregi și fracții ordinare. Originalul arab al acestei cărți a fost pierdut, dar a rămas traducerea latină a secolului al XII-lea, conform căreia Europa de Vest s-a familiarizat cu sistemul numeric zecimal și cu regulile de efectuare a operațiilor aritmetice.

Al-Khwarizmi a căutat să se asigure că regulile pe care le-a formulat sunt de înțeles. A fost greu de realizat acest lucru în secolul al IX-lea, când simbolismul matematic (semne de operație, paranteze, simboluri cu litere etc.) nu fusese încă dezvoltat. Cu toate acestea, reușește să dezvolte un stil clar de instrucțiuni verbale stricte, care nu a oferit cititorului posibilitatea de a se sustrage de la prescris sau de a sări peste orice acțiune.

Regulile din cărțile lui cm-Khorezmi în traducerea latină au început cu cuvintele „Algorizmi a spus”. În alte traduceri latine, autorul a fost denumit Algorithmus. De-a lungul timpului, s-a uitat că Algorizmi (Algorithmus) este autorul regulilor, iar aceste reguli au început să fie numite algoritmi. Timp de multe secole, algoritmii au fost dezvoltați pentru a rezolva din ce în ce mai multe clase noi de probleme, dar însuși conceptul de algoritm nu avea o definiție matematică precisă.

În prezent, conceptul de algoritm a fost rafinat și a fost realizat în secolul al XX-lea în cadrul unei științe numite teoria algoritmilor.

Algoritm - instrucțiuni precise și ușor de înțeles către executant pentru a efectua o succesiune de acțiuni care vizează rezolvarea sarcinii.

Algoritm - acţiune secvenţială clar organizată care duce la un rezultat specific.

Executorul algoritmului este ceva abstract sau realun sistem capabil să efectueze o acțiune prescrisă de un algoritm (tehnic, biologic sau biotehnic).

Director tehnic– bancomat;

Biologic - o persoană, un organism viu;

Biotehnologie - inteligenţă artificială.

Proprietățile algoritmilor

Discretenie (separare, discontinuitate) – algoritmul trebuie scris sub forma unei secvențe de pași sau etape.

Intelegere executantul algoritmului trebuie să știe cum să execute acest algoritm.

Certitudine (determinism) fiecare regulă a algoritmului trebuie să fie clară, lipsită de ambiguitate și să nu lase loc arbitrarului.

Datorită acestei proprietăți, execuția algoritmului este de natură mecanică și nu necesită instrucțiuni suplimentare.

Eficienţă(finititudine) Algoritmul trebuie să conducă la rezolvarea problemei într-un număr finit de pași.

Caracter de masă Algoritmul este dezvoltat într-o formă generală, astfel încât să poată fi aplicat pentru a rezolva probleme similare. În acest caz, datele inițiale sunt selectate din anumite zone, care sunt numite zona de aplicare a algoritmilor.

Modalități de a scrie algoritmi

Dacă proprietățile certitudinii și discretității sunt păstrate cu un anumit grad de acuratețe, i.e. programul poate rearanja pași sau conține pași dezirabili, dar nu obligatorii, atunci acesta nu este un algoritm, ciprescripție algoritmică.

Fiecare algoritm este proiectat pentru un anumit interpret. Poate fi o persoană, un robot, un computer etc. Fiecare interpret are propriul său sistem de comandă. Când compuneți un algoritm, trebuie să luați în considerare pentru ce interpret este proiectat. Executantul poate efectua algoritmul fără să se aprofundeze în sensul a ceea ce face, de ce o face și să obțină totuși rezultatul dorit. În astfel de cazuri, se spune că algoritmul este executat formal.

Formulare de înregistrare a algoritmului:

Verbal este o descriere a etapelor succesive de prelucrare a datelor. Algoritmul este o prezentare arbitrară în limbaj natural

Grafic - o succesiune de blocuri interconectate, fiecare dintre acestea corespunzând execuției uneia sau mai multor acțiuni.

O astfel de reprezentare grafică se numește diagramă bloc - un grafic orientat care indică ordinea de execuție a comenzilor algoritmului.

Forme grafice ale algoritmilor de înregistrare:

Structuri algoritmice de bază

Urmează (algoritm liniar) bucle

Ramificare

Ca urmare a – comenzile sunt executate una după alta în ordinea în care sunt scrise în algoritm.((Exemplu. Algoritm pentru deschiderea ușii apartamentului: scoateți cheia, introduceți-ogaura cheii, întoarceți numărul necesar de ori, scoateți cheia, deschideți ușa.închideţi ușa)

Ramificare - datele influențează progresul algoritmului, i.e. in functie de staresunt efectuate anumite acțiuni ale algoritmului.(Exemplu, algoritm pentru „intrarea” în apartamentul tău: sunați la apartament; dacă este cineva acasă, așteptați până când ușa este deschisă șiintră în apartament dacă nu este nimeni acasă, ia cheia; ...)

Ciclu (repetiție)- în timpul executării algoritmului, un anumitset de comenzi (Exemplu.(Spălarea a 10 farfurii: luați farfuria, spălați-o, puneți-o în uscător, luațifarfurie, spălați-o, puneți-o în uscător etc. până rămâneți fără farfurii.)

4 Aplicarea cunoștințelor dobândite

Sarcină executa comenzi algoritm cu a=1, b=2, c=3

TEMA 8. BAZELE ALGORITMIZĂRII ȘI PROGRAMĂRII

8.1. Conceptul de algoritm și executor de algoritm. Proprietățile algoritmilor

„Algoritmul” este un concept fundamental în informatică. O înțelegere a acesteia este necesară pentru utilizarea eficientă a tehnologiei informatice pentru a rezolva probleme practice. Un algoritm este o instrucțiune către un executant (uman sau automat) pentru a efectua o secvență definită cu precizie de acțiuni care vizează atingerea unui obiectiv dat. Un algoritm este o regulă formulată într-un anumit limbaj, care indică acțiuni, a căror execuție secvențială duce de la datele inițiale la rezultatul dorit. Înțelesul cuvântului algoritm foarte asemănătoare cu sensul cuvintelor reteta, procedeu, metoda, mod. Cu toate acestea, orice algoritm, spre deosebire de o rețetă sau metodă, are în mod necesar următoarele proprietăți.
Proprietățile algoritmului (distingându-l de orice alte prescripții): claritate(pentru un anumit interpret); discretie(comenzile sunt secvențiale, cu înregistrarea precisă a momentelor de început și sfârșit de execuție a comenzii); precizie(după ce fiecare comandă este executată, se știe exact dacă execuția algoritmului este finalizată sau ce comandă trebuie executată în continuare); eficacitate(după un număr finit de pași problema este rezolvată sau devine clar că procesul de rezolvare nu poate fi continuat): caracter de masă(algoritmul se aplică uniform oricărei formulări specifice de problemă pentru care este proiectat).
1. Discretență - împărțirea algoritmului într-un număr de acțiuni separate finalizate - pași. Execuția algoritmului este împărțită într-o secvență de acțiuni finalizate - pași. Fiecare acțiune trebuie finalizată de executantul algoritmului înainte de a începe următoarea acțiune.
2. Acuratețe - instrucțiuni clare. La fiecare pas se determină în mod unic transformarea obiectelor din mediul executantului obținute în etapele anterioare ale algoritmului. Dacă un algoritm este aplicat în mod repetat aceluiași set de date de intrare, acesta produce același rezultat de fiecare dată. Algoritmul trebuie scris în așa fel încât la fiecare pas al executării lui să se știe ce comandă trebuie executată în continuare.
3. Înțelegerea – înțelegerea și executarea fără ambiguitate a fiecărui pas al algoritmului de către executantul acestuia. Algoritmul trebuie să fie scris într-un limbaj înțeles de interpret.
4. Eficacitate - obţinerea obligatorie a rezultatelor într-un număr finit de paşi. Fiecare pas (și algoritmul în ansamblu), la finalizare, produce un mediu în care toate obiectele sunt definite în mod unic. Dacă din anumite motive acest lucru este imposibil, atunci algoritmul trebuie să raporteze că o soluție la problemă nu există. Algoritmul trebuie finalizat într-un număr finit de pași. Informatica opereaza numai cu obiecte finite si procese finite, astfel incat chestiunea considerarii unor algoritmi infiniti ramane in afara domeniului de aplicare al teoriei algoritmilor. 5. Masivitatea - aplicarea algoritmului pentru a rezolva o întreagă clasă de probleme similare.
Sistemul de comenzi al executantului este o situație descrisă cu precizie, inclusiv formularea problemei de rezolvat, o listă de obiecte implicate în starea sarcinii și în soluționarea acesteia și capacitățile executantului: proprietățile obiectelor pe care le poate recunoaște și acțiunile pe care le poate efectua. Execuția formală a algoritmului este efectuată de un compilator sau interpret, verificând semantica.

8.2. Modalități de a scrie un algoritm

În practică, cele mai comune forme de algoritmi de scriere sunt:
1) înregistrare grafică (diagrame bloc);
2) înregistrare verbală (pseudocoduri);
3) limbaj de programare.
Forma verbală a scrierii unui algoritm este o descriere în limbaj natural a etapelor succesive ale prelucrării datelor. Metoda verbală nu este răspândită, deoarece astfel de descrieri nu sunt strict formalizate și permit ambiguitatea în interpretarea instrucțiunilor individuale. Un algoritm scris folosind pseudocod este o descriere semi-formalizată într-un limbaj algoritmic condiționat, care include atât elementele de bază ale unui limbaj de programare, cât și fraze în limbaj natural, notații matematice general acceptate și altele.
O formă grafică de înregistrare, numită și diagramă de algoritm, este o imagine a unui algoritm sub forma unei secvențe de blocuri funcționale interconectate, fiecare dintre acestea corespunzând execuției uneia sau mai multor acțiuni. Înregistrarea grafică este mai compactă și mai vizuală în comparație cu înregistrarea verbală. În diagrama algoritmului, fiecărui tip de acțiune îi corespunde o figură geometrică. Cifrele sunt conectate prin linii de tranziție care determină ordinea acțiunilor.
O formă grafică de înregistrare, numită și diagramă bloc sau organigramă a unui algoritm, este o imagine a unui algoritm sub forma unei secvențe de blocuri funcționale interconectate, fiecare dintre acestea corespunzând execuției uneia sau mai multor acțiuni.
În cele ce urmează vom folosi organigrame algoritmice V. Ele vă permit să prezentați algoritmii într-o formă mai vizuală, acest lucru face posibilă analizarea muncii lor, căutarea erorilor în implementarea lor etc. În diagrame de flux există întotdeauna startȘi Sfârşit, notat cu elipse, între ele este o succesiune trepte algoritmul conectat săgeți.

Sunt pași necondiţionat(reprezentat prin dreptunghiuri, paralelograme) și condiţional(descris ca diamante). Două săgeți ies întotdeauna din diamant - una înseamnă calea ulterioară dacă condiția este îndeplinită (indicată de obicei prin cuvântul „da” sau „+”), cealaltă înseamnă neîmplinire (prin cuvântul „nu” sau „- ”). Introducerea de la tastatură sau afișarea valorii unei expresii este reprezentată de un paralelogram. Comanda care efectuează procesarea acțiunii (comanda de atribuire) este reprezentată într-un dreptunghi.

Dacă soluția la problemă este complexă și suficient de lungă, atunci algoritmul se poate dovedi a fi foarte mare. Acest lucru poate fi evitat prin înlocuirea unei anumite secvențe complete de pași de algoritm cu blocuri care vor fi algoritmi auxiliari. Un bloc nu este de obicei elementar dimensiunile sale sunt alese în funcție de nevoie, dar dacă este corect compus, are toate caracteristicile necesare unui pas algoritmic: are un punct de intrare (un început clar definit) și poate fi condiționat sau necondiţionat. Diferitele blocuri ale algoritmului sunt conectate între ele numai prin puncte de intrare și ieșire, așa că dacă un bloc își rezolvă corect problema, atunci structura sa internă este neimportantă pentru restul algoritmului. Această reprezentare a blocurilor este deosebit de convenabilă în primele etape ale rezolvării problemelor complexe, când blocurile sunt detaliate ulterior și, eventual, de către alți dezvoltatori.
Un limbaj de programare este un limbaj folosit pentru a scrie oficial algoritmi. Majoritatea limbajelor de programare sunt limbaje algoritmice. O înregistrare a unui algoritm într-un limbaj algoritmic se numește program.
Se numește limbajul folosit pentru a scrie formal algoritmi limbaj algoritmic. Când descrieți orice limbă (inclusiv limba naturală, de exemplu, rusă, engleză etc.), sunt utilizate următoarele concepte: alfabet, sintaxăȘi semantică.
Alfabet o limbă este un set de semne simple care pot fi folosite în textele acestei limbi. Se numește o secvență de caractere alfabetice intr-un cuvant. Regulile după care se formează cuvintele din alfabet se numesc gramatică. Se limba este ansamblul tuturor cuvintelor scrise într-un alfabet dat după o gramatică dată.
Sintaxă- acesta este un set de reguli care determină posibile combinații (construcții) de litere ale alfabetului. Pentru a descrie sintaxa unei limbi, de regulă, se utilizează un alt limbaj (metalimbaj) sau diagrame sintactice.
Semantică- acesta este un set de reguli care determină sensul (sensul) constructelor individuale ale limbajului.
Unul dintre cele mai comune limbaje algoritmice este Pascal, care este util atât pentru începători, cât și pentru programatori experimentați. Instruirea de programare se bazează cel mai adesea pe acest limbaj.

8.3. Construcții algoritmice de bază

Structura algoritmului poate fi reprezentată cel mai clar folosind o diagramă bloc, care utilizează forme geometrice (blocuri) conectate între ele prin săgeți care indică succesiunea acțiunilor. Au fost adoptate anumite standarde pentru reprezentările grafice ale blocurilor. De exemplu, o comandă de procesare a informațiilor este plasată într-un bloc în formă de dreptunghi, verificarea stării este plasată într-un romb, comenzile de intrare sau de ieșire sunt plasate într-un paralelogram, iar un oval indică începutul și sfârșitul algoritmului.
Unitatea structurală elementară a algoritmului este o comandă simplă, care indică o etapă elementară de procesare sau afișare a informațiilor. O comandă simplă în limbajul circuitului este reprezentată ca un bloc funcțional.

Acest bloc are o singură intrareȘi o ieșire. Din comenzi simple și condiții de verificare, se formează comenzi compuse care au o structură mai complexă și, de asemenea o intrare și o ieșire.
Abordarea structurală a dezvoltării algoritmilor determină utilizarea doar a structurilor (construcțiilor) algoritmice de bază: urmărire, ramificare, repetare, care trebuie proiectate în mod standard.

Să ne uităm la structurile de bază ale algoritmului.
Echipă ca urmare a constă numai din comenzi simple. În figură, sunt simbolizate comenzi simple S1Și S2. Algoritmii liniari sunt formați din următoarele comenzi. Un exemplu de algoritm liniar ar fi găsirea sumei a două numere introduse de la tastatură.

Echipă ramificare- aceasta este o comandă compusă a algoritmului, în care, în funcție de condiția P, se execută oricare dintre ele S1, sau altul S2 acțiune. Algoritmii de ramificare (algoritmi de ramificare) sunt compuși din comenzi de urmărire și comenzi de ramificare. Un exemplu de algoritm de ramificare ar fi găsirea celui mai mare dintre cele două numere introduse de la tastatură.

O comandă de ramură poate fi în formă completă sau incompletă. Forma incompletă a unei comenzi de ramificare este utilizată atunci când trebuie efectuată o acțiune S numai dacă condiția este îndeplinită P. Dacă condiția P nu este urmată, comanda de ramificare se termină fără a executa acțiunea. Un exemplu de comandă de ramificare a formularului incomplet ar fi să înjumătățiți doar un număr par.

Echipă repetari este o comandă compusă a algoritmului, în care, în funcție de condiție R este posibil să efectuați acțiunea de mai multe ori S. Algoritmii ciclici (algoritmi de repetiție) sunt compuși din comenzi de urmărire și comenzi de repetare. Figura prezintă o comandă de repetare cu o condiție prealabilă. Se numește așa pentru că mai întâi se verifică condiția și abia apoi se realizează acțiunea. Mai mult, acțiunea se realizează atâta timp cât condiția este îndeplinită. Un exemplu de algoritm ciclic ar putea fi următorul. În timp ce numerele pozitive sunt introduse de la tastatură, algoritmul le găsește suma.
Comanda de repetare cu precondiție nu este singura posibilă. O variație a comenzii de repetare cu o condiție prealabilă este comanda de repetare cu un parametru. Se folosește atunci când se cunoaște numărul de repetări ale unei acțiuni. În diagrama bloc a comenzii de repetare cu un parametru, condiția este scrisă nu într-un diamant, ci într-un hexagon. Un exemplu de algoritm ciclic cu un parametru ar fi găsirea sumei primelor 20 de numere naturale.

Într-o comandă de repetare cu o postcondiție, acțiunea este efectuată mai întâi S si numai atunci se verifica starea P. Mai mult, acțiunea se repetă până când condiția este îndeplinită. Un exemplu de comandă de repetare cu o postcondiție ar fi scăderea unui număr pozitiv până când acesta este nenegativ. De îndată ce numărul devine negativ, comanda de repetare își încheie activitatea.
Conectând doar aceste structuri elementare (secvențial sau prin imbricare), puteți „asambla” un algoritm de orice grad de complexitate.


Fiecare construcție specificată poate fi implementată fără modificări de structură în orice limbaj de programare, de exemplu, în Pascal și BASIC. Prin urmare, este necesar să se compună corect un algoritm folosind o diagramă de flux și numai atunci, știind cum sunt scrise comenzile într-un limbaj de programare specific, să tastați programul pe un computer și să obțineți rezultatul rulând-l pentru execuție.

8.4. Algoritm liniar

Să dăm un exemplu de scriere a algoritmului sub forma unei diagrame bloc, pseudocoduri și în Pascal. Testarea manuală și selectarea unui sistem de testare sunt efectuate în mod similar cu sarcina anterioară.


8.5. Algoritm de ramificare

Să dăm un exemplu de scriere a unui algoritm de ramificare pentru găsirea celui mai mare dintre două numere.


8.6. Algoritmul round robin

Să luăm în considerare un algoritm pentru găsirea sumei primelor numere impare naturale până la n. Să prezentăm algoritmul în trei moduri: sub forma unei organigrame, un limbaj algoritmic școlar și în limbajul de programare Pascal.


Diagrama bloc constă din următoarele structuri de bază: două comenzi compuse (follow command and repeat command with precondition), apoi o comandă simplă. Toate comenzile sunt conectate în serie. Construcțiile sunt formatate într-un mod standard, astfel încât sunt ușor de recunoscut și de tradus într-un limbaj de programare. Fiecare structură are o intrare și o ieșire.
Săgețile punctate din tabel reflectă secvența de execuție a lanțului tehnologic. După înregistrarea algoritmului sub forma unei organigrame, fiecare comandă este tradusă într-un limbaj algoritmic școlar și abia apoi într-un limbaj de programare.
Să scriem un algoritm pentru calcularea sumei primelor n numere naturale. Pentru a face acest lucru, vom folosi o buclă cu un parametru, deoarece știm dinainte de câte ori va fi executată comanda de găsire a sumei. În toate verigile lanțului, vom schimba bucla „while” în bucla „for” și vom oferi un exemplu de traducere a algoritmului din limbajul diagramei de flux în limbajul algoritmic școlar și în limbajul de programare Pascal.


Să luăm în considerare găsirea numărului de numere naturale a căror sumă nu este mai mare decât una dată. Pentru a face acest lucru, vom folosi comanda repeat cu o postcondiție.


Întrebări pentru autocontrol

  1. Conceptul de algoritm. Proprietățile algoritmului. Exemplu de algoritm. Conceptul de „variabilă”.
  2. Operator de atribuire. Exemple.
  3. Stiluri de programare (logice, funcționale).
  4. Conceptul de subrutină, modul și obiect
  5. Ce este o variabilă? Reguli pentru denumirea variabilelor în Pascal. Exemple.
  6. Operator de atribuire. Scrierea expresiilor în Pascal. Exemple. Explicați cum operatorul x:=x+1;
  7. Operatori de intrare și ieșire în Pascal. Exemple. Ieșire formatată.
  8. Operator condiționat ( dacă). Exemplu. Comparați cu operatorul caz.
  9. Operator de selecție. Exemplu. Comparați cu operatorul dacă.
  10. Expresii logice. Operațiuni sau șiȘi nu. Exemple. Tabelul adevărului.
  11. Tipuri numerice de variabile în limbajul Pascal. Reguli de conversie de tip. Exemple.
  12. Tipul de date boolean. Exemplu de utilizare în program. Tip de date caracter. Exemplu. Funcții chrȘi ord, succȘi pred.
  13. Matrice. Definiție. Indici de matrice. Declarații de matrice. Accesarea elementelor matricei. Matrice unidimensionale și bidimensionale. Exemple. Asemănări și diferențe între matrice și șiruri.
  14. Proceduri. Definiție. De ce sunt necesare proceduri? Exemple. Reguli pentru descrierea procedurilor. Comparați procedurile și funcțiile.

Cuvântul „algoritm” provine de la numele matematicianului arab al-Khwarizmi din secolul al IX-lea, care a formulat regulile pentru efectuarea operațiilor aritmetice.

Algoritm– o instrucțiune precisă și ușor de înțeles pentru executant pentru a executa secvența finală de comenzi care conduc de la datele inițiale la rezultatul inițial.

Exemple: rutina zilnică, ordinea de gătit, instrucțiuni etc.)

Executor de algoritm– acesta este cel care execută algoritmul (persoană, animal, mașină, computer).

Sistem de comandă a executorului- acesta este întregul set de comenzi pe care executantul știe să le execute (le înțelege). Algoritmul poate fi construit numai din comenzi incluse în sistemul de comenzi executor.

De exemplu, performer Robotul poate executa comenzi înainte, înapoi, stânga, dreapta, pictură. Se mișcă printr-un câmp celular delimitat de un perete și pereți de conținut. Robotul nu poate trece prin perete.

Proprietățile algoritmului:

1.Performanță (membru)– capacitatea de a obține un rezultat din datele inițiale într-un număr finit de pași. (De exemplu, atunci când se execută algoritmul de adunare a 2 numere, ar trebui să se obțină suma).

2.Caracter de masă– capacitatea de a aplica algoritmul unui număr mare de date sursă diferite. (De exemplu, puteți adăuga orice 2 numere, cunoscând algoritmul de adunare.)

3.Determinism(certitudine, acuratețe) – fiecare comandă trebuie să determine în mod unic acțiunea executantului.

4.Intelegere– comanda trebuie să fie scrisă într-un limbaj înțeles de computer.

5.Discretenie– împărțirea algoritmului în comenzi separate.

Modalități de a scrie algoritmul:

1) În limbaj natural – înregistrarea sub formă de comenzi separate într-un limbaj pe care oamenii îl înțeleg.

2) Grafic – în limbajul organigramelor, folosind forme geometrice (oval, dreptunghi, paralelogram, romb).

3) Într-un limbaj algoritmic - un limbaj pentru scrierea algoritmilor pentru predarea programarii. Comenzile sunt scrise în limba rusă.

4) Într-un limbaj de programare - un program. Limbaje de programare: Basic, Pascal, C, Visual Basic.

B7. Structuri algoritmice de bază: urmărire, ramificare, buclă; imagine pe diagrame bloc. Împărțirea sarcinilor în subsarcini. Algoritmi auxiliari.

Proiecte algoritmice.În cadrul algoritmilor se pot distinge grupuri de pași care diferă în structura internă - construcții algoritmice.

Construcții algoritmice de bază sunt o secvență liniară de pași (sau următoarele), ramificații și bucle.

Este apelat un algoritm în care comenzile sunt executate secvenţial una după alta algoritm liniar.

Iată cum arată un algoritm liniar în limbajul diagramei bloc:

Exemplu: algoritm pentru pornirea computerului:

  1. Porniți alimentarea computerului (apăsați butonul de pe protectorul de supratensiune).
  2. Porniți monitorul și imprimanta.
  3. Apăsați butonul de pornire de pe unitatea de sistem.
  4. Așteptați să se încarce sistemul de operare și să apară desktopul.
  5. Treci la treabă.

În acest algoritm, toate acțiunile trebuie efectuate succesiv una după alta: nu puteți începe să lucrați dacă alimentarea sau monitorul nu sunt pornite.

În structura algoritmică " ramificare" inclus condiție, în funcție de adevărul condiției, se execută una sau alta secvență de comenzi (serie).

O condiție este o afirmație care poate fi adevărată sau falsă. Într-o condiție, două numere, două șiruri, două variabile sau expresii șir sunt comparate între ele folosind operatori de comparare (>,<, =, >=, <=).

Înregistrare în limbaj algoritmic: IfCondition Then Series 1 (Dacă Condiție adevărat, apoi adevărat Episodul 1, Dacă Condiție false, atunci nu se execută nimic). Exemplu: Dacă astăzi este duminică, atunci nu este nevoie să mergi la școală. Forma completă de ramificare

În structuri algoritmice ciclu include o serie de comenzi care sunt executate în mod repetat. Această secvență de comenzi este numită corpul buclei.

Există două tipuri de structuri algoritmice ciclice:

  • bucle contracate, în care corpul buclei este executat de un anumit număr de ori;
  • bucle condiționate, în care corpul buclei este executat atâta timp cât condiția este îndeplinită.

Bucla cu contor– folosit când se știe dinainte câte repetări ale corpului buclei trebuie efectuate.

Cuvinte cheie:

  • algoritm
  • proprietățile algoritmului
    • discretie
    • claritate
    • certitudine
    • eficacitate
    • caracter de masă
  • executor testamentar
  • caracteristicile interpretului
    • gama de sarcini de rezolvat
    • miercuri
    • mod de operare
    • sistem de comandă
  • executarea formală a algoritmului

3.1.1. Conceptul de algoritm

Fiecare persoană în viața de zi cu zi, la studiu sau la locul de muncă rezolvă un număr mare de probleme de complexitate diferită. Problemele complexe necesită multă gândire pentru a găsi o soluție; O persoană rezolvă sarcini simple și familiare fără să se gândească, în mod automat. În cele mai multe cazuri, soluția la fiecare problemă poate fi împărțită în etape (pași) simple. Pentru multe dintre aceste sarcini (instalarea software-ului, asamblarea unui cabinet, crearea unui site web, operarea unui dispozitiv tehnic, cumpărarea unui bilet de avion prin Internet etc.), au fost deja dezvoltate și sunt oferite instrucțiuni pas cu pas, secvențiale a căror implementare poate duce la rezultatul dorit.

Exemplul 1. Problema „Găsiți media aritmetică a două numere” se rezolvă în trei pași:

  • gândește-te la două numere;
  • adunați două numere în minte;
  • Împărțiți suma rezultată la 2.

Exemplul 2. Sarcina „Depuneți bani în contul dvs. de telefon” este împărțită în următorii pași:

  • mergeți la terminalul de plată;
  • selectați un operator de telecomunicații;
  • Introduceti un numar de telefon;
  • verificați că numărul introdus este corect;
  • introduceți o bancnotă în acceptorul de bancnote;
  • așteptați un mesaj despre creditarea banilor în contul dvs.;
  • primi un cec.

Exemplul 3. Etapele rezolvării problemei „Desenează un arici amuzant” sunt prezentate grafic:

Găsirea mediei aritmetice, depunerea banilor într-un cont de telefon și desenarea unui arici sunt, la prima vedere, procese complet diferite. Dar au o caracteristică comună: fiecare dintre aceste procese este descrisă printr-o succesiune de instrucțiuni scurte, a căror respectare strictă vă permite să obțineți rezultatul dorit. Secvențele de instrucțiuni date în exemplele 1-3 sunt algoritmi pentru rezolvarea problemelor corespunzătoare. Executorul acestor algoritmi este o persoană.

Algoritmul poate fi o descriere a unei anumite secvențe de calcule (exemplul 1) sau a pașilor de natură non-matematică (exemplele 2-3). Dar, în orice caz, înainte de dezvoltarea lui, trebuie clar definite condițiile inițiale (datele inițiale) și ceea ce se dorește a se obține (rezultatul). Putem spune că un algoritm este o descriere a succesiunii de pași în rezolvarea unei probleme, care duce de la datele inițiale la rezultatul cerut.

În general, diagrama de funcționare a algoritmului poate fi reprezentată după cum urmează (Fig. 3.1):

Orez. 3.1.
Schema generală a algoritmului

Algoritmii sunt regulile de adunare, scădere, înmulțire și împărțire a numerelor, reguli gramaticale, reguli de construcții geometrice etc., studiate în școală.

Animațiile „Lucrul cu un algoritm”, „Cel mai mare divizor comun”, „Mel mai mic multiplu comun” (http://school-collection.edu.ru/) vă vor ajuta să vă amintiți câțiva algoritmi studiați în lecțiile de limba rusă și de matematică.

Exemplul 4. Un anumit algoritm duce la faptul că dintr-un lanț de caractere se obține un lanț nou, după cum urmează:

  1. Se calculează lungimea (în caractere) a șirului de caractere sursă.
  2. Dacă lungimea lanțului original este impară, atunci numărul 1 este adăugat la lanțul original din dreapta, altfel lanțul nu se schimbă.
  3. Simbolurile sunt schimbate în perechi (primul cu al doilea, al treilea cu al patrulea, al cincilea cu al șaselea etc.).
  4. Numărul 2 este adăugat la dreapta lanțului rezultat.

Lanțul rezultat este rezultatul algoritmului.

Deci, dacă lanțul inițial a fost A#B, atunci rezultatul algoritmului va fi lanțul #A1B2, iar dacă lanțul inițial a fost ABC@, atunci rezultatul algoritmului va fi lanțul BA@B2.

3.1.2. Executor de algoritm

Fiecare algoritm este conceput pentru un anumit interpret.

Există interpreți formali și informali. Un interpret formal execută întotdeauna aceeași comandă în același mod. Un executor informal poate executa o comandă în diferite moduri.

Să luăm în considerare mai detaliat setul de interpreți formali. Performanții formali sunt extrem de diverși, dar pentru fiecare dintre ei pot fi specificate următoarele caracteristici: gama de sarcini de rezolvat (scop), mediul, sistemul de comandă și modul de operare.

Gama de sarcini de rezolvat. Fiecare interpret este creat pentru a rezolva o anumită gamă de probleme - construirea de lanțuri de simboluri, efectuarea de calcule, construirea de desene pe un plan etc.

Mediul artistului. Zona, decorul și condițiile în care operează interpretul sunt de obicei numite mediul interpretului dat. Datele sursă și rezultatele oricărui algoritm aparțin întotdeauna mediului interpretului căruia îi este destinat algoritmul.

Sistem de comandă a executorului. O instrucțiune către un executant pentru a efectua o acțiune separată finalizată se numește comandă. Setul tuturor comenzilor care pot fi executate de un executor formează sistemul de comenzi pentru acest executant (SKI). Algoritmul este compilat ținând cont de capacitățile unui anumit interpret, cu alte cuvinte, în sistemul de comenzi al executantului care îl va executa.

Moduri de operare performer. Pentru majoritatea interpreților, sunt furnizate modurile de control direct și de control al programului. În primul caz, executantul așteaptă comenzi de la o persoană și execută imediat fiecare comandă primită. În al doilea caz, executantului i se oferă mai întâi o secvență completă de comenzi (program), apoi execută toate aceste comenzi automat. Un număr de interpreți lucrează numai într-unul dintre modurile denumite.

Să ne uităm la exemple de interpreți.

Exemplul 5. Performer Țestoasa se mișcă pe ecranul computerului, lăsând o urmă sub forma unei linii. Sistemul de comandă al țestoasei este format din două comenzi:

    Înainte n (unde n este un număr întreg) - determină Țestoasa să se miște în n pași în direcția de mișcare - în direcția în care se înfruntă capul și corpul său;

    Dreapta m (unde m este un număr întreg) - face ca direcția de mișcare a țestoasei să se schimbe cu m grade în sensul acelor de ceasornic.

Repetare înregistrare k [<Команда1> <Команда2> ... <Командаn>] înseamnă că secvența comenzilor dintre paranteze va fi repetă de k ori.

Gândiți-vă la ce cifră va apărea pe ecran după ce Țestoasa finalizează următorul algoritm.

    Repetați 12 [Dreapta 4 5 Înainte 20 Dreapta 45]

Exemplul 6. Sistemul de comenzi de executare Calculatorul este format din două comenzi cărora li se atribuie numere:

    1 - scade 1
    2 - înmulțiți cu 3

Primul dintre ei scade numărul cu 1, al doilea îl mărește de 3 ori. La scrierea algoritmilor, pentru concizie, sunt indicate doar numerele de comandă. De exemplu, algoritmul 21212 înseamnă următoarea secvență de comenzi:

    inmultiti cu 3
    scade 1
    inmultiti cu 3
    scade 1
    inmultiti cu 3

Folosind acest algoritm, numărul 1 va fi convertit în 15: ((1-3-1)-3-1)-3 = 15.

Exemplul 7. Robotul Performer operează pe un câmp în carouri, între celulele adiacente pot exista pereți. Robotul se deplasează de-a lungul celulelor câmpului și poate executa următoarele comenzi, cărora li se atribuie numere:

    1 sus
    2 - Jos
    3 - Corect
    4 ramase

Când execută fiecare astfel de comandă, Robotul se deplasează într-o celulă adiacentă în direcția indicată. Dacă există un zid în această direcție între celule, atunci Robotul este distrus. Ce se va întâmpla cu Robotul dacă execută secvența de comenzi 32323 (aici numerele indică numerele de comandă), începând să se miște din celula A? Ce succesiune de comenzi ar trebui să execute robotul pentru a trece de la celula A la celula B fără să se prăbușească atunci când lovește pereții?

Când dezvoltați un algoritm:

  1. se identifică obiectele care apar în problemă, se stabilesc proprietăţile obiectelor, relaţiile dintre obiecte şi posibilele acţiuni cu obiectele;
  2. se determină datele inițiale și rezultatul necesar;
  3. se determină succesiunea acțiunilor executantului, asigurând trecerea de la datele inițiale la rezultat;
  4. succesiunea acțiunilor este înregistrată cu ajutorul comenzilor incluse în sistemul de comandă al executantului.

Putem spune că un algoritm este un model al activității executantului de algoritm.

3.1.3. Proprietățile algoritmului

Nu orice instrucțiune, secvență de instrucțiuni sau plan de acțiune poate fi considerat un algoritm. Fiecare algoritm are în mod necesar următoarele proprietăți: discretitate, înțelegere, certitudine, eficacitate și caracter de masă.

Proprietatea discretității înseamnă că calea către rezolvarea unei probleme este împărțită în pași (acțiuni) separate. Fiecare acțiune are o instrucțiune (comandă) corespunzătoare. Numai după ce a executat o comandă, executantul poate începe să execute următoarea comandă.

Proprietatea de înțelegere înseamnă că algoritmul constă numai din comenzi incluse în sistemul de comenzi al executantului, adică din astfel de comenzi pe care executantul le poate percepe și în funcție de care poate efectua acțiunile cerute.

Proprietatea certitudinii înseamnă că nu există comenzi în algoritm, al căror sens poate fi interpretat ambiguu de către executant; Situațiile sunt inacceptabile când, după executarea următoarei comenzi, executantului nu este clar ce comandă să execute la pasul următor.

Proprietatea de eficiență înseamnă că algoritmul trebuie să poată obține un rezultat după un număr finit, eventual foarte mare, de pași. În acest caz, rezultatul este considerat nu numai răspunsul determinat de enunțul problemei, ci și concluzia despre imposibilitatea de a continua rezolvarea acestei probleme din orice motiv.

Proprietatea producției de masă înseamnă că algoritmul trebuie să ofere posibilitatea aplicării sale pentru a rezolva orice problemă dintr-o anumită clasă de probleme. De exemplu, algoritmul pentru găsirea rădăcinilor unei ecuații pătratice ar trebui să fie aplicabil oricărei ecuații pătratice, algoritmul pentru traversarea străzii ar trebui să fie aplicabil oriunde pe stradă, algoritmul pentru prepararea medicamentului ar trebui să fie aplicabil pentru prepararea oricărei cantități din acesta, etc.

Exemplul 8. Să luăm în considerare una dintre metodele de găsire a tuturor numerelor prime care nu depășesc n. Această metodă este numită „sita lui Eratosthenes”, numită după omul de știință grec antic Eratosthenes care a propus-o.

Pentru a găsi toate numerele prime care nu sunt mai mari decât un anumit număr n, urmând metoda lui Eratostene, trebuie să efectuați următorii pași:

  1. notează toate numerele întregi de la 2 la n la rând (2, 3, 4, ..., n);
  2. cadrul 2 - primul număr prim;
  3. tăiați din listă toate numerele divizibile cu ultimul număr prim găsit;
  4. găsiți primul număr nemarcat (numerele marcate sunt numere tăiate sau numere incluse într-un cadru) și închideți-l într-un cadru - acesta va fi un alt număr prim;
  5. repetați pașii 3 și 4 până când nu au mai rămas numere nemarcate.

Vă puteți face o idee mai vizuală a metodei de găsire a numerelor prime folosind animația „Sita lui Eratosthenes” (http://school-collection.edu.ru/).

Secvența de acțiuni considerată este un algoritm, deoarece satisface următoarele proprietăți:

  • discretitate - procesul de găsire a numerelor prime este împărțit în pași;
  • înțelegere - fiecare comandă este de înțeles unui elev de clasa a IX-a care execută acest algoritm;
  • certitudine - fiecare comandă este interpretată și executată de către executant fără ambiguitate; există instrucțiuni privind ordinea executării comenzilor;
  • eficacitate - după un anumit număr de pași se obține rezultatul;
  • caracter de masă - succesiunea de acțiuni este aplicabilă pentru orice n natural.

Proprietățile luate în considerare ale algoritmului ne permit să oferim o definiție mai precisă a algoritmului.

3.1.4. Posibilitatea de automatizare a activităților umane

Dezvoltarea unui algoritm este de obicei o sarcină intensivă în muncă, care necesită ca o persoană să aibă cunoștințe profunde, ingeniozitate și mult timp.

Rezolvarea unei probleme folosind un algoritm gata făcut necesită doar executantului să urmeze cu strictețe instrucțiunile date.

Exemplul 9. Dintr-o grămadă care conține orice număr de obiecte mai mare de trei, doi jucători iau pe rând unul sau două obiecte fiecare. Câștigătorul este cel care poate ridica toate obiectele rămase la următoarea sa mișcare.

Să luăm în considerare un algoritm, în urma căruia primul jucător va asigura cu siguranță un câștig.

  1. Dacă numărul de obiecte din grămadă este multiplu de 3, atunci dați loc adversarului, altfel începeți jocul.
  2. La următoarea mutare, adaugă de fiecare dată numărul de obiecte luate de adversarul tău la 3 (numărul de obiecte rămase trebuie să fie un multiplu de 3).

Interpretul poate să nu se adâncească în sensul a ceea ce face și să nu motiveze pentru care acționează astfel și nu altfel, adică poate acționa formal. Capacitatea interpretului de a acționa formal oferă posibilitatea automatizării activității umane. Pentru aceasta:

  1. procesul de rezolvare a unei probleme este prezentat ca o succesiune de operatii simple;
  2. este creată o mașină (dispozitiv automat) capabil să efectueze aceste operații în secvența specificată în algoritm;
  3. o persoană este eliberată de activitățile de rutină, execuția algoritmului este încredințată unui dispozitiv automat.

Cel mai important

Un executor este un obiect (persoană, animal, dispozitiv tehnic) capabil să execute un anumit set de comenzi. Un interpret formal execută întotdeauna aceeași comandă în același mod. Pentru fiecare executant formal, puteți specifica: gama de sarcini de rezolvat, mediul, sistemul de comandă și modul de operare.

Un algoritm este o descriere a unei secvențe de acțiuni destinate unui anumit executant, care duce de la datele inițiale la rezultatul cerut, care are proprietățile de discretie, înțelegere, certitudine, eficacitate și caracter de masă.

Capacitatea interpretului de a acționa formal oferă posibilitatea automatizării activității umane.

Întrebări și sarcini

  1. Cum se numește un algoritm?
  2. Găsiți sinonime pentru cuvântul „prescripție”.
  3. Dați exemple de algoritmi pe care i-ați studiat la școală.
  4. Cine poate fi executantul algoritmului?
  5. Dați un exemplu de interpret formal. Dați un exemplu când o persoană acționează ca un interpret formal.
  6. Ce comenzi ar trebui să îndeplinească un robot funcțiile de: a) casier într-un magazin; b) un portar; c) un agent de pază?
  7. Ce determină gama de sarcini îndeplinite de executantul „calculator”?
  8. Luați în considerare procesorul de text de pe computer ca fiind executant. Descrieți gama de sarcini rezolvate de acest interpret și mediul său.
  9. Ce este o echipă, un sistem de comenzi de executant?
  10. Enumerați principalele proprietăți ale algoritmului.
  11. La ce poate duce absența oricărei proprietăți într-un algoritm? Dă exemple.
  12. De ce este important să poți executa formal un algoritm?
  13. Secvența de numere este construită după următorul algoritm: primele două numere ale șirului sunt luate egale cu 1; Fiecare număr următor din succesiune este considerat egal cu suma celor două numere anterioare. Notează primii 10 termeni ai acestei secvențe.
  14. Unele algoritmi obțin un lanț nou dintr-un șir de caractere, după cum urmează. În primul rând, se scrie lanțul original de caractere, după care se scrie lanțul original de caractere în ordine inversă, apoi se scrie litera care urmează în alfabetul rus după litera care a fost pe ultimul loc în lanțul original. Dacă ultimul loc în lanțul original este litera Z, atunci litera A este scrisă ca următoarea literă. Lanțul rezultat este rezultatul algoritmului. De exemplu, dacă lanțul original de caractere a fost DOM, atunci rezultatul algoritmului va fi lanțul DOMMODN. Dat un șir de caractere KOM. Câte litere O vor fi în lanțul de simboluri care vor fi obținute dacă aplicați algoritmul acestui lanț și apoi aplicați algoritmul din nou la rezultatul muncii sale?
  15. Găsiți o animație a pașilor algoritmului lui Eratosthenes pe Internet. Utilizați algoritmul lui Eratosthenes pentru a găsi toate numerele prime care nu depășesc 50.
  16. Care va fi rezultatul executării algoritmului de către Turtle (vezi exemplul 5)?
      Repetați 8 [Dreapta 45 Înainte 45]
  17. Scrieți un algoritm pentru executorul Calculator (exemplul 6), care să nu conțină mai mult de 5 comenzi:
      a) primirea de la numărul 3 a numărului 16;
      b) primirea de la numărul 1 a numărului 25.
  18. Sistemul de comenzi executor Constructorul este format din două comenzi cărora li se atribuie numere:
      1 - atribuiți 2
      2 - împărțiți la 2

    Conform primului dintre ele, la numărul din dreapta se adaugă 2, conform celui de-al doilea, numărul se împarte la 2. Cum va fi convertit numărul 8 dacă executantul execută algoritmul 22212? Creați un algoritm în sistemul de comandă al acestui executant, conform căruia numărul 1 va fi convertit în numărul 16 (algoritmul nu trebuie să conțină mai mult de 5 comenzi).

  19. În ce celulă ar trebui să fie localizat performerul Robot (exemplul 7) pentru a reveni la ea după executarea algoritmului 3241?

Conceptul de algoritm. Executori de algoritm. Proprietățile algoritmilor

Conceptul de algoritm este la fel de fundamental pentru informatică ca și conceptul de informație. Există multe definiții diferite ale unui algoritm, deoarece acest concept este destul de larg și este utilizat în diferite domenii ale științei, tehnologiei și vieții de zi cu zi.

Un algoritm este o secvență clară și precisă de acțiuni care descrie procesul de transformare a unui obiect din starea inițială în starea finală.

Un algoritm este o descriere precisă a unei secvențe de acțiuni destinate unui anumit executant care vizează rezolvarea unei anumite probleme.

Interpret Algoritmul poate fi fie o persoană (rețete de gătit, diverse instrucțiuni, algoritmi pentru calcule matematice), fie un dispozitiv tehnic. Sunt diverse mașini (calculatoare, roboți industriali, aparate electrocasnice moderne). executorii formali algoritmi. Un interpret formal nu este obligat să înțeleagă esența problemei care este rezolvată, ci trebuie să execute cu acuratețe o secvență de comenzi.

Algoritmul poate fi scris în diverse moduri (descriere verbală, descriere grafică - diagramă bloc, program într-unul din limbajele de programare etc.). Un program este un algoritm în care este scrislimbaj de programare .

Pentru a crea un algoritm (program), trebuie să știți:

    un set complet de date inițiale ale sarcinii (starea inițială a obiectului);

    scopul creării algoritmului (starea finală a obiectului);

    sistemul de comandă al executantului (adică un set de comenzi pe care executantul le înțelege și le poate executa).

Algoritmul rezultat (programul) trebuie să aibă următorul set de proprietăți:

    discretie (algoritmul este împărțit în pași separați - comenzi);

    neambiguitate (fiecare comandă determină singura acțiune posibilă a executantului);

    claritate (toate comenzile algoritmului sunt incluse în sistemul de comenzi executor);

    eficacitate (interpretul trebuie să rezolve problema într-un număr finit de pași).

Majoritatea algoritmilor au, de asemenea, proprietatea caracter de masă (folosind același algoritm puteți rezolva multe probleme similare).

Modalități de a descrie algoritmi

S-a remarcat mai sus că același algoritm poate fi scris în moduri diferite. Puteți nota algoritmul limbaj natural. Așa folosim rețete, instrucțiuni etc. Pentru a înregistra algoritmi destinati interpreților formali, special limbaje de programare. Orice algoritm poate fi descris grafic sub forma unei diagrame bloc. În acest scop a fost dezvoltat un sistem special de notație:

Desemnare

Descriere

Note

Începutul și sfârșitul algoritmului

Intrarea și ieșirea datelor.

Ieșirea datelor este uneori menționată diferit:

Acțiune

În algoritmii de calcul, aceasta este folosită pentru a desemna atribuirea

Furculiţă

Furcă - o componentă necesară pentru implementarea ramurilor și buclelor

Pornirea unei bucle cu un parametru

Proces tipic

În programare – proceduri sau subrutine

Tranziții între blocuri

Iată un exemplu de descriere a algoritmului pentru însumarea a două mărimi sub forma unei diagrame bloc:

Acest mod de a descrie algoritmul este cel mai vizual și mai ușor de înțeles pentru oameni. Prin urmare, algoritmii executorilor formali sunt de obicei dezvoltați mai întâi sub forma unei organigrame și abia apoi creează un program pe unul dintrelimbaje de programare .

Structuri algoritmice tipice

Programatorul are posibilitatea de a construi și utiliza structuri algoritmice atipice, cu toate acestea, acest lucru nu este necesar. Orice algoritm, oricât de complex, poate fi dezvoltat pe baza a trei structuri tipice: urmărire, ramificare și repetiție. În acest caz, structurile pot fi amplasate secvenţial una după alta sau imbricate unele în altele.

Structura liniară (urmează)

Cea mai simplă structură algoritmică este liniar. În ea, toate operațiunile sunt efectuate o dată în ordinea în care sunt înregistrate.

Ramificare

ÎN ramificare completă Există două opțiuni pentru acțiunile executantului în funcție de valoarea expresiei logice (condiție). Dacă condiția este adevărată, atunci va fi executată doar prima ramură, în caz contrar doar a doua ramură.

A doua ramură poate fi goală. Această structură se numește ramificare incompletă sau bypass.

Din mai multe ramuri puteți construi o structură „ alegere”(ramificarea multiplă), care va alege nu dintre două, ci dintr-un număr mai mare de opțiuni pentru acțiunile interpretului, în funcție de mai multe condiții. Este important ca o singură ramură să fie executată - într-o astfel de structură, ordinea condițiilor devine importantă: dacă sunt îndeplinite mai multe condiții, atunci doar una dintre ele va funcționa - prima de sus.

Ciclu (repetiție)

Cicluvă permite să organizați mai multe repetări ale aceleiași secvențe de comenzi- se numeste corpul ciclului. În diferite tipuri de algoritmi ciclici, numărul de repetări poate depinde de valoarea unei expresii logice (condiție) sau poate fi codificat în structura însăși. Există cicluri: „ inainte de», « Pa», bucle cu un contor.În buclele „before” și „while”, o expresie logică (condiție) poate precede corpul buclei ( buclă cu precondiție) sau încheie bucla ( buclă cu postcondiție).

Cicluri« inainte de» - repetarea corpului ciclului până când este îndeplinită condiția:

Cicluri « Pa» - repetarea corpului ciclului atâta timp cât condiția este îndeplinită(Adevărat):

Bucle cu contor(cu parametru)– repetarea corpului buclei de un număr specificat de ori:

Algoritm auxiliar (subrutină, procedură)

Algoritm auxiliar este un modul care poate fi accesat în mod repetat din algoritmul principal. Utilizarea algoritmilor auxiliari poate reduce semnificativ dimensiunea algoritmului și poate simplifica dezvoltarea acestuia.

Metode de dezvoltare a algoritmilor complexi

Există două metode de dezvoltare a algoritmilor complecși:

Metoda de detaliere a sarcinilor secvențiale(„de sus în jos”) este că sarcina complexă inițială este împărțită în subsarcini. Fiecare dintre sarcinile secundare este luată în considerare și rezolvată separat. Dacă oricare dintre sarcinile secundare este complexă, acestea sunt, de asemenea, împărțite în subsarcini. Procesul continuă până când subsarcinile sunt reduse la cele elementare. Soluțiile la subprobleme individuale sunt apoi combinate într-un singur algoritm pentru rezolvarea problemei inițiale. Metoda este utilizată pe scară largă deoarece permite mai multor programatori să dezvolte simultan un algoritm general și să rezolve subprobleme locale. Aceasta este o condiție necesară pentru dezvoltarea rapidă a software-ului.

Metoda de asamblare(“de jos în sus”) constă în crearea unei varietăți de module software care implementează soluția problemelor tipice. Atunci când rezolvă o problemă complexă, un programator poate folosi modulele dezvoltate ca algoritmi (proceduri) auxiliari. In multe sisteme de programare Există deja seturi similare de module, ceea ce simplifică și accelerează semnificativ crearea unui algoritm complex.

Algoritmi și procese de control

Control - interacțiunea intenționată a obiectelor, dintre care unele sunt manageri, altele - gestionate.

În cel mai simplu caz, există două astfel de obiecte:

Din punct de vedere informatic acţiunile de control pot fi considerate informaţii de control. Informațiile pot fi transmise sub formă de comenzi. Este numită o secvență de comenzi pentru a controla un obiect care duce la un scop predeterminat algoritm de control. Prin urmare, obiectul de control poate fi numit executorul algoritmului de control. În exemplul considerat, obiectul de control funcționează „fără să se uite” la ceea ce se întâmplă cu obiectul de control ( control în buclă deschisă deschis. O altă schemă de control poate lua în considerare informații despre procesele care au loc în obiectul de control:

În acest caz, algoritmul de control trebuie să fie suficient de flexibil pentru a analiza aceste informații și a lua decizii cu privire la acțiunile sale ulterioare în funcție de starea obiectului de control ( controlul feedback-ului). Această schemă de control se numește închis.

Procesele de management sunt studiate mai detaliat și discutate cibernetică. Această știință susține că cele mai diverse procese de management din societate, natură și tehnologie au loc în mod similar și sunt supuse acelorași principii.

Până la începutul subiectului