Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


TRANSFERUL DE PARAMETRI LA SI DE LA MODULE DE PROGRAM

fox pro



+ Font mai mare | - Font mai mic



TRANSFERUL DE PARAMETRI LA SI DE LA MODULE DE PROGRAM

Pentru dezvoltarea aplicatiilor mai complexe, care includ mai multe programe, proceduri si functii se recomanda ca in cadrul acestor module sa se foloseasca numai (sau cit mai mult) variabile locale, comunicarea cu restul modulelor facindu-se prin intermediul unor variabile speciale, numite parametri. In FOXPRO sint implementate doua metode de transmitere a parametrilor la rutine, programe :



- prin referinta, in care variabila transmisa este afectata de eventualele modificari aduse in subprogram ;

- prin valoare, cind o eventuala modificare a variabilei in subprogram nu afecteaza valoarea acesteia in programul (modulul) apelant.

Transmisia parametrilor la un subprogram se desfasoara in modul urmator :

- se stabilesc variabilele care se vor transmite subprogramului ca parametri, intr-o ordine stabilita de programator la conceperea programului ;

- se stabileste un set de variabile locale subprogramului care vor prelua valorile variabilelor transmise ca parametri de la programul apelant ;

- corespondenta intre variabilele transmise din programul apelant si cele locale ale subprogramului se face prin pozitia in doua liste si anume :

lista cu parametrii de apel a subprogramului

lista variabilelor locale, specificata prin comanda PARAMETERS

- in modulul apelat se lucreaza cu variabilele locale respective ;

- daca tipul transmisiei este prin referinta, la sfirsitul executarii subprogramului, continutul variabilelor este trecut in variabilele corespunzatoare transmise ca parametri ;

- daca avem o transmisie prin valoare, aceasta ultima copiere nu mai are loc, deci in acest caz variabilele de apelare nu vor mai fi actualizate cu noile valori ale variabilelor locale corespunzatoare.

Lista variabilelor transmise ca parametri este stabilita fie prin clauza WITH a comenzii DO, in cazul apelului unui subprogram sau a unei proceduri, fie prin lista dintre parantezele rotunde ce urmeaza numelui functiei, cind avem un apel de functie. Pentru a stabili in ce variabile locale se incarca parametrii transmisi se foloseste comanda PARAMETERS cu sintaxa : PARAMETERS <lista variabile locale >. Aceasta comanda care trebuie sa fie prima comanda a unui modul ( in cazul cind aceasta exista ) defineste lista de variabile locale care vor prelua parametrii transmisi de la programul apelant. Lista variabilelor locale trebuie sa aiba intotdeauna mai multe elemente (sau cel mult egal) decit lista parametrilor transmisi, pentru ca fiecare parametru sa aiba un corespondent in subprogram.

Exemplul

SET TALK OFF

CLEAR

a=14

b=37

?a,'+',b,'=',suma(a,b)

c=12

d=17

prod=0

DO produs WITH c,d,prod

?c,'*',d,'=',prod

FUNCTION suma

PARAMETERS a1,a2

RETURN a1+a2

PROCEDURE produs

PARAMETERS a1,b1,c1

c1=a1+b1

RETURN

Numarul de parametri transmisi programului, procedurii sau functiei curente este returnat de functia PARAMETERS () . In ceea ce priveste metoda folosita la transmisia parametrilor, avem urmatoarele reguli :

- la programe, parametrii se transmit implicit prin referinta ;

la proceduri si functii se foloseste implicit metoda transmiterii parametrilor prin valoare.

Pentru a schimba metoda implicita de transmitere a parametrilor la proceduri si functii se poate folosi comanda SET UDFPARMS cu sintaxa :

SET UDFPARMS TO VALUE | REFERENCE

SET UDFPARMS TO VALUE determina transmiterea prin valoare a parametrilor, ca metoda implicita.

Exemplul

SET TALK OFF

CLEAR

SET UDFPARMS TO VALUE

?'Transmisia prin valoare'

a=1

?'Inainte de apelul functiei a=',a

=test(a)

?'Dupa apelul functiei a=',a

SET UDFPARMS TO REFERENCE

?'Transmisia prin referinta'

?'Inainte de apelul functiei a=',a

=test(a)

?'Dupa apelul functiei a=',a

FUNCTION test

PARAMETERS a1

a1=5

RETURN.T.

Pentru a forta transmiterea unui parametru prin valoare la apelul unei functii, acesta se include intre paranteze rotunde, iar pentru fortarea transmiterii unui parametru prin referinta, acesta va fi precedat de caracterul '

Exemplul

SET TALK OFF

CLEAR

STORE 1 TO a,b,c,d,e,f

alfa=test ((a),@b,(c),(d),@e,@f)

?a,b,c,d,e,f

FUNCTION test

PARAMETERS a1,a2,a3,a4,a5,a6

STORE 2 TO a1,a2,a3,a4,a5,a6

RETURN.T.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 830
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved