Autor Tema: Unas dudas (corregido)  (Leído 2125 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado thecrow_94

  • PIC10
  • *
  • Mensajes: 9
Unas dudas (corregido)
« en: 09 de Febrero de 2005, 12:48:00 »
Una de ellas es q si por ejemplo en esta funcion float f (int x) le paso un valor negativo considera el signo menos la funcion o no. Y otra es un programilla q no me entero de lo q ace haber si me lo podeis explicar paso a paso gracias, aqui le pongo:

4ª Pregunta: (0,5 puntos)


Cual es el resultado,en pantalla, de ejecutar la siguiente funcion cuando el parametro que se le pasa es 6
 funcion (int n){
  static a=0;
 
  if (n>0) {
    a++;
    n=n-a;
    funcion(n);
    printf ("n=%d
", n);
  }
  else
    printf ("FIN
");
}
 

SOLUCION:

FIN
n=0
n=3

Desconectado Lager.

  • Moderadores
  • PIC18
  • *****
  • Mensajes: 477
RE: Unas dudas (corregido)
« Respuesta #1 en: 09 de Febrero de 2005, 17:22:00 »
Que onda Invitad@, tu tuncion es una funcion recursiva(llamada de una funcion dentro de una funcion; este tipo de funciones no son permitidas en ccs)
Te falto poner static "int" a=0;

Asi es mas o menos como lo veria:

A)CON A=0
FUNCION(6){ /*n=6*/
static int a=0;if(6>0){ a++; n=6-1; 1)funcion(); printf ("n=%d
", n);} //7° imprime n=5

1)funcion(5);
     static int a=0; if(5>0){ a++;n=5-1; 2)funcion();  printf ("n=%d
", n);//6° imprime n=4
2)funcion(4);
     static int a=0; if(4>0){ a++;n=4-1; 3)funcion();printf ("n=%d
", n);  //5° imprime n=3
3)funcion(3);
     static int a=0; if(3>0){ a++;n=3-1; 4)funcion();printf ("n=%d
", n);  //4° imprime n=2
4)funcion(2);
     static int a=0; if(2>0){ a++;n=2-1; 5)funcion();printf ("n=%d
", n);  //3° imprime n=1
5)funcion(1);
     static int a=0; if(1>0){ a++;n=1-1; 6)funcion();printf ("n=%d
", n);  //2° imprime n=0
6)funcion(0);
     static int a=0; if(0>0){ ....} else printf ("FIN
"Giño;//1° imprime FIN
     
     }


 B) SIN A=0
FUNCION(6){ /*n=6*/
static int a ;if(6>0){ a++; n=6-1; 1)funcion(); printf ("n=%d
", n);} //4° imprime n=5

1)funcion(5);
     static int a; if(5>0){ a++;n=5-2; 2)funcion();  printf ("n=%d
", n);//3° imprime n=3
2)funcion(3);
     static int a; if(4>0){ a++;n=3-3; 3)funcion();printf ("n=%d
", n);  //2° imprime n=0

3)funcion(0);
     static int a; if(0>0){ ....} else printf ("FIN
"Giño;//1° imprime FIN
     
     }


Salu2 pana

Desconectado thecrow_94

  • PIC10
  • *
  • Mensajes: 9
RE: Unas dudas (corregido)
« Respuesta #2 en: 10 de Febrero de 2005, 02:38:00 »
Muchas gracias, ya me he enterao