elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: 1 2 3 [4]
31  Programación / Programación C/C++ / Re: Pequeña duda con funcion recursiva en: 19 Mayo 2013, 17:41 pm
leosansan gracia por darte el tiempo de aclararme la duda que tenia, esto de la
recursividad esta complicadita. Y efectivamente una solucion recursiva generalmente
es menos eficiente por el consumo de mayor de recursos que la iterativa. Sin embargo en
muchas situacion nos puede facilitar las cosas.

Saludos..  ;D
32  Programación / Programación C/C++ / Re: [AYUDA] Código mal escrito. en: 18 Mayo 2013, 03:12 am
Hola prueba de esta forma, te imprimira cada direccion de las variables apuntada
por el vector de punteros creo que es eso lo que buscas.

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void muestraD_arreglo(int* pArreglo[])
  6. {
  7.     cout << (int)pArreglo[0] << endl; // Si quieres los valores seria *pArreglo[0]
  8.     cout << (int)pArreglo[1] << endl;
  9.     cout << (int)pArreglo[2] << endl;
  10.     cout << (int)pArreglo[3] << endl;
  11. }
  12.  
  13. int main()
  14. {
  15.    int b = 15 , c = 30 , d = 29 , e = 76 ;
  16.    int *a[4];
  17.  
  18.    a[0] = &b;
  19.    a[1] = &c;
  20.    a[2] = &d;
  21.    a[3] = &e;
  22.  
  23.    muestraD_arreglo(a);
  24.  
  25.    cin.get();
  26.    return 0;
  27. }
  28.  

Saludos   ;D
33  Programación / Programación C/C++ / Re: Pequeña duda con funcion recursiva en: 17 Mayo 2013, 20:40 pm
Hola leosansan excelete codigo lo de itoa no lo sabia muy bueno pero aun
no logro enterder del todo este codigo:

Código
  1. return divide > 0 ? binario(divide) * 10 + resto : resto;

Especificamente en la parte de la multiplicacion por diez y luego la suma me
gustaria saber que valor devuelve la funcion de cada llama a ella yo supongo
que seria cero.

Saludos  :rolleyes:
34  Programación / Programación C/C++ / Re: Pequeña duda con funcion recursiva en: 17 Mayo 2013, 02:07 am
Muchas gracias cypascal por la aclaracion, he buscado por internet
y he encontrado una funcion que hace esto de una menera mas simple:

Código
  1. void binario(int n)
  2. {
  3.    if (n!=0)
  4.    {
  5.        binario(n/2);
  6.        printf("%i",n%2);
  7.     }
  8. }

Esta divide el numero entre dos hasta que quede 0 y apunta a los residuos
del ultimo al primero. Los restos generados en cada division forman el
numero binario el primer resto es el bit menos significativo (LSB) y el
último resto es el bit mas significativo (MSB) del numero binario.

Código
  1. 10/2 = 05 con residuo 0 <--- LSB
  2. 05/2 = 02 con residuo 1
  3. 02/2 = 01 con residuo 0
  4. 01/2 = 00 con residuo 1 <--- MSB

Código
  1. Eso se imprimiria de esta forma 1010

En este caso segun entiendo la funcion printf imprime inversamente
los residuos resultante de la division, aprovecha esa propiedad de
imprimir el bit mas significativo primero y el LBS al ultimo siendo el
primero en originarse, podria alguien explicarme como esto es posible..

cypascal lo que entendi fue que al multiplicarlo por 10 consiste
una forma de ir ordenado los residuos de forma inversa seria algo asi no

Un saludo

 
35  Programación / Programación C/C++ / Re: Pequeña duda con funcion recursiva en: 16 Mayo 2013, 15:42 pm
Creo que no es num sino dec.

Si efectivamente habia cambia los parametros para que sea mas congruentes
me olvide hacer los cambios dentro jeje:.

Código
  1. int binario(int dec)
  2. {
  3.    int resto = dec % 2;
  4.    int divide = dec / 2;
  5.  
  6.    return divide > 0 ? binario(divide) * 10 + resto : resto;
  7. }

Y hiendo al tema que opinas estoy en lo corecto seria asi como funciona  o no¿?

Saludos
36  Programación / Programación C/C++ / Pequeña duda con funcion recursiva en: 16 Mayo 2013, 00:56 am
Hey!! buenas a todos los apasionados de esto de la programacion, me acabo de inscribir
en el foro. Yo soy unas de esas personas que cuando encuentra un codigo que no  
entiende, trata estudiar como funciona cada expresion, funcion etc;

En fin la cuestion es que me he topado con un codigo que me cuesta un poco comprenderlo
especificamente se trata de una funcion recursiva que lo que hace es convertir un un
numero decimal a binario miren esta es la funcion:

Código
  1. int binario(int dec)
  2. {
  3.    int resto = num % 2;
  4.    int divide = num / 2;
  5.  
  6.    return divide > 0 ? binario(divide) * 10 + resto : resto;
  7. }

Lo que llegue a entender es que si dvide es mayor que cero, se ejecuta la funcion
que luego es multiplicada por diez y se le suma uno. Por decirlo si yo le paso un siete
a la funcion, en un primer momento resto valdria 1 y divide seria 3 como ven
divide es mayor que cero, por lo que la funcion se ejecuta.

Lo mas logico es que la funcion binario(divide) retornara un cero que es
multiplicada por 10 que da 0 y luego se le suma 1 y asi sucesivamente en caso de que
divide no sea mayor que 0 se ejecuta el bloque correspondiente a false que le agrega
cero

Que me corrijan si esto no es asi saludos a todos  :rolleyes:
 
Páginas: 1 2 3 [4]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines