-
Cyberfrog#94.
User deleted
CODICE//by Andrea Gobetti
#include <cstdlib>
#include <iostream>
#include <stdio.h>
int main()
{ int n1;//numeratore1
int n2;//numeratore2
int d1;//denominatore1
int d2;//denominatore2
int ris;//risultato nel caso in cui la frazione sia ridolvibile
int Md2;//memoria del denominatore2
int n3;//numeratore3, il numeratore del risultato
int d3;//denominatore3, il denominatore del risultato
int rd3;//resto della divisione tra denominatore3 e MCD
int rn3;//resto della divisione tra numeratore3 e MCD
int md3;//memoria del denominatore3
int mn3;//memoria del numeratore3
int mcd;//mcd tra denominatore3 e numeratore3
int d4;//denominatore4 (denominatore semplificato)
int n4;//numeratore4 (numeratore semplificato)
//inserimento numeratori e denominatori
printf("inserire il numeratore della prima frazione: ");
scanf("%d",&n1);
printf("inserire il denominatore della prima frazione: ");
scanf("%d",&d1);
printf("inserire il numeratore della seconda frazione: ");
scanf("%d",&n2);
printf("inserire il denominatore della seconda frazione: ");
scanf("%d",&d2);
//verifico che ai denominatori non ci siano zeri
if(d1==0 || d2==0)
{
while(d1==0)
{
printf("\nimpossibile dividere per 0\n");
printf("reinserire il denominatore della prima frazione: ");
scanf("%d",&d1);
}
while(d2==0)
{
printf("\nimpossibile dividere per 0\n");
printf("reinserire il denominatore della seconda frazione: ");
scanf("%d",&d2);
}
}
//calcolo il denominatore facendo l'mcm dei denominatori
d3=d1;
Md2=d2;
while(d3!=Md2)
{if(d3>Md2)
{Md2=Md2+d2;
}
else
{d3=d3+d1;
}
}
//calcolo il numeratore
n3=(d3/d1*n1)+(d3/d2*n2);
//se posso risolvo la frazione
if(n3%d3==0)
{
ris=n3/d3;
printf("\n %d\t %d\t %d\n----- + ----- = ------ = %d\n %d\t %d\t %d\n\n", n1, n2, n3, ris, d1, d2, d3);
}
//altrimenti calcolo l'MCD tra numeratore e denominatore per verificare se la frazione può essere semplificata
else
{
md3=d3;
mn3=n3;
if(md3>mn3)
{mcd=d3;
}
if(md3<=mn3)
{mcd=mn3;
}
rn3=1;
rd3=1;
while(rn3!=0 || rd3!=0)
{
rn3=n3%mcd;
if(rn3!=0)
{mcd=mcd-1;
}
if(rn3==0)
{rd3=d3%mcd;
if(rd3!=0)
{mcd=mcd-1;
}
}
}
//se l'MCD ottenuto è diverso da 1 semplifico la frazione
if(mcd!=1)
{n4=n3/mcd;
d4=d3/mcd;
printf("\n %d\t %d\t %d\t %d\n----- + ----- = ------ = -----\n %d\t %d\t %d\t %d\n\n", n1, n2, n3, n4, d1, d2, d3, d4);
}
//altrimenti la stampo non semplificata
else
printf("\n %d\t %d\t %d\n----- + ----- = ------\n %d\t %d\t %d\n\n", n1, n2, n3, d1, d2, d3);
}
system("PAUSE");
return 0;
}
OUTPUT:
Edited by Cyberfrog#94 - 28/11/2010, 18:25. -
Vincenzo Vince Ingarao.
User deleted
Ma l'hai messo online senza compilarlo e farlo girare? Ma non era meglio verificare prima che funzionasse?????? . -
.Ma l'hai messo online senza compilarlo e farlo girare? Ma non era meglio verificare prima che funzionasse??????
Certo che l'avevo compilato e certo che funzionava, magari è cambiato qualcosa visto che l'articolo è di 11 anni fa?
Allego screenshot dell'epoca per il giudizio della Corte
Oltretutto questo forum è un progetto abbandonato fatto da ragazzini di 15 anni, il livello del codice nel tempo è un po' migliorato.