Documente Academic
Documente Profesional
Documente Cultură
Catedra Informatic
RAPORT
practica de iniiere n specialitate
Efectuat
Munteanu Tudor
(Numele, prenumele studentului, grupa)
Verificat _________________________
(Numele, prenumele coordonatorului)
Nota ____________________________
Cahul, 2014
Cuprins
I.Introducere................................................................................................................ 3
II.Obiectivele practicii:................................................................................................. 4
III.Sarcina Individual.................................................................................................. 5
CONDITIA PR.I............................................................................................................. 5
LISTINGUL PROGRAMULUI........................................................................................... 5
REZULTATELE TESTRII................................................................................................ 5
CONDITIA PR.II............................................................................................................. 6
LISTINGUL PROGRAMULUI........................................................................................... 6
REZULTATELE TESTRII............................................................................................. 7
CONDITIA PR.III............................................................................................................ 7
LISTINGUL PROGRAMULUI........................................................................................... 8
REZULTATELE TESTRII............................................................................................. 9
CONDITIA PR.IV........................................................................................................... 9
LISTINGUL PROGRAMULUI........................................................................................... 9
REZULTATELE TESTRII........................................................................................... 12
CONDITIA PR.V.......................................................................................................... 12
LISTINGUL PROGRAMULUI......................................................................................... 12
REZULTATELE TESTRII........................................................................................... 13
CONDITIA PR.VI......................................................................................................... 14
LISTINGUL PROGRAMULUI......................................................................................... 14
REZULTATELE TESTRII........................................................................................... 16
CONDITIA PR.VII........................................................................................................ 16
LISTINGUL PROGRAMULUI......................................................................................... 16
REZULTATELE TESTRII........................................................................................... 18
MENIUL...................................................................................................................... 18
3-INSERAREA............................................................................................................. 18
2-EXCLUDEREA.......................................................................................................... 19
CONDITIA PR.VIII....................................................................................................... 19
LISTINGUL PROGRAMULUI......................................................................................... 20
REZULTATELE TESTRII........................................................................................... 21
List bibliografic...................................................................................................... 21
I.Introducere
Obiectivele practicii sunt realizarea programelor n stilul programarii orientate pe obiect.
Principalul obiectiv al acestui program este realizarea, s ne pun ntr-o situaie din care noi s
putem gsi o soluie. Odat cu realizarea programului, noi ca studeni ne vedem deja n postura
de angajat care are o anumit responsabilitate de a elabora programul conform cerinelor date de
conductorul practicii. Dup finisarea programelor, i a perioadei de practic, noi devenim mai
maturi n domeniul nostru. Toate dificultile ntlnite pe perioada practicii, sunt doar un plus
pentru noi.
Stilul de programare orientat pe obiecte (POO) este utilizat pentru rezolvarea problemelor
de informatic cu un grad sporit de dificultate. Conform acestui stil programul const dintr-o
colecie de obiecte, uniti individuale de cod care interacioneaz ntre ele. Elaborarea unui
program n stilul POO presupune a organiza codul acestuia n uniti de program care s opereze
cu obiecte. n acest sens elaborarea programului const n prelucrarea obiectelor existente sau
crearea lor n dependen de specificul problemei.
C++ este un limbaj de programare general, compilat. Este un limbaj multi-paradigm, cu verificarea
static a tipului variabilelor ce suport programare procedural, abstractizare a datelor, programare
orientat pe obiecte. n anii 1990, C++ a devenit unul din cele mai populare limbaje de programare
comerciale, rmnnd astfel pn azi.
Bjarne Stroustrup de la Bell Labs a dezvoltat C++ (iniial denumit C cu clase) n anii 1980, ca o serie de
mbuntiri ale limbajului C. Acestea au nceput cu adugarea noiunii de clase, apoi de funcii
virtuale, suprascrierea operatorilor, motenire multipl, abloane (englez template) i excepii. Limbajul
de programare C++ a fost standardizat n 1998 ca i ISO 14882:1998, versiunea curent fiind din 2003,
ISO 14882:2003.
II.Obiectivele practicii:
Obiectivele de referint:
-
III.Sarcina Individual
CONDITIA PR.I
Creai obiectul ecuaie1 - va reprezenta o ecuaie de gradul 1 ax+b=0.
date: a, b;
metode: citire, afiare, iniializare, soluie.
Se vor introduce datele despre dou ecuaii i se vor afia ecuaiile introduse ct i soluiile
acestora.
LISTINGUL PROGRAMULUI
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <iomanip.h>
class ecuatie1 {
float a,b;
public:
void citire(){cout<<"a=";cin>>a;cout<<"b=";cin>>b;};
void init(double p,double q){a=p;b=q;}
void afisare(){if(b>0) cout<<a<<"x+"<<b<<"=0"; if(b<0) cout<<a<<"x"<<b<<"=0"; };
float solutie(){return -b/a;};
};
main()
{ecuatie1 A,B;
A.citire();
B.init(4.5,9);
A.afisare();
cout<<endl;
cout<<"x="<<A.solutie()<<endl;
B.afisare();
cout<<endl;
cout<<"x="<<B.solutie();
getch();
};
REZULTATELE TESTRII
CONDITIA PR.II
Clas-pereche este numit o clas cu dou date, care de obicei sunt dou numere n1 i n2. Este
necesar de a elabora un program, prin intermediul cruia se va crea tipul de date clas-pereche.
Cmpul n1 - un numr real (suma depozitul n lei), Cmpul n2 numr real (procentul anual).
Creai metoda valoare(int) va returna suma de bani mpreun cu
calcularea dobnzii timp de 1, 2, 3, 4 ani.
LISTINGUL PROGRAMULUI
main(){
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
class
numar{
double n1,n2;
public:
numar(){n1=n2=0;}
numar(double a,double b){n1=a;n2=b;}
numar(numar&);
~numar(){};
void citire();
void afisare();
double valoare(int);
~numar(){cout<<"Obiectul a fost
distrus !!!"<<endl;}
};
numar::numar(numar &c){
n1=c.n1;n2=c.n2;
}
void numar::citire(){
cout<<"Suma depozitului:";cin>>n1;
cout<<"Procent:"; cin>>n2;
}
void numar::afisare(){
cout<<n1<< setw(10) <<n2 << '\n';
}
double numar::valoare(int a){
float b=n1;
for(int i=1;i<=a;i++)
b=b*15/100+b;
return b;}
p->afisare();
delete p;
p=new numar(b);//apelarea constructorului
de copiere
p->afisare();
delete p;
getch();}
REZULTATELE TESTRII
CONDITIA PR.III
B. n calitate de clas de baz se va crea clasa persoana.
date: nume, prenume, anul, cnp (codul personal de 13 cifre);
metode : citire, afiare, virsta.
Creai clasa Salariat, derivata clasei persoana. Pentru clasa salariat vor fi
adugate:
date: numrul de ore lucrate, plata pentru o or, anul angajrii;
metode: vor fi redefinite metodele de citire i afiare, salariu. Salariul va fi
determinat conform formulei : nr_ore*plata.
De la tastatur se citesc datele despre n salariai. Elaborai un program prin intermediul cruia la
ecran se vor afia datele despre toi salariaii, salariatul cel mai tnr i salariatul cu salariu
maxim.
LISTINGUL PROGRAMULUI
#include <iostream.h>
float salariu(){return nro*plo;}
#include <string.h>
};
#include <stdlib.h>
main()
#include <conio.h>
{
#include <iomanip.h>
salariat V[100]; int n,index; float aux;
class persoana {
cout<<"n="; cin>>n;
public:
for(int i=1;i<=n;i++)
char nume[20],prenume[20];
V[i].citire();
int anul; char cnp[14];
cout<<" Nume | Prenume | Anul |
public:
CNP
| ore lucrate | pl/h | An
persoana(){}
angaj"<<endl;
~persoana(){};
for(int j=1;j<=n;j++)
citire(){
V[j].afisare();
cout<<"Nume:>"; cin>>nume;
aux=V[1].anul;
cout<<"Prenume:>"; cin>>prenume;
for(int i=1;i<=n;i++)
cout<<"Anul:>"; cin>>anul;
if(aux<V[i].anul) aux=V[i].anul;
cout<<"CNP:>"; cin>>cnp;
for(int i=1;i<=n;i++)
}
if(aux==V[i].anul) cout<<endl<<"Slariatul
afisare()
cel mai tinar:"<<V[i].nume<<"
{cout<<nume<<setw(10)<<prenume<<setw
"<<V[i].prenume<<" "<<V[i].anul<<"
(10)<<setw(10)<<anul<<setw(18)<<cnp;}
"<<V[i].salariu()<<endl;
};
class salariat:public persoana {
public:
int nro,plo,an;
public :
citire(){
persoana::citire(); cout<<"nr. ore
luc:>";cin>>nro; cout<<"plata/h:>";
cin>>plo; cout<<"Anul angajarii:";cin>>an;
clrscr(); }
afisare(){persoana::afisare();
cout<<setw(10)<<nro<<setw(10)<<plo<<set
w(10)<<an<<""<<endl;}
aux=V[1].salariu();
for(int i=1;i<=n;i++)
if(aux<V[i].salariu()) aux=V[i].salariu();
for(int i=1;i<=n;i++)
if(aux==V[i].salariu())
cout<<endl<<"Slariatul cu salariul
maxim:"<<V[i].nume<<"
"<<V[i].prenume<<" "<<V[i].anul<<"
"<<V[i].salariu()<<endl;
getch();
};
REZULTATELE TESTRII
CONDITIA PR.IV
2. Se consider drept baz clasa doi (va avea n calitate de date dou numere reale). n baza
acestei clase se deriv clasele dreptunghi i triunghi_dreptunghic. S se implementeze
polimorfismul pentru metodele: citire, afiare, suprafaa i perimetru. De la tastatur se citete
numrul de figuri. Elaborai un program care va permite
a) citirea figurilor de la tastatur;
b) afiarea acestora;
c) afiarea figurilor sub form de dreptunghi;
d) afiarea figurilor sub form de triunghi;
e) afiarea figurii cu suprafa maxim;
f) afiarea figurii cu perimetru maxim;
g) afiarea perimetrului total al figurilor;
h) afiarea suprafeei totale a figurilor;
i) sortarea figurilor n ordine descresctoare suprafeei.
#include <iostream.h>
#include <conio.h>
#include <math.h>
LISTINGUL PROGRAMULUI
class dreptunghi:public doi {
public:
citire(){doi::citire();}
afisare(){doi::afisare(); cout<<"
Aria:"<<suprafata()<<"
"<<"Perimetru:"<<perimetru()<<endl;}
float suprafata(){return doi::suprafata();}
float perimetru(){return doi::perimetru()*2;}
};
class triunghi_dreptunghic:public doi {
public:
class doi {
public :
float x,y;
public :
citire(){cin>>x>>y;}
doi(){} ;
~doi(){} ;
afisare(){cout<<"Laturile:"<<x<<","<<y;}
float suprafata(){return x*y;};
float perimetru(){return (x+y);};
};
afisare(){doi::afisare(); cout<<"
Aria:"<<suprafata()<<"
"<<"Perimetru:"<<perimetru()<<endl;}
float suprafata(){return doi::suprafata()/2;}
float perimetru(){return
sqrt(pow(x,2)+pow(y,2))+doi::perimetru();}
};
triunghi_dreptunghic aux1;
do{
ok=1;
for(i=1;i<=n-1;i++)
if(b[i].suprafata()<b[i+1].suprafata())
{ok=0;
aux1=b[i];
b[i]=b[i+1];
b[i+1]=aux1;
}
}
while(ok!=1);
for(int i=1;i<=n;i++)
v[i]=a[i].suprafata();
for(int i=1;i<=n;i++)
v[n+i]=b[i].suprafata();
//////////////
float schimb;
do{
ok=1;
for(i=1;i<=2*n-1;i++)
if(v[i]<v[i+1])
{ok=0;
schimb=v[i];
v[i]=v[i+1];
v[i+1]=schimb;
}
}
while(ok!=1);
do{
ok=1;
for(i=1;i<=2*n-1;i++)
if(v[i]==v[i+1])
{ok=0;
v[i+1]=0;
}
}
while(ok!=1);
//////////////
k=1;
for(int i=1;i<=2*n;i++){
for(int i=1;i<=n;i++) {
if(aranj(a[i].suprafata(),v[k])) {cout<<"
Dreptunghi: ";a[i].afisare();}
if(aranj(b[i].suprafata(),v[k]))
{cout<<"Triunghi_Dre: ";b[i].afisare(); }}
k++; }
getch();
}}
REZULTATELE TESTRII
CONDITIA PR.V
Se consider ierarhia format din clasele:
Clas de baz: Punct cu cmpurile: coordonatele punctului i culoarea;
Clase derivate: triunghi echilateral (punctul se consider a fi n centrul triunghiului): lungimea
laturii; patrat: lungimea laturii, punctul se consider a fi n centrul ptratului; figur (triunghi
nscris n ptrat) derivata claselor cerc i ptrat.
Metodele de citire i desenare vor fi implementate pentru fiecare clas din ierarhie. De la
tastatur se citete un numr ntreg n (n<100), numrul figurilor din ierarhie. Elaborai un
program prin intermediul cruia vor fi afiate figurile la ecran.
LISTINGUL PROGRAMULUI
}
afisare()
{cout<<"("<<x<<","<<y<<") "<<c;
}
};
#include <iostream.h>
#include <conio.h>
#include <math.h>
class punct
{protected:
int x,y;
char c[15];
public:
punct(){};
~punct(){};
citire()
{cout<<"Coordonatele:";cin>>x>>y;
cout<<"Culoarea:";cin>>c;
cout<<"Latura triunghiului:";cin>>l;
}
afisare()
{punct::afisare();
cout<<" Latura Triunghiului "<< l<<" cm ,";
}
};
class patrat :public punct
{protected: int p;
public:
citire()
{cout<<"Latura patratului:";cin>>p;
}
afisare()
{cout<<" Latura Patratului "<<p<<"
cm"<<endl;
}
};
class figura: public triunghi,public patrat
{public:
citire()
{triunghi::citire() ; patrat::citire();
}
afisare()
{float h;
h=sqrt(3)*l/2.0;
if(l==p) {triunghi::afisare();
patrat::afisare(); }else
cout<<"Triunghiul cu latura de "<<l<<" cm
"<<"nu se poate inscrie in patratul cu latura
de "<<p<<" cm"<<endl;
}
};
main()
{figura a[100];
int n;
cout<<"Nr.de figuri:"; cin>>n;
for (int i=1;i<=n;i++)
{cout<<"Figura "<<i<<endl;
a[i].citire();}
for (int i=1;i<=n;i++)
a[i].afisare();
getch();
}
REZULTATELE TESTRII
CONDITIA PR.VI
Se consider clasa timp, cu urmtoarea structur:
class timp{
int ora,min, sec;//14:24:35
public:
timp();
timp(int,int,int);
//
};
Elaborai un program, prin intermediul cruia pentru clasa timp vor fi suprancrcai:
a) Operatorul + va efectua suma dintre dou obiecte de tipul timp;
b) Operatorul - va efectua diferena dintre dou obiecte de tipul timp;
c) Operatorul ++ incrementarea cu o secund;
d) Operatorul -- decrementarea cu o secund;
e) Operatorul =
f) Operatorii >>,<< vor citi/afia timpul n formatul ora:min:sec, de ex. 14:24:35;
g) Operatorii de comparaie ==,!=, >, >=, <,<=;
h) Se va realiza o metod, care va prelucra timpul n forma corect, de ex. dac
timpul va fi 2:59:63, va fi transformat n 3:00:03.
LISTINGUL PROGRAMULUI
#include <iostream>
#include <conio.h>
#include <math.h>
class timp {
int ora,min,sec;
public :
timp(){};
~timp(){} ;
timp(int t,int g,int m){ora=t;min=g;sec=m;};
/////operator>>>/////////////////
friend istream& operator >>(istream&
is,timp& f)
{
is>>f.ora;
is>>f.min;
is>>f.sec;
return is;
};
////operator<<////////////////////
friend ostream& operator << (ostream& os,
timp d)
{os<<d.ora<<":"<<d.min<<":"<<d.sec;
return os;}
////simplificare////////////
//operator++////////////////
timp operator ++()
{ double r;
sec=sec+1;
r=ora*3600+min*60+sec;
simpl(r);
return *this;}
if(ora*3600+min*60+sec>=T.ora*3600+T.m
in*60+T.sec) return 1; else return 0; }
///operator--///////////////
timp operator --()
{ double r;
sec=sec-1;
r=ora*3600+min*60+sec;
simpl(r);
return *this;}
//operator=///////////
timp operator =(timp T)
{ ora=T.ora;
min=T.min;
sec=T.sec;
return *this;}
//////operator==///////////
int operator ==(timp T)
{ if(ora==T.ora && min==T.min &&
sec==T.sec) return 1; else return 0; }
///operator!=//////////////
int operator !=(timp T)
{ if(ora!=T.ora || min!=T.min || sec!=T.sec)
return 1; else return 0; }
///operator>//////////////
int operator >(timp T)
{
if(ora*3600+min*60+sec>T.ora*3600+T.mi
n*60+T.sec) return 1; else return 0; }
///operator<//////////////
int operator >=(timp T)
{
};
main()
{ timp P;
timp M(11,11,10);
cout<<"I Ora:"<<endl;
cin>>P;
cout<<"II Ora:"<<endl;
cout<<M<<endl;
cout<<P<<"+"<<M<<"="<<(P+M);
cout<<endl;
if((P>M)==1)
cout<<P<<"-"<<M<<"="<<(P-M); else
cout<<M<<"-"<<P<<"="<<(M-P);
cout<<endl;
cout<<(P--)<<"++"<<"="<<(P++);
cout<<endl;
cout<<(P++)<<"--"<<"="<<(P--);
cout<<endl;
if((P==M)==1) cout<<P<<"=="<<M<<endl;
if((P!=M)==1) cout<<P<<"!="<<M<<endl;
if((P>=M)==1) cout<<P<<">="<<M<<endl;
if((P<=M)==1) cout<<P<<"<="<<M<<endl;
cout<<P; cout<<"="<<M<<"="<<(P=M);
cout<<endl;
getch();
};
REZULTATELE TESTRII
CONDITIA PR.VII
Elaborai un program prin intermediul cruia vor fi gestionate automobilele
dintr-un salon auto. Despre un automobil se cunosc urmtoarele date: marca, anul
ediiei, culoarea, preul, capacitatea motorului, consumul la 100 km.
LISTINGUL PROGRAMULUI
#include <iostream.h>
cout<<"Anul: ";is>>t->anul;
#include <iomanip.h>
cout<<"Pretul: ";is>>t->pret;
#include <fstream.h>
cout<<"Consum: ";is>>t->consum;
#include <conio.h>
cout<<"Capacitatea: ";is>>t->capacitate;
class SalonAuto{
return is;
char *marca,*culoare;
}
int nr,anul,consum,pret,capacitate;
ostream & operator<<(ostream &os,
SalonAuto *next;//adresa umatorului
SalonAuto *t){
element
os<<t->nr<<setw(21)<<tSalonAuto();
>marca<<setw(10)<<t->culoare;
friend istream & operator>>(istream &,
os<<setw(8)<<t->consum<<setw(6)<<tSalonAuto *&);
>anul<<setw(10)<<t->pret<<setw(12)<<tfriend ostream & operator<<(ostream &,
>capacitate<<endl;
SalonAuto*);
return os;
friend class lista;
}
friend int schimb(SalonAuto *,SalonAuto *);
int schimb(SalonAuto *a, SalonAuto *b){
};
SalonAuto *an,*bn,t;
SalonAuto::SalonAuto(){
if (!a || !b)return 0;
marca=new char[20];culoare=new char[10];
an=a->next;bn=b->next;t=*a;*a=*b;*b=t;aanul=0;consum=0;pret=0;capacitate=0;
>next=an;b->next=bn;
next=NULL;
return 1;
}
}
istream & operator>>(istream &is,
class lista{
SalonAuto *&t){
SalonAuto *prim;//adresa primului element
cout<<"Dati datele despre
din lista
automobil"<<endl;
int n;//numarul total de studenti din lista
cout<<"Numarul masinii: ";is>>t->nr;
public:
cout<<"Marca: ";is>>t->marca;
lista(){prim=NULL;n=0;}
cout<<"Culoarea ";is>>t->culoare;
void creare();
void afisare();
void inserare();
void exclude();
void cauta(char *);
int sort_anul();
int sort_nr();
~lista();
};
void lista::creare(){
SalonAuto *p; ifstream f("lista.in");f>>n;
for(int i=0;i<n;i++){
p=new SalonAuto;
f>>p->nr>>p->marca>>p->culoare>>p>consum>>p->anul>>p->pret>>p>capacitate;
p->next=prim;prim=p;
}f.close();
}
void lista::afisare(){
cout<<"Lista automobilelor"<<endl;
cout<<"NR"<<setw(20)<<"Marca"<<setw(1
0)<<"Culoare";
cout<<setw(8)<<"Consum"<<setw(6)<<"An
ul"<<setw(10)<<"Pret"<<setw(12)<<"Capac
itate"<<endl;
SalonAuto *p;p=prim;
while(p!=NULL){cout<<p;p=p->next;}
}
void lista::inserare(){
SalonAuto *q;q=new SalonAuto;
cin>>q; q->next=prim;prim=q; n++;
}
void lista::exclude(){
SalonAuto *p,*q;
int c;
cout<<"Introdu numarul masinii care va fi
exclus"<<endl;
cin>>c; p=prim;
ifstream f("lista.in");
if(p->nr==c){prim=p->next;delete p;n--;}
else{
while(p->next->nr!=c && p!=NULL)p=p>next;
if(p!=NULL){q=p->next;p->next=q>next;delete q;n--;}
}
lista::afisare();
f.close();
}
void lista::cauta(char *marca){
SalonAuto *p;p=prim;
while(p!=NULL){
if(stricmp(p->marca ,marca)==0)
cout<<p;p=p->next;
}
}
int lista::sort_anul(){
int i,j;SalonAuto *a,*b;
if(!prim)return 0;
a=prim;
for(i=0;i<n-1;i++){
b=a->next;
for(j=i+1;j<n;j++){
if((a->anul)>(b->anul))schimb(a,b);
b=b->next;
}a=a->next;
}
clrscr();
cout<<"Sortarea datelor s-a efectuat cu
succes";getch();
return 1;
}
int lista::sort_nr(){
int i,j;SalonAuto *a,*b;
if(!prim)return 0;
a=prim;
for(i=0;i<n-1;i++){
b=a->next;
for(j=i+1;j<n;j++){
if((a->nr)>(b->nr))schimb(a,b);
b=b->next;
}a=a->next;
}}
lista::~lista(){
SalonAuto *p,*q;
do{
p=prim;prim=prim->next;delete p;
}while(prim!=NULL);
}
main(){
char c;lista g;
g.creare();
do{
clrscr();
cout<<"Tastati"<<endl<<"1-Afisarea
automobilelor"<<endl<<"2-Excluderea unui
automobil";
cout<<endl<<"3-Inserarea unui nou
automobil"<<endl<<"4-Automobile de
marca Ford";
cout<<endl<<"5-Sortare automobilelor dupa
an"<<endl<<"0-Exit"<<endl;
c=getch(); clrscr();
switch(c){
case '1': g.sort_nr();g.afisare();getch();break;
case '2': g.exclude();break;
case '3': g.inserare();break;
case '4':
g.cauta("Ford_Transit");getch();break;
case '5': g.sort_anul();break;
}
}while(c!='0');
}
REZULTATELE TESTRII
MENIUL
3-INSERAREA
1-AFISAREA
2-EXCLUDEREA
5-SORTAREA(DESCRESCATOR)
CONDITIA PR.VIII
S se construiasc clasa Fracie care reprezint o fracie dat prin numitor i numrtor. Clasa va
conine urmtoarele metode:
a) Constructor;
b) Destructor;
c) Afiarea unei fracii;
d) Simplificarea unei fracii;
e) Suprancrcarea operatorului +(adunare) dintre 2 fracii;
f) Suprancrcarea operatorului -(scdere) dintre o fracie i un numr ntreg;
g) Suprancrcarea operatorului *(produs) dintre un numr ntreg i o fracie;
h) Suprancrcarea operatorului ^(ridicare la putere) dintre un numr ntreg i o fracie;
#include <iostream.h>
#include <math.h>
#include <conio.h>
class fr
{int x,y;
public:
void simpl();
fr();
fr(int){};
~fr(){};
fr operator +(fr);
fr operator -(int n);
friend float operator ^(int,fr);
if (a==0) return b; else return a;}
/////////////////simpl///////////////////////////////
void fr::simpl()
{ int r;
if((x%y)==0) {x=x/y; y=1;} else {
r=cmmdc(x,y);
x/=r;y/=r;
if (x<0 && y<0){x=abs(x);y=abs(y);}}
}
////////////////////putere//////////////////////////////
float operator ^(int n,fr f)
{ float r(21);
r=pow(n,f.x);;
r=pow(r,(1./f.y));
return r;}
///////////////suma//////////////////////////////////////
fr fr :: operator +(fr f)
{fr r(22);
r.x=f.y*x+y*f.x;
r.y=y*f.y;
r.simpl();
return r;
}
////////////////diferenta////////////////////////////////
fr fr:: operator -(int n)
{fr r(23);
r.x=x-y*n;
REZULTATELE TESTRII
List bibliografic
1 Anatol Gremalschi, Iurie Mocanu, Ion Spinei, Informatica, Limbajul C++, manual
pentru clasele IX-XI, Editura tiina 1999.
2 Andrei Braicov, Turbo Pascal, Culegere de probleme, Editura Prut Internaional,
2005.
3 Daniela Saru, Algoritmi i Limbaje de Programare, Editura Didactica i
Pedagogica, R.A. Bucureti, 1998.
4 Cornelia Ivasc, Mona Pruna, Tehnici de Programare, Aplicaii, Editura Petrion
Bucureti 1999.
5 V. Cristea, P. Dumitru, C. Giumale s.a., Dicionar de informatic, Editura tiinific
i Enciclopedic, Bucureti, 1981.
6 T.Sorin, Tehnici de programare, Teora, Bucureti, 1996.
7 K. andor, Turbo PASCAL 6.0. Ghid de utilizare, Editura Microlnformatica, ClujNapoca, 1993.
8 O.Chirchin, Metodica predrii informaticii, Chiinu, Tipogr.UPS Ion Creang,
2004.
9 T.Sorin, Tehnici de programare, Bucureti, Editura Teora, 1996.