In definita unui subprogram apare la început un antet, dupa care urmeaza
un bloc, care contine o lista de declaratii. Elementele definite în lista de
declaraaii sunt locale pentru blocul în care sunt definite. Acesta constituie
domeniul de vizibilitate al acestor elemente; ele pot fi folosite numai în interiorul
subprogramului în care au fost declarate, nu si în afara acestuia.
Fie S un subprogram al programului P (vezi figura de mai jos). Pe lânga
variabilele locale ale subprogramului S , toate elementele declarate în lista de
declaratii ale programului P sunt considerate globale pentru subprogramul S si
pot fi folosite în acest subprogram. Deci elementele declarate în S pot fi folosite
numai în S, nu si în restul programului P. Ele sunt locale pentru S, dar sunt
globale si pot fi folosite în subprogramele S1 si S2 incluse în S. Elementele
definite în P sunt globale si pot fi folosite în S, S1 si S2.
Considerând programul principal
ca un bloc de nivel 0, vom considera
subprogramele definite în el ca blocuri
de nivel 1. În general, un bloc definit
întrun bloc de nivel i are nivelul i+1.
Dac• într-un bloc de nivel i se foloseste o variabila v, si acelasi
identificator v noteaza o variabila într-un bloc de nivel i+1, atunci cele doua
variabile se considera distincte des
i au acela•i nume. În acest caz variabila din
blocul interior este cea considerata existenta în acest bloc, iar cea exterioara nu
exista decât în partea blocului de nivel i exterioara blocului de nivel i+1.
În exemplul urmator se realizeaza reuniunile (A∪B, A∪C si B∪C) a trei
mul•imi date de la tastatura (A, B si C) pe o linie, fiecare mul•ime fiind introdusa
element cu element, acestea fiind separate cu spatiu sau virgula ( de exemplu :
100,200,404,6789 ). Multimile fiind memorate sub forma de siruri, se va memora
cardinalul mul•imii pe pozitia 0, iar elementele pe pozitiile 1,2,3,... .
P
Pentru ca o mulțime (de tip sir) apare ca parametru formal, va trebui sa
declaram acest tip ( Type Multime = . . . ).
Procedura Cite•te nu are decât un parametru de iesire (multimea A care se
cite•te), declarat ca parametru de tip variabila :
Procedura Tip•re•te are un singur parametru de intrare (mul•imea A care
se tip•re•te), declarat ca parametru de tip valoare :
Procedura Reuniune calculeaza reuninunea a doua multimi. Are doi
parametri de intrare (A si B) tip valoare si un parametru de iesire (C) de tip
variabila:
Reuniunea multimilor A si B se calculeaza astfel :
• se initializeaza multimea C cu A (C:=A) ;
• se adauga multimii C elementele b∈B care nu apartin multimii A (C:=C ∪
B\A).
Functia Apart (b,A) determina daca b∈A sau nu (returneaza valoarea
True respectiv False), prin compararea succesiva a lui b cu elementele multimii
A pâna când gaseste o valoare egala cu b sau termina toate posibilitatile.
un bloc, care contine o lista de declaratii. Elementele definite în lista de
declaraaii sunt locale pentru blocul în care sunt definite. Acesta constituie
domeniul de vizibilitate al acestor elemente; ele pot fi folosite numai în interiorul
subprogramului în care au fost declarate, nu si în afara acestuia.
Fie S un subprogram al programului P (vezi figura de mai jos). Pe lânga
variabilele locale ale subprogramului S , toate elementele declarate în lista de
declaratii ale programului P sunt considerate globale pentru subprogramul S si
pot fi folosite în acest subprogram. Deci elementele declarate în S pot fi folosite
numai în S, nu si în restul programului P. Ele sunt locale pentru S, dar sunt
globale si pot fi folosite în subprogramele S1 si S2 incluse în S. Elementele
definite în P sunt globale si pot fi folosite în S, S1 si S2.
Considerând programul principal
ca un bloc de nivel 0, vom considera
subprogramele definite în el ca blocuri
de nivel 1. În general, un bloc definit
întrun bloc de nivel i are nivelul i+1.
Dac• într-un bloc de nivel i se foloseste o variabila v, si acelasi
identificator v noteaza o variabila într-un bloc de nivel i+1, atunci cele doua
variabile se considera distincte des
i au acela•i nume. În acest caz variabila din
blocul interior este cea considerata existenta în acest bloc, iar cea exterioara nu
exista decât în partea blocului de nivel i exterioara blocului de nivel i+1.
În exemplul urmator se realizeaza reuniunile (A∪B, A∪C si B∪C) a trei
mul•imi date de la tastatura (A, B si C) pe o linie, fiecare mul•ime fiind introdusa
element cu element, acestea fiind separate cu spatiu sau virgula ( de exemplu :
100,200,404,6789 ). Multimile fiind memorate sub forma de siruri, se va memora
cardinalul mul•imii pe pozitia 0, iar elementele pe pozitiile 1,2,3,... .
P
Pentru ca o mulțime (de tip sir) apare ca parametru formal, va trebui sa
declaram acest tip ( Type Multime = . . . ).
Procedura Cite•te nu are decât un parametru de iesire (multimea A care se
cite•te), declarat ca parametru de tip variabila :
Procedura Tip•re•te are un singur parametru de intrare (mul•imea A care
se tip•re•te), declarat ca parametru de tip valoare :
Procedura Reuniune calculeaza reuninunea a doua multimi. Are doi
parametri de intrare (A si B) tip valoare si un parametru de iesire (C) de tip
variabila:
Reuniunea multimilor A si B se calculeaza astfel :
• se initializeaza multimea C cu A (C:=A) ;
• se adauga multimii C elementele b∈B care nu apartin multimii A (C:=C ∪
B\A).
Functia Apart (b,A) determina daca b∈A sau nu (returneaza valoarea
True respectiv False), prin compararea succesiva a lui b cu elementele multimii
A pâna când gaseste o valoare egala cu b sau termina toate posibilitatile.