Informatică, întrebare adresată de 1999Andy, 9 ani în urmă

Buna, am nevoie de ajutorul vostru la informatica(programare), trebuie sa rezolv problema data in doua limbaje de programare Pascal si C++, va multumesc :))

Să se definească un subprogram care va efectua:

a) adunarea a două fracții;

b) înmulțirea a două fracții;

c) simplificarea unei fracții până la o fracție ireductibilă;

d) compararea a două fracții.

Răspunsuri la întrebare

Răspuns de blindseeker90
8
C++
#include <iostream>
using namespace std;

//subprogram suma fractii
//a,b,c,d termenii fractiilor, e si ef sunt rezultate finale
void suma_fractii(int a,int b,int c,int d,int &e,int &f){
e=a*d+b*c;
f=b*d;
}
void inmultire_fractii(int a,int b,int c,int d,int &e,int &f){
e=a*c;
f=b*d;
}

void fractie_ireductibila(int a,int b,int &e,int &f){
int copie_a=a,copie_b=b;
    while(a!=b){
     if(a>b){
     a=a-b;
     }
     else{
     b=b-a;
     }
    }
    e=copie_a/a;
f=copie_b/b;
 
}

void comp_fractie(int a,int b,int c,int d){
if(a*d>b*c){
cout<<" mai mare ";
}
else if(a*d==b+c){
cout<<" egala ";
}
else{
cout<<" mai mica ";
}
}

int main(){
int a,b,c,d,e,f,opt;
cout<<"Introduceti denumitor,numitor prima fractie:";
cin>>a>>b;
cout<<"Introduceti denumitor,numitor a doua fractie:";
cin>>c>>d;
if(c==b||d==0){
cout<<"Numitorul unei fractii nu poate fi 0!!";
return 0;
}
cout<<"a)\n";
suma_fractii(a,b,c,d,e,f);
cout<<"Suma fractii:"<<e<<'/'<<f;
cout<<"\nb)\n";
inmultire_fractii(a,b,c,d,e,f);
cout<<"Inmultire fractii:"<<e<<'/'<<f;
cout<<"\nc)\n";
cout<<"Ce fractie vreti sa o faceti ireductibila 1 sau 2:";
cin>>opt;
if(opt==1){
fractie_ireductibila(a,b,e,f);
}
else{
fractie_ireductibila(c,d,e,f);
}
cout<<"Fractie ireductibila:"<<e<<'/'<<f;
cout<<"\nd)\n";
cout<<"Prima fractie este ";
comp_fractie(a,b,c,d);
cout<<"fata de fractia a doua";
return 0;
}

Pascal

program fractii;

procedure suma_fractii(a,b,c,d:integer;var e,f:integer);
begin
   e:=a*d+b*c;
   f:=b*d;
end;

procedure inmultire_fractii(a,b,c,d:integer;var e,f:integer);
begin
   e:=a*c;
   f:=b*d;
end;

procedure fractie_ireductibila(a,b:integer;var e,f:integer);
var copie_a,copie_b:integer;
begin
  copie_a:=a;
  copie_b:=b;
  while a<>b do
  begin
  if a>b then
    a:=a-b
  else
    b:=b-a;
  end;
  e:=round(copie_a/a);
  f:=round(copie_b/b);
end;

procedure comp_fractie(a,b,c,d:integer);
begin
  if a*d>b*c then
    write(' mai mare ')
  else if a*d=b*c then
    write(' egala ')
  else
    write(' mai mica ');
end;
var a,b,c,d,e,f,opt:integer;
begin
  writeln('Introduceti denumitor si numitor prima fractie');
  read(a);
  read(b);
  writeln('Introduceti denumitor si numitor a doua fractie');
  read(c);
  read(d);
  writeln('a)');
  suma_fractii(a,b,c,d,e,f);
  writeln('Suma fractii',e,'/',f);
  writeln('b)');
  inmultire_fractii(a,b,c,d,e,f);
  writeln('Inmultire fractii',e,'/',f);
  writeln('c)');
  writeln('Ce fractie vreoti sa o faceti ireductibila 1 sau 2:');
  read(opt);
  if opt=1 then
    fractie_ireductibila(a,b,e,f)
  else 
    fractie_ireductibila(c,d,e,f);
  writeln('Fractie ireductibila:',e,'/',f);
  writeln('d)');
  write('Prima fractie este: ');
  comp_fractie(a,b,c,d);
  write(' fata de fractia a doua.');
end.


1999Andy: mersi sefu ;)) mi-ai salvat viata :*
Alte întrebări interesante