12 Rutine recursive în organizarea limbajului Pascal, exemple de utilizare

Toate rutinele din Pascal (și funcțiile și procedurile) sunt recursive. Aceasta înseamnă că în interiorul subrutinei puteți accesa subrutina însăși. Cu toate acestea, pentru ca un asemenea apel să aibă sens, subrutina trebuie organizată corespunzător, i. E. ar implementa un algoritm recursiv. De exemplu, vom compune o funcție care calculează suma elementelor dintr-o matrice unidimensională. Dacă folosim metoda bine cunoscută de acumulare a unei sume care implică calcularea sumei într-un ciclu, atunci o astfel de funcție poate avea următoarea formă:







tip mas = array [1..nn] de real;

dacă n = 1 atunci suma: = a [n]

Atunci când se creează recursiune indirectă, apare o problemă: cum să descrii procedura chemată. Este cunoscut faptul că în Pascal, toate variabilele, constante, etichete, procedurile trebuie descrise mai înainte vor fi menționate în declarația sau expresie, altfel compilatorul va anunța numele lor sunt necunoscute. În recursiunea indirectă, procedura "A" solicită procedura "B", care nu este descrisă. Modalitatea de ieșire din situație este următoarea: o descriere prospectivă este utilizată cu directiva FORWARD. Această directivă declară numai titlul procedurii numit, înlocuind corpul procedurii, amânarea descrierea conținutului (operatori secțiuni) pentru a continua. Locația secțiune a operatorilor nu mai joacă un rol, și este posibil să se omită parametrii formali și limitează numele subrutina: Procedura B (y: integer); FORWARD;







Acum, procedura "A" permite accesul la procedura "B", deoarece aceasta a fost deja descrisă, parametrii ei formați sunt cunoscuți și compilatorul poate organiza corect apelul. Antetul "Procedura B" înainte de textul procedurii "B" conține doar numele procedurii, deoarece Lista parametrilor formali a fost menționată mai sus.

13 Setarea valorilor inițiale la variabile. Exemple de utilizare în programe pentru diferite tipuri de date definite de utilizator.

Variabilele inițializate din program pot fi modificate, precum și cele obișnuite







Articole similare

Trimiteți-le prietenilor: