C nyelven hogyan kell négyzetgyököt vonni?
Valahogy így:
#include <math.h>
#include <stdio.h>
void main()
{
printf ("\nA szám: %f\n\n",5);
printf ("\nNégyzetgyöke: %f\n\n",sqrt(5));
}
sqrt() függvény visszaadja egy szám négyzetgyökét.
Tehát például, ha sqrt(9)-et kiíratsz, 3-at fog kiírni.
A használata előtt a programod elejére:
#include <math.h>
Erre a legjobb talán a Newton-módszer (ha ismered).
Ha nem, van egy felezgetős módszer is amivel függvényeket lehet közelíteni.
Az elv:
Veszel két pontot, ami közé eshet az adott érték (gyök(x) jelenleg). Ez gyöknél biztos, hogy 1 és x között van (x a szám). Tehát a=1, b=1;
Majd veszed a 2 szám átlagát, és visszahelyettesíted a függvénybe (vagyis négyzetre emelsz ebben az esetben). Teszem azt:
gyök(5)-öt akarunk:
a=1; b=5;
c=(a+b)/2, tehát c==2.5;
2,5 négyzete 7,25.
Ezt levonod x-ből (ami most 5).
Ha kisebb, mint nulla, akkor b=c (2.5), tehát a felső határt módosítod, ha nagyobb akkor a=c (2.5), tehát az alsó határt állítód be c-re. Ha egyenlő, akkor kész.
Ezt megcsinálod ciklusban amíg nem egyenlő, vagy egy jó darabig (van, ami sosem lesz egyenlő).
(Remélem ennyiből érthető, ha kell kód, vagy valami kellene bővebben, abban is segíthetek.)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!