Diferente pentru problema/apel intre reviziile #1 si #11

Diferente intre titluri:

apel
Apel

Diferente intre continut:

== include(page="template/taskheader" task_id="apel") ==
Poveste si cerinta...
Un apel de functie este un sir de caractere, constituit din numele functiei apelate (o litera mare a alfabetului englez), urmat de lista parametrilor actuali ai functiei, incadrata intre paranteze rotunde. In lista de parametri actuali pot fi {$1$}, {$2$}, ... maximum $10$ parametri, separati prin virgula. Un parametru actual poate fi o constanta (o cifra araba), o variabila (o litera mica a alfabetului englez) sau un apel de functie.
 
De exemplu: {@F(2,a,G(c),G(H(x)))@}
Functia apelata este $F$ cu $4$ parametri. Primul parametru actual este constanta {$2$}, al doilea este variabila {$a$}, al treilea este apelul functiei $G$ (functie cu un singur parametru - variabila {$c$}), al patrulea este apelul functiei $G$ (care are ca parametru apelul functiei {$H$}).
 
Numarul de parametri ai unei functii se numeste aritate. O functie poate fi apelata de ori cate ori, dar de fiecare data numarul de parametri specificati la apel trebuie sa fie egal cu aritatea functiei.
 
Fiecare dintre functiile care intervin in apel se poate explicita cu ajutorul unei expresii aritmetice sub forma:
{@F(a,b,c,...)=expresie_aritmetica@}
Parametrii specificati la explicitarea functiei ii vom denumi parametri formali. Daca functia are aritatea $n$ ({$1 ≤ n ≤ 10$}), atunci cand explicitam functia, parametrii formali sunt denumiti utilizand in ordine primele $n$ litere mici ale aflabetului englez. In expresia aritmetica care expliciteaza functia apar ca variabile doar parametrii formali ai functiei (denumiti asa cum am precizat cu primele $n$ litere mici ale alfabetului englez).
Expresia aritmetica ce expliciteaza o functie este constituita din unul sau mai multi termeni separati prin operatorii $+$ (semnificand adunare) sau $-$ (semnificand scadere). Un termen este constituit din unul sau mai multi factori separati prin operatorul $*$ (semnificand inmultire). Un factor poate fi o constanta (cifra araba), o variabila (un parametru formal al functiei) sau o expresie aritmetica incadrata intre paranteze rotunde.
 
Valoarea obtinuta in urma unui apel de functie se obtine inlocuind in ordine parametrii formali cu parametrii actuali, apoi efectuand operatiile specificate in expresia aritmetica ce expliciteaza functia.
 
h2. Cerinta
 
Dat fiind un apel de functie, valorile variabilelor care intervin in acest apel, precum si explicitarile functiilor utilizate in acest apel, sa se determine valoarea obtinuta in urma acestui apel.
h2. Date de intrare
...
Fisierul de intrare $apel.in$ contine pe prima linie sirul de caractere care reprezinta apelul functiei. Pe urmatoarele linii sunt descrise valorile variabilelor, cate o variabila pe o linie sub forma:
{@nume_variabila=valoare@}
Pe urmatoarele linii sunt explicitate functiile ce intervin in apelul de pe prima linie, sub forma descrisa in enunt.
h2. Date de iesire
...
Fisierul de iesire $apel.out$ va contine o singura linie pe care va fi scris un numar intreg reprezentand valoarea obtinuta in urma apelului din fisierul de intrare.
h2. Restrictii
* $... ≤ ... ≤ ...$
* Orice linie din fisierul de intrare are maximum $250$ de caractere.
* Valorile variabilelor sunt numere naturale de maximum $3$ cifre.
* Valoarea obtinuta in urma apelului functiei este in intervalul [{$-2.000.000.000, 2.000.000.000$}].
h2. Exemplu
table(example). |_. apel.in |_. apel.out |
| This is some
  text written on
  multiple lines.
| This is another
  text written on
  multiple lines.
| F(2,a,G{@(@}c),G(H(x)))
x=3
a=0
c=1
H(a)=2*a-3
G(a)=2*a*a-5*a+6
F(a,b,c,d)=a*b*c-2*d*c+4*a*c
| -30
|
h3. Explicatie
...
Functia $F$ are $4$ parametri. Primul parametru formal ({$a$}) este inlocuit de primul paramatru actual (deci are valoarea {$2$}).
Al doilea parametru formal ({$b$}) este inlocuit de al doilea parametru actual deci are valoarea variabilei $a$ (adica {$0$}).
Al treilea parametru formal ({$c$}) este inlocuit de al treilea parametru actual (apelul {$G{@(@}c)$}) deci are valoarea {$2*1*1-5*1+6=3$}
Al patrulea parametru formal ({$d$}) primeste valoarea celui de al patrulea parametru actual (apelul {$G(H(x))$}) adica {$2*H(x)*H(x)-5*H(x)+6=2*(2*x-3)*(2*x-3)-5*(2*x-3)+6=9$}.
Deci, valoarea apelului functiei {$F$} este:
{$2*0*3-2*9*3+4*2*3=-30$}.
== include(page="template/taskfooter" task_id="apel") ==
== SmfTopic(topic_id="...") ==
 

Nu exista diferente intre securitate.

Diferente intre topic forum:

 
1835