Sunteți pe pagina 1din 3

Colegiul Naional Andrei Muresanu Dej

Fia de lucru
1) Folosind doua functii recursive, sa se calculeze valoarea functiilor matematice f(x) si g(x),
pentru o valoare a argumentului x introdusa de la tastatura.
f(x)= 1+ g(x), pentru x <= 3 g(x)= 5 ,pentru x<
x!x pentru x " 3, #!x + f(x+1), pentru x "=
$ezolvare%
ex% f(#)=1+g(#)=1+#!#+f(3)=1+#!#+1+g(3)=1+#!#+1+#!3+f(&)=
1+#!#+1+#!3+&!&=#'
program RII_10;
var x:integer;
function G(x:integer):integer; forward;
function F(x:integer):integer;
begin
if x> t!en F:"x#x
e$%e F:"1&G(x);
end;
function g;
begin
if x'0 t!en G:"(;
e$%e G:")#x&F(x&1);
end;
begin
write(*x"*);
read$n(x);
write$n(*f(*+x+*)"*+ F(x));
write$n(*g(*+x+*)"*+ G(x));
read$n;
end,
Recursivitate indirecta. Clasa a X-a. 3
3
,m#
!" Fie doua siruri #a
n
" si #$
n
), nN definite recursiv astfel%
a
%
&a' $
%
&$ #a($)%"
a
n
&#a
n-*
+$
n-*
"!'
$
n
&s,rt#a
n-*
-$
n-*
"
(crieti un program care sa calculeze a
n
si $
n
,pentru n) citit de la tastatura.
-ar a+b:rea$;
n:integer;
function bn(n:integer):rea$;forward;
function an(n:integer):rea$;
begin
if n"0 t!en an:"a
e$%e an:"(an(n.1)&bn(n.1))/)
end;
function bn (n:integer):rea$;
begin
if n"0 t!en bn:"b;
e$%e bn:"%0rt(an(n.1)#bn(n.1))
end;
begin
write(*a"*); read$n(a);
write(*b"*); read$n(b);
write(*n"*); read$n(n);
write$n(an(n):(:10+ * *+ bn(n):(:10);
end,
.e/a 0entru acasa Recursivitate indirecta
*" Fie doua siruri (cn) si (dn), nN definite recursiv astfel%
c=c* d=d (c,d")
cn=cn+#! dn+1*
dn=(cn+1 +dn+1),3
(crieti un program care sa calculeze cn si dn ,pentru n) citit de la tastatura.
!" -entru functiile f1,f# definite alaturat sta.iliti care este valoare lui f#(&13'#)/
Function f1(c%integer)%longint*
0egin
1f c mod #=1 t2en f1%=1
3lse f1%=#*
3nd.
3" Fie functiile f si g definite mai 4os, sta.iliti care este rezultatul returnat la apelul f(5)/
Function g(x %longint)%longint*
0egin
1f x"6 t2en g%=x div 1+x mod 1
3lse g%=x*
3nd*
1" -entru functiile f1 si f# definite alaturat, sta.iliti care este rezultatul returnat de apelul
f#(35)/

Function f1(c%integer)%longint*
0egin
1f c< # t2en f1%=1 else
F1%= c!f1(c+1)*
3nd*

Function f#(n%longint)%longint*
0egin
1f n= t2en f#%=*
3lse f#%=f1(n mod 1)+f#(n div 1)*
3nd.
Function f(c%integer)%longint*
0egin
1f c<1 t2en f%=1
3lse f%=g(c+f(c+1))
3nd.
Function f#(n %longint)%longint*
0egin
1f n= t2en f#%= else
F#%=f1(n mod 1)+ f#(n div 1)
3nd*

S-ar putea să vă placă și