Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
po:lab5 [2018/10/29 03:10]
pszwed [Wyrażenia matematyczne]
po:lab5 [2019/11/05 11:22] (current)
pszwed [Implementujemy klasy]
Line 1: Line 1:
 ====== Wyrażenia matematyczne ====== ====== Wyrażenia matematyczne ======
  
-Podczas laboratorium zaimplementujemy kilka klas pozwalających na reprezentację prostych wyrażeń matematycznych (funkcji jednej lub kilku zmiennych) w pamięci+Podczas laboratorium zaimplementujemy kilka klas pozwalających na reprezentację prostych wyrażeń matematycznych (funkcji jednej lub kilku zmiennych) jako grafów.  
 +Podobna reprezentacja jest rdzeniem funkcji oferowanych na przykład przez [[https://live.sympy.org/]] lub [[https://www.derivative-calculator.net/]]. Nie będziemy jednak "parsowali" wyrażeń, czyli budowali grafowej reprezentacji na podstawie specyfikacji tekstowej. Zamiast tego, wyrażenia będą budowane za pomocą odpowiednio skonstruowanego kodu. 
 Założona funkcjonalność: Założona funkcjonalność:
   *budowa wyrażeń   *budowa wyrażeń
Line 8: Line 10:
   *symboliczne obliczanie pochodnych [opcjonalnie]   *symboliczne obliczanie pochodnych [opcjonalnie]
  
-Podobna reprezentacja jest rdzeniem funkcji oferowanych na przykład przez [[https://live.sympy.org/]] lub [[https://www.derivative-calculator.net/]]. Nie będziemy jednak "parsowali" wyrażeń, czyli budowali grafowej reprezentacji na podstawie specyfikacji tekstowej. Zamiast tego, wyrażenia będą budowane za pomocą odpowiednio skonstruowanego kodu. 
  
 ===== Jakie klasy będą potrzebne ===== ===== Jakie klasy będą potrzebne =====
Line 96: Line 97:
  
     @Override     @Override
 +    public String toString() {
         String sgn=sign<0?"-":"";         String sgn=sign<0?"-":"";
 //        return sgn+Double.toString(value); //        return sgn+Double.toString(value);
         DecimalFormat format = new DecimalFormat("0.#####",new DecimalFormatSymbols(Locale.US));         DecimalFormat format = new DecimalFormat("0.#####",new DecimalFormatSymbols(Locale.US));
         return sgn+format.format(value);         return sgn+format.format(value);
 +    }
 } }
  
Line 124: Line 126:
     @Override     @Override
     double evaluate() {     double evaluate() {
-        return value;+         return sign*value;
     }     }
  
Line 373: Line 375:
 ===== Symboliczne obliczanie pochodnych ===== ===== Symboliczne obliczanie pochodnych =====
  
-**Zadanie do realizacji w domu przez zainteresowanych.** Za zadanie można otrzymać punkty dodatkowe. Raczej dużo punktów :-D, ponieważ na pewno zajmie kilka godzin...+**Zadanie do realizacji w domu.** 
  
  
Line 549: Line 551:
 ==== Dodaj rozszerzenia i optymalizacje ==== ==== Dodaj rozszerzenia i optymalizacje ====
  
-**Pomijaj przy sumowaniu wyrażenia zerowe** Przed utworzeniem węzłów ''Sum'' i ''Prod'' umieść wyrażenia na liście+**Pomijaj przy sumowaniu wyrażenia zerowe** Przed utworzeniem węzłów ''Sum'' i ''Prod'' umieść wyrażenia na listach
   *Jeżeli lista jest pusta, zwróć ''new Constant(0)''   *Jeżeli lista jest pusta, zwróć ''new Constant(0)''
   *Jeżeli lista zawiera jeden element, po prostu zwróć go   *Jeżeli lista zawiera jeden element, po prostu zwróć go
po/lab5.1540779053.txt.gz · Last modified: 2018/10/29 03:10 by pszwed
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0