Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
#include <cmath>
using namespace std;
float a,b,c,d,ERR,MIN,MAGG,INCR,S,Pmin,Pmagg,Pk,k,r,val_sep;
int main () {
if(d==0) {
cout << "0 è uno zero del polinomio dato, poiche con d=0,
P(0)=0.\n"; }
else{
MIN=-1000; //Inizializzazione delle variabili
MAGG=-1000;
INCR=0.1;
S=0;
do{ //Ciclo di separazione
MAGG=MAGG+INCR;
if(MAGG<=1000) {
Pmin=a*MIN*MIN*MIN+b*MIN*MIN+c*MIN+d;
Pmagg=a*MAGG*MAGG*MAGG+b*MAGG*MAGG+c*MAG
G+d;
if(fabs(Pmagg)<=ERR) {
val_sep=MAGG;
cout << val_sep << " è uno zero de
l polinomio dato.\n";
S=2; }
}
else{
S=1; }
}while(Pmin*Pmagg>0 && S==0);
if(S==0) {
do{ //Ciclo di bisezione
k=(MIN+MAGG)/2;
Pk=a*k*k*k+b*k*k+c*k+d;
if(Pk*Pmin>0) {
MIN=k; }
else {
MAGG=k; }
}while(fabs(Pk)>=ERR);
cout << k << " è lo zero approssimato a meno dell'
errore. \n"; }
else {
if(S==1) {
cout << "Nessuno zero del polinomio dato
è presente nel range di ricerca -1000 = x = 1000. \n"; }
}
}
cout << "Vuole riutilizzare il programma? Sei sì, digiti 1, altrim
enti 0: ";
cin >> r;
if(r!=1) {
cout << "Arrivederci!"; }
}while(r==1);
}