View difference between Paste ID: nnWzHrCs and 3LYFX7uJ
SHOW: | | - or go back to the newest paste.
1
#include <stdio.h>
2
#include <stdlib.h>
3
4
5
int perguntar();
6
int opcao();
7
int adicao(int p1, int q1, int p2, int q2);
8
int subtracao(int p1, int q1, int p2, int q2);
9
int dividir(int p1, int q1, int p2, int q2);
10
int imprimir_fracao(int p1, int q1);
11
float imprimir_ponto_frutuante(int p1, int q1);
12
int MMC(int q1,int q2);
13
14
int main()
15
{
16
      int q1;
17
      int q2;
18
      int p1;
19
      int p2;
20
//primeira função
21
      printf("\n Informe o numerador da primeira funcao\n");
22
      scanf("%d",&p1);
23
      printf("\n Informe o denominador da primeira funcao\n");
24
      scanf("%d",&q1);
25
// Segunda função
26
  printf("\n Informe o numerador da Segunda funcao\n");
27
  scanf("%d",&p2);
28
  printf("\n Informe o denominador da Segunda funcao\n");
29
  scanf("%d",&q2);
30
31
 int op;
32
33
 printf("\n[1] Adicao de 2 Racionais: ");
34
 printf("\n[2] Subtracao de 2 Racionais: ");
35
 printf("\n[3] Multiplicacao de 2 Racionais: ");
36
 printf("\n[4] Divisao de 2 Racionais: ");
37
 printf("\n[5] Imprimir o Racional na forma p/q: ");
38
 printf("\n[6] Imprimir o Racional em ponto flutuante de precisao dupla: ");
39
40
 scanf("%d",&op);
41
42
  switch(op)
43
  {
44
   case 1:
45
      printf("RESULTADO");
46
       adicao(p1,q1,p2,q2);
47
     break;
48
   case 2:
49
      printf("RESULTADO");
50
       subtracao(p1,q1,p2,q2);
51
     break;
52
   case 3:
53
      printf("RESULTADO");
54
       multiplicar(p1,q1,p2,q2);
55
     break;
56
   case 4:
57
      printf("RESULTADO");
58
       dividir(p1,q1,p2,q2);
59
     break;
60
   case 5:
61
      printf("RESULTADO");
62
       imprimir_fracao(p1,q1);
63
     break;
64
   case 6:
65
      printf("RESULTADO");
66
       imprimir_ponto_frutuante(p1,q1);
67
     break;
68
  }
69
    system("pause");
70
    return 0;
71
}
72
73
74
int adicao(int p, int q, int p1, int q1)
75
{
76
int denominadorF1 = q;
77
int denominadorF2 = q1;
78
int numeradorF1 = p;
79
int numeradorF2 = p1;
80
81
int numeradorResultado;
82
int denominadorResultado;
83
84
int resultado1,resultado2,temp,temp2,mmc;
85
86
if (denominadorF1 == denominadorF2)
87
  {
88
   numeradorResultado = numeradorF1 + numeradorF2;
89
   denominadorResultado = denominadorF1;
90
   printf("\nFracao = %d/%d\n",numeradorResultado,denominadorResultado);
91
  }
92
else if(denominadorF1 != denominadorF2)
93
  {
94
   mmc = MMC(denominadorF1,denominadorF2);
95
   temp = mmc / denominadorF1;
96
   temp2 = mmc / denominadorF2;
97
98
   resultado1 = temp * numeradorF1;
99
   resultado2 = temp2 * numeradorF2;
100
101
   numeradorResultado = resultado1 + resultado2;
102
   denominadorResultado = mmc;
103
104
   printf("\n MMC = %d\n",MMC(denominadorF1,denominadorF2));
105
106
   printf("\nFracao = %d/%d\n",numeradorResultado,denominadorResultado);
107
108
   }
109
  // http://www.mundovestibular.com.br/articles/233/1/ADICAO-DE-FRACOES/Paacutegina1.html
110
}
111
112
int MMC(int a,int b)
113
{
114
int mmc,aux,i;
115
 if (b>a)
116
   {
117
      aux=a;
118
      a=b;
119
      b=aux;
120
   }
121
   if ((a%b)==0)
122
      {
123
         mmc=a;
124
      }
125
   else
126
   {
127
      for (i=2;i<=b;i++)
128
      {
129
         aux=a*i;
130
         if ((aux%b)==0)
131
         {
132
            mmc=aux;
133
            i=b+1;
134
         }
135
      }
136
   }
137
   return (mmc);
138
}
139
140
int subtracao(int p1, int q1, int p2, int q2)
141
{
142
143
// todo seu código da subtracao aqui
144
145
}
146
147
int multiplicar(int p1, int q1, int p2, int q2)
148
{
149
150
// todo seu código da multiplicação aqui
151
152
}
153
154
int dividir(int p1, int q1, int p2, int q2)
155
{
156
157
// todo seu código da divisão aqui
158
159
}
160
161
int imprimir_fracao(int p1, int q1) // < no caso aqui passaria a fração Final da adicao ou subtracao etc...
162
                                    // Passei esses paramentros só pra compilar
163
{
164
  printf("\n %d / %d",p1,q1);
165
}
166
167
float imprimir_ponto_frutuante(int p1, int q1)// < no caso aqui passaria a fração Final da adicao ou subtracao etc...
168
                                           // Passei esses paramentros só pra compilar
169
{
170
  float p;
171
172
  // Os calculos para seu função flutuante onde p é o resultado que será impresso
173
174
  printf("\n %f",p);
175
}