Algoritmii sunt tipurile lor. Tipuri de algoritmi și exemple. Verificarea temelor

>> Tipuri de algoritmi

În algoritmi, comenzile sunt scrise una după alta într-o anumită ordine. Ele nu sunt neapărat executate într-o secvență scrisă: în funcție de ordinea în care sunt executate comenzile, se pot distinge trei tipuri de algoritmi:

algoritmi liniari;
algoritmi de ramificare;
algoritmi cu repetari.

Algoritmi liniari

În care comenzile sunt executate în ordinea în care sunt scrise, adică secvenţial una după alta, se numeşte liniară.

De exemplu, următorul algoritm de plantare a copacilor este liniar:

1) săpați o groapă în pământ;
2) coborâți răsadul în gaură;
3) umpleți gaura cu răsadul cu pământ;
4) udați răsadul cu apă.

Folosind o diagramă bloc acest algoritm poate fi descris astfel:

Algoritmi despre ramificare

Situațiile în care succesiunea acțiunilor necesare este cunoscută dinainte sunt extrem de rare. În viață, de multe ori trebuie să iei decizii în funcție de situația actuală. Dacă plouă, luăm o umbrelă și ne punem o pelerină de ploaie; dacă este cald, purtați haine ușoare. Există și condiții de selecție mai complexe. În unele cazuri, soarta viitoare a unei persoane depinde de decizia aleasă.

Logica deciziei poate fi descrisă după cum urmează:

DACĂ<условие>ACEA<действия 1>IN CAZ CONTRAR<действия 2>

Exemple:

Dacă vrei să fii sănătos, APOI întărește-te, ALTELOR stai întins pe canapea toată ziua;
DACĂ rândunelele zboară jos, ATUNCI va ploua, ALTELOR nu va fi ploaie;
DACĂ ți-ai învățat lecțiile, atunci mergi la o plimbare, ALTELOR studiază-ți lecțiile.

In unele cazuri<действия 2>poate fi absent;

DACĂ<условие>ACEA<действия 1>

Exemplu:

DACĂ îți spui ciupercă de lapte, atunci intră în spate.

O formă de organizare a acțiunilor în care, în funcție de îndeplinirea unei anumite condiții, se realizează una sau alta ulterior pașii se numesc ramificare.

Să descriem sub forma unei organigrame succesiunea de acțiuni a elevului de clasa a VI-a Mukhin Vasya, pe care o imaginează astfel: „Dacă Pavlik este acasă, vom rezolva probleme de matematică. in caz contrar Ar trebui să o sunați pe Marina și să pregătiți împreună un raport despre biologie. Dacă Marina nu este acasă, atunci trebuie să te așezi și să scrii.”

Și astfel, cu ajutorul unei organigrame, puteți prezenta foarte clar raționamentul atunci când rezolvați următoarea problemă.

Dintre trei monede de aceeași valoare, una este contrafăcută (brichetă). Cum să-l găsești folosind o cântărire pe o cântar de cană fără greutăți?

Algoritmi cu repetari

În practică, există adesea probleme în care una sau mai multe acțiuni trebuie repetate de mai multe ori până când este îndeplinită o condiție predeterminată.

Algoritm care conține cicluri, se numește algoritm ciclic sau algoritm cu repetări.

O situație în care o buclă nu se termină niciodată se numește looping. Ar trebui dezvoltați algoritmi pentru a preveni astfel de situații.

Să ne uităm la un exemplu din matematică.

Un număr natural se numește prim dacă are doar doi divizori: unul și numărul însuși1.

2, 3, 5, 7 - numere prime; 4, 6, 8 - nr. În secolul al III-lea î.Hr., matematicianul grec Eratosthenes a propus următorul algoritm pentru a găsi toate numerele prime mai mici decât un număr dat n:

1) notează toate numerele naturale de la 1 la n;
2) tăiați 1;
3) subliniați cel mai mic dintre numerele nemarcate;
4) tăiați toate numerele care sunt multipli ai celor subliniate în pasul anterior;
5) dacă în listă există numere nemarcate, atunci treceți la pasul 3, altfel toate numerele subliniate sunt prime.

Acesta este un algoritm ciclic. Când este executat, pașii 3-5 se repetă până când există numere nemarcate în lista originală.

Iată cum arată o diagramă de acțiuni pentru un școlar care trebuie să-și facă temele de matematică înainte de o plimbare de seară:

Să ne amintim că numărul 1 nu este nici un număr compus (cele cu mai mult de doi divizori) și nici un număr prim.

Cel mai important

În funcție de ordinea în care sunt executate comenzile, se pot distinge trei tipuri de algoritmi:

> algoritmi liniari;
> algoritmi de ramificare;
> algoritmi cu repetari.

Un algoritm în care comenzile sunt executate în ordinea în care au fost scrise, adică secvenţial una după alta, se numeşte liniar.

Forma de organizare a acțiunilor în care, în funcție de îndeplinirea unei anumite condiții, se realizează una sau alta succesiune de pași se numește ramificare.

O formă de organizare a acțiunilor în care execuția aceleiași secvențe de comenzi se repetă până când este îndeplinită o condiție predeterminată se numește ciclu (repetiție).

Întrebări și sarcini

1. Ce algoritmi se numesc liniari?
2. Dați un exemplu algoritm liniar,
3. Interpretul „Calculator” poate executa doar două comenzi: înmulțiți cu 2 și adăugați cel mai scurt plan pentru a obține numărul 50 de la O.
4. Ce formă de organizare a acțiunilor se numește ramificare?
5. Ce condiții trebuia să îndeplinească eroina poveștii „Gâște și lebede”?
6. Dați un exemplu de algoritm care conține ramificare"
7. Citește un fragment din poezia lui J. Rodari „A ce miros meșteșugurile?”:

Fiecare carcasă are un miros special:
Brutăria miroase a aluat și a produse de patiserie.
Treci pe lângă un atelier de tâmplărie -
Miroase a ras și scânduri proaspete.
Pictorul miroase a terebentină și a vopsea.
Geamul miroase a chit de ferestre.
Geaca șoferului miroase a benzină
Bluză de muncitor - unsă la mașină.

Reformulați
despre profesii folosind cuvintele „DAC... ATUNCI”/

8. Amintiți-vă care eroi ai poveștilor populare rusești fac alegeri care le determină soarta.
9. Din 9 monede de aceeași denominație, una este contrafăcută (brichetă). În câte cântăriri pe o cântar de cană fără greutăți îl poți determina?
10. Ce formă de organizare a acțiunilor se numește repetiție?
11. Dați un exemplu de algoritm care conține repetiție.
12. În ce opere literare știți că are loc o formă ciclică de organizare a acțiunilor?
13. Unde va fi interpretul care a completat următorul grup de comenzi de 16 ori la rând?

mergi 10 metri înainte

rotiți 90° în sensul acelor de ceasornic

14. Ce grup de acțiuni și de câte ori ar trebui repetate la rezolvarea următoarei probleme?

Patruzeci de soldați s-au apropiat de râul de-a lungul căruia doi băieți călăreau o barcă. Cum pot soldații să treacă pe partea cealaltă dacă barca poate găzdui doar un soldat sau doi băieți, dar nu mai poate găzdui un soldat și un băiat?

15. Amintiți-vă de problema unui Calculator care poate doar înmulți cu 2 și adăuga 1. Va fi mult mai ușor să dezvoltați algoritmi raționali pentru acesta dacă utilizați următoarea diagramă bloc:

Folosind această diagramă, dezvoltați algoritmi raționali pentru obținerea numerelor 1024 și 500 de la 0.

Bosova L. L. Informatica: Manual pentru clasa a VI-a / L. L. Bosova. - Ed. a III-a, rev. si suplimentare - M.: BINOM. Laboratorul de Cunoaștere, 2005. - 208 p.: ill.

Conținutul lecției note de lecție și cadru suport prezentarea lecției tehnologii interactive accelerator metode de predare Practică teste, teste online sarcini și exerciții teme pentru acasă ateliere și întrebări de instruire pentru discuțiile la clasă Ilustrații materiale video și audio fotografii, imagini, grafice, tabele, diagrame, benzi desenate, pilde, proverbe, cuvinte încrucișate, anecdote, glume, citate Suplimente rezumate cheat sheets sfaturi pentru articolele curioase (MAN) literatură dicționar de bază și suplimentar de termeni Îmbunătățirea manualelor și lecțiilor corectarea erorilor din manual, înlocuirea cunoștințelor învechite cu altele noi Doar pentru profesori planuri calendaristice programe de învățare instrucțiuni Dezvoltat de un profesor de informatică

Instituția de Stat „Școala Gimnazială Nr.19 Departamentul Educației

Akimat din orașul Kostanay"

Eleusizova Ainash Dosymkhanovna

Subiect:

Obiective:

interes sporit pentru studierea subiectului; dezvoltarea abilității de a gândi rapid; dezvoltarea activității creative a elevilor; dezvoltarea intereselor cognitive.

Sarcini:

1. Educativ

    Să consolideze cu studenții conceptele de algoritm, executor, sistem de comenzi executor și modalități de prezentare a algoritmilor;

    Introduceți elevii în tipurile de algoritmi: liniari, ramificați, ciclici;

    Predați prezentarea algoritmilor sub formă de organigrame;

2. Dezvoltare

    Activarea activității cognitive a elevilor prin instrumente multimedia de învățare;

    Dezvoltați gândirea imaginativă, critică, divergentă;

3. Educativ

    Creșterea motivației elevilor în clasă;

    Atingerea unui nivel conștient de stăpânire a materialului de către elevi;

    Formarea unui sentiment de colectivism și competiție sănătoasă;

    Formarea gândirii algoritmice.

Cerințe pentru cunoștințe și abilități:

    Cunoașteți tipurile de algoritmi;

    cunoașteți conceptele: algoritmi liniar, ramificat, ciclic;

    să poată aplica cunoștințele dobândite la îndeplinirea sarcinilor practice.

Tip de lecție: combinate.

Tehnologie: formare competenta comunicativa;

Metode:

    parțial exploratoriu, practic.

    informațional (verbal);

    vizuale și ilustrative;

În timpul orelor:

eu.Organizarea timpului.

    Salutari baieti.

Buna baieti! Aşezaţi-vă! Care este starea ta? Dacă este bine, zâmbește tuturor! Dacă nu, uitați-vă unul la altul și zâmbiți! Să începem lecția!

Ți-am prezentat algoritmul sub formă verbală. Uită-te la tablă. Același algoritm este reprezentat grafic. Astăzi în lecție vom învăța să reprezentăm tipurile de algoritmi folosind diagrame bloc (flipchart pagina 1).

Epigraful lecției noastre va fi cuvintele celebrului om de știință francez Gustave Guillaume: „Drumul este stăpânit de cel care merge, dar de cel care se gândește la informatică.”

2. Anunțarea obiectivelor lecției.

II. Actualizarea cunoștințelor elevilor

Dar înainte de a începe să învățăm material nou. Trebuie să ne amintim ce am studiat în ultima lecție.

1. Verificați teme pentru acasă.

Verificați cuvintele încrucișate rezolvate de elevi acasă.

Raspunsuri:

    grafic

    membrului

    informație

    executor testamentar

    algoritm

    program

    calculator

    instrument

2. Lucrul cu Activeote (Anexa 4) însoțit de muzică și sunet (link la fișier de sunet).

„Repetiția este mama învățării”, au spus marii.

Profesorul explică algoritmul pentru rezolvarea sarcinilor de testare. Copiii din câmp lucrează cu Activeote.

III. Învățarea de materiale noi.

1. Partea teoretică.

Băieți, pentru a vă familiariza cu tipurile de algoritmi, ne vom uita acum la paginile următoare flipchart, definițiile necesare trebuie notate într-un caiet.

În primul rând, trebuie să ne amintim care figuri geometrice folosit la compilare diagrame bloc.

Legendă pentru diagrame bloc(flipchart pagina 5-6)

Începutul sau sfârșitul programului

- introducere a datelor

- actiuni

- starea de rezolvare a programului

-date de ieșire sau text

--bucla cu parametru

-subrutină

Există trei tipuri de algoritmi: (flipchart pagina 7)

Liniar

Ramificare

Ciclic

Algoritmi liniari


Exemplul 1 (flipchart pagina 9). Basm „Găina Ryaba”

Algoritm de ramificare- un algoritm în care, în funcţie de

Când este îndeplinită o anumită condiție, se efectuează fie una, fie alta secvență de acțiuni (flipchart pagina 10)

Formular complet(flipchart pagina 11)

Formular incomplet

Exemplul 2. (flipchart pagina 12-13)

Dacă plouă, atunci deschideți umbrela (forma incompletă a algoritmului de ramificare și ce acțiuni nu sunt efectuate).

Exemplul 3. (flipchart pagina 12-13)


„Cumpără înghețată.”


algoritm ciclic- (flipchart pagina 14)


Exemplul 4.(flipchart pagina 15.) Algoritmul „Umplere”.

N a început

Sfârşit

2. Consolidare primară.Rezolvarea problemelor de antrenament(colectiv)

(flipchart pagina 16-17).

Elevii vin pe rând și completează organigramele de pe flipchart.

Sarcina de antrenament nr. 1 (flipchart pagina 18)."Curata covorul"

Pe tablă interactivă, folosind indicatorul, mutați ordinea corectă acțiuni)

Sarcina de antrenament nr. 2 (flipchart pagina 19).

    Completați diagrama cu proverbul „Dacă ești bolnav, fă-ți tratament, dar dacă ești sănătos, fii atent”.

    Denumiți tipul de algoritm.

Sarcina de antrenament nr. 3 (flipchart pagina 20).


Verificați trăgând imaginea într-un spațiu gol.

    Minut de educație fizică(flipchart pagina 21).

Ne vom mișca mâinile -

Parcă înotăm în mare.

Unu doi trei patru -

Așa că am navigat spre țărm,

Pentru a întinde oasele,

Să începem să facem curbe -

Dreapta, stânga, dreapta, stânga.

Să nu uităm să ne așezăm -

Unu doi trei patru,

Am finalizat algoritmul și am atins un anumit obiectiv: ne-am odihnit și ne-am relaxat.

4. Efectuarea lucrărilor practice.Lucrul la carduri cu mai multe niveluri.

(flipchart pagina 22).

Și revenim la cuvintele savantului francez Gustave Guillaume „Drumul este stăpânit de cel care merge, dar de cel care se gândește la informatică”.

Utilizați săgețile pentru a indica tipul de algoritm căruia îi aparțin datele imaginii.

Dați nume algoritmilor (flipchart pagina 23).

Completați tabelul cu două exemple pentru fiecare tip de algoritm (flipchart pagina 24).

A picta

Opțiunea 1.( flipchart pagina 25).

„Pădirea unui răsad”.

Opțiunea 2.( flipchart pagina 26).

IV . Teme pentru acasă(flipchart pagina 27).

1. Învață notele.

2. Desenați pe format A4 un exemplu de algoritm ciclic și o diagramă bloc pentru basmul „Kolobok”.

V . Rezumatul lecției.(Flipchart pagina 28).

Aceasta încheie lecția. Scopul nostru a fost atins. Am repetat conceptele de bază ale unui algoritm, ne-am familiarizat cu tipurile de algoritmi, am aplicat cu succes cunoștințele în practică și ne-am amintit de basme și proverbe.

VI . Reflecţie. .(flipchart pagina 29).

-Ce ți-a plăcut la lecția de azi?
- Ce îți amintești?
- Ce a fost interesant?

VII.Evaluare.

Astăzi, în loc de note, vei avea emoticoane, pe care le voi folosi pentru a-ți evalua progresul la clasă.

Anexa 2

Dirijare №1

Subiectul lecției: Tipuri de algoritmi: liniari, ramificati, ciclici.

Obiectivele lecției : Să învățăm cum să clasificăm tipurile de algoritmi;

Să învățăm să reprezentăm algoritmii sub formă de diagrame .

1. Verificarea temelor.

Executarea sarcinilor de testare folosind testerul

2. Partea teoretică

Simboluri pentru diagramele bloc:

Începutul sau sfârșitul programului

- introducere a datelor

- actiuni

- starea de rezolvare a programului

-date de ieșire sau text

--bucla cu parametru

-subrutină

- săgeți – direcția procesului

Există trei tipuri de algoritmi: -liniari

Ramificare

Ciclic

Algoritmi liniari– un algoritm în care comenzile sunt executate în ordinea în care au fost scrise, adică secvenţial una după alta. (flipchart pagina 8)

Exemplul 1. Basm „Găina Ryaba”

Algoritm de ramificare- un algoritm în care, în funcție de îndeplinirea unei anumite condiții, se realizează fie una, fie alta succesiune de acțiuni.

În descrierea verbală a unui algoritm de ramificare, sunt folosite cuvintele „dacă”, „atunci”, „altfel”.

Formular complet: „dacă este îndeplinită condiția, atunci..., în caz contrar...”. Acțiunile sunt prevăzute atât atunci când condiția este îndeplinită, cât și atunci când aceasta nu este îndeplinită.

Formular incomplet: „dacă este îndeplinită condiția, atunci...”. Acțiunile sunt furnizate numai atunci când condiția este îndeplinită. Dacă condiția nu este îndeplinită.

Exemplul 2.

Dacă plouă, atunci deschideți umbrela, în caz contrar, puneți umbrela în geantă (forma completă a algoritmului de ramificare);

Dacă plouă, deschideți umbrela (forma incompletă a algoritmului de ramificare).


Exemplul 3.

„Cumpără înghețată.”

algoritm ciclic- un algoritm în care acțiunile sunt repetate de un număr finit de ori.

P
exemplu 4.
Algoritmul „Umplere”.

start

1. În timp ce găleata nu este plină, repetați:

2. Turnați o cană cu apă în găleată.

Sfârşit

3. Rezolvarea problemelor de antrenament(lucru in echipa).

Sarcina de instruire nr. 1.

Creați un algoritm pentru „Curățați covorul”.

Sarcina de instruire nr. 2.

1.Denumește tipul de algoritm.

2. Completați algoritmul.

Folosind o diagramă, notează proverbul „Dacă ești bolnav, fă-ți tratament, dar dacă ești sănătos, fii atent”.


Sarcina de instruire nr. 3.

Un băiat învață pe de rost un catren repartizat în literatură. Citește o dată catrenul și încearcă să-l reproducă din memorie. Va face asta până când va recita catrenul fără nicio greșeală. Desenați acțiunile băiatului sub forma unei organigrame.

4. Minutul de educație fizică.

Ne vom mișca mâinile -

Parcă înotăm în mare.

Unu doi trei patru -

Așa că am navigat spre țărm,

Pentru a întinde oasele,

Să începem să facem curbe -

Dreapta, stânga, dreapta, stânga.

Să nu uităm să ne așezăm -

Unu doi trei patru,

După cinci, așează-te la birou.


Exemple

algoritm liniar

Exemple

algoritm de ramificare

Exemple

algoritm ciclic


Creați un algoritm într-un program A picta folosind comenzile de mutare și copiere.

Opțiunea 1.( flipchart pagina 25).

„Pădirea unui răsad”.

Opțiunea 2.( flipchart pagina 26).

Un episod din basmul „Gâște și lebede”.

Programarea înseamnă a scrie ceva folosind limbajul necunoscut al altcuiva. Odată cu dezvoltarea acestei zone de cunoaștere, dezvoltatorii au mers și mai departe și au învățat să scrie „ceva” fără să înțeleagă măcar cum sună în rusă. Începătorii învață să scrie cod direct în C++ sau PHP, folosind multe biblioteci și nici măcar nu înțeleg cu adevărat cum creează sunete în limba lor maternă. Algoritmizarea se ocupă de explicarea și de a face acest „ceva” de înțeles.

Algoritmizare

Majoritatea exemplelor de algoritmi din informatică, chiar și din universități, sunt studiate la un nivel mediocru. Este o practică obișnuită să scrieți la nesfârșit cod din ce în ce mai complex. Încercările programatorilor fără experiență de a începe imediat să scrie programe într-un limbaj de programare pot fi comparate cu munca unui jurnalist care, abia stăpânind elementele de bază limbă străină, scrie un articol pentru o revistă. A evita problema asemanatoare Puteți dacă începeți să vă înregistrați munca mai întâi în limba maternă, să o editați, să verificați dacă există erori și, în final, să o traduceți în limba dorită.

Avantajul acestei abordări este, în principal, că dezvoltatorul își va petrece doar 25% din timp traducând, în timp ce atunci când scrie un program într-o limbă nouă, va petrece 100% lucrând cu o limbă necunoscută. În acest caz, el se va găsi în condiții înghesuite și nu va putea desfășura cec bun pentru erori și revizuire a proiectului.

Algoritmizarea ajută, la implementarea unui proiect pe un computer, să descrie procesul de soluție în nativ și limbaj clar sub forma unei diagrame de algoritmi interconectați, analizați ideile și obțineți cod de cea mai înaltă calitate și atent, care va fi mai rezistent la erori și va funcționa mai eficient.

Conceptul de algoritm

Un computer nu poate rezolva probleme, ci doar poate funcționa pași simpliîn ordinea enumerată. — Dar calculatorul? - tu intrebi. Este și rodul muncii programatorilor care au creat un program care folosește anumiți algoritmi pentru a obține rezultatele necesare. Să luăm în considerare o situație abstractă. Ce ar trebui să faceți dacă întrebați pe cineva care nu este familiarizat cu metodele de rezolvare a ecuațiilor să găsească rădăcinile unui trinom pătratic?

Evident, el trebuie să fie antrenat să rezolve ecuații patratice. Acest lucru se întâmplă conform următoarei scheme:

  1. Alege o soluție.
  2. Studiați toate detaliile metodei alese.
  3. Explicați primele două puncte viitorului interpret într-o limbă pe care o înțelege.

Apoi va fi posibil să se dea executantului sarcini pentru a rezolva o ecuație pătratică. Și dacă primii doi pași sunt simpli și de înțeles - toate metodele de soluție sunt descrise în literatura de specialitate, atunci al treilea pas este dificil.

Cum vă puteți asigura că ideile folosite pentru a rezolva o problemă vor fi percepute de interpret în același mod în care le înțelegeți? Aici ne apropiem de conceptul de algoritm. Experiența arată că pentru a explica ceva corect, cineva trebuie să urmeze pasii urmatori:

  • determinați datele inițiale (variabila și coeficienții ecuației pătratice);
  • descompune procesul de soluție în componente clar cunoscute pentru executant (formule discriminante și rădăcină);
  • indicați ordinea în care sunt executați pașii (calculați mai întâi discriminantul, apoi rădăcinile);
  • stabiliți condiția în care soluția este considerată completă (verificați rădăcinile găsite, înlocuindu-le în ecuație în locul variabilelor);
  • indicați care ar trebui să fie exact rezultatul soluției (rădăcinile aparțin mulțimii numerelor reale).

Setul descris de pași în în sens generalși este un algoritm. Astfel, un algoritm poate fi înțeles ca o metodă de rezolvare a unei probleme date, scrisă folosind anumite reguli care oferă o înțelegere fără ambiguitate a acțiunilor efectuate și a ordinii acestora. Algoritmii și exemplele de probleme vor fi discutate mai detaliat mai jos.

Proprietățile de bază ale algoritmului

Discretenie. Procesul de rezolvare a unei probleme constă întotdeauna în acțiuni strict separate unele de altele, numite pași, care au ordine anume execuţie.

Certitudine. Fiecare pas trebuie să fie clar și lipsit de ambiguitate atât ca semnificație, cât și ca cheie a acțiunii de efectuat.

Productivitate. Algoritmul trebuie să producă rezultate. Mai mult decât atât, numărul de pași poate fi de mii sau milioane, dar ar trebui să conducă întotdeauna la rezultate.

Caracter de masă. Orice algoritm dezvoltat pentru a rezolva o problemă trebuie să fie aplicabil tuturor problemelor de acest tip pentru toate datele de intrare valide.

Capacitățile computerului

Pentru creație corectă algoritmi pentru computere, este important să înțelegeți capacitățile acestora. Să luăm în considerare mai întâi cantitățile cu care funcționează computerul. În general, ele pot fi împărțite în numerice și text, constante și variabile.

Numerele constante înseamnă toate numerele: 3.15, 100, 10 5, caracteristica lor este că rămân neschimbate pe toată durata funcționării programului. Variabilele își schimbă sensul în timpul execuției codului și sunt de obicei desemnate prin litere: x, y, max, min etc.

Variabilele text, precum cele numerice, pot fi constante sau variabile. În primul caz, este doar text: „bine”, „a și b”, etc. În al doilea caz, este aceeași denumire simbolică ca și pentru variabilele numerice: nume, oraș etc. Diferența dintre ele constă în principal în memoria computerului alocată pentru stocarea unei astfel de variabile.

Operații pe care le poate efectua un computer:

  1. Citiți date de la dispozitivele de intrare (tastatură, mouse, fișiere).
  2. Calcularea valorilor folosind functii matematice: adunare, scădere, sin, cos, ln etc. - fiecare limbaj de programare are propriul său set de funcții încorporate.
  3. Ieșire de date (pe ecran, pe hârtie, în interfata retea).
  4. Tranziția între etapele de execuție a programului.
  5. Comparația a două cantități (mai mare, mai mică, egală).

Acestea sunt operațiuni de bază care pot fi efectuate de majoritatea limbajelor de programare.

Modalități de a descrie algoritmi

Verbal. Acesta este cel mai simplu mod. Un exemplu ar fi reţetă. Este permisă utilizarea formulelor matematice simple.

Grafic. Descriere folosind diagrame. Acesta este un mod special de a scrie algoritmi folosind un fel de limbaj algoritmic general acceptat - forme și blocuri care au o semnificație specifică: un dreptunghi - o acțiune simplă, un paralelogram înclinat - intrare/ieșire, un romb - o condiție etc.

Utilizarea limbajului algoritmic. Similar cu graficul, acesta este, de asemenea mod specialînregistrările algoritmului. Există multe limbaje algoritmice. Regulile lor nu sunt stricte, altfel ar fi un limbaj de programare. Să luăm în considerare un exemplu de algoritm de calcul al salariilor în funcție de vechimea în muncă, scris folosind un limbaj algoritmic.

alg salariu(int ST, real ZP) arg ST res ZP start if ST< 5 то zp = 150 иначе если ST <= 15 то ZP = 180 иначе ZP = 180 + (ST - 15)*10 конец

Un limbaj algoritmic poate fi numit o formă mai strictă de înregistrare în comparație cu una verbală. Se utilizează un set limitat de cuvinte și construcțiile acestora, precum și formatarea indentată. Dezavantajul formei verbale și al limbajului algoritmic este deteriorarea vizibilității algoritmului pe măsură ce dimensiunea acestuia crește. Prin urmare, aceste metode pot fi folosite doar pentru a transmite semnificația unor algoritmi mici.

Tipuri de algoritmi

Există o mare varietate de algoritmi creați pentru a rezolva o varietate de probleme. De exemplu, orice manual superior de matematică conține sute de algoritmi: rezolvarea unui sistem de ecuații liniare, găsirea extremelor unei funcții, calcularea unei integrale etc. Cu toate acestea, la o examinare mai atentă a structurii lor, se dovedește că toți algoritmii pot fi împărțiți în Mai multe tipuri. Să ne uităm la aceste tipuri de algoritmi cu exemple.

  • liniară (calculul rezultatului adunării sau înmulțirii, schimbul de valori a mai multor variabile);
  • ramificare (determinarea celui mai mare dintre mai multe numere);
  • ciclic (sortare matrice, calcul factorial).

Acestea sunt tipurile de bază. De asemenea, este de remarcat faptul că în unele literaturi este identificat și un al patrulea tip - recursiv. Dar nu are o desemnare specială în notația schematică și se implementează prin cele de bază.

Fiecare algoritm de calcul cu exemple va fi discutat mai detaliat mai jos.

Principii de algoritmizare

  1. Determinați datele inițiale.
  2. Alege o soluție.
  3. Împărțiți metoda selectată în pași pe baza capacităților computerului (limbaj de programare).
  4. Executați algoritmul sub forma unei diagrame, definind o ordine clară a pașilor.
  5. Ieșirea rezultatelor calculului.
  6. Indicați trecerea la ieșirea circuitului.

Depanarea algoritmului

Oamenii greșesc și asta este un fapt. Parametrul principal al oricărui algoritm ar trebui să fie corectitudinea funcționării acestuia. Depanarea este procesul de identificare și corectare a erorilor dintr-un algoritm. Pentru a face acest lucru, este luat un anumit set de date inițiale, numite date de testare. Ele reprezintă, de regulă, tot felul de date sursă. De exemplu, dacă intrarea este un număr, atunci algoritmul trebuie verificat pentru funcționarea corectă, luând în considerare: numere pozitive, negative, întregi și reale, valori zero etc.

Instrumentul principal pentru verificarea acurateței algoritmului rămâne creierul uman. Desigur, este acceptabil să folosiți alte instrumente informatice pentru a automatiza testarea, dar într-un fel sau altul, o persoană este implicată în pregătirea testelor și analizarea rezultatelor. În acest caz, apare întrebarea: de ce avem nevoie de un algoritm dacă o persoană face totul singură? Deoarece sarcina principală a algoritmului este de a rezolva în mod repetat un anumit tip de problemă.

Algoritmi liniari

Un algoritm liniar este unul în care pașii apar secvenţial unul după altul. Orice algoritm care nu conține ramuri sau bucle este liniar. Să luăm în considerare un exemplu de algoritm care rezolvă următoarea problemă: un lup și un iepure stau în două celule, trebuie să le schimbați.

Cheia pentru rezolvarea acestei probleme este cușca cu temperatură suplimentară, care ar trebui folosită pentru a schimba animalele.

Algoritmi de ramificare

După cum sugerează și numele, algoritmul are mai multe ramuri. Esența lucrării este selectarea uneia dintre opțiunile posibile pentru procesul de calcul în funcție de anumite condiții. Ramificarea schematică este reprezentată de un bloc în formă de romb, în ​​interiorul căruia este indicată o condiție, iar pe părțile laterale ale acesteia există ramuri alese în funcție de faptul că condiția este adevărată sau falsă. Algoritmul de ramificare și exemple de aplicare a acestuia pot fi găsite peste tot. În programare, acesta este un construct tipic dacă-altfel care se găsește în aproape orice limbaj.

Să dăm un exemplu de algoritm pentru rezolvarea problemei găsirii celui mai mare dintre trei numere.

Algoritmul round robin

Un algoritm ciclic este unul în care se repetă aceiași pași de mai multe ori, în care se poate modifica doar valoarea unei anumite variabile pe care se fac calculele. Tipuri de algoritmi ciclici și un exemplu vor fi discutate mai jos, dar deocamdată enumeram pașii principali pentru construirea unui ciclu.

  1. Atribuirea valorilor inițiale variabilelor. Fără să fie îndeplinită această condiție, bucla probabil va eșua sau va face erori.
  2. Bloc pentru calcularea rezultatelor. Acesta este corpul principal al buclei.
  3. Verificarea stării finale a procesului ciclic. Dacă uitați să specificați condiția în care ar trebui să se încheie bucla, algoritmul va rula pentru totdeauna.
  4. Schimbarea variabilelor. Acest bloc intră în vigoare după ce condiția finală este verificată dacă a fost falsă. Dacă uitați de acest bloc, bucla va efectua pentru totdeauna o acțiune și nu se va finaliza niciodată. Prin urmare, este important ca variabilele să sufere un fel de schimbare la fiecare iterație a buclei.

Există mai multe tipuri de algoritmi ciclici: cu postcondiție, precondiție și parametru.

Să construim un algoritm ciclic folosind exemplul de găsire a factorialului numărului N.

Alte tipuri de algoritmi

Există o serie de alți algoritmi care diferă în clasificare sau origine.

  • Algoritmi mecanici. De exemplu, funcționarea unui motor cu ardere internă sau a unei linii de asamblare.
  • Algoritmi probabilistici. Munca lor se bazează pe teoria probabilităților și statisticile matematice.
  • Algoritmi euristici. Ei folosesc considerații practice în munca lor, fără justificare matematică strictă.
  • Algoritmi genetici. Ei aplică idei biologice în munca lor.

Adnotare: Algoritmul este un concept de bază pentru cei care doresc să înceapă programarea în orice limbaj de programare. Orice sarcină poate fi formalizată algoritmic. Pentru a înțelege de unde să începem, să ne uităm la principalele tipuri de algoritmi. Scopul acestei prelegeri este de a introduce studenții în conceptul de algoritm; arătați că un lucru atât de abstract ca un algoritm ne înconjoară în viața de zi cu zi.

Exemplu de pseudocod:

alg Găsirea coeficientului a două numere începând cu ieșirea („setează dividendul și divizorul”) intrare (dividend, divizor) dacă divizor ≠ 0, atunci cot = dividend / divizor ieșire (cot) altfel ieșire („fără soluție”) con alg Găsirea coeficientului coeficientul a doua numere

Acest exemplu folosește trei variabile: dividend, divizor și coeficient. Dividendele și divizorul sunt specificate de executant cu numere arbitrare. Coeficientul este numărat numai dacă divizorul nu este zero.

Implementarea grafică a algoritmului este o diagramă bloc. O diagramă bloc constă din blocuri de o anumită formă conectate prin săgeți. Răspunsul este primit de o persoană care execută comenzi conform diagramei. Diagramele bloc vor fi discutate mai detaliat în cursul 2.

O implementare software a unui algoritm este un program de calculator scris într-un limbaj de programare algoritmică, de exemplu: C++, Pascal, Basic etc. Un program constă din comenzi într-un anumit limbaj de programare. Rețineți că aceeași diagramă bloc poate fi implementată în diferite limbaje de programare. În acest caz, răspunsul este primit de un computer, nu de o persoană. Pentru mai multe informații despre scrierea programelor în limbajul de programare C++, consultați Cursul 3.

Există trei tipuri principale de algoritmi:

  1. algoritm liniar,
  2. algoritm de ramificare
  3. algoritm ciclic.

Algoritm liniar este un algoritm în care acțiunile sunt efectuate o singură dată și strict secvenţial.

Cel mai simplu exemplu de implementare a unui algoritm liniar este calea spre casă de la universitate.

O modalitate verbală de a scrie acest algoritm:

  1. părăsiți universitatea la stația de autobuz;
  2. așteptați autobuzul potrivit;
  3. luați autobuzul din dreapta;
  4. plata deplasarii;
  5. coborâți la oprirea necesară;
  6. ajunge acasa.

Evident, acest exemplu se referă la un algoritm liniar, deoarece toate acțiunile se succed una după alta, fără condiții sau repetări.

Algoritm de ramificare este un algoritm în care, în funcție de condiție, se realizează fie una, fie alta secvență de acțiuni.

Cel mai simplu exemplu de implementare a unui algoritm de ramificare este că, dacă afară plouă, atunci trebuie să iei o umbrelă, altfel nu iei umbrela cu tine.

Exemplul de pseudocod de mai sus pentru găsirea coeficientului a două numere se aplică și unui algoritm de ramificare.

Algoritmul round robin este un algoritm ale cărui comenzi sunt repetate de un anumit număr de ori la rând.

Cel mai simplu exemplu de implementare a unui algoritm ciclic este că la citirea unei cărți se vor repeta aceleași acțiuni: citiți pagina, întoarceți pagina etc.

Pentru mai multe informații despre algoritmii liniari, ramificați și ciclici, consultați Cursul 2.

  • Creați un algoritm pentru găsirea rădăcinilor unei ecuații pătratice folosind un discriminant. Utilizați un algoritm de ramificare. Implementați-l cu pseudocod.
    • Serghei Savenkov

      un fel de recenzie „scurtă”... de parcă s-ar grăbi undeva