JAVAScript w dokumentach HTML
Transkrypt
JAVAScript w dokumentach HTML
Programowanie obiektowe– ćw.1 JAVAScript w dokumentach HTML - przypomnienie JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania. Skrypty JavaScript są zagnieżdżane w dokumentach HTML. Instrukcje JavaScript umieszczane są między znacznikami <SCRIPT> i </SCRIPT>. <SCRIPT LANGUAGE="JavaScript"> instrukcje Javascript oddzielane średnikami </SCRIPT> Przykład: Dokument HTML wyposażony w skrypt Javascript: <HTML><HEAD><TITLE>Cw. Javascript</TITLE></HEAD> <BODY> <SCRIPT LANGUAGE="JavaScript"> //to jest komentarz //obiekt document i jego metoda write pozwalają na // wypisanie tekstu w dokumencie html document.write ("To jest zwykły tekst<BR />"); document.write("wiersz <BR /> kolejny <I>wiersz</I>");// w tekście znaczniki HTML x=5; //przypisujemy wartość zmiennej y=3.5; z=3e5;// a to jest zmienna o wartości 350000 suma=x+y+z; // ... i wyświetlamy jej wartość na stronie document.write("Wartość zmiennej <I>suma</I> : ",suma); // ... albo w okienku alert("Wartość zmiennej <I>suma</I> : "+suma); </SCRIPT> <P style="color:navy;font-size:17px">A to jest zwyczajny HTML poza skryptem</P> </BODY> </HTML> Uwagi: • • Internet Explorer wymaga potwierdzenia pierwszego wykonania skryptu. Błędy w skryptach można obejrzeć w konsoli błędów po kliknięciu w ikonkę ekranu (lub F12 – Narzędzia developerskie/Skrypt). w lewym dolnym rogu Zadanie 1. Wykonać test powyższego kodu Javascript i zrozumieć jego działanie. 2. Napisać skrypt, który po nadaniu długości dla podstawy i wysokości trójkąta obliczy i wypisze na ekranie jego pole powierzchni. Uwagi: JavaScript rozróżnia wielkość liter. Zmienna o nazwie x i zmienna X to dwie różne zmienne. W nazwach obiektów i metod (Math, PI, document, write) nie wolno zmieniać wielkości liter. Instrukcje wykonawcze języka oddzielamy średnikami (jeśli zapisujemy w tym samym wierszu). Blok instrukcji otaczamy klamrami { } – zazwyczaj zestaw instrukcji definicji funkcji, instrukcjach warunkowych i iteracyjnych. Komentarze: • jednowierszowy - od // do końca wiersza, • wielowierszowy - /* komentarz */ Instrukcja przypisania (nadania wartości) zmiennej zmienna operator przypisania [wyrażenie]; (Wyrażenie jest pomijane dla operatorów ++ i ==). Obliczane jest wyrażenie (wszystkie jego elementy powinny być znane) i jego wartość nadawana zmiennej. Zmienną o określonej wartości można użyć w kolejnych wyrażeniach. Wyrażenia tworzymy podobnie jak w Excelu – stałe liczbowe, zmienne o wcześniej określonych wartościach, funkcje matematyczne – wszystko powiązane operatorami działań, dodatkowo nawiasy OKRĄGŁE. Operatory przypisania Podstawowym operatorem przypisania jest znak = ale też operatory dwuznakowe: ++ -- += -= Przykładowo: *= /= x = 7; y = –45.78; x++; //zwiększ x o 1 x–=4; //zmniejsz x o 4 y*=3; //pomnóż y przez 3 Arytmetyczne operatory działań w wyrażeniu arytmetycznym + * / % (reszta z dzielenia) Uwaga: znak + używany jest też do łączenia (konkatenacji) tekstów. Operatory porównania wyrażeń arytmetycznych (dla konstrukcji warunków) == !=(nierówne) <= < > >= Przykłady warunków: x>0 2*x<=y x!=6 Warunki dają wartość logiczną (true lub false). Operatory logiczne (złączenie warunków) koniunkcja && alternatywa || negacja ! Instrukcje Istrukcja if...else Instrukcja if sprawdza warunek - jeśli jest on prawdziwy wykonywane są instrukcje; używamy (opcjonalnie, może nie występować) klauzuli else aby wykonać inne instrukcje jeśli warunek jest fałszywy. Instrukcja if ma postać: if (warunek) { instrukcje } else { inne instrukcje } Przykład: <HTML> <SCRIPT LANGUAGE="JavaScript"> x=5; if (x==0) x++; else document.write("x różne od 0"); if (x==5) x--; document.write(x); </SCRIPT> </BODY> </HTML> Instrukcja for Pętla for jest powtarzana aż do momentu, kiedy testowany warunek staje się fałszywy. W JavaScript pętla for jest składniowo podobna do pętli w Java i C. Instrukcja pętli for wygląda następująco: for (przypisanie; warunek; zmiana) { Instrukcje } Wykonywane są kolejno: 1. Inicjalizacja wyrażenia przypisanie. 2. Obliczenie wyrażenia warunek. Jeśli wartość warunek jest prawdziwa, instrukcja jest wykonana. Jeśli wartość warunek jest fałszywa, pętla for jest przerwana. 3. Wykonywanie instrukcji wewnętrznych. 4. Aktualizacja wyrażenia zmiana, i przejście do kroku drugiego. Przykład: Wykonać i zrozumieć działanie skryptu: for (i=1;i<11;i++) document.write( (i%3) ,"<BR>"); for (i=10;i>=0;i--) document.write( (i%2) ,"<BR>"); Instrukcja while Działa identycznie jak pętla while w Pascalu. Instrukcja while wykonuje instrukcje tak długo, dopóki warunek będzie prawdziwy. Instrukcja pętli while wygląda następująco: while (warunek) { instrukcje } Test warunku ma miejsce przed wykonaniem instrukcji. Jeśli warunek będzie prawdziwy, instrukcje są wykonywane i ponownie jest badany warunek. Jeśli warunek będzie fałszywy, wykonywanie pętli jest zatrzymanie i następuje przejście o następnej instrukcji po instrukcji while. Przykład Następująca pętla while wykonuje iterację (powtarza) gdy warunek jest spełniony (n jest mniejsze od 10): n = 0; x = 0; while( n < 10 ) { n ++; x += n; document.write(x+"<BR>"); } Obiekt Math Obiekt Math przechowuje wartości matematyczne, gromadzone jako właściwości i metody. Są tutaj przechowywane pewne stałe i funkcje matematyczne. Składnia: Math.property lub Math.method, gdzie property lub method jest jednym z podanych niżej elementów. Właściwości (stałe): E e - stała Eulera, która wynosi ok. 2.718 LN2 logarytm naturalny dwóch, tj. ok. 0.693 LN10 logarytm naturalny z dziesięciu, tj. ok. 2.302 LOG2E logarytm o podstawie 2 z liczby Eulera, czyli ok. 1.442 LOG10E logarytm o podstawie 10 z liczby Eulera, czyli ok. 0.434 PI wartość liczby π, czyli ok. 3.14159 SQRT1_2 pierwiastek kwadratowy z 0.5, czyli ok. 0.707 SQRT2 pierwiastek kwadratowy z 2, czyli ok. 1.414 Funkcje arytmetyczne (metody predefiniowanego obiektu Math) Math.sin (kąt w radianach) Math.cos (kąt w radianach) Math.tan (kąt w radianach) Math.sqrt(wyrażenie) Math.pow(podstawa, wykładnik) Funkcje trygonometryczne Math.exp(wykładnik) Math.log(wyrażenie) Math.abs(wyrażenie) Math.random() Math.round(wyrażenie) Math.ceil(wyrażenie) Math.floor(wyrażenie) Pierwiastek kwadratowy Potęga (uwaga: posiada dwa argumenty, może też służyć do wyznaczania pierwiastków wyższych stopni Funkcja ex Logarytm naturalny Wartość bezwzględna Generator losowy - losuje liczbę z przedziału (0, 1) Zaokrąglenie do najbliższej całkowitej Zaokrąglenie do całkowitej w kierunku +∞ Zaokrąglenie do całkowitej w kierunku -∞ Number (tekst) Zamiana tekstu na liczbę (o ile poprawny jest zapis liczby) Wypróbować w skrypcie i przeanalizować jego działanie: <SCRIPT LANGUAGE="JavaScript"> x=2; y=4; document.write(x,"<BR />"); z= Math.sin(30*Math.PI/180); document.write("Wartosc sin(30 stopni):",z,"<BR />"); document.write((x==y),"<BR />"); document.write((x>y),"<BR />"); document.write(((x<=y)&&(x<1)) ,"<BR />"); document.write(!(y!=4),"<BR />"); x++; zet=Math.pow(y,1/2); alert("zet=",zet); tekst="125.678"; liczba=Number(tekst); wynik=Math.ceil(liczba); document.write("Wartosc obliczona: ",wynik); czy=wynik>zet; document.write("<BR />wynik>zet ? ",czy); </SCRIPT> Zadania do wykonania 1. Wykonać testy powyższych kodów JavaScript. 2. Wypróbować właściwości (stałe) obiektu Math – E, LOG2E, LN10 i inne. 3. Wypróbować funkcje zaokrąglania round, ceil i floor. Sprawdzić działanie skryptu: <SCRIPT LANGUAGE="JavaScript"> liczba= 123.1234567; document.write(Math.round(liczba)+"<BR/>"); document.write(Math.round(1E2*liczba)/1E2+"<BR/>"); document.write(Math.round(1E6*liczba)/1E6+"<BR/>"); </SCRIPT> 4. Wykonać w skrypcie JavaScript obliczenia dla x=1.345 i wyświetlić wynik: 3 3− + √+3 10 +5−1 5. Napisać skrypt, w który losowana jest liczba całkowita z przedziału 100 do 200. Każde odświeżenie strony daje inną liczbę. Definicja i wykonanie własnej funkcji Programowanie obiektowe wymaga dobrego zrozumienia działania funkcji definiowanych przez użytkownika, w ten sposób będziemy definiować metody obiektowe. 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, np. plik.js wówczas należy w dokumencie HTML w sekcji HEAD umieścić zapis: <SCRIPT type="text/javascript" src="./plik.js" /> 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(srednia(5, 9)); document.write(srednia(3.6, 3.8)); </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 sumę kolejnych N liczb naturalnych. Obliczyć te sumy dla N=20 i N=40; Interakcyjne wykonywanie funkcji Można wykonać funkcję na rozkaz użytkownika, umieszczając ją w atrybucie onclick dowolnego elementu (znacznika): Przykład Sprawdzić działanie skryptu wykorzystującego własną funkcję nacisnij, wykonywaną bez argumentów . <HTML> <HEAD> <SCRIPT language="JavaScript"> //definicja funkcji function nacisnij( ) { document.write("Witaj!"); } </SCRIPT> </HEAD> <BODY> <FORM> //wykorzystanie funkcji <INPUT type="button" name="Button1" value="OK" onclick="nacisnij( );"> </FORM> </BODY> </HTML> Zwróćmy uwagę na przypisanie wykonania funkcji do atrybutu onclick obiektu INPUT. Zadanie Wypróbować powyższy przykład oraz wzbogacić definicję funkcji dowolny argument (tekstowy, numeryczny) przekazywany do funkcji i stworzyć dwa przyciski wykorzystujące funkcję z różnymi wartościami argumentów. Metoda alert powinna wyświetlać wartość przekazanego argumentu.