Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]kalkulator naukowy
Forum PHP.pl > Forum > PHP
dutagamo
Witam

Chcę zrobić kalkulator w którym za pomocą przycisków będę mógł wykonywać różne działania... od razu móię że nie chodzi mi o przyciski typu radio ani nic w tym stylu... chodzi mi o przyciski które można stworzyć graficznie... czy będzie możliwość by takie coś zrobić? i jak zrobić aby po przyciśnięciu w taki przycisk dana cyfra mogła pojawiać się w polu tekstowym??
Crozin
Jeżeli chcesz w PHP to po prostu niech każdy przycisk będzie linkiem czy też przyciskiem wysyłającym formularz. W sesji możesz zapisywać sobie już wciśnięte przyciski.
kamil4u
W PHP jest nie powinno się robić kalkulatora, ale się da: http://forum.webhelp.pl/viewtopic.php?high...or&t=201509
Proponuję napisać to w JavaScript-cie, co do przycisków, to jak poznasz JS, to możesz wykorzystać normalne obrazki lub pobawić się <input type="image">
dutagamo
No ale o to chodzi że muszę to napisać w PHP więc prosiłbym o pomoc w tej kwestii
Crozin
No to już Ci napisałem jak można to zrobić... teraz z czym masz dokładnie problem (jeżeli w ogóle masz)?
dutagamo
W nawiązaniu do linka od kamil4u

Mógłby ktoś mniej więcej objaśnić kod który gościu tam zawarł bo jakoś tak napisane jest to dla mnie w dość niezrozumiały sposób

Sorki za podwójny post ale mam pytanie:
Chcę zrobić takie coś:
1) wprowadzić z poziomu formularza dwie liczby (cyfry)
2) kliknąć w przycisk inicjujący np. mnożenie
3) w kolejnym polu tekstowym chciałbym aby się pojawił wynik

Jak dokonać takiego faktu w PHP?
Darti
Zrób sobie plik kalkulator.php a do środka wklej normanego javascript z kalkulatorem -> to też będzie php bo się interpreter włączy biggrin.gif
dutagamo
ty nie rozumiesz jednej kwestii... to jest projekt z php a nie javyscript

Cytat(Darti @ 11.01.2010, 18:10:09 ) *
Zrób sobie plik kalkulator.php a do środka wklej normanego javascript z kalkulatorem -> to też będzie php bo się interpreter włączy biggrin.gif

EE nie kumam... blinksmiley.gif
Darti
Cytat(dutagamo @ 11.01.2010, 19:12:29 ) *
ty nie rozumiesz jednej kwestii... to jest projekt z php a nie javyscript


EE nie kumam... blinksmiley.gif


To, że koledzy Ci dobrze podpowiadają że javascript będzie zdecydowanie lepszy do tego.
Ale prawdopodobnie wykładowcy chodzi o BC Math
PHP jest realizowane o stronie serwera i działa tak:

wypełniasz formularz (submit - dane wysyłane do serwera) -> obliczenia po stronie serwera -> (nowa strona) odpowiedź serwera z wynikiem

Czyli obliczanie w php wiąże się z odświeżeniem strony, w javascript bez odświeżania.
dutagamo
tak ok ale napisanie dla mnie jednocześnie w php i javascript jest praktycznie niemożliwe przynajmniej na teraz...

A teraz seria pytań podejrzewam jak to zrobić ale potrzebowałbym małej pomocy:
1) funkcje sin cos itd w każdej z nich są asymptoty w których funkcja nie ma wartości ale trzeba to zapisać za pomocą liczby pi. Jak tego dokonać?
2) to samo pytanie z dzieleniem przez 0...

skrypt mam póki co napisany tak:
  1. <html>
  2. <head><meta http-equiv="content-type" content="text/html; charset=windows-1250" />
  3. <title>Projekt z php</title>
  4. </head>
  5. <body BGCOLOR=#6A5ACD>
  6. <?
  7. if ($kalk == 'dodaj')
  8. $wynik = $a+$b;
  9. else if ($kalk == 'odejmij')
  10. $wynik = $a-$b;
  11. else if ($kalk == 'pomnoz')
  12. $wynik=$a*$b;
  13. else if ($kalk == 'podziel')
  14. $wynik=$a/$b;
  15.  
  16. ?>
  17. <P><b>Wynikiem jest: </b></p>
  18. <P><? echo $wynik; ?> </p>
  19. <form action="plik.html" method="post">
  20. <input type="submit" value="Wróć">
  21. </form>
  22. </body>
  23. </html>

Niestety jak chcę dodać dodatkowe założenia to wyskakują błędy... co robić?
Darti
Cytat(dutagamo @ 11.01.2010, 20:17:25 ) *
1) funkcje sin cos itd w każdej z nich są asymptoty w których funkcja nie ma wartości ale trzeba to zapisać za pomocą liczby pi. Jak tego dokonać?


Ja myślałem że to tyczy się tg i ctg ... whatever
CapaciousCore
Na upartego obliczenia moga byc po server side lecz musisz je wysylac np. przez AJAX tongue.gif
Crozin
Cytat
Zrób sobie plik kalkulator.php a do środka wklej normanego javascript z kalkulatorem -> to też będzie php bo się interpreter włączy
Nie za bardzo Ci się udał kawał...
Cytat
o, że koledzy Ci dobrze podpowiadają że javascript będzie zdecydowanie lepszy do tego.
W wątku już dwukrotnie napisano, że ma to być w PHP, nie w JS.
Cytat
Ale prawdopodobnie wykładowcy chodzi o BC Math
Dlaczego uważasz, że o BC mogło chodzić? Przecież nie napisał nigdzie, że potrzebna jest duża precyzja.
Cytat
1) funkcje sin cos itd w każdej z nich są asymptoty w których funkcja nie ma wartości ale trzeba to zapisać za pomocą liczby pi. Jak tego dokonać?
Sinus i cosinus ma dziedzinę w zbiorze liczb rzeczywistych winksmiley.jpg Pewnie Ci o wspomnianego (co)tangensa chodziło.

Niestety w przypadku PHP jedyna sensowna metoda to sprawdzenie przed wykonaniem operacji czy dana wartość może zostać użyta (przy dzieleniu przez zero, czy próbie podania PI/2 jako parametr dla tan()).

Natomiast co do samej liczby PI... masz ją dostępną pod stałą M_PI (albo samo PI) oraz funkcją pi()


Natomiast co do samego działania aplikacji... można zrobić to na multum sposobów. Jeden z łatwiejszych to zrobienie każdego przycisku formularza jako przycisku wysyłania owego formularza z jakąś tam zmienną odzwierciedlającą kliknięty przycisk. Następnie po stronie serwera do jakiejś zmiennej sesyjnej dopisujesz sobie to co kliknięto, otrzymując po n kliknięciach zapis w postaci:
Kod
24+3/5+tan(2)*pow(64, 2)
Następnie po kliknięciu "=" wystarczyło by korzytając z eval uruchomić takie równanie, a jego wynik przypisać do jakiejś zmiennej.

Oczywiście można to zrobić na wiele innych sposobów, nie korzystających z evala - czystego zła smile.gif
No i trzeba jeszcze pamiętać o każdorazowym sprawdzaniu poprawności wprowadzanych danych.

Cytat
Na upartego obliczenia moga byc po server side lecz musisz je wysylac np. przez AJAX

Nie wiem dlaczego, ale "(...)po server side(...)" wygląda naprawdę głupio... tak ciężko napisać po polsku?
No i oczywiście nie musi korzystać z AJAXa...
dutagamo
Dobra to pytanie co do mojego kodu dlaczego wysypuje mi w kółko ten ostatni if?? Mój ćwiczeniowiec podsunął mi radę by użyć to mniej więcej tak:
  1. <?
  2. if (!$a && !$b){ die("<b>Proszę wypełnić pole pierwsze oraz drugie!</b>");}
  3. if (!$kalkulator){ die("<b>Proszę wybrać typ działania</b>");}
  4. ?>

ale to też jakoś nie chce działać... bo cały czas wyrzuca mi błąd z drugiego if'a... błąd cały polega na tym że jak wpiszę coś do pierwszego pola i dam Oblicz to wyskakuje mi ta druga strona... potem jak wpiszę coś jeszcze do drugiego pola to wyskakuje błąd że mam wybrać typ działania... jak wybiorę typ działania np. odejmowanie i dam Oblicz to wyskakuje mi nadal ten sam błąd że mam wybrać typ działania...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.