[HTML] Pole TEXT z value jako zmienna

Ok, teraz działą tak jak chciałęm, dzięki Smoku :slight_smile: Jeśli chodzi o JS to jestem zielony dlatego nie za bardzo wszystko zrozumiałem

. Ale nic. Grunt,że działa. Poszukam jeszcze w necie może uda mi się zrobić coś podobnego jak na tej stronce co podawałem link. :slight_smile:

To dotyczyli poprzedniej, słabo przemyślanej wersji. W tej możesz dać np. “PoleWyniku.innerHTML.length” i pójdzie. Ciekawe jest to że bardzo dziwnie ten skrypt reaguję na podanie: " x", wg mnie powinien być błąd, ale tak nie jest.

Tworzy się funkcja:

function licz()

  {

   return 1*(x);

  }[/code]

Może ktoś wie czemu jest to funkcja poprawna?

Mam pytanie dotyczące rozpoznawania znaków przez ten skrypt. Jak można przypisać danym znakom odpowiednie działanie i ew. podmieniać znaki. Tzn. skrypt ten nie obsługuje pierwiastków ani potegowania, nie reaguje na ^. Chciałbym przypisać znakowi

funkcję potegowania a

pierwiastek. Jest tylko problem. Nie wiem jak wyciągnąć z wartości pola input text jakikolwiek pojedyńczy znak i nadać mu matematyczne znaczenie. Dodatkowo jeśli udało by się wyciągnąć te znaki to czy wie ktoś jak można przypisać automatyczną zamianę znaku

powoduje to częste błedy jeśli ktoś uzywa klawiatury numerycznej.

Znalazłem kilka skryptów ale nie wiem za bardzo jak ich w tym przypadku użyć:

var t="aac";

var index= t.indexOf('a');

var out = "";


for(var i=0;i
out = out + t.charAt(i);

}


out = out + 'b';


for(var i=index+1;i
out = out + t.charAt(i);

}

i

[/code]

Ten skrypt oblicza wyrażenie w javascript jeżeli i nic więcej z tym nie zrobisz. Pierwiastek jednak oblicza, użyj Math.sqrt(4) jeżeli chcesz aby obliczało się wyrażenie wg twoich zasad to musisz napisać kompilator wyrażeń arytmetycznych z prawdziwego zdarzenia, za pomocą odwrotnej polskiej notacji wbrew pozorom nie jest to trudne.

Co do zamiany:

while(true)

  {

   var p=param.indexOf(',');

   if(p<0) break;

   param=param.substring(0,p-1)+'.'+param.substring(p+1);

  }

proktor86 , ciekawe jak by ty zapisałeś tą pętle wg swoich zasad :smiley:

Skoro tak cię to ciekawi… pewnie tak:

var p;

while ((p = param.indexOf(',')) >= 0) {

    param = param.substring(0, p - 1) + '.' + param.substring(p + 1);

}

Niestety obydwa kody nie działają. wstawiałem go przed function() za przed var PoleWyniku i albo wynik wogóle się niechciał wyswietlić albo nadal w poprzedniej postaci. Przecinek nadal jest przecinkiem a znaki uwzgledniane w działaniu są tylko te za nim

P.S. Jesli chodzi o pisanie jakiegokolwiek kompilatora. Moze to i nie jest jakoś skomplikowane ale chyba jednak przekracza mozliwości ucznia II klasy gimnazjum :slight_smile: Programowanie w czym innym niż php,htmla,js,css itp. to niestety jeszcze nie mój poziom :?

Oba te kody robią dokładnie to samo, więc skoro jeden “nie działa” to nic dziwnego, że drugi też ;).

Kalkulator



  Wyrażenie matematyczne: 



[/code]

Piotrek_Fajny, powinieneś zacząć analizować to co podajemy, a nie czekać jak ktoś za ciebie to zrobi. Zresztą nie jestem pewien co do słuszności tego “udoskonalenia”, ponieważ już się pozbyłeś funkcji pow(). W poprzednim wariancie mogłeś dać Math.pow(2.5,3) wyszło by 15.625 a teraz będzie błąd. :?

Witam

Kombinowałem trochę z tymi operatorami i widzę,że są one jedynym sensownym wyjściem. Zrobiłem odpowiednią tabelkę i przyciski z opisem po wciśnięciu którego w polu wyrażenia pojawia się operator ze zmienną x. Chciałbym trochę ułatwić pracę mniej rozgarnietym uzytkownikom. Dodałem pprzed przyciskiem od zmiennej dwa pola tex do których mają być wpisywane zmienne. Nie wiem tylko jak ustawić wysyłanie tak aby po wysłaniu zmiennej z pola obok objaśnienia pojawiała się w polu wyrazenia nie kasując jego poprzedniej zawartości. Poniżej to co udało mi się jak narazie napisac:

Kalkulator



  Wyrażenie matematyczne:  



 








Jesli chcesz wykonywać działania matematyczne na tym kalkulatorze musisz skorzystać z operatorów.

Poniżej znajduje się kilka przykładów.

Pamietaj!
Jesli chcesz oddzielić jedności od części dziesiętnych użyj kropki, NIE przecinka.

| Odejmowanie : | | - |
| Dodawanie : | | + |
| Mnożenie : | | * |
| Dzielenie | | / |
| Potęgowanie x do potęgi y : | | |
| Pierwiastket kwadratowy z liczby x : | | |
| Zaokrąglanie liczby x do liczby całkowitej : | | |
| Zwraca mniejszą z liczb x i y : | | |
| Zwraca logarytm naturalny liczby x , podstawą logarytmu jest stała Eurela : | | |
| Zwraca sinus liczby x , aby obliczyć sinus z kata, podanego w stopniach należy użyc Math.sin(x*Math.PI/180) : | | |
| Zwraca cosinus liczby x , jeśli kąt podany jest w stopniach należy postapić tak jak wyżej : | | |
| Zwraca tangens liczby x , jeśli kąt podany jest w stopniach należy postapić tak jak wyżej : | | |
| | | |

[/code]

Druga rzecz.

Chodzi o to aby stworzyć historię obliczeń. Coś takiego jak w Symbianie. Ja zrobiłbym to tak. dotychczasowa zawartosć PoleWyniku.innerHTML


PoleWyniku.innerHTML jest właściwością która jest dostępna również do odczytu.

PoleWyniku.innerHTML:=PoleWyniku.innerHTML+' '+DodatkowyTekst;

Nie wiem czemu ale nawet jak wkleję cały kod skryptu na dole strony, obojetnie chy w

czy poza nim to nic mi się nie wyświetla. A ten kod

Nie ma możliwości stwierdzić czemu tak u ciebie się dzieje bez obejrzenia kodu który napisałeś.