Sunteți pe pagina 1din 1

CAP.V Implementarea algoritmilor n limbajul de programare C++ 5.9.

Aplicaii implementare algoritmi n C++

C07. PROGRAM C++ PENTRU SIMPLIFICAREA FRACIILOR

Enunt : Se citesc de la tastatur numrtorul a i numitorul b ale unei fracii. S se afieze


fracia simplificat.
(exp: a=18, b=24 => 3/4)

Date de intrare : a,b = cele doua numere


Date de intermediare : salv_a, salv_b pstreaz valorile iniiale ale numitorului i numrtorului
Date de iesire : mesaj
Pentru calcularea c.m.m.d.c. se foloseste algoritmul de scdere repetat a valorii celei
mai mici din valoarea cea mai mare. Rezolvarea problemei se bazeaz pe conditia ab. Fracia
ireductibil se obine prin mprirea numitorului i numrtorului la c.m.m.d.c.(a,b).

PROGRAM C++

#include<iostream>
using namespace std;
int main(){
int a, b, salv_a, salv_b; // a - numrtor, b numitor
cout<<"a="; cin>>a;
cout<<"b="; cin>>b;
salv_a=a; salv_b=b; /* a, b sunt salvate in salv_a, salv_b
deoarece prin scaderi repetate se vor pierde valorile initiale*/
while (a!=b) // operaia de scdere a numrului mic din numrul mare, se repet pn cnd a=b
if (a>b)
a=a-b;
else
b=b-a;
cout<<"Fractia simplificata : "<<salv_a/a<</<<salv_b/a<<endl;
return 0;
}

PASUL a b a>b a<>b salv_a salv_b


P1 18 12 - - 18 12
P2 18 12 - 18<>12=>TRUE 18 12
P3 18 12 18>12=>TRUE TRUE 18 12
P4 18-12=6 12 TRUE TRUE 18 12
P5 6 12 TRUE 6<>12=>TRUE 18 12
P6 6 12 6>12=>FALSE TRUE 18 12
P7 6 12-6=6 FALSE TRUE 18 12
P8 6 6 FALSE 6<>6=>FALSE 18 12
P9 6 6 FALSE FALSE 18 12
=> cmmdc=6

Brebenel George Colegiul Tehnic Iuliu Maniu-2009 1

S-ar putea să vă placă și