Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - skatres

#1
Cita de: Xandrete en 15 Enero 2012, 20:19 PM
¿Haces informática? ¿O haces telecomunicaciones, industriales u otra carrera técnica? En el primer caso, no me parece correcto ese esquema. En los demás, tampoco, pero es menos grave.

Pues yo estoy en industriales
#2
Cita de: Xandrete en 15 Enero 2012, 19:40 PM
¿Así cómo? ¿Con el &? Entonces, ¿qué estás haciendo? ¿C en C++?

Si es el profe quien te lo dice, no soy quien para desautorizarlo, pero te informo de que, como dije antes, en C estricto se hace pasando el puntero (y si el compilador no te da error al hacerlo con el & es porque es un compilador mixto de C/C++).

Saludos

Pues la verdad, ahora estoy algo desconcertado de si estoy en C estricto o no, en la uni usamos el DEV C++, por lo que sera como una especie de mezcla entre C/C++, otra cosilla, con respecto a los punteros, nose si seran muy importantes o no, puesto que nuestro profre dijo de no verlos.
#3
Hola compi, gracias por la ayuda, ya he solucionado los errores(que tonto yo al no darme cuenta que solo le estaba pasando un valor al main :rolleyes:).

La funcion MCD se me olvido programarla, en la funcion simplificar fracciones, segun mi profesor es asi como se hace, es decir, por referencia.


Un saludo!!
#4
Hola, pues resulta que estaba estudiando, y me puse a hacer un ejercicio de operaciones con fracciones, ya lo tengo casi terminado, pero al compilarlo, me salen estos errores y nose como solucionarlos ni a que son debidos:

11 \Desktop\Practicas Programacion\Ejermplo Tema 6- Fracciones.cpp too few arguments to function `Fraccion sumar_fracciones(Fraccion, Fraccion)'
20 \Desktop\Practicas Programacion\Ejermplo Tema 6- Fracciones.cpp at this point in file
20 \Desktop\Practicas Programacion\Ejermplo Tema 6- Fracciones.cpp At global scope:
44 \Desktop\Practicas Programacion\Ejermplo Tema 6- Fracciones.cpp `struc' does not name a type


Y aqui esta el codigo fuente:

#include <stdio.h>
#include <stdlib.h>


struct Fraccion{
       unsigned num,dem;
};
       
void mostrar_fraccion(struct Fraccion f);
struct Fraccion leer_fraccion();
struct Fraccion sumar_fracciones(struct Fraccion f1,struct Fraccion f2);
struct Fraccion restar_fracciones(struct Fraccion f1,struct Fraccion f2);
void simplificar_fraccion(struct Fraccion &f);
unsigned MCD(unsigned a, unsigned b);

int main()
{   struct Fraccion f1;struct Fraccion f2;struct Fraccion f3;
    f1=leer_fraccion();
    f2=leer_fraccion();
    f3=sumar_fracciones(f3);
    simplificar_fraccion(f3);
    mostrar_fraccion(f3);
   
    system("pause");
    return 0;
}
   



struct Fraccion leer_fraccion()
{      struct Fraccion f;
       printf("Introduce el numeros:");
       scanf("%u",&f.num);
       printf("Introduce el denominador:");
       scanf("%u",&f.dem);
       return f;
}

void mostrar_fraccion(struct Fraccion f)
{    printf("%u %u",f.num,f.dem);
}

struc Fraccion sumar_fracciones(struct Fraccion f1,struct Fraccion f2)
{     struct Fraccion f3;
      f3.num=f1.num+f2.num;
      f3.dem=f1.dem+f2.dem;
      return f3;
}

struct Fraccion restar_fracciones(struct Fraccion f1,struct Fraccion f2)
{      struct Fraccion f3;
       f3.num=f1.num-f2.num;
       f3.dem=f1.dem-f2.dem;
       return f3;
}

void simplificar_fraccion(struct Fraccion &f)
{    f.num/=MCD(f.num,f.dem);
     f.dem/=MCD(f.num,f.dem);
}
#5
Hola, bueno sigo intentando que me salga este programa, lo volví a empezar en papel, y ahora lo paso al compilador pero me da estos dos errores:
Practicas Programacion\Ensayo numeros amigos.cpp In function `unsigned int son_amigos(unsigned int, unsigned int, unsigned int, unsigned int)':

29 Practicas Programacion\Ensayo numeros amigos.cpp invalid conversion from `unsigned int (*)(unsigned int, unsigned int, unsigned int, unsigned int)' to `unsigned int'



En teoria el programa me ha quedado así:
/* Se piden dos numeros naturales m y n. El progrma mostrará
todas las parejas de numeros amigos que hay en el intervalo [m,n].
Dos numeros son amigos si la suma de los divisores del primero
(sin contarse el mismo) coincide con el segundo y viceversa.Nota:
usa una funcion que, dado un numero, devuelva la suma de sus divisores
(sin contarse el mismo)*/


# include <stdio.h>
# include <stdlib.h>

unsigned son_amigos(unsigned a , unsigned b , unsigned num1 , unsigned num2);

int main()

{   int num1,num2;
    printf("\nIntroduce el pimer numero:");
    scanf("%d",&num1);
   
    printf("\nIntroduce el segundo numero:");
    scanf("%d",&num2);
   
    system("pause");
    return 0;
}

unsigned son_amigos(unsigned a , unsigned b , unsigned num1 , unsigned num2)
{ for(a==1;a<num1;a++)
  if(num1%a==0)
  num1+=a;
  { for(b==1;b<num2;b++)
    if(num2%b==0)
    num2+=b;
  }
  if(a=b)
  printf("Son numeros amigos");
  else
  printf("No son numeros amigos");
  return son_amigos;
#6
Cita de: RyogiShiki en 25 Noviembre 2011, 21:33 PM
Fíjate muy bien lo que estas haciendo, analisa el ciclo for de la función:


for(am=0;am<m;am++)
{
   if(m%am==0)

Cuando el primer ciclo se ejecute el estado de las variable am es am = 0, momentos después haces m% am, lo que implica hacer una división, en este caso sería m/0 lo que es un error, no puedes dividir por 0.

Mi sugerencia es que te replantees el problema de los números amigos, soluciónalo primero en el papel, observa los pasos que tienes que dar para solucionarlo y cuando tengas eso entonces pásalo al computador.

Saludos

Madre mia!!! tengo que estar ciego, porque es verdad que no me habia dado cuenta de ese error, bueno voy a replantearlo en papel y haber que sale.


Muchas gracias compi!!
#7
Ok, creo que mas o menos lo he pillado, osea sería declarar una funcion(la del void) dentro de la funcion int main(), lo he probado pero ahora el programa me lo compila, pero me sale un mensaje de error y se cierra. Algo así me ha quedado:

/* Se piden dos numeros naturales m y n. El progrma mostrará
todas las parejas de numeros amigos que hay en el intervalo [m,n].
Dos numeros son amigos si la suma de los divisores del primero
(sin contarse el mismo) coincide con el segundo y viceversa.Nota:
usa una funcion que, dado un numero, devuelva la suma de sus divisores
(sin contarse el mismo)*/

# include <stdio.h>
# include <stdlib.h>

void amigos (int am, int n , int m);

int main()
{ int m,n,am;

  printf("\nIntroduce m:");
  scanf("%d",&m);
 
  printf("\nIntroduce n:");
  scanf("%d",&n);
 
  amigos(am,n,m);
   
   
system("pause");
return 0;   
   
}


void amigos (int am, int n, int m)
{
for(am=0;am<m;am++)

{ if(m%am==0)
  m+=am;
}
  if(am==n)
  printf("Son numeros amigos");

}
#8
El caso esque cambio la funcion usnsigned por la que no retorna nada es decir, la funcion void, pero sigue ignorandome todo la funcion, no entiendo
#9
Programación C/C++ / Ayuda progrma numeros amigos
25 Noviembre 2011, 19:50 PM
Hola, pues siguiendo con mi intento de adentrarme en este mundo de la programacion, esta vez me ha tocado con los llamados subprogramas o funciones, bueno el caso esque he estado intentando realizar el siguiente ejercicio, no está terminado, pero esque el programa me ignora toda la parte de las funciones unsigned

/* Se piden dos numeros naturales m y n. El progrma mostrará
todas las parejas de numeros amigos que hay en el intervalo [m,n].
Dos numeros son amigos si la suma de los divisores del primero
(sin contarse el mismo) coincide con el segundo y viceversa.Nota:
usa una funcion que, dado un numero, devuelva la suma de sus divisores
(sin contarse el mismo)*/

# include <stdio.h>
# include <stdlib.h>

unsigned amigos (unsigned am, unsigned an, unsigned m, unsigned n);
int main()
{ int m,n,amigos;

  printf("\nIntroduce m:");
  scanf("%d",&m);
 
  printf("\nIntroduce n:");
  scanf("%d",&n);
   
   
system("pause");
return 0;   
   
}


unsigned amigos (unsigned am, unsigned an, unsigned m, unsigned n)
{
for(am=0;am<m;am++)

{ if(m%am==0)
  m+=am;
}
  if(am==n)
  printf("Son numeros amigos");

}


¿Como puedo solucionarlo?, gracias.
#10
Claro!!, ya me ha salido :), muchas gracias por tu atencion compi