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

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿Cómo hacer el diagrama de flujo de esta función?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo hacer el diagrama de flujo de esta función?  (Leído 7,932 veces)
jamatbar

Desconectado Desconectado

Mensajes: 104


Ver Perfil
¿Cómo hacer el diagrama de flujo de esta función?
« en: 11 Enero 2014, 17:40 pm »

Buenas, tengo este programa que pasa de decimal a binario:

Código:
#include <stdio.h>
#include "decBin.h"

void decBin(int n);
int leeNumero();

int main ()
{

int n;

n = leeNumero();
decBin(n);
printf("\n");
return 0;

}




int leeNumero()

{

int numero;

do{

printf(T_INTRODUZCA_NUMERO);
scanf("%d", &numero);

}
while(numero < 0);


return numero;

}


void decBin (int n)

{

if (n == 0)
    printf("0");
else if (n == 1)
    printf("1");

else
{
decBin (n/2);
printf("%d", n % 2);

}

}

El diagrama de flujo de la función main como de la función leeNumero sé hacerlos, pero no sé como hacer el de la función recursiva decBin, ¿alguna ayuda?

Gracias de antemano y saludos!


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: ¿Cómo hacer el diagrama de flujo de esta función?
« Respuesta #1 en: 12 Enero 2014, 08:27 am »

cuando llamas a decBin dentro de esa misma funcion, para efectos del diagrama de flujo es como si llamaras a una función externa, ya que a fin de cuentas eso es lo que está haciendo, que la función que llame seaexactamente igual, no tiene nada que ver :P


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
jamatbar

Desconectado Desconectado

Mensajes: 104


Ver Perfil
Re: ¿Cómo hacer el diagrama de flujo de esta función?
« Respuesta #2 en: 12 Enero 2014, 13:34 pm »

cuando llamas a decBin dentro de esa misma funcion, para efectos del diagrama de flujo es como si llamaras a una función externa, ya que a fin de cuentas eso es lo que está haciendo, que la función que llame seaexactamente igual, no tiene nada que ver :P

A ver si lo he entendido, yo lo he hecho así xD

En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: ¿Cómo hacer el diagrama de flujo de esta función?
« Respuesta #3 en: 12 Enero 2014, 13:50 pm »

no :P porque eso seria un equivalente a

Código
  1. void decBin (int n){
  2.  while(1){
  3.    if (n == 0){
  4.      printf("0");
  5.      return 0; //finalizar la funcion
  6.    }else if (n == 1){
  7.      printf("1");
  8.      return 1; //finalizar la funcion
  9.    }else{
  10. decBin (n/2);
  11. printf("%d", n % 2);
  12.    }
  13.  }
  14. }
  15.  



fijate que en el diagrama dices
inicio
n es igual a 0?
-si, entonces imprime y fin
-no, continua
n es igual a 1?
-si, entonces imprime y fin
-no, continua
hacer funcion decBin
imprimir 0 o 1 n%2
volver al inicio

y te crea un bucle infinito si n>1 (ya que n siempre tendrá el mismo valor)


como te dije, ejecuta a ese recursivo como una función externa, tu función no tiene bucles como para que algo vuelva al inicio, todo apunta hacia el fin

un recursivo no es un bucle a nivel de control de flujo... es una llamada a otra función, esa otra función, tiene su propio alcance (scope) y sus propios valores

inténtalo de nuevo :P
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
jamatbar

Desconectado Desconectado

Mensajes: 104


Ver Perfil
Re: ¿Cómo hacer el diagrama de flujo de esta función?
« Respuesta #4 en: 12 Enero 2014, 15:39 pm »

A ver si lo he entendido, ¿entonces quedaría así?

En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: ¿Cómo hacer el diagrama de flujo de esta función?
« Respuesta #5 en: 12 Enero 2014, 16:59 pm »

Ahora falta el print n%2 :O
En línea

jamatbar

Desconectado Desconectado

Mensajes: 104


Ver Perfil
Re: ¿Cómo hacer el diagrama de flujo de esta función?
« Respuesta #6 en: 12 Enero 2014, 19:23 pm »

Ahora falta el print n%2 :O

A ver si a la tercera es la vencida xD

En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: ¿Cómo hacer el diagrama de flujo de esta función?
« Respuesta #7 en: 12 Enero 2014, 20:45 pm »

eso, correcto :P

si tienes duda avisa :P
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Este Diagrama de flujo esta bien distribuido ?
Ejercicios
rub'n 1 5,444 Último mensaje 28 Noviembre 2010, 04:54 am
por .mokk.
Diagrama de Flujo (duda)
Programación C/C++
Raastah 4 9,497 Último mensaje 20 Abril 2011, 07:13 am
por <<<-Basura->>>
practica de diagrama de flujo
Ejercicios
el.benefactor 1 7,374 Último mensaje 2 Octubre 2011, 22:42 pm
por s00rk
¿Cómo hacer un diagrama de flujo de elegir desafíos en juegos?
Foro Libre
Tachikomaia 1 2,575 Último mensaje 25 Mayo 2023, 22:26 pm
por Blowfish
¿Qué hacer cuando el diagrama de flujo es muy largo?
Programación General
Tachikomaia 1 1,365 Último mensaje 26 Noviembre 2023, 22:13 pm
por Parado_larga_duracion_ESP
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines