JavaScript cd. (2)
Transkrypt
JavaScript cd. (2)
JavaScript cd. (2) Definicja i wykonanie funkcji Funkcje definiowane zawierają pewien kod, który może być wielokrotnie wykonywany z różnymi argumentami. Zwykle umieszczamy je między znacznikami <SCRIPT> </SCRIPT> w sekcji HEAD. Pozwala to na załadowanie ich na samym początku, aby dowolny skrypt na stronie mógł rozpocząć pracę, gdy użytkownik zacznie przeglądać stronę. Można jednak definiować funkcje w ramach jednego znacznika <SCRIPT> i tam je wykorzystywać. Mogą być również zapisane w osobnym pliku, wówczas należy w dokumencie HTML w sekcji HEAD umieścić zapis: <SCRIPT src="plik_funkcji.js"></SCRIPT> Funkcje są definiowane przez określenie ich nazwy, argumentów i sposobu działania. Przykład Funkcja o nazwie srednia ma obliczyć średnią arytmetyczną podanych ogólnie liczb a i b: <SCRIPT LANGUAGE="JavaScript"> function srednia(a,b){ x=(a+b)/2; return x; } //a teraz dwukrotne wykonanie funkcji document.write("Średnia wynosi:",srednia(5, 9),"<BR>"); x=2.5; y=2.7; document.write("Średnia wynosi:",srednia(x, y),"<BR>"); </SCRIPT> To co funkcja ma zrobić po wywołaniu, jest zdefiniowane między nawiasami { }. Po słowie kluczowym return określamy co ma zwrócić wykonanie funkcji (tu: obliczoną wartość x), stąd w dalszej części skryptu zwróconą wartość funkcji wyświetlamy z wykorzystaniem document.write. Funkcja może oczywiście niczego nie zwracać, jedynie wykonać jakąś akcję, np.: <SCRIPT LANGUAGE="JavaScript"> function komunikat(a){ alert(a); } document.write(komunikat("UWAGA!!")); </SCRIPT> Tu odbyło się przekazanie tekstu do funkcji. Zadanie Utworzyć skrypt, którego zadaniem będzie wykorzystanie własnej funkcji obliczającej długość przeciwprostokątnej trójkąta prostokątnego z wykorzystaniem prawa Pitagorasa. Argumentami funkcji będą długości przyprostokątnych. Interakcyjne wykonanie funkcji z podawaniem danych Prześledzić i zrozumieć działanie przykładu: <SCRIPT LANGUAGE="JavaScript"> function objKuli(r){ ob=4/3*Math.PI*r*r*r alert("Objętość kuli="+ob); } </SCRIPT> <FORM> Promień:<INPUT type="text" name="prom"><BR /> <INPUT type="text" value="Oblicz objętość" onlick="objKuli(prom.value)"><BR /> </FORM> Zadanie Utworzyć dokument HTML ze skryptem JavaScript: w trzech polach tekstowych wpisywane będą liczby będące współczynnikami równania kwadratowego, kliknięcie przycisku spowoduje wykonanie funkcji obliczającej delta i wypisującej jej wartość w okienku alert. Instrukcja warunkowa if Postać ogólna instrukcji: if (warunek1) { kod wykonywany jeżeli warunek1 spełniony } else { kod wykonywany gdy warunek niespełniony } Uwagi: Klamrowe nawiasy zamykają blok instrukcji. Blok else może zostać pominięty – wówczas, gdy warunek nie jest spełniony wykonywana jest następna instrukcja. Instrukcja if może się zagnieżdżać: Przykład: if (x>0) document.write("Wieksze<BR/>"); else if (x==0) document.write("Zero<BR/>"); else document.write("Mniejsze od 0<BR/>"); Zadanie do wykonania 1. Zadanie z poprzedniego ćwiczenia, obliczające wartość delta dla równania kwadratowego, uzupełnić o sprawdzenie wartości delta przy pomocy instrukcji if i wypisanie na ekranie czy delta jest dodatnie, ujemne czy równe zero. 2. Dodatkowo dla wartości delta>0 obliczyć pierwiastki równania kwadratowego. Iteracje (pętle) Instrukcje iteracyjne służą do powtarzania bloku instrukcji, aż do spełnienia określonego warunku. Pętla for Posiada ona następującą składnię: for (inicjalizacja; test_logiczny; inkrementacja ) instrukcja; lub for ( inicjalizacja; test_logiczny; inkrementacja ) { instrukcja1; instrukcja2; ... } • • inicjalizacja - instrukcja wykonywana tylko raz na samym początku pętli. Zwykle używa się jej do przypisania wartości początkowej do zmiennej będącej licznikiem pętli, test_logiczny - dowolny warunek który będzie sprawdzany przed każdym przebiegiem pętli (także tym pierwszym). Gdy będzie on fałszem, wykonywanie pętli zostanie przerwane; • inkrementacja - instrukcja która będzie wykonywana po każdym obiegu pętli, a która ma za zadanie np. zwiększenie wartości licznika pętli. Przykłady for (x = 0; x < 10; x++) document.write(x," ",Math.pow(x, 2),"<BR>"); Nawiasy klamrowe pominięte dla pojedynczej instrukcji w pętli. Można zmienić krok pętli: for (x = 0; x < 10; x+=2) document.write(x," ",Math.pow(x, 2),"<BR>"); lub dekrementować licznik: for (x = 20; x>=0; x--) document.write(Math.pow(x, 2),"<BR>"); Zadanie Utworzyć skrypt, którego zadaniem będzie wykorzystanie własnej funkcji obliczającej sumę kolejnych N liczb naturalnych z wykorzystaniem pętli for. Obliczyć te sumy dla N=20 i N=40.