Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: -/lnkx/- en 2 Agosto 2009, 11:27 am



Título: Problema con contador en C
Publicado por: -/lnkx/- en 2 Agosto 2009, 11:27 am
Hola. estoy empezando en C y estaba intentando hacer un contador pero no consigo que funcione aquí dejo el código:

Código:
#include <stdio.h>
void contador(void);
int main(void)
{
     int valor,num;
     num=1;
     valor=0;
     contador();
}
void contador(void)
{
     valor=valor+num;
     printf("%d",valor);
     contador();
}

De echo creo que lo que pasa es que las variables solo funcionan con al función que las declara.Pero no se como hacer que funcione  :huh:


Título: Re: Problema con contador en C
Publicado por: fuenteRea en 2 Agosto 2009, 12:40 pm
estas haciendo una llamada recursiva final en la funcion contador, las llamadas recursivas necesitan una condicion de final que tu funcion carece de ella. Te pongo un ejemplo (en c++)

//num=3
procedimiento vueltas (int &num){
     si(num!=0){
          num--;
          vueltas(num);
      finsi
fin


cuando num=0, deja de hacer llamadas recursivas

          

EDITO: Ademas las variables que llamas valor y numero le tienen que entrar a esa funcion por parametros, uno de entrada y otro de entrada/salida

void contador(int &valor, int num)

un saludo!!

PD: Di que hace contador porque es que no se ve, se llama contador pero no hace esa funcion sino otra que tampoco se cual es, explicala


Título: Re: Problema con contador en C
Publicado por: -/lnkx/- en 2 Agosto 2009, 12:44 pm
estas haciendo una llamada recursiva final en la funcion contador, las llamadas recursivas necesitan una condicion de final que tu funcion carece de ella. Te pongo un ejemplo (en c++)

//num=3
procedimiento vueltas (int &num){
     si(num!=0){
          num--;
          vueltas(num);
      finsi
fin


cuando num=0, deja de hacer llamadas recursivas

          

EDITO: Ademas las variables que llamas valor y numero le tienen que entrar a esa funcion por parametros, uno de entrada y otro de entrada/salida

un saludo!!

No acabo de entenderlo porque esta en c++ pero investigare lo de la llamada recursiva  :-\ pero al lo mejor tendría que usar for ? si alguien mas me pone un ejemplo en C


Título: Re: Problema con contador en C
Publicado por: fuenteRea en 2 Agosto 2009, 12:54 pm
perdon, no esta en c++, lo iba a poner pero decidi dartelo en pseudocodigo y aun asi no entiendes... en fin, ¿Que hace la funcion contador?. un saludo!!


Título: Re: Problema con contador en C
Publicado por: -/lnkx/- en 2 Agosto 2009, 13:01 pm
perdon, no esta en c++, lo iba a poner pero decidi dartelo en pseudocodigo y aun asi no entiendes... en fin, ¿Que hace la funcion contador?. un saludo!!

he empezado hoy... estaba haciendo una pruebas y no me salia :S


Título: Re: Problema con contador en C
Publicado por: fuenteRea en 2 Agosto 2009, 13:06 pm
pero cual es la funcion de ese metodo!!


Título: Re: Problema con contador en C
Publicado por: -/lnkx/- en 2 Agosto 2009, 13:11 pm
pero cual es la funcion de ese metodo!!

la función ninguna en concreto solo era para ver si lo podia hacer, luego lo puedo utilizar para crear diccionarios numericos por ejemplo pero de momento es para probar


Título: Re: Problema con contador en C
Publicado por: fuenteRea en 2 Agosto 2009, 13:19 pm
lo normal entonces seria que la quitaras, pero si la quieres dejar,

la cabecera tiene que ser

void contador(int &valor, int num)

y esto debe ser eliminado de dentro de este procedimiento
     contador();

un saludo!!


Título: Re: Problema con contador en C
Publicado por: -/lnkx/- en 2 Agosto 2009, 13:24 pm
lo normal entonces seria que la quitaras, pero si la quieres dejar,

la cabecera tiene que ser

void contador(int &valor, int num)

y esto debe ser eliminado de dentro de este procedimiento
     contador();

un saludo!!

Como dejándolo así :

Código:
#include <stdio.h>
void contador(int &valor, int num)
int main(void)
{
     int valor,num;
     num=1;
     valor=0;
     
}
void contador(void)
{
     valor=valor+num;
     printf("%d",valor);
     contador();
}



Título: Re: Problema con contador en C
Publicado por: fuenteRea en 2 Agosto 2009, 13:28 pm
no, creo que deberias leerte algun libro o algo primero. Seria esto:


#include <stdio.h>

int main(void){
     int valor=0;
     int num=1;
     contador(valor, num);
}
void contador(int &valor, int num){
     valor=valor+num;
     printf("%d",valor);
}


Título: Re: Problema con contador en C
Publicado por: -/lnkx/- en 2 Agosto 2009, 13:36 pm
no, creo que deberias leerte algun libro o algo primero. Seria esto:


#include <stdio.h>

int main(void){
     int valor=0;
     int num=1;
     contador(valor, num);
}
void contador(int &valor, int num){
     valor=valor+num;
     printf("%d",valor);
}
Lo probare... me estoy leyendo un libro de programación en C


Título: Re: Problema con contador en C
Publicado por: genkidama138 en 2 Agosto 2009, 23:20 pm
si estas empezando lo mejor es el dev-c++ con compilador integrado, para mi es lo mejorcito, las cosas mas claras y faciles que en c (desde mi punto de vista), si te interesa te puedo dar consejillos de c++ y transparencias de clase muy explicadas con las que aprendes muy facil

en c++ un contador seri algo tan sencillo como:

Código
  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4. int contador=0, num =1, valor =0;
  5. cout << "\nValor = " << valor << " + " ;
  6. while (contador<50) {
  7. valor=valor+num;
  8. cout << valor << " + ";
  9. contador++;
  10. }
  11. cout << " = " << valor << endl;
  12. system("PAUSE");
  13. return 0;
  14. }

Por lo que he entendido es eso lo que quieres hacer.


Título: Re: Problema con contador en C
Publicado por: A.ABAENA en 7 Diciembre 2011, 18:53 pm
hola disculpa encontré este post y me paresio interesante alguien me puede ayudar ya q estoy haciendo un contador con un pic entonces quiero que cuando pase por sensor me marque 1,2,3,4 hasta 16 y a la vez por otro sensor haga lo contrario es decir una resta, espero me puedan ayuda gracias