online: 4; azi: 889; total: 52895 Manual clasa a xi a - Tehnici de programare - Divide et impera

Manual clasa a Xi a

Tehnici de programare

Divide et impera

Să se calculeze radicalul de ordinul 2 din numărul a, cu o aproximaţie de 4 zecimale fără a folosi funcţia matematică de sistem s q rt (). Să se compare rezultatul obținut cu rezultatul furnizat de funcţia matematică de sistem. Indicaţie . Pornind de la ecuati : x2-a=0, se va identifica intervalul în care se găseşte soluția şi apoi se va localiza, cu o precizie de 4 zecimale, rădăcina reală din acest interval.
Pentru a calcula radicalul de ordinul 2 din numărul a cu o aproximaţie de 4 zecimale fără a folosi funcţia matematică de sistem sqrt (), putem folosi o metodă de căutare binară pentru a găsi soluția ecuației x^2 - a = 0. Mai precis, putem porni de la un interval inițial [0, a], să calculăm mijlocul intervalului și să verificăm dacă mijlocul ridicat la pătrat se apropie suficient de mult de a. Dacă da, atunci putem returna mijlocul ca rezultat al aproximării rădăcinii pătrate a lui a. Dacă nu, atunci putem ajusta intervalul în funcție de cum se compară valoarea calculată a mijlocului ridicat la pătrat cu a și să reluăm procesul de căutare.
# include < iostream >
# include < math.h >
using namespace std ;
double squareRoot ( double a) {
if (a < 0 ) {
return -1 ;
}
if (a == 0 ) {
return 0 ;
}
double low = 0 ;
double high = a;
double mid = ( low + high ) / 2 ;
while ( high - low > 0.0001 ) {
if ( mid * mid < a) {
low = mid ;
} else {
high = mid ;
}
mid = ( low + high ) / 2 ;
}
return mid ;
}
int main () {
double a;
cout << " Introduceti numarul a pentru care sa se calculeze radicalul de ordinul 2: " ;
cin >> a;
double approxRoot = squareRoot (a);
double actualRoot = sqrt (a);
cout << "Aproximarea radicalului de ordinul 2 al lui " << a << " este: " << approxRoot << endl ;
cout << "Valoarea reala a radicalului de ordinul 2 al lui " << a << " este: " << actualRoot << endl ;
return 0 ;
}

Algoritmul implementat aici folosește o metodă de căutare binară pentru a se apropia de soluția ecuației x^2 - a = 0, astfel încât diferența dintre valoarea aproximată a rădăcinii și valoarea reală a rădăcinii să fie mai mică decât 0,0001.