Kezdőoldal » Számítástechnika » Programozás » BME féléves házi számtek...

BME féléves házi számtek 1-ből, C nyelv, tudnátok segíteni? A többi lent.

Figyelt kérdés

A feladat: "Írjon függvényt, amely három különböző változtatható paraméterű függvény esetében képes meghatározni annak zérushelyeit."


HÉTFŐI HATÁRIDŐ!


Félreértések elkerülése végett: egy függvényt kellene megvizsgálni, amiben 3 különböző változtatható paraméter van.


Húrmódszer: [link]


Előre is köszönöm a válaszokat!



2013. dec. 12. 18:47
 1/6 anonim ***** válasza:

Mi a kérdés?

Vagy te most azt várod, hogy majd valaki megcsinálja helyetted?

2013. dec. 12. 18:59
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:

Ez így jó?


#include <stdio.h>

#include <math.h>

int a, b, c;

double szin(double x)

{

return a*sin(b*x)+c;

}


double kosz(double x)

{

return a*cos(b*x)+c;

}


double tan(double x)

{

return a*(sin(b*x)/cos(b*x))+c;

}


double Szelomodszer_szin(double xn_1, double xn, double e, int m)

{

int n;

double d;

for (n = 1; n <= m; n++)

{

d = (xn - xn_1) / (szin(xn) - szin(xn_1)) * szin(xn);

if (fabs(d) < e)

return xn;

xn_1 = xn;

xn = xn - d;

}

return xn;

}

double Szelomodszer_kosz(double xn_1, double xn, double e, int m)

{

int n;

double d;

for (n = 1; n <= m; n++)

{

d = (xn - xn_1) / (kosz(xn) - kosz(xn_1)) * kosz(xn);

if (fabs(d) < e)

return xn;

xn_1 = xn;

xn = xn - d;

}

return xn;

}


double Szelomodszer_tan(double xn_1, double xn, double e, int m)

{

int n;

double d;

for (n = 1; n <= m; n++)

{

d = (xn - xn_1) / (tan(xn) - tan(xn_1)) * tan(xn);

if (fabs(d) < e)

return xn;

xn_1 = xn;

xn = xn - d;

}

return xn;

}


int main(void)

{

int v;

printf("Adja meg az elemezni kivant fuggvenyt!");

scanf("%d", &v);


printf("Adja meg az 'a' parameter erteket!");

scanf("%d", &a);


printf("Adja meg 'b' parameter erteket!");

scanf("%d", &b);


printf("Adja meg 'c' parameter erteket!");

scanf("%d", &c);


if (v==1)

{

double x;

szin(x);

printf("%0.15f\n", Szelomodszer_szin(0, 1, 5E-11, 100));

}

if (v==2)

{

double x;

kosz(x);

printf("%0.15f\n", Szelomodszer_kosz(0, 1, 5E-11, 100));

}

if (v==3)

{

double x;

tan(x);

printf("%0.15f\n", Szelomodszer_tan(0, 1, 5E-11, 100));

}

scanf("%d", v);

return 0;

}

2013. dec. 12. 19:04
 3/6 anonim ***** válasza:
KJK....:D
2013. dec. 13. 15:16
Hasznos számodra ez a válasz?
 4/6 SimkoL ***** válasza:

Ez így jó?

Nem !

2013. dec. 13. 16:44
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:
Ez egy közelítő módszer, tehát vagy ciklust, vagy rekurzív hívást kell használnod, amíg elég kicsi nem lesz a hiba.
2013. dec. 13. 19:56
Hasznos számodra ez a válasz?
 6/6 SimkoL ***** válasza:

A matematikához nem értek :), de a programodban x soha nem kap értéket és ez még csak az első hiba.

'printf("Adja meg az elemezni kivant fuggvenyt!"); ' Miből lehet választani ?

Kettőnél több esetnél már inkább switch.. case ..

Az első három fgv teljesen felesleges, főleg globális változókat is belevettél.

Egyetlen fgv-el is megolható az egész mivel a képlet a számítási mód ugyanaz csak a sin, coc és tang cserélődnek,

tehát még egy paraméter és megvan :)

Hirtelen ennyi, összességében az egész egy nagy ... semmi, de ez csak egy falusi paraszt véleménye :) akinek még diplomája sincs.

2013. dec. 13. 20:44
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!