 |
www.mechanikaput.fora.pl forum studentów mechaniki i budowy maszyn na Politechnice Poznańskliej
|
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
nikoset
Dołączył: 03 Lis 2009
Posty: 243
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Nie 16:05, 26 Maj 2013 Temat postu: Program 3 help |
|
|
Tak wygląda mój program: [link widoczny dla zalogowanych]
Przy odpowiedzi dodał mi gwiazdkę przy a w wyrażeniu: float (*fun2)(float a)
Czy ktoś mógłby mi z tym pomóc? Nie mam za grosz pomysłu jak to rozwiązać.
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
|
 |
Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
chkrystek
Dołączył: 13 Mar 2013
Posty: 6
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Pią 8:43, 31 Maj 2013 Temat postu: ten sam problem |
|
|
"Mój" program wygląda tak. Gwiazdka dodana jest przy funkcji y=funkcja(*x0)
Jak by ktoś mądrzejszy ode mnie mógł na to zerknąć bo już mi ręce opadaja...
//Program miejsca zerowe
#include <conio.h>
#include <stdio.h>
#include <math.h>
float miejscezerowe (float x0, float eps,float (*fun1)(float x),float (*fun2)(float x));
float funkcja(float f)
{
return (pow(f,2))-1;
}
float pochodna(float p)
{
return (2*p);
}
int main()
{
float x1,x0,eps,x;
printf("*****************************************************\n");
printf("Program obliczajacy miejsca zerowe funkcji y=x^2-1\n");
printf("*****************************************************\n\n");
printf ("Podaj przyblizenie poczatkowe x0:\n");
scanf ("%f", &x0);
printf ("Podaj dokladnosc wyznaczenia miejsca zerowego eps:\n");
scanf ("%f", &eps);
x1=miejscezerowe(x0,eps,funkcja,pochodna);
if(x1==0)
{
printf("Brak miejsc zerowych lub miejsce zerowe wynosi 0\n");
}
else
{
printf("\nWyznaczono miejsce zerowe funkcji, x1 wynosi:\n%f\n",x1);
}
getch();
return 0;
}
float miejscezerowe (float x0, float eps,float (*fun1)(float x),float (*fun2)(float x))
{
if (eps>=1)
{
printf ("Gdy dokladnosc jest wieksza lub rowna jednosci mamy blad matematyczny\n");
return 0;
}
float y,z,x1;
int i;
i=0;
for(;
{
if (i==1000)
{
printf("Liczba iteracji przekroczyla 1000, program zakonczyl dzialanie\n");
return 0;
}
y=funkcja(*x0);
z=pochodna(x0);
if (z==0)
{
return 0;
}
x1=x0-(y/z);
if (fabs(x1-x0)>eps)
{
x0=x1;
i++;
}
else break;
}
return x1;
}
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach
|
fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB © 2001, 2005 phpBB Group
|