Dev - C++ - simplificar una fracción sin funciones

 
Vista:

simplificar una fracción sin funciones

Publicado por Andy11 (4 intervenciones) el 10/12/2020 21:07:43
Nose como hacer el codigo, ayudenme.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

simplificar una fracción sin funciones

Publicado por Rodrigo (539 intervenciones) el 10/12/2020 23:46:12
Tienes que iterar por todos los numeros desde 2 en adelante, y dividir tanto numerador como denominador por cada uno de esos numeros hasta que no se pueda dividir mas.

Un numero a es divisible por b si a modulo b == 0, la operacion modulo se realiza usando el operador %
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

simplificar una fracción sin funciones

Publicado por Alfil (1444 intervenciones) el 11/12/2020 00:13:11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
 
using namespace std;
 
int main()
 {
    int n, d;
 
    cout << "\nNumerador: "; cin >> n;
    cout << "Denominador: "; cin >> d;
 
    cout << endl << n << "/" << d;
 
    int k = 2;
 
    while (k <= 7)
    {
        if (n % k == 0 && d % k == 0)
         {
             n /= k;
             d /= k;
             cout << " = " << n << "/" << d;
             k = 2;
             continue;
         }
         k++;
    }
 
    cout << endl;
 
    return 0;
 }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

simplificar una fracción sin funciones

Publicado por Rodrigo (539 intervenciones) el 11/12/2020 03:03:41
Supongo que con la ayuda del programa provisto amablemente por Alfil, puedes continuar y terminar lo que necesitas.

Hay que mejorar la condicion de la linea 16 para que funcione para numeros mas "grandes", por ejemplo si el numerador es 143 y el denominador es 169, se puede simplificar a 11/13. El 7 de la linea 16 evita considerar primos mas grandes, tal como esta el programa, no habra simplificacion para este caso.

143 = 11 * 13
169 = 13 * 13

143 / 169 = 11 / 13

Sugiero que en vez de poner 7 en la linea 16, lo reemplaces por el minimo entre el numerador y el denominador.

Define una variable para el minimo, calcula el minimo entre el numerador y el denominador y pones esa variable en vez del 7.
Tambien puedes calcular el minimo en cada vuelta para optimizar un poco.

Tal vez te conviene chequear tambien que los valores no son 0.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1.440
Bronce
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

simplificar una fracción sin funciones

Publicado por dario (718 intervenciones) el 11/12/2020 05:37:48
Hola, espero esto te ayude.
Salu2.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
 
using namespace std;
 
int mcd(int a,int b);
 
int main() {
  int n1,n2,r;
  int x,y;
 
  cout << "numerador: ";
  cin >> n1;
  cout << "Denominador: ";
  cin >> n2;
 
  r = mcd(n1,n2);
  x = n1 / r;
  y = n2 / r;
 
  //fraccion simplificada
  cout << "\nFraccion simplificada" << endl;
  cout << x << "/" << y << endl;
 
  return 0;
}
 
//Funcion Maximo comun Divisor
int mcd(int a,int b) {
 
    while (a != b) {
    if (a > b)
      a = a - b;
    else
      b = b - a;
  }
 
  return a;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar