![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 64 Pomógł: 0 Dołączył: 4.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
mam pytanko odnosnie
Kod <html> <head> <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2"> <meta> <title></title> <script LANGUAGE="JavaScript"> <!-- function potega() { var wynik = 2; l = parseInt(document.forms["matma"].podstawa.value); w = parseInt(document.forms["matma"].wykladnik.value); for (i = 2; i <= w; i++) { wynik *= l; } window.alert("Wynik to: " + wynik); } //--> </SCRIPT> <BODY> <FORM name="matma"> <INPUT TYPE="text" VALUE=2 SIZE=2 name="podstawa"> do potęgi <INPUT TYPE="text" VALUE=3 SIZE=2 name="wykladnik"> <INPUT TYPE="button" VALUE="Oblicz" onClick="potega()"> </FORM> </body> </html> nie wiem na jakiej zasadzie dziala Kod ... { wynik *= l; } ... i ogolnie mozecie caly script opisac dla pewnosci:) z gory dzieki za wszelka pomoc |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 416 Pomógł: 0 Dołączył: 8.01.2004 Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj o operatorach arytmeczynych w js: http://www.w3schools.com/js/js_operators.asp
i w ogole przydaloby ci sie poczytac cos o javascripcie skoro nie rozumiesz podanego przez ciebie kodu. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 19 Pomógł: 0 Dołączył: 8.01.2006 Skąd: Zabrze Ostrzeżenie: (0%) ![]() ![]() |
Kod function potega() { var wynik = 2; l = parseInt(document.forms["matma"].podstawa.value); //l (czyt. małe L, a nie jeden) przyjmuje wartość z podanego formularza w = parseInt(document.forms["matma"].wykladnik.value); //w przyjmuje wartość z podanego formularza for (i = 2; i <= w; i++) //pętla zaczyna się od i=2 bo jeśli podniesiemy do pot. pierwszej to poco mnożyć? { // i kręci się aż nie będzie większe od zmiennej "w" (wykładnik potęgi) wynik *= l; // wynik = wynik * l (czyt. małe "L" a nie 1 (jeden) } window.alert("Wynik to: " + wynik); //komunikat z wynikiem } Przyjmijmy więc, że podstawa to 2, czyli l (małe L) = 2, a wykładnik potęgi to 3 czyli w=3 więc pętla będzie wyglądała tak Kod for (i = 2; i <= 3; i++) czyli w pierwszym przejściu Kod wynik *= 2 //czyli wynik = 2 * 2 = 4 i = i+1 = 3 drugie przejście Kod wynik *= 2 //czyli wynik = 4 * 2 = 8 i = i+1 = 4 trzeciego przejścia już nie będzie bo i<=3, a i=4, czyli FALSE tyle ![]() Podejżewam, że niezrozumienie kodu wynikło z pomyłki małej litery L z jedynką, co i mnie na początku zmyliło (czasami przemnażam coś przez 1 żeby JS nie dodawał liczb do siebie jak znaków w stringu, ale jak liczby). Jeszcze pozwoliłem sobie przeedytować odpowiedź. ![]() W takiej funkcji jak powyższa można bez problemu wykorzystać rekurencję, co będzie wyglądało następująco: Kod function potega(liczba, do_potegi) { return ((do_potegi == 0)? 1:(liczba * potega (liczba, do_potegi - 1))); } i w tym wypadku jej wywołanie znaleźć by się mogło wewnątrz funkcji alert: Kod <INPUT TYPE="button" VALUE="Oblicz" onClick="window.alert('Wynik to: '+ potega(parseInt(document.forms['matma'].podstawa.value), parseInt(document.forms['matma'].wykladnik.value)))"> ![]() prosze używać bbcode poprawiam (to juz drugie upomnienie z mej strony w tej kwestii...) --- nospor Ten post edytował ArturS 11.01.2006, 15:38:44 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 4.07.2025 - 23:25 |