[C] Program liczacy podane wyrazenie

gemello
Użytkownik
Użytkownik
Posty: 44
Rejestracja: 5 lis 2010, o 20:59
Płeć: Mężczyzna
Lokalizacja: nowa
Podziękował: 2 razy

[C] Program liczacy podane wyrazenie

Post autor: gemello »

Witam , mam na zadanie napisać program liczący podane wyrażenie. Oto podane wartości

Kod: Zaznacz cały

 a=4,5; b=-3; c=12,3; k=2; d=5,427; p=9100; x=3 
wyrażenie to \(\displaystyle{ y=\left| \frac{3x^2-lgc^3}{cosb^3-2tg^2d} \right| + \frac{ \alpha +b+ \sqrt{d} }{cp(k,p)}pi}\)

Na początek wczytałem te wszystkie zmienne intem, a nastepnie chciałem od razu wpisać wyrażenie do programu, aby otrzymać wynik, ale cos nie wychodzi bo program się nie kompiluje, a wyniku nie ukazuje. Dodam, że liczyłem w excelu i wynik to cos okolo 2,66 z moich obliczen.. Z góry dziękuje za udzielone podpowiedzi

jbc ALFA wynosi równiez tyle co a czyli 4,5
wawek91
Użytkownik
Użytkownik
Posty: 795
Rejestracja: 2 cze 2010, o 08:56
Płeć: Mężczyzna
Lokalizacja: Tarnów
Podziękował: 14 razy
Pomógł: 66 razy

[C] Program liczacy podane wyrazenie

Post autor: wawek91 »

Pokaż jakie błędy wyrzuca Twój program i poczytaj o bibliotece cmath tam znajdziesz potrzebne dla Ciebie funkcje.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C] Program liczacy podane wyrazenie

Post autor: Afish »

wawek91 pisze:bibliotece cmath
Raczej o math.h (w temacie jest język C).
Xitami

[C] Program liczacy podane wyrazenie

Post autor: Xitami »

Kod: Zaznacz cały

int binomial(int a, int b){ return a*(a-1)/2; } // sciema :-) 

main(){
	double a=4.5, b=-3, c=12.3, d=5.427, x=3, Pi=3.141592653589793238462643383, y;
	int p=9100, k=2;
	y=fabs((3*x*x-3*log(c))/(cos(b*b*b)-2*tan(d)*tan(d)))+(a+b+sqrt(d))/binomial(p,k)*Pi;
	printf("%0.16f
", y);
}
wynik

Kod: Zaznacz cały

6.6020453957216656
gemello
Użytkownik
Użytkownik
Posty: 44
Rejestracja: 5 lis 2010, o 20:59
Płeć: Mężczyzna
Lokalizacja: nowa
Podziękował: 2 razy

[C] Program liczacy podane wyrazenie

Post autor: gemello »

Mam jeszcze takie wyrażenie wyszło mi 152,9288 , możesz sprawdzić mi ten wynik w [C] i ewentualnie umieścić Twoje rozwiązanie.

\(\displaystyle{ \left\{\begin{array}{l} \beta \cdot cos^2x+ \alpha \\c+ \sqrt{d}+k+p \\e^2+x \end{array}}\)


\(\displaystyle{ c \le x \le p}\)
\(\displaystyle{ x<c}\)
\(\displaystyle{ y \ w reszcie \ przypadków}\)

Kod: Zaznacz cały

DANE TO  a=6,7;  b=-4   ;   c= 15,6   ;  k=3   ;   d=5,4234     p=132 ;   x=1,12 ;
Xitami

[C] Program liczacy podane wyrazenie

Post autor: Xitami »

szkoda, że nie rozumiem
gemello
Użytkownik
Użytkownik
Posty: 44
Rejestracja: 5 lis 2010, o 20:59
Płeć: Mężczyzna
Lokalizacja: nowa
Podziękował: 2 razy

[C] Program liczacy podane wyrazenie

Post autor: gemello »

W tym układzie najpierw podstawia się podane dane, które podałem wyżej i otrzymujesz 3 rozwiązania u mnie są to \(\displaystyle{ \beta \cdot cos^2x+ \alpha =5,940723224}\) następnie \(\displaystyle{ c+ \sqrt{d}+k+p=152,9288194}\) i w ostatnim wypadku\(\displaystyle{ e^2+x = 8,509056099}\) i teraz głowne załozenie jest to aby sprawdzić tą formułę logiczną podstawiając c <= x <= p
x < c , y w reszcie przypadków. Jeśli formuła logiczna jest prawdziwa zwraca wynik którykolwiek z tych 3 rozwiązań mi zwróciło 152,9288194. Nie wiem zbytnio jak zabrać się aby zaprogramować to w C może masz jakichś pomysł?

-- 2 lis 2011, o 12:05 --

UP: ktoś pomoże, bo wczoraj całą noc nad tym siedziałem i próbowałem coś tam w [C] wygrzmotać, ale wyniku mi nie potwierdza jak w EXCELU, ma ktoś jakiś pomysł... jak ktoś coś wymyśli to na prawde pomoże, bo kiepsko czuję się w tym języku [C] a muszę coś napisać.-- 2 lis 2011, o 12:53 --Dokładna treść może pomoże.

ODPOWIEDZ