Biletul 1 Atestat Informatica Programare

Biletul nr. 1. pentru atestat informatica la programare 2015

Enuntul problemei

Fişierul date.in conţine pe prima linie o valoare naturală nenulă n, iar pe următoarele n linii, separate printr-un spaţiu, câte o pereche de numere naturale nenule reprezentând numărătorul, respectiv, numitorul unei fracţii (2 ≤ n ≤ 10). Să se determine suma acestor fracţii. Numărătorul şi numitorul fracţiei obţinute în forma ireductibilă (valori mai mici sau egale dacât 1000000000) vor fi scrise în fişierul date.out pe prima linie a acestuia separate printr-un spaţiu. 

bilet 1 programare atestat informatica 2015

Rezolvarea problemei

#include<fstream.h>
#include<iostream.h>
int cmmdc(int d, int i)
{
if(i= =0)
return d;
else
return cmmdc(i,d%i);
}
int cmmmc(int a,int b)
{
return (a*b)/cmmdc(a,b);
}
int main( )
{fstream fin("date.in",ios::in), fout("date.out",ios::out);
int a,b,c,d,n;
fin>>n;
fin>>a;
fin>>b;
 for (int i=2;i<=n;i++)
{
fin>>c;
 fin>>d;
 a=a*cmmmc(b,d)/b + c*cmmmc(b,d)/d;
b=cmmmc(b,d);
}
for (d=2;d<=a/2;d++) sau fout<<a/cmmdc(a,b); fout<<b/cmmdc(a,b);
{
if (a%d==0)
 if (b%d==0)
 {
 a=a/d;
 b=b/d;

 

Scris de AtestateLaInformatica.ro

0