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.

Podobne dokumenty