2012 kulonfeladat1

A MathWikiből
(Változatok közti eltérés)
a
(Különfeladat: Polinomok tömbök segítségével - fordítva)
41. sor: 41. sor:
 
</C>
 
</C>
 
Például a fent megadott p1 polinom és <code>x=-1.0</code> esetén a  
 
Például a fent megadott p1 polinom és <code>x=-1.0</code> esetén a  
<code>poli_ertek(p1, x)</code> függvényhívás <code>18.0</code>-át ad vissza. E függvényben használjuk a fokszámot megadó függvényt.
+
<code>poli_ertek(p1, x)</code> függvényhívás <code>18.0</code>-át ad vissza.
  
 
A main függvényben az alábbi polinomokat definiáljuk, majd mindegyiknek
 
A main függvényben az alábbi polinomokat definiáljuk, majd mindegyiknek

A lap 2012. március 22., 09:42-kori változata

Különfeladat: Polinomok tömbök segítségével - fordítva

Írjunk programot, mely kiszámolja egy legföljebb 5-ödfokú polinom fokát és helyettesítési értékét! A polinomokat egyszerűen együtthatóinak tömbjeként kezeljük, például a p1(x) = 2x4 + x3 − 5x + 12 polinomot egy olyan p1 nevű tömbbel adhatjuk meg, melynek elemei: p1[0]=0, p1[1]=2, p1[2]=1, p1[3]=0, p1[4]=-5, p1[5]=12.

Írjunk két függvényt a main()-en kívül:

1. Az egyik függvény legyen az, amely megállapítja, és értékként visszaadja egy polinom fokát! Ennek deklarációja lehet például a következő:

int fok(float polinom[]);

hívása például fok( p1 ), ahol p1 egy már definiált polinom. Az algoritmus egyszerűen keresse meg a legkisebb indexű nemnulla értéket a polinomot megadó tömbben. Az azonosan nulla polinom fokát mínusz végtelennek szokás definiálni, de ekkor e függvény adjon vissza -1-et! E függvényhez el kell tudnunk dönteni, hogy egy lebegőpontosan ábrázolt szám egyenlő-e nullával. A számábrázolás pontatlansága miatt az (a == 0.0) feltétel nem lesz jó, ezért egy számról akkor fogjuk azt mondani, hogy 0, ha valamely előre megadott EPSILON értéknél abszolút értékben kisebb. Lehet például EPSILON = 1e-10, vagyis 10 − 10. Használjuk az alábbi kódot (vagy helyettesítsük egy jobbal):

int kbNulla(float a) {
    float EPSILON = 1e-10;
    if (a < EPSILON && a > -EPSILON)
        return 1;
    return 0;
}

2. Írjunk egy függvényt, mely kiszámolja egy polinom értékét egy megadott helyen!

float poli_ertek(float polinom[], float x);

Például a fent megadott p1 polinom és x=-1.0 esetén a poli_ertek(p1, x) függvényhívás 18.0-át ad vissza.

A main függvényben az alábbi polinomokat definiáljuk, majd mindegyiknek írjuk ki a fokát és a helyettesítési értékét az x = 1.2 helyen!

int main(void) {
    float p1[MAX_POL]={0,1,0,0,0,0};
    float p2[MAX_POL]={1,0,0,0,0,1};
    float p4[MAX_POL]={0,-1,0,2,0,-10};
}

A két függvény és a kbNulla függvény mindegyikét a main előtt deklaráljuk, és a main után definiáljuk!

Személyes eszközök