Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int perguntar();
- int opcao();
- int adicao(int p1, int q1, int p2, int q2);
- int subtracao(int p1, int q1, int p2, int q2);
- int dividir(int p1, int q1, int p2, int q2);
- int imprimir_fracao(int p1, int q1);
- float imprimir_ponto_frutuante(int p1, int q1);
- int MMC(int q1,int q2);
- int main()
- {
- int q1;
- int q2;
- int p1;
- int p2;
- //primeira função
- printf("\n Informe o numerador da primeira funcao\n");
- scanf("%d",&p1);
- printf("\n Informe o denominador da primeira funcao\n");
- scanf("%d",&q1);
- // Segunda função
- printf("\n Informe o numerador da Segunda funcao\n");
- scanf("%d",&p2);
- printf("\n Informe o denominador da Segunda funcao\n");
- scanf("%d",&q2);
- int op;
- printf("\n[1] Adicao de 2 Racionais: ");
- printf("\n[2] Subtracao de 2 Racionais: ");
- printf("\n[3] Multiplicacao de 2 Racionais: ");
- printf("\n[4] Divisao de 2 Racionais: ");
- printf("\n[5] Imprimir o Racional na forma p/q: ");
- printf("\n[6] Imprimir o Racional em ponto flutuante de precisao dupla: ");
- scanf("%d",&op);
- switch(op)
- {
- case 1:
- printf("RESULTADO");
- adicao(p1,q1,p2,q2);
- break;
- case 2:
- printf("RESULTADO");
- subtracao(p1,q1,p2,q2);
- break;
- case 3:
- printf("RESULTADO");
- multiplicar(p1,q1,p2,q2);
- break;
- case 4:
- printf("RESULTADO");
- dividir(p1,q1,p2,q2);
- break;
- case 5:
- printf("RESULTADO");
- imprimir_fracao(p1,q1);
- break;
- case 6:
- printf("RESULTADO");
- imprimir_ponto_frutuante(p1,q1);
- break;
- }
- system("pause");
- return 0;
- }
- int adicao(int p, int q, int p1, int q1)
- {
- int denominadorF1 = q;
- int denominadorF2 = q1;
- int numeradorF1 = p;
- int numeradorF2 = p1;
- int numeradorResultado;
- int denominadorResultado;
- int resultado1,resultado2,temp,temp2,mmc;
- if (denominadorF1 == denominadorF2)
- {
- numeradorResultado = numeradorF1 + numeradorF2;
- denominadorResultado = denominadorF1;
- printf("\nFracao = %d/%d\n",numeradorResultado,denominadorResultado);
- }
- else if(denominadorF1 != denominadorF2)
- {
- mmc = MMC(denominadorF1,denominadorF2);
- temp = mmc / denominadorF1;
- temp2 = mmc / denominadorF2;
- resultado1 = temp * numeradorF1;
- resultado2 = temp2 * numeradorF2;
- numeradorResultado = resultado1 + resultado2;
- denominadorResultado = mmc;
- printf("\n MMC = %d\n",MMC(denominadorF1,denominadorF2));
- printf("\nFracao = %d/%d\n",numeradorResultado,denominadorResultado);
- }
- // http://www.mundovestibular.com.br/articles/233/1/ADICAO-DE-FRACOES/Paacutegina1.html
- }
- int MMC(int a,int b)
- {
- int mmc,aux,i;
- if (b>a)
- {
- aux=a;
- a=b;
- b=aux;
- }
- if ((a%b)==0)
- {
- mmc=a;
- }
- else
- {
- for (i=2;i<=b;i++)
- {
- aux=a*i;
- if ((aux%b)==0)
- {
- mmc=aux;
- i=b+1;
- }
- }
- }
- return (mmc);
- }
- int subtracao(int p1, int q1, int p2, int q2)
- {
- // todo seu código da subtracao aqui
- }
- int multiplicar(int p1, int q1, int p2, int q2)
- {
- // todo seu código da multiplicação aqui
- }
- int dividir(int p1, int q1, int p2, int q2)
- {
- // todo seu código da divisão aqui
- }
- int imprimir_fracao(int p1, int q1) // < no caso aqui passaria a fração Final da adicao ou subtracao etc...
- // Passei esses paramentros só pra compilar
- {
- printf("\n %d / %d",p1,q1);
- }
- float imprimir_ponto_frutuante(int p1, int q1)// < no caso aqui passaria a fração Final da adicao ou subtracao etc...
- // Passei esses paramentros só pra compilar
- {
- float p;
- // Os calculos para seu função flutuante onde p é o resultado que será impresso
- printf("\n %f",p);
- }
Add Comment
Please, Sign In to add comment