SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: Miguelencho en Martes 4 de Mayo de 2004, 14:43
-
como podria imprimir una division entera pero en fracciones o sea si la division es -2/-6 que me imprima 1/3, diganme si alguna funcion y en que libreria esta por favor...y graciassssssss!!!!
-
bueno, yo la verdad no conozco ninguna funcion que haga tal cosa, yo te acosejo que hagas la funcion
igual no es tan complicada..
Saludos :good:
-
Yo tampoco se de ninguna funcion ya implementada que haga eso, pero se me ocurren muchas maneras de hacerlo.
Por ejemplo para la division -2/-6. Si pillas un contador y lo vas incrementando y haciendo la division si el resto de la division contador entre el dividendo y el divisor sea cero y seguir incrementando la variable contador, ya lo tendrias.
-
bueno men aqui void agarrese
es muy sencillo de ver echandole codigo pero si se decide lo puedes hacer en un función o compilando ... bueno no es el caso.
nota: es bueno que cambies las variables a y b globales (si las tienes) por otras
el caso o los casos son los siguientes:
/************* teniendo una entrada *********************/
se tiene que tomar en cuenta esta condición que de ella derivarán las demás
si (a < 0) y (b<0) entonces
procesa la división normal ok ((ir a ve*))
RMOVE
si no
RVDIR
(*es por que son mayores. por lo tanto se procesa la
operación normalmente*)
ojo(en caso de esta sola condisión).
(ver *): en el caso del proceso de la división en la primera alternativa se debe tomar en cuenta:
que si a y b son menores que 0 quiere decir que son negativos, no!:
por consiguiente...
para todo C=-a/-b quedaría C=a/b}ojo para todo a y b negativos
nota (en caso de condiciones desiguales deberías tomar en cuenta lógicas variadas me entiendes, que para cada condición hagas un proceso diferente)
sigo..
analizar por factor derivado, es decir, simplificar los números a y b (para ello lo más optimo es una función que te analice a y b y luego pasar el valor al procedimiento o función en donde está el proceso)
ojo toma en cuenta que a es condición necesaria y cuidado sino obligatoria de b y b de a. en qué sentido. bueno. que una división simplificada no puede ser simplificada (valga la redundancia) siempre y cuando no se cumpla que b es divisor de a o viceversa... entendido!!
para ello debe existir otra función que aprecie ello con el fin de que no se dé la división resultado de 1/3(caso ejemplo) que equivale a 0.33333... ok. sino que devido a (mod=cont2), llegues, a la conclusión o llegue el programa a la conclusiónde que si
num mod cont = cont2(por ejemplo)
esto explica claramente que el numerador como también el denominador (Numb) va a ser comparado por contadores que van a simular una prueba o chequeo de divisores y restos de la división.
de todas formas que quede claro que a es condición suficiente y necesaria de b y b de a, en este tipo de caso de división.
sería muy bueno que evalues eso con lapiz y papel men jejejejeje
cualquier cosa mandame er mensaje men si lo entendistes o no tengo ese problema ultimamente jejejejeje
:whistling: :kicking:
C++ BorlFJ
-
hey mucho mejor
no eh dejado de pensar en el problema mirá este análisis que le hice espero que entienda matemáticas eh:
sea;
C=a/b
CONDICIÓN o CONDICIONES
1) si b <> 0
procesa a>0 y b>0 ==> C>0
procesa a<0 y b<0 ==> C>0
procesa a<0 y b>0 ==> C<0
procesa a>0 y b<0 ==> C<0
1°ER Caso a<b si ===>
b/a Exacta!! si ----> a / a = d
b / a = e "escribir"
el hecho es que se tiene que
a / b = d / e
ok men esa es para la primera condición nos vemos luego te mando la del 2DO caso es que me tengo que ir no dispongo de tiempo suficiente
chauuuuuuuuuuuuuuuuuuuuu
saludos!!
:whistling: :kicking:
ah y aquellos que vean mi análisis y tenga unas cositas en particular que corregir las acepto con muchio gusto tomaré la observación chauuuuuuuuuuuuuuuuu
:blink:
-
Hola.
Lo que C++ BorlFJ te está tratando de explicar parece el Algoritmo de Euclides, que se usa para obtener el Máximo Común Divisor de dos números. Cuando obtengas el MCD no tienes más que dividir por él tanto numerador como denominador y tendrás la fracción simplificada (si el MCD resulta ser 1 es que no se puede simplificar, con lo cual no cambiarán).
En esta web viene explicado bastante más simple, con código de ejemplo:
Algoritmo de Euclides (http://www.sectormatematica.cl/seccion/jorge/euclides.htm)
Un saludo.
Ruben3d
-
/*
Segun lo que entendi de la pregunta quizas esto te pueda ser de alguna ayuida sino solo hazlo saber y veremos que se hace
*/
#include<stdio.h>
main()
{
int sim,may,min,i,a,b;
printf("Ingrese Dividendo");
scanf("%d",&a);
printf("\nIngrese Divisor");
scanf("%d",&b);//hasta aca solo pedir ingreso de divisor i dividendo
if(a%b==0)//verifica si el divisor no es multiplo del dividendo en este caso no tiene sentido
//entregar el resultado en forma de fraccion
printf("\nEl resultado de %d/%d es %d: ",a,b,a/b);//imprime el resultado si es exacto
else //entrada a la funcion que simplificara la fraccion
{
if (a<b)//el if y el else solo esta hecho con la funcion de ver cual elemento es el mayor y cual
//el menor esto para que el for no tenga q ralizar operaciones que esten demas ya que
//ningun numero se prodra simplificar por otro que sea mayor a si mismo
{
min=a;
may=b;
}
else
{
min=b;
may=a;
}
for(i=1;i<min;i++)
{//con este for se ve y se guardara el valor del mayor dividendo que tengan en comun ambos numeros
//es recomendable inicializarlo en 1 ya que siempre el 1 sera divisor exacto de cualquier numero
if(min%i==0 && may%i==0)
sim=i;
}
printf("\nEl resultado de %d/%d es %d/%d: ",a,b,(a/sim),(b/sim));
}
return 0;
}
/*bueno eso seria todo no se si te servira de algo pero es algo q realice algo
apurado en todo caso creo que deberia correr sin mayores problemas , esto en todo
caso no es algo muy profesional , si no te sirve o si necesitas otro formato de ingreso de
datos dilo en el foro y respondo otro dia Nos vemos*/