Wylliczanie wzoru podanego przez użytkownika

Odpowiedz Nowy wątek
2006-12-11 00:30
0

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?? [???]


Nobody is perfect but I'm pretty fucking close;)

Pozostało 580 znaków

2006-12-11 01:37
0

w gotowcach masz kod


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2006-12-11 18:03
0

hmmm... przejzalem jeszcze raz gotowce i nic takiego niewidze :/ moglbys mi podac linka?


Nobody is perfect but I'm pretty fucking close;)

Pozostało 580 znaków

2006-12-11 18:52
0

słabo szukałeś - Kalkulator bez ONP i jeszcze Prosty kalkulator


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2006-12-11 19:02
0

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...


Nobody is perfect but I'm pretty fucking close;)

Pozostało 580 znaków

2006-12-11 19:43
0

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ć


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2006-12-11 19:57
0

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 pozatym to nie lubie wywarzac otwartych drzwi i dlatego szukam gotowej funkcji, albo bibliotek w ktorych moge ja znalesc [green]


Nobody is perfect but I'm pretty fucking close;)

Pozostało 580 znaków

2006-12-11 20:14
0

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)


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2006-12-11 23:03
0
el_wodzu napisał(a)

pozatym to nie lubie wywarzac otwartych drzwi i dlatego szukam gotowej funkcji, albo bibliotek w ktorych moge ja znalesc

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 :)


Mam nadzieję, że pomogłem :)

Łukasz Brodny

Pozostało 580 znaków

2006-12-13 14:47
0

Nieno az tak w skrajnosci niepopadam :-) ale zawsze mozna poszukac szczypty wiedzy u bardziej doswiadczonych [green]

Dzieki za podpowiedz z biblioteka :)


Nobody is perfect but I'm pretty fucking close;)

Pozostało 580 znaków

2006-12-14 06:24
cx3
0

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</sup>(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>

C++ ftw!

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0