JavaScript(3) Pętle cd., tablice
Transkrypt
JavaScript(3) Pętle cd., tablice
JavaScript(3) Pętle cd., tablice Zagnieżdżanie pętli for Pętla zagnieżdżana – instrukcją wewnętrzną pętli jest inna pętla z innym licznikiem, przykładowo: for (n = 0; n < 10; n++) for (m = 0; m < 10; m++) document.write(n,"*",m,"=",(n * m),"<BR>"); Sprawdzić i zrozumieć działanie powyższego kodu. Pętla while (dopóki...) Pętla while posiada następującą składnię: while ( test_logiczny ) instrukcja; lub while ( test_logiczny ) { instrukcja1; instrukcja2; ... } Najpierw sprawdzane jest czy test_logiczny jest prawdziwy i jeżeli tak, to wykonywane są instrukcje, po czym odbywa się kolejne sprawdzenie testu_logicznego itd. Zakończenie pętli odbywasię gdy test_logiczny stanie się fałszywy. Uwagi: • test_logiczny musi być możliwy do obliczenia. • instrukcje muszą wpływać na test_logiczny tak, aby się stał fałszywy – inaczej pętla będzie nieskończona. Przykład: n = 0; while (n < 10) { document.write(n); n++;// inkrementacja } Sprawdzić powyższy kod – zmieniać test logiczny tak, aby: • instrukcje wewnętrzne pętli nigdy się nie wykonały, • pętla powtarzała instrukcje nieskończenie, do zawieszenia przeglądarki. Zadania do wykonania 1. Przetestować przykłady pętli pojedynczej i zagnieżdżanej for oraz pętli while – zrozumieć działanie. 2. Wykonać pętlę, która wypisze na stronie liczby parzyste od 2 do 100. 3. Wykonać pętlę, która na stronie wypisze wszystkie wartości funkcji sin(x) dla x od 0 do 900 z krokiem co 50. 4. Wykonać pętlę, która wypisze kolejne kwadraty liczb całkowitych poczynając od 1 i skończy się, gdy kolejny kwadrat przekroczy wartość 1 000 000. 5. Wykonać pętlę, która wypisze odwrotności kolejnych liczb naturalnych poczynając od 1 i skończy się, gdy kolejna wartość będzie mniejsza od 1e-7. Tablice Tworzenie pustej tablicy: nazwaTablicy = new Array() lub nazwaTablicy = [ ] Ustalenie rozmiaru tablicy: Tablica = new Array(10) Możemy też utworzyć tablicę, od razu wstawiając do niej wartości: NazwaTablicy = new Array("Marek","Ania","Agnieszka") lub NazwaTablicy = ["Marek","Ania","Agnieszka"] Tab_licz=[1,2,3,4,5,6,7,8,9,10] Dostęp do elementu tablicy (dla dalszych obliczeń lub wypisania na ekranie): NazwaTablicy[k] – gdzie k – licznik elementu liczony od 0. Rozmiar tablicy: NazwaTablicy.length Przykład <SCRIPT language="JavaScript"> tab=[1,2,3,4,5,6,7,8,9,10]; document.write("Pierwszy element:", tab[0], "<BR>"); document.write("Cała tablica ma ", tab.length," elementów<BR>"); //wypisanie tablicy w pętli for (k=0;k<=9; k++) document.write(tab[k], " "); </SCRIPT> Tablice asocjacyjne W JavaScript także możemy tworzyć tablice asocjacyjne, czyli tablice, których indeks jest nazwany jakimś napisem (string) –asocjacja czyli skojarzenie nazwy z rodzajem danych: Tablica = new Array() Tablica['autor'] = "Mickiewicz"; Tablica['tytul'] = "Pan Tadeusz"; Tablica['cena'] = 32.6; Tablice wielowymiarowe Możemy też tworzyć tablice wielowymiarowe - czyli tablice w tablicach. Powiedzmy że chcemy tworzyć dane dotyczące osób. Możemy wtedy stworzyć tablicę, w której w każdym elemencie będzie inna tablica zawierająca dane osoby, przykładowo: Tablica = [ ]; Tablica[0] = ['Marek' , 183]; Tablica[1] = ['Ania' , 173]; Tablica[2] = ['Agnieszka' , 170]; Przykład: <SCRIPT language="JavaScript"> Tablica = new Array() Tablica [0] = ['Marek' , 183]; Tablica [1] = ['Ania' , 173]; Tablica [2] = ['Agnieszka' , 170]; //pętla zagnieżdżana for (w=0;w<3;w++) { for (k=0;k<2;k++) document.write(Tablica [w][k], " "); document.write("<BR>"); } </SCRIPT> Prześledzić przykład generowania i wyświetlenia w pętli tablicy dwuwymiarowej z liczbami: <SCRIPT language="JavaScript"> Tablica=[ ] for (w=0;w<=6;w++) { Tablica[w]=[ ] for (k=0;k<=6;k++) { Tablica[w][k]=Math.round(100*Math.random()) } } for (w=0;w<=6;w++) { for (k=0;k<=6;k++) { document.write(Tablica[w][k], " "); } document.write("<BR>"); } </SCRIPT> Zadanie 1. Zdefiniować jednowymiarową tablicę z dowolnymi liczbami. a. Wypisać ją na ekranie. b. Spróbować znaleźć algorytm zsumowania jej wszystkich elementów i wypisanie obliczonej sumy na ekranie. c. Spróbować znaleźć algorytm znalezienia największej liczby w tej tablicy. 2. Powyższe zadanie wykonać dla tablicy dwuwymiarowej.