Sunteți pe pagina 1din 2

Laborator 7.

Înregistrări

Aplicatie. Gestiunea unui polinom prin monoame

#include<iostream>
using namespace std;
#define dim 30

struct termen {
int grad;
int coef;
};

struct polinom {
int count;
termen data[dim];
};

//citirea unui termen (monom), adica perechea grad-coeficient


termen citire()
{
termen t;
cout << "\tintroduceti un termen:\n";
do {
cout << "\t\tgradul= ";
cin >> t.grad;
} while (t.grad < 0);
cout << "\t\tcoeficientul= ";
cin >> t.coef;
return t;
}

//se construieste polinomul prin adaugarea de termeni


polinom constructie(termen t[], int n)
{
polinom p;
p.count = n;
int k = 0;
t[0] = citire();
p.data[0] = t[0];
for (int i = 1; i < p.count; i++)
{
t[i] = citire();
for(int j=0;j<i;j++)
if (t[i].grad == t[j].grad)
do{
cout << "\t\t!!!gradul "<< t[i].grad <<" a mai fost citit\
n";
t[i] = citire();
} while (t[i].grad == t[j].grad);
p.data[i] = t[i];
}
return p;
}

//a doua parte a constructiei, si anume, cea de aranjare in forma canonica dupa grade
polinom constructie_2(polinom p)
{
termen aux;
for (int i = 0; i < p.count - 1; i++)
for (int j = i + 1; j < p.count; j++)
if (p.data[i].grad > p.data[j].grad)
{
aux = p.data[i];

1
Laborator 7. Înregistrări

p.data[i] = p.data[j];
p.data[j] = aux;
}
return p;
}

//afisarea unui polinom


void afisare(polinom p)
{
cout << "Polinomul este: ";
for (int i = p.count - 1; i >= 0; i--)
cout << '(' << p.data[i].grad << ',' << p.data[i].coef << ") ";
cout << '\n';
}

//functia principala in executie


int main()
{
int n;
polinom p;

//citire
do {
cout << "Dati numarul de elemente din polinom: ";
cin >> n;
} while (n <= 0 || n > dim);
termen* t = new termen[n];
cout << "Dati elementele polinomului:\n";
p = constructie_2(constructie(t, n));

//afisare
afisare(p);

system("pause");
return 0;
}

Se cer urmatoarele:

- Modificarea constructiei polinomului, ai utilizatorul sa poata introduce orice doreste, dupa


care, termenii cu acelasi grad sunt adunati prin coeficientii lor, fiecare adunare scazand
numarul de elemente din polinom cu cate 1. De exemplu, se citeste numarul de elemente ca
fiind 3, elementele fiind (3,2), (2,6), (3,9), polinomul devine un sir de 2 perechi, cu continutul
(3,11), (2,6)
- Functie pentru adunarea unui polinom cu un termen (monom) dat in linia de parametri a
functiei
- Functie pentru inmultirea unui polinom cu un termen (monom)
- Valoarea unui polinom intr-un punct
- Adunarea a doua polinoame
- Inmultirea a doua polinoame.

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