Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica

Foxpro


Qdidactic » stiinta & tehnica » informatica » foxpro
Transferul parametrilor la si de la module de program



Transferul parametrilor la si de la module de program



In mod uzual, comunicarea intre unitatile functionale ale unui program se face prin intermediul parametrilor. Parametrii permit ca la fiecare activare a unui modul, acesta sa opteze cu entitati care se cunosc doar in momentul apelului. Deoarece valorile acestea difera de la un apel la altul, iar operatiile care li se aplica sunt aceleasi, rezulta ca instructiunile subprogramului vor trebui sa se refere la entitati exprimate simbolic, asa numitii parametri formali. La activarea modulului se specifica parametrii actuali, sau efectivi.


Declararea parametrilor formali se face prin comanda PARAMETERS:


PARAMETERS <lista-var>


Aceasta comanda , care trebuie sa fie prima comanda a unui modul, 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 ) decat lista parametrilor transmisi, pentru ca fiecare parametru sa aiba un corespondent in subprogram.

Exemplu:

SET TALK OFF

CLEAR

a = 14

b = 37

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



c = 12

d = 17

prod = 0

DO produs WHIT c , d , prod

? c , “ + “ , d , “ = “ , prod

FUNCTION suma

PARAMETERS a 1, a 2

RETURN a 1 + a 2

PROCEDURE produs

PARAMETERS a 1, b 1, c 1

c1 = a 1 + b 1

RETURN


Parametrii formali sunt variabile locale unitatii functionale.


Transmiterea parametrilor actuali se face prin comenzi de apel. Apelul unei proceduri se face prin comanda DO care va avea clauza WITH.


DO <identif> WITH <lista-exp>


Apelul unei functii se face intr-o expresie, parametrii fiind pusi intre parantezele specifice functiei:


<nume-functie>(<lista-exp>)


Corespondenta intre parametri se face prin pozitia in lista de parametrii din programul apelat si din comanda de apel.

Exemplu:


SET TALK OFF

CLEAR

DO cadru

@ 12, 32 SAY mesaj ( )

READ

CLEAR


FUNCTION mesaj

RETURN “ Invatam FoxPro “

PROCEDURE cadru

@ 10 , 10, 14, 70 BOX

in acest exemplu DO cadru determina executia procedurii cadru, definita dupa PROCEDURE cadru, iar mesaj ( ) este constructia de apelare a functiei mesaj, definita prin linia care urmeaza comenzii FUNCTION mesaj.

Sa luam urmatorul exemplu: calculul combinarilor, care se realizeaza pe baza formulei:

n !

Cnk = ----- ----- -------------

k ! * ( n – k ) !

Calculul factorialului n ! = 1 * 2 * . . . ..*n se face cu urmatoarea secventa de instructiuni:


n=6

FACT = 1

FOR i = 1 TO n

FACT = FACT * 1

ENDFOR


Pentru calculul combinarilor, aceasta secventa se va repeta de trei ori, unde pe pozitia lui n, vom avea pe rand n, k, n – k.

Programul pentru calculul combinarilor va fi:

n = 6

k = 3

FACT1 = 1

FOR i = 1 TO 6

FACT = FACT * 1

ENDFOR

FACT2 = 1

FOR i = 1 TO k

FACT = FACT * 1

ENDFOR

FACT3 = 1

FOR i = 1 TO n - k

FACT = FACT * 1

ENDFOR

COMBIN = FACT1 / FACT 2 / FACT 3


Acest mod de scriere a unui program este ineficient pentru ca acelasi grup de instructiuni este scris de trei ori. In situatii ca acestea, pentru scrierea programului se folosesc functiile si procedurile definite de utilizator. Folosind pentru calculul factorialului o functie, programul de calcul al combinarilor va capata urmatoarea forma:

n = 6

k = 3

COMBIN = FACT( n ) / FACT ( k ) / FACT ( n – k )


FUNCTION FACT

PARAMETERS n

FACT = 1

FOR i = 1 TO n

FACT = FACT * 1

ENDFOR

RETURN FACT

Primele trei linii reprezinta programul propriu-zis de calcul al combinarilor. In acesta se face de trei ori apel la functia FACT ( ), care este definita in urmatoarele sapte linii de program.




Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright