Consultă biblioteca online
Fiecare din noi în fiecare zi îndeplinește diferiți algoritmi, instrucțiuni, legitățile etc. Ca regulă nici nu ne dăm sama de. De exemplu descuind ușa cu cheia, nimeni nici nu se gîndește în ce succesiune va îndeplini acțiunile sale. Dar îndată ce apare necesitatea de a-l învăța pe cineva să decuie ușa (un frate mai mic) vom fi nevoiți să descriem exact toate acțiunile și în ce succesiune vor fi îndeplinite. Exemplu:
Ei cheia.
Introduci cheia în broasca ușii.
Rotești cheia de două ori după acele de ceasornic.
Scoți cheia.
Iar acum să ne închipuim că sunteți chemați în ospeție într-un oraș necunoscut. Veți ruga să fiți lămuriți unde locuiește și cum puteți ajunge la locul destinat. Puteți fi lămurit în felul următor:
Coborîți din tren la gara mare.
În spatele gării urcați în autobusul N3.
Parcurgeți cu autobusul 4 opriri.
Coborîți din autobus, unde veți fi așteptat.
Să examinăm acești algoritmi. La prima vedere între ei nu este nimic comun. Algoritm de deschidere a unei uși și un algoritm de aflare a unei adrese. Dar totuși fiind mai atenți, poate fi observată o anumită asemănare și anume o consecutivitate exactă de acțiuni. Să ne închipuim că în primul algoritm schimbăm cu locul rîndul 2 cu 3:
Ei cheia.
Rotești cheia de două ori după acele de ceasornic.
Introduci cheia în broasca ușii.
Scoți cheia.
Îndeplinid acest algoritm, ușa se va deschide numai dacă nu a fost încuiată.
Același lucru se va întîmpla dacă schimbăm cu locul rîndul 2 cu 3 din algoritmul al doilea.
În așa fel ne-am convins că pentru un algoritm este important nu numai unele acțiuni răzlețe dar și succesiunea îndeplinirii lor.
Deci putem spune că algoritmul se numește un șir de acțiuni.
O definiție exactă a algoritmului nu poate fi dată. Însăși noțiunea de algoritm în informatică este o noțiune fundamentală așa cum punctul, dreapta sunt noțiuni fundamentale în geometrie.
1. Preveniți o catastrofă în următorul algoritm de primire a apei clocotite:
se toarnă apă într-un vas.
se deschide robinetul de la aragaz.
se pune vasul pe aragaz.
așteptăm pînă apa din vas va fierbe.
apropiem chibritul de bugie.
aprindem chibritul.
închidem robinetul de la gaz.
2. Este dat segmentul AB. Determinați pentru ce problemă este destinat următorul algoritm.
aranjăm acul compasuluiîn punctul A.
alegem deschizătura compasului egală cu lungimea segmentului AB.
construim un cerc.
trasăm o dreaptă prin punctele de intersecție a cercului.
3. Sînt date două ulcioare cu capacitatea de 3l. și 8l. Descrieți un algoritm în rezultatul îndeplinirii căruia la izvor se vor aduce 7l. de apă. (se vor folosi numai aceste două ulcioare).
Pentru a îndeplini mai repede un lucru sau altul, omul a inventa diferite dispozitive. Pentru a rezolva mai repede diferite probleme omul a inventat calculatorul. Pentru a se deplasa dintr-un punct în altul mai repede, el a inventat automobilul, trenul, avionul. Lupta pentru economia timpului a fost și este dusă în toate sferele de activitate a omului. Este așa un mijloc și la alcătuirea algoritmilor - subalgoritmii.
Pentru a ne face o careva închipuire despre subalgoritmi vom încerca să analizăm un exemplu din viață.
Fie că sînteți elevul de serviciu în clasă. La pauză vă veți conduce de următorul algoritm:
Întru în clasă.
Spăl buretele de la tablă.
Șterg tabla.
Aerisesc clasa.
Aștept sunetul la lecție.
Această succesiunede instrucțiuni va fi îndeplinită de patru, cinci ori pe zi în dependență de numărul de lecții.
Vom numi acest algoritm "îndatorire". Vom apela această succesiune de instrucțiuni astfel:
Execută algoritmul "îndatorire"
Și atunci regimul elevului de serviciu va avea forma:
Vină la școală cu 10 minute înainte de sunet;
Execută algoritmul "îndatorire";
Activezi la lecția 1;
Execută algoritmul "îndatorire";
Activezi la lecția 2;
Execută algoritmul "îndatorire";
Activezi la lecția 3;
Execută algoritmul "îndatorire";
Activezi la lecția 4;
Execută algoritmul "îndatorire";
Activezi la lecția 5;
Execută algoritmul "îndatorire";
Activezi la lecția 6;
Execută algoritmul "îndatorire";
Se observă că folosirea instrucțiunii "Execută algoritmul "îndatorire"." ne dă posibilitatea să scurtăm cu mult șirul de instrucțiuni. Astfel se procedează atunci cînd apare necesitatea de a folosi una și aceiași succesiune de instrucțiuni de mai multe ori. Această succesiune se evidențiază în calitate de aceiașisuccesiune de instrucțiuni de mai multe ori. Această succesiune se evidențiază în calitate de algoritm independent și capătă un nume corespunzător. Din acest moment el devine un subalgoritm, ceia ce ne dă posibilitatea de al folosi și în alți algoritmi.
Executantul Cangur percepe subalgoritmul ca procedură. Vom exemplifica crearea procedurilor pentru Cangur printr-un exemplu:
Este necesar de desenat desenul din figura 1. (mai jos)
Se observă că figura dată este alcătuită din patru elemente la fel figura 14. (mai jos)
La început vom crea pentru cangur procedura clama care va desena figura 2, după care vom folosi această procedură de patru ori pentru a desena întreg desenul. Vom primi următorul program:
procedura clama
pas
pas
rotire
pas
pas
rotire
pas
pas
sfîrșitul procedurii
Acum alcătuim algoritmul de bază:
[
Execută clama
Rotire
Rotire
Rotire
Execută clama
Rotire
Rotire
Rotire
Execută clama
Rotire
Rotire
Rotire
Execută clama
Rotire
Rotire
Rotire
]
Procedurile se vor scri înainte de algoritmul principal. Putem deasemenea folosi într-o procedură o altă procedură înainte declarată.
La alcătuirea algoritmilor deseori se întîlnesc cazuri cînd o succesiune careva de instrucțiuni se repetă de mai multe ori. Ca exemplu poate servi problema 5 din paragraful precedent. Se observă că succesiunea pas
pas
rotire
pas
rotire
rotire
rotire
se repetă de 6 ori. Pentru a simplifica înscrierea algoritmului vom folosi instrucțiunea avansată repetă n ori.
Instrucțiunea repetă n ori se numește ciclu deoarece la îndeplinirea ei, ciclic se îndeplinesc unele și acelea instrucțiuni.
În caz general ciclul repetă n ori se înscrie astfel:
repetă n ori
Succesiune de instrucțiuni
sfîrșitul repetării
La îndeplinirea algoritmului succesiunea de instrucțiuni se va repeta de n ori.
Exemplu de algoritm unde se folosește instrucțiunea avansată repetă de n ori.
Fie cangurul se află în poziția 5,5; precum în figura 1 și va îndeplini următorul algoritm:
[
repetă de 6 ori
pas
salt
sfîrșitul repetării
]
Ca rezultat al îndeplinirii alguritmului dat Cangurul se va a fla în poziția din figura 1, lăsînd în urmă o linie întreruptă din 6 pași și 6 salturi.
Exerciții și probleme:
1. Elaborați un algoritm pentru a desena o linie pe 8 pătrățele.
2. Elaborați un algoritm pentru a desena o scară din 7 trepte.
3. Elaborați un algoritm pentru a dese a un pătrat 5x5 pătrățele.
4. Elaborați un algoritm pentru a desena desenul din figura
5. Poziția cangurului inițială este în punctul A.
6. Elaborați un algoritm pentru a desena desenul din figura7. Poziția inițială a cangurului o alegeți independent.