Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- void afisareEroare(float stanga, float dreapta);
- int main() {
- float stanga, dreapta;
- cout << "Introduceti limita interval stanga: ";
- cin >> stanga;
- cout << "Introduceti limita interval dreapta: ";
- cin >> dreapta;
- afisareEroare(stanga, dreapta);
- return 0;
- }
- void afisareEroare(float stanga, float dreapta) {
- // cauta un punct in stanga unde f(left) < 0
- // cauta un punct in dreapta unde f(right) > 0
- // gaseste mijlocul intervalului [left, right]
- // calculeaza value = f(middle)
- // if value ii apropiata de 0 => felicitari done!
- // altfel daca valoare < 0 atunci mijlocul devine stanga
- // altfel daca valoarea ii > 0 atunci mijloc devine dreapta
- while(stanga <= dreapta) {
- float mijloc = stanga + (dreapta - stanga) / 2.0;
- float valoare = pow(mijloc, 3) + (mijloc * 3) + 1;
- float marjaEroare = 0.0000001;
- cout << "stanga: " << stanga <<"; dreapta: " << dreapta << "; valoare = " << valoare <<" si mijloc = " << mijloc << endl;
- // Solutia este mijlocul
- if ((valoare < marjaEroare) && (valoare > 0)) {
- cout << "\n\nSolutie:" << mijloc << endl;
- break;
- } else if (valoare < 0) {
- stanga= mijloc;
- } else {
- dreapta = mijloc;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment