kuba17f Napisano Październik 24, 2013 Zgłoś Share Napisano Październik 24, 2013 Witam.Otóż mam pewien problem z programem.Nie wiem dlaczego np. przy podaniu wartości 4 dla x program poprostu się wylącza i wychodzi z programu a np.dla 1 program dziala poprawnie i wykonuje kolejne instrukcje poprawnie,ale dla niektorych liczb błednie wylicza watosc wyrazenia. dla 1,2,3 tok działania poprawny, wyniki poprawne dla 4,5,6 wyłącza program dla 7,8,9 błędnie oblicza wyrażenie Program Untitled; var war,f,x:real; Begin Writeln('Podaj wartosc argumentu x'); Readln(x); war:=cos(x)/exp(1/3*ln(sin(x))); If war>=0 then writeln('podany argument nalezy do dziedziny') else writeln('podany argument nie nalezy do dziedziny'); f:=cos(x)/exp(1/3*ln(sin(x))); Writeln('Wartosc funkcji wynosi ',f:2:2); Readln; End. Treść zadania.Program napisałem narazie bez ctg. http://img577.images...7/2580/fyf9.png Link do komentarza Udostępnij na innych stronach More sharing options...
Jason Napisano Październik 25, 2013 Zgłoś Share Napisano Październik 25, 2013 Nie sprawdzałem dokładnie Twojej implementacji wzoru, ale podejrzewam, że podajesz złe argumenty. Do funkcji sin,cos itd. podaje się wartość w radianach, a nie w stopniach. Napisz sobie funkcję DegToRad. Link do komentarza Udostępnij na innych stronach More sharing options...
kuba17f Napisano Październik 25, 2013 Autor Zgłoś Share Napisano Październik 25, 2013 Nie sprawdzałem dokładnie Twojej implementacji wzoru, ale podejrzewam, że podajesz złe argumenty. Do funkcji sin,cos itd. podaje się wartość w radianach, a nie w stopniach. Napisz sobie funkcję DegToRad. Niestety funkcja DegToRad nie pomogła,chyba że jej źle użyłem mógłbyś napisać coś więcej. Link do komentarza Udostępnij na innych stronach More sharing options...
Jason Napisano Październik 25, 2013 Zgłoś Share Napisano Październik 25, 2013 Mogłeś napisać od razu jak jej użyłeś zamiast kazać mi się domyślać. Zamiast cos(x) powinieneś pisać cos(DegToRad(x)), tak samo z sinusem itd. Jeszcze jak pracujesz na liczbach rzeczywistych, to bezpieczniej jest napisać 1.0/3.0 zamiast 1/3 (co dla liczb całkowitych zawsze daje 0 - więc we wzorze zawsze zerujesz wartość logarytmu). Link do komentarza Udostępnij na innych stronach More sharing options...
kuba17f Napisano Październik 25, 2013 Autor Zgłoś Share Napisano Październik 25, 2013 Dziękuje za pomoc wszystko działa z resztą już sobie poradze.Temat można zamknąć. Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.