Diferència entre revisions de la pàgina «M3 - Programació estructurada / Exercicis UF2: Recursivitat bàsics»
De wikiserver
Línia 105: | Línia 105: | ||
5) | 5) | ||
+ | <source lang="java"> | ||
void p5( int a ) { | void p5( int a ) { | ||
if (a>0 { | if (a>0 { | ||
Línia 113: | Línia 114: | ||
System.out.print(a+” “); | System.out.print(a+” “); | ||
} | } | ||
+ | </source> | ||
Quina seria la sortida si executéssim '''p5(5)'''? | Quina seria la sortida si executéssim '''p5(5)'''? | ||
6) | 6) | ||
+ | <source lang="java"> | ||
void p6(int a ){ | void p6(int a ){ | ||
System.out.print(a+” “); | System.out.print(a+” “); | ||
Línia 123: | Línia 126: | ||
} | } | ||
} | } | ||
+ | </source> | ||
Quina seria la sortida si executéssim '''p6(4)'''? | Quina seria la sortida si executéssim '''p6(4)'''? | ||
+ | |||
+ | 7) | ||
+ | <source lang="java"> | ||
+ | int f1 ( int a ) { | ||
+ | int f; | ||
+ | if ( a>0) f= f1(a-1) + 1; | ||
+ | else f=0; | ||
+ | return f; | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | Que retornaria '''f1(10''')? | ||
+ | |||
+ | 8 ) | ||
+ | <source lang="java"> | ||
+ | int f2 ( int a ) { | ||
+ | int f; | ||
+ | if ( a>0) f= f2(a-1) + a; | ||
+ | else f=0; | ||
+ | return f; | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | Que retornaria '''f2(10)'''? | ||
+ | |||
+ | 9) | ||
+ | <source lang="java"> | ||
+ | int f3 ( int a ) { | ||
+ | int r,i,f; | ||
+ | if (a>0) { | ||
+ | r=a; | ||
+ | for ( i= a-1;i>0;i--){ | ||
+ | r= r + f3(i); | ||
+ | } | ||
+ | f=r; | ||
+ | } | ||
+ | else f=a; | ||
+ | return f; | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | Què retorna '''f3(6)'''? | ||
+ | |||
+ | Trobar el cas general (què fa la funció) i escriure-la d’una altra forma més senzilla | ||
+ | |||
+ | 10) | ||
+ | <source lang="java"> | ||
+ | int f4( int x ){ | ||
+ | int f; | ||
+ | if (x> 100) f=x-10; | ||
+ | else f= f4(f4(x+11)); | ||
+ | return f; | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | Què retorna '''f4(100)''', i '''f4(0)'''? Fer el programa més senzill. |
Revisió de 19:16, 5 maig 2018
Indicar quina serà la sortida dels procediments següents:
1a)
void p1( int a ) {
if (a>0) {
System.out.print(a+” “);
p1(a-1);
}
else {
system.out.print(“final”)
}
}
1b)
void p1( int a ) {
if (a>0) {
System.out.print(a+” “);
p1(a-1);
}
else {
System.out.print(“final”)
}
System.out.print(a+” “);
System.out.print(”final de veritat “);
}
Quina seria la sortida si executéssim p1(6)?
2a)
void p2( int a , int b) {
if (a%b!=0) {
System.out.print(a+” “);
p2(a+1,b);
}
else {
System.out.print(“final”);
}
}
2b)
void p2( int a , int b) {
if (a%b!=0) {
System.out.print(a+” “);
p2(a+1,b);
}
System.out.print(“final”);
}
Quina seria la sortida si executéssim p2(10,8)?
3)
void p3(int a, int b ){
if (a > 0){
p3(a-1,b+a);
}
else
{
System.out.print(b+” “);
}
}
Quina seria la sortida si executéssim p3(5,3)?
Quina seria la sortida si eliminéssim el else ( fent sempre el print ) i des del programa principal féssim:
for (int i=1;i<=5;i++){
System.out.print (“p3 (“+ i+”):”);
p3 (i,0);
}
4a)
void p4 ( int a) {
if (a> 0) {
p4(a-1);
System.out.print(a+” “);
}
else {
System.out.print(”fi? “);
}
}
4b)
void p4 ( int a) {
if (a> 0) {
p4(a-1);
System.out.print(a+” “);
}
System.out.print(”fi? “);
}
Quina seria la sortida si executéssim p4(5)?
5)
void p5( int a ) {
if (a>0 {
System.out.print(a+” “);
a=a-1;
p5(a);
}
System.out.print(a+” “);
}
Quina seria la sortida si executéssim p5(5)?
6)
void p6(int a ){
System.out.print(a+” “);
for ( int i =a; i>0;i--){
p6(i-1);
}
}
Quina seria la sortida si executéssim p6(4)?
7)
int f1 ( int a ) {
int f;
if ( a>0) f= f1(a-1) + 1;
else f=0;
return f;
}
Que retornaria f1(10)?
8 )
int f2 ( int a ) {
int f;
if ( a>0) f= f2(a-1) + a;
else f=0;
return f;
}
Que retornaria f2(10)?
9)
int f3 ( int a ) {
int r,i,f;
if (a>0) {
r=a;
for ( i= a-1;i>0;i--){
r= r + f3(i);
}
f=r;
}
else f=a;
return f;
}
Què retorna f3(6)?
Trobar el cas general (què fa la funció) i escriure-la d’una altra forma més senzilla
10)
int f4( int x ){
int f;
if (x> 100) f=x-10;
else f= f4(f4(x+11));
return f;
}
Què retorna f4(100), i f4(0)? Fer el programa més senzill.