Witam,
Jestem dosc poczatkujacy jesli chodzi o programowanie w Delphi i z tad wynika moj problem. Mianowicie potrzebuje by program byl w stanie zinterpretowac wzor matematyczny(wliczajac w to warunek(if) oraz minimum) podawany przez uzytkownika. Wiem, ze w Clipper'ze byla funkcja "&()" (ampersand) dzieki ktorej bylem w stanie cos takiego wykombinowac :-) Czy jest cos takiego w Delphi 2005?? [???]
w gotowcach masz kod
hmmm... przejzalem jeszcze raz gotowce i nic takiego niewidze :/ moglbys mi podac linka?
słabo szukałeś - Kalkulator bez ONP i jeszcze Prosty kalkulator
heh... widze ze niezrozumiales o co pytalem... wiem co to kalkulator :-) i wiem jak go napisac, ale mi nie chodzi o napisanie kalkulatora tylko o dotarcie do funkcji ktora to policzy. A w tym wszystkim najwazniejsze, by tak jak ampersand funkcja ta interpretowala warunek if oraz min i max...
rozumiem, że chodzi Ci o coś takiego
wynik := NieznanaISzukanaPrzezCiebieFunkcja('2+3-5*(2+4)');
i w zmiennej wynik będziesz miał 35. Oprócz podstawowych działań chcesz jeszcze if. Jeśli dobrzę to rozumiem to Kalkulator_bez_ONP czy Prosty_kalkulator jest jak najbardziej tym, czego szukasz tylko trzeba if dodać
wiesz.... teoretycznie tak... ale sam ten "prosty kalkulator" jest troche zlozony a jak jeszcze do tego dorzuce if, min, max to sie z tego cos bardzo nieprzyjemnego zrobi :| a zlozonosc programu rosnie :/ Tak poza tym to nie lubie wywarzac otwartych drzwi i dlatego szukam gotowej funkcji, albo bibliotek w ktorych moge ja znaleŹĆ [green]
gotowych w sensie wbudowanych w delphi nie ma
co do bibliotek to w JEDI jest ale nie wiem czy ma max, min i if i chyba w RXach też był kiedyś (tyle, że chyba RXy wchłonąłeo JEDI)
el_wodzu napisał(a)
poza tym to nie lubie wywarzac otwartych drzwi i dlatego szukam gotowej funkcji, albo bibliotek w ktorych moge ja znaleŹĆ
Sugeruję zacząć lubić to wyważanie, bo nigdy wszystkiego nie znajdziesz, zresztą czasem trzeba napisać po swojemu. A idąc Twoim tokiem myślenia można powiedzieć, że wszystko, co było do napisania, zostało napisane - pozostaje posklejać to w całość.
Misiekd napisał(a)
tyle, że chyba RXy wchłonąłeo JEDI
Też mi się tak wydaje :)
Nieno az tak w skrajnosci niepopadam :-) ale zawsze mozna poszukac szczypty wiedzy u bardziej doswiadczonych [green]
Dzieki za podpowiedz z biblioteka :)
Sam nie dawno potrzebowałem coś takiego, i zrobiłem to w taki sposób.
Mamy wielomian W(x) i chcemy policzyc jego wartość dla x.
W(x) przedstawia sie zworem: W(x)=A.n * Xn + A.(n-1) * X(n-1) + A.(n-2) * X^(n-2) +...+ A.1 * X + A.0 . Deklarujemy zmienną tablicową, w: array of real, wtedy niech wartosci tej zmiennej to wspolczynniki A.m, a jej indeks to potega, czyli m. Wtedy: w[potega]=a.m.
Function Potega(liczba:real;wykladnik:byte):real
var
licznik : byte;
wartosc : real;
Begin
if liczba=0 then
begin
result:=0;
exit;
end;
if wykladnik=0 then
begin
result:=1;
exit;
end;
if wykladnik<0 then
exit;
wartosc:=1;
For licznik:=wykladnik downto 1 do {chyba jeden, nie wiem bo pisze z glowy}
wartosc:=wartosc*liczba;
result:=wartosc;
End;
Function ObliczWartosc(w:array of real;w_st:byte;argument:real):real;
var
i : integer;
wartosc : real;
Begin
wartosc:=0;
For i:=w_st downto 0 do
wartosc:=wartosc+w[i]*potega(argument,i);
Result:=wartosc;
End;
To chyba tyle... Potęgę można zastąpić wzorem rekurencyjnym, ale go nie lubie :)
</delphi>
witam, mam pytanie czy ktos wie jak napisac ten program w pascalu żeby obliczal ln, arccin itp i
od czego to w ogóle zacząc pisać
prosze o jakeis wskazówki
a kolega czytać umie, wie co to link i do czego służy :>