BME féléves házi számtek 1-ből, C nyelv, tudnátok segíteni? A többi lent.
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!
Mi a kérdés?
Vagy te most azt várod, hogy majd valaki megcsinálja helyetted?
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;
}
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.
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!