materiał dydaktyczny | 2 - liczby parzyste, 4 - liczby parzyste, 6 - liczby parzyste, 8 - liczby parzyste, 10 - liczby parzyste, 12 - liczby parzyste. สร้างบทเรียนที่ดีกว่าได้เร็วขึ้น
Nieważne, czy dopiero wkraczasz w świat programowania i JavaScript jest Twoim pierwszym językiem, czy może, tak jak ja, rozpoczynasz swoją przygodę z JS-em mając już solidne podstawy w pisaniu kodu – w obu przypadkach koniecznym jest znajomość kluczowych funkcji, które pozwolą Ci na znacznie łatwiejsze wykonywanie podstawowych operacji. W tym artykule skupimy się na prototypach funkcyjnych typu tablicowego oraz łańcuchowego. Pozwalają one, na przykład, na sortowanie tablicy, odfiltrowanie konkretnych elementów, lub wykonywanie jednej funkcji na wszystkich elementach macierzy. Lista funkcji przedstawionych w artykule: push() pop() shift() unshift() slice() splice() join() toString() concat() indexOf() sort() reverse() forEach() filter() map() push() Funkcja push() dodaje nowy element, podany jako argument funkcji, na koniec istniejącej tablicy. Co więcej, zwraca ona, po uprzednim dodaniu zadanego elementu, długość tablicy. Pamiętaj, że możesz dodać więcej niż jeden element na raz. Przykład: var mojaTablica = [ "kot", "pies", "szczur" ]; // [ "kot", "pies", "szczur", "małpa" ] var dlugoscTablicy = // [ "kot", "pies", "szczur", "małpa", "jeż" ] // 5 pop() Funkcja pop() jest przeciwieństwem funkcji push() – usuwa ona ostatni element istniejącej tablicy. Przy usuwaniu elementu funkcja zwraca usunięty element i skraca długość tablicy. Przykład: var mojaTablica = [ "kot", "pies", "szczur", "małpa", "jeż" ]; var usuniety = // [ "kot", "pies", "szczur", "małpa" ] // "jeż" shift() Kolejna funkcja do omówienia to shift(). Usuwa ona i zwraca pierwszy element danej tablicy, przesuwając wszystkie elementy o jedno miejsce w przód, celem załatania pozostałej „dziury”. Funkcja ta nie tworzy nowej tablicy, tylko modyfikuje już istniejącą. Przykład: var mojaTablica = [ "kot", "pies", "szczur", "małpa", "jeż" ]; var usuniety = // [ "pies", "szczur", "małpa", "jeż" ] // "kot" unshift() Podobnie jak to było w przypadku bliźniaczych funkcji push() i pop(), tak i shift() ma swoje przeciwieństwo – unshift(). Funkcja ta dodaje element(y) na początek tablicy, modyfikując ją, a następnie zwraca długość zmienionej tablicy. W celu dodania nowych elementów, indeksy wszystkich wartości w tablicy są inkrementowane o 1, a dodany element otrzymuje indeks 0. Przykład: var mojaTablica = [ "kot", "pies", "szczur" ]; // [ "małpa", "kot", "pies", "szczur" ] var dlugoscTablicy = // [ "jeż", "małpa", "kot", "pies", "szczur" ] // 5 slice() Funkcja slice() pozwala na „wycięcie” (ang. to slice -> kroić) dowolnej ilości elementów, rozpoczynając od dowolnego indeksu tablicy. Funkcja przyjmuje dwa argumenty – indeks, od którego chcemy rozpocząć wycinanie oraz indeks, na którym chcemy poprzestać. Działanie tej funkcji jest o tyle zawiłe, że nie wycina ona elementu o indeksie, który podaliśmy jako końcowy; przedział jej działania moglibyśmy wyrazić matematycznie jako odwracać), odwraca zawartość tablicy. Funkcja modyfikuje istniejącą tablicę i nie zwraca żadnej wartości. Ze względu na działanie na oryginalnej tablicy, należy używać jej ostrożnie, gdyż odwrócenie macierzy tylko w jednym miejscu programu poskutkuje odwróceniem jej dla całego kodu. Przykład: var posortowaneLiczby = [ 5, 25, 102, 500 ]; // [ 500, 102, 25, 5 ] forEach() Wraz z funkcją forEach() wkraczamy w rodzinę funkcji o podobnej zasadzie działania, do której zaliczają się: forEach(), map(), filter(), every() i some(). Wszystkie one wykonują zadaną operację na wszystkich elementach tablicy i wymagają callbacka jako pierwszego przekazywanego argumentu. Drugi, opcjonalny, argument pozwala na zdefiniowanie wartości operatora this wywołania zwrotnego. Jeśli w trakcie wykonywania funkcji forEach() do tablicy zostają dodane nowe elementy, to nie będą one uwzględnione podczas wykonywania wywołania zwrotnego na tablicy. Funkcja wykonuje operacje na oryginalnej tablicy i nie zwraca żadnej wartości. Przykład: var liczby = [ 9, 27, 93, 126, 300 ]; // definicja wywołania zwrotnego function podziel (element, indeks, tablica) { tablica[indeks] = tablica[indeks] / 3; // lub tablica[indeks] = element / 3; } // wykonanie funkcji forEach na tablicy liczby wraz z wywołaniem callbacka dla każdego elementu // [ 3, 9, 31, 42, 100 ] filter() Działanie funkcji filter() jest w pełni zgodne z jej nazwą – pozwala ona na odfiltrowanie elementów, które nie spełniają danego warunku. Funkcja ta wymaga przekazania wywołania zwrotnego jako pierwszego argumentu, które jest wykonywane na każdym elemencie tablicy. Jeśli dany element spełnia warunek, to zostaje dodany do nowej macierzy. Oryginalna tablica pozostaje niezmodyfikowana. filter() zwraca nową macierz elementów spełniających zadany warunek. Przykład: var liczby = [ 25, 30, 43, 47, 80, 84, 99, 100 ] // definicja wywołania zwrotnego function czyParzysta(liczba) { if (liczba % 2 == 0) return true; } var parzyste = // [ 30, 80, 84, 100 ] map() map() jest funkcją bardzo podobną do forEach(), jednakże z jedną istotną różnicą – oryginalna tablica jest w pełni zachowana, a funkcja zwraca nową, przetworzoną macierz. Podobnie jak w przypadku wyżej wspomnianej funkcji, map() wykonuje wywołanie zwrotne, które musi być przekazane jako pierwszy argument, na każdym elemencie tablicy, a następnie zwraca wszystkie przetworzone elementy w postaci nowej macierzy. Gdy funkcja jest wywołana, ma to miejsce z użyciem trzech argumentów – wartości bieżącego elementu, indeksu tego elementu, oraz tablicy, na której operacja jest wykonywana. Zwróć uwagę, że wywołanie zwrotne musi zwracać wartość, by została ona dodana do nowej macierzy. Przykład: var liczby = [ 9, 27, 93, 126, 300 ]; // definicja wywołania zwrotnego function pomnoz (element, indeks, tablica) { return element * 20; // lub tablica[indeks] * 20; } // wykonanie funkcji map na tablicy liczby wraz z wywołaniem callbacka dla każdego elementu var pomnozone = // [ 180, 540, 1860, 2520, 6000 ] Jest to pierwsza część artykułu na temat najbardziej przydatnych dla początkujących funkcji podstawowych typów danych używanych w języku JavaScript. Część drugą, dotyczącą funkcji typu łańcuchowego, znajdziesz tutaj. Nie są to jeszcze wszystkie funkcje, które chciałbym przedstawić, ale ze względu na chwilowy brak czasu pojawią się one później :) (reduce, some, lastIndexOf, reduceRight, every) Bibliografia:
Jak wiemy parzystość danej liczby sprawdzamy na podstawie jej podzielności przez 2. Natomiast nasza prezentacja przeznaczona jest dla dzieci przedszkolnych, dlatego ważne jest, aby w pierwszej kolejności zauważyły cały proces poprzez układanie czerwonych żetonów po dwa, "w pary".
Liczby pierwsze | Liczby złożone | Najszybsza metoda znajdowania liczb pierwszych od 1 do 100. Jak w Javascript mógłbym znaleźć liczby pierwsze z przedziału od 0 do 100? Myślałem o tym i nie wiem, jak je znaleźć. myślałem o zrobieniu x% x, ale znalazłem z tym oczywisty problem. to, co mam do tej pory: ale niestety jest to najgorszy kod wszechczasów. var prime = function (){ var num; for (num = 0; num znajdź lepszą (i wygraj nagrodę za odkrycie nowej pierwszej :)) 2 wydaje się działać nawet, gdy n = 10 000 000, nie jestem pewien, co to jest „małe” haha 1 @devonJS, gdy n = 10 000 000, zatrzymałoby się przy pierwszej iteracji, ponieważ jest podzielne przez 2, bardzo szybko byłoby dowiedzieć się, że 10 000 000 nie jest liczbą pierwszą. Mimo to może znaleźć 2 147 483 647 dość szybko i 67 280 421 310 721 bez większych problemów, chociaż wydaje się, że nie radzi sobie w Chrome z 170 141 183460 469 231731 687 303715884 105 727 po prostu dlatego, że% 2 na tej liczbie będzie równe 0. Oto pokaz na żywo tego skryptu: Najpierw utwórz funkcję, która sprawdzi, czy pojedyncza liczba jest liczbą pierwszą, czy nie. Jeśli chcesz rozszerzyć obiekt Number, możesz, ale zdecydowałem, że kod będzie tak prosty, jak to tylko możliwe. function isPrime(num) { if(num =j && i%j == 0) { ++counter; } } if(counter == 1) { primeNumbers = primeNumbers + i + ' '; } } ... Ta odpowiedź zadziałała dla mnie i jest o wiele prostsza niż inne odpowiedzi, które widziałem. Nie jestem pewien, jak możemy się różnić j i ja, ponieważ oboje obracają się w tym samym czasie. Czy mógłbyś to wyjaśnić, dziękuję? Odpowiedź Luchiana daje link do standardowej techniki znajdowania liczb pierwszych. Mniej wydajnym, ale prostszym podejściem jest przekształcenie istniejącego kodu w zagnieżdżoną pętlę. Zauważ, że dzielisz przez 2, 3, 4, 5, 6 i tak dalej ... i zamień to w pętlę. Biorąc pod uwagę, że jest to praca domowa i biorąc pod uwagę, że celem zadania domowego jest pomoc w nauce podstawowego programowania, rozwiązanie, które jest proste, poprawne, ale nieco nieefektywne, powinno wystarczyć. Używając rekurencji w połączeniu z regułą pierwiastka kwadratowego stąd, sprawdza, czy liczba jest liczbą pierwszą, czy nie: function isPrime(num){ // An integer is prime if it is not divisible by any prime less than or equal to its square root var squareRoot = parseInt( var primeCountUp = function(divisor){ if(divisor > squareRoot) { // got to a point where the divisor is greater than // the square root, therefore it is prime return true; } else if(num % divisor === 0) { // found a result that divides evenly, NOT prime return false; } else { // keep counting return primeCountUp(++divisor); } }; // start @ 2 because everything is divisible by 1 return primeCountUp(2); } Oto najszybszy sposób obliczania liczb pierwszych w JavaScript na podstawie poprzedniej wartości pierwszej. function nextPrime(value) { if (value > 2) { var i, q; do { i = 3; value += 2; q = while (i 2) { var i, q; do { i = 3; value += 2; q = while (i var n=prompt('Enter User Value') var x=1; if(n==0 || n==1) x=0; for(i=2;i Sito Eratostenesa. trochę wygląda, ale jest proste i działa! function count_prime(arg) { arg = typeof arg !== 'undefined' ? arg : 20; //default value var list = [2] var list2 = [0,1] var real_prime = [] counter = 2 while (counter Array( => n%m); To da 9,25 i więcej liczb niebędących liczbami pierwszymi jako liczby pierwsze, sprawdź Tak, zapomniałem zwiększyć limit wyszukiwania ( (n) +1). Dzięki za test Lista utworzona przy użyciu nowych funkcji ES6, zwłaszcza z generatorem. Przejdź do zrobionego w języku katalońskim na zajęcia z moimi uczniami. Mam nadzieję, że uznasz to za przydatne. function* Primer(max) { const infinite = !max && max !== 0; const re = /^.?$|^(..+?)\1+$/; let current = 1; while (infinite || max-- ) { if(! == true) yield current; current++ }; }; let [...list] = Primer(100); Oto bardzo prosty sposób obliczania liczb pierwszych między podanym zakresem (od 1 do ograniczenia). Proste rozwiązanie: public static void getAllPrimeNumbers(int limit) { prime number from 1 to ' + limit); for(int number=2; numberi+2); for (var i = 0; i x); // return non 0 values } = `${getPrimes(100).join(', ')}`; // for fun, this fantasist regexp way (very inefficient): // (_,i)=>i).filter(n => n>1&&!/^(oo+)\1+$/.test('o'.repeat(n)) Niedawno wymyśliłem jednoliniowe rozwiązanie, które zapewnia dokładnie to dla wyzwania JS na Scrimba (poniżej). ES6 + const getPrimes=num=>Array(num-1).fill().map((e,i)=>2+i).filter((e,i,a)=> function getPrimes(num){return ','.repeat(num).slice(0,-1).split(',').map(function(e,i){return i+1}).filter(function(e){return e>1}).filter(function(x){return ','.repeat(x).slice(0,-1).split(',').map(function(f,j){return j}).filter(function(e){return e>1}).every(function(e){return x%e!==0})})}; Oto wyjaśniona logika: Najpierw funkcja buduje tablicę wszystkich liczb prowadzących do żądanej liczby (w tym przypadku 100) za pośrednictwem .repeat() funkcji, używając żądanej liczby (100) jako argumentu repeatera, a następnie mapując tablicę na indeksy + 1, aby uzyskać zakres liczb od 0 do tej liczby (0-100). Trochę rozszczepiania strun i łączenia magii, która tu się dzieje. Z przyjemnością wyjaśnię ten krok dalej, jeśli chcesz. Wykluczamy 0 i 1 z tablicy, ponieważ nie powinny być testowane pod kątem liczby pierwszej, aby nie dawały fałszywie dodatniego wyniku. Żadne nie są pierwsze. Robimy to za pomocą .filter() tylko dla liczb> 1 (≥ 2). Teraz filtrujemy naszą nową tablicę wszystkich liczb całkowitych od 2 do żądanej liczby (100) tylko pod kątem liczb pierwszych. Aby odfiltrować tylko liczby pierwsze, używamy tej samej magii od naszego pierwszego kroku. Używamy .filter() i .repeat() jeszcze raz, aby utworzyć nową tablicę od 2 do każdy wartość z naszej nowej tablicy liczb. Dla nowej tablicy każdej wartości sprawdzamy, czy którakolwiek z liczb ≥ 2 i .every() metoda sparowana z operatorem modulo % aby sprawdzić, czy ta liczba ma resztę po podzieleniu przez którąkolwiek z tych wartości między 2 a sobą. Jeśli każda wartość ma resztę (x%e!==0), warunek jest spełniony dla wszystkich wartości od 2 do tej liczby (ale nie wliczając tej liczby, tj .: [2,99]) i możemy powiedzieć, że liczba jest pierwsza. Funkcje filtrujące zwracają wszystkie liczby pierwsze do najwyższego wyniku, zwracając w ten sposób listę wartości pierwszych między 2 a wartością przekazaną. Na przykład, używając jednej z tych funkcji, które dodałem powyżej, zwraca: getPrimes(100); // => [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97] 1 Cholera! Dokładnie takiego podejścia szukałem. Dzięki za udostępnienie. 1 @ultrageek pewnie! Ponadto zoptymalizowałem moje rozwiązanie ES6 +, aby korzystać z fill() funkcja, a nie moje nieco zepsute rozwiązanie z powtarzającymi się przecinkami. Zaktualizowano! Najpierw zmień swój kod wewnętrzny na inną pętlę (for i while), dzięki czemu można powtórzyć ten sam kod dla różnych wartości. Bardziej szczegółowo dla twojego problemu, jeśli chcesz wiedzieć, czy dany n jest liczbą pierwszą, musisz ją podzielić dla wszystkich wartości od 2 do sqrt (n). Jeśli którykolwiek z modułów ma wartość 0, nie jest liczbą pierwszą. Jeśli chcesz znaleźć wszystkie liczby pierwsze, możesz to przyspieszyć i sprawdzić n tylko przez podzielenie przez poprzednio znalezione liczby pierwsze. Innym sposobem na przyspieszenie tego procesu jest fakt, że oprócz 2 i 3 wszystkie liczby pierwsze są 6*k plus lub mniej 1. W rzeczywistości jest między 2 a sqrt (n). Tak masz rację. Jeśli liczba większa niż sqrt (n) jest dzielnikiem noznacza to, że iloraz jest mniejszy niż sqrt (n), więc zostałby już znaleziony. Korygowanie. Byłoby dobrze, gdybyś użył któregokolwiek z algorytmów gazillionów, które zostaną ci przedstawione w tym wątku, aby nauczyć się zapamiętywać niektóre z nich. Zobacz pytanie do wywiadu: Jaki jest najszybszy sposób na rekurencyjne generowanie liczb pierwszych? Użyj następującej funkcji, aby znaleźć liczby pierwsze: function primeNumbers() { var p var n = var d var x var prime var displayAll = 2 + ' ' for (p = 3; p divisor) { if ( 2) > n) { return true; } if (n % divisor == 0 || > n) { return false; } else { divisor++; } } return true; } function getPrimeNumbers(range) { for (var i = 3; i <= range; i+=2) { if (isPrime(i)) { } } fillContent(primeNumbers); } getPrimeNumbers(11); })(); }; 1 2 Dalej
Oct 15, 2017 - Mam dla Was propozycję gry matematycznej, podczas której dzieci utrwalają sobie rozróżnianie na liczby parzyste i nieparzyste oraz dodawanie w zakresie 1-12. Potrzebne będą: dwie kredki, dwie kostki do gry,…
JavaScript - random() - generator liczb losowych Jest to metoda obiektu: Math Opis Za generowanie liczb losowych odpowiada metoda Random obiektu Math. Metoda ta generuje losowo liczbę z zakresu od 0 (włącznie) do 1 (bez jedynki). Składnia Parametry Przykłady Przykład 1 Generuje liczbę losową od 0 do 1. alert( Przykład 2 - Losowanie liczby całkowitej z danego przedziału. Generuje liczbę losową z zakresu od 1 do 100. W przykładzie użyliśmy jeszcze innej metody obiektu Math, a mianowicie metody zaokrąglania w dół do liczby całkowitej floor(). alert( Wsparcie dla przeglądarek TakTakTakTakTak Powiązane artykuły round() floor() Uwagi Aby wylosować liczbę całkowitą z przedziału , stosujemy wyrażenie: Jeżeli użyjemy tradycyjnego zaokrąglania liczb za pomocą metody round(), uzyskamy wówczas liczby z przedziału .Inne zagadnienia z tej lekcjiInstrukcje warunkowe w JavaScriptinstrukcje warunkowe w JavaScript. JavaScript udostępnia kilka instrukcji warunkowych, czyli takich, które w zależności od wartości wyrażenia sterują przebiegiem w JavaScriptPętle for, while, do ... while w JavaScript. Pętle to specjalny fragment kodu, który odpowiada za powtarzanie poleceń zawartych wewnątrz pętli taką ilość razy, jaka w pętli zostanie zdefiniowana poprzez odpowiednie w JavaScriptFunkcje w JavaScript - jak stosować, co to jest funkcja anonimowa? Funkcje to w JavaScript bardzo wygodny sposób na wielokrotne wykorzystanie tego samego kodu i to w sposób w JavaScriptTablice w JavaScript - opis stosowania tablic i ich metod. Tablice w JavaScript, to specjalny typ danych, który pozwala w jednej zmiennej przechowywać wiele - JavaScriptOpis obiektu Math w JavaScript. Dzięki niemu możemy w JavaScript odwoływać się do stałych matematycznych i dokonywać obliczeń. Wykaz metod, które służą do obliczania wartości funkcji dialogowe w JavaScriptRodzaje i stosowanie okienek dialogowych w Javascript. W JavaScript mamy do wyboru trzy rodzaje okienek dialogowych, wyzwalanych przez metody alert(), confirm() i prompt().String - tekst w JavaScriptOpis obiektu String w JavaScript. Dzięki temu obiektowi możemy w JavaScript przechowywać i przetwarzać wszelkie teksty. Znaki w tekście są indeksowane od liczby regularneWyrażenia regularne w JavaScript. Wyrażenie regularne to szablon tekstowy, wzorzec, który opisuje pewien zestaw znaków. Artykuł zawiera wykaz metaznaków wraz z przykładami ich date() - data i czas w JavaScriptObsługa dat i czasu w JavaScript. W JavaScript mamy do dyspozycji obiekt date(), który daje nam możliwość dostępu do dat i manipulowania datami oraz czasem.© 2016-11-01, ART-3265 Niektóre treści nie są dostosowane do Twojego profilu. Jeżeli jesteś pełnoletni możesz wyrazić zgodę na przetwarzanie swoich danych osobowych. W ten sposób będziesz miał także wpływ na rozwój naszego serwisu.
Potrzebuje pomocy z tym, bo gośc nam gówno tłumaczy na tych lekcjach, i zadaje jakieś gówna których nikt nie Zadanie jest następujące. Napisz program, który wymieni wszystkie liczby parzyste od 1 do 100.
Untitled a guest Oct 26th, 2015 300 Never Not a member of Pastebin yet? Sign Up, it unlocks many cool features! Pętle Zadanie 1 (1p) Napisz program wyświetlający wszystkie parzyste liczby z przedziału od 0 do 100. Zadanie 2 (1p) Dana jest następująca pętla: int s = 0 ; for ( int i = 1 ; i <= 10 ; i++) s = s + i; Zmodyfikuj powyższy kod aby wykorzystywał pętle while. Zadanie 3 (1p) Dane są dwie tablice zadeklarowane jak następuje: int[] tab1 = {3, 2, 1, 4, 6}; int[] tab2 = {1, 2, 4, 3, 4, 5}; Utwórz program wypisujący te elementy z tablicy tab1, które wystąpiły w tab2. Jeżeli jakiś element wystąpił więcej niż raz wypisz liczbę jego wystąpień. Zadanie 4 (1p) Napisz program wyświetlający tabliczkę mnożenia w zakresie do 100. 1 2 3 4 . . . 2 4 6 8 . . . 3 6 9 12 . . . 4 8 12 16 . . . . . . Zadanie 5 (1p) Napisz program, który wyrysuje na konsoli klepsydrę o podstawie składającej się przynajmniej z 8 symboli. Poniżej przykład klepsydry dla 5 symboli w podstawie. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * RAW Paste Data Copied
ID: 1525859 Language: Polish School subject: Matematyka Grade/level: Grade 3 Age: 7-9 Main content: Personal Other contents: math Add to my workbooks (1) Embed in my website or blog
Pętla for jest chyba najczęściej stosowaną pętlą w JS. Składnia pętli for: for(inicjalizacja; warunek_wyjścia; wyrażenie_modyfikujące){ wykowywane intrukcje; } Opis poszczególnych elementów: inicjalizacja – instrukcja wykonywana tylko raz na samym początku pętli. Zwykle używa się jej do przypisania wartości początkowej do zmiennej, która np. będzie zwiększana po każdym obiegu pętli. Zmienna taka zwykle nazywana jest licznikiem pętli warunek_wyjścia – dowolny warunek, który będzie sprawdzany przed każdym obiegiem pętli, także tym pierwszym. W momencie, gdy warunek zwróci false wykonywanie pętli zostanie przerwane, wyrażenie_modyfikujące – instrukcja, która będzie wykonywana po każdym obiegu pętli. Zwykle jej zadaniem jest zwiększenie wartości zmiennej pełniącej rolę licznika pętli. Przykład pętli for, która wypisze kolejne cyfry od 0 do 9 for (i = 0; i < 10; ++i){ } Każdy z trzech elementów znajdujących się wewnątrz okrągłych nawiasów pętli for może być bardziej skomplikowanym wyrażeniem, np.: for (n = inicjuj(); czy_kontynuowac(n); n = wylicz_nastepny(n)) wykonaj_fukcje(n); Można również napisać pętlę, która posiada kilka liczników lub inaczej mówiąc wykonuje kilka instrukcji. Można to zrobić w częściach inicjalizacja i wyrażenie_modyfikujące, poprzez rozdzielenie wyrażeń za pomocą przecinka. Aby zrobić coś takiego w części warunek_wyjścia należy zastosować operatory logiczne for(i = 0, j = 1; i < 10; ++i, j+=4) + j); Pętle można zagnieżdżać. Przykład wypisze wszystkie iloczyny liczb od 0 do 9 for (i = 0; i < 10; ++i) for (j=0; j < 10; ++j) * j); Wszystkie elementy pętli for, czyli inicjalizacja, warunek_wyjścia i wyrażenie_modyfikujące są opcjonalne i można je pominąć. Należy jednak pozostawić średniki. Przykład pętli poniżej jest prawidłowy: for( ; ; ) Jest to tak zwana pętla nieskończona. Będzie się ona wykonywać w nieskończoność, albo do zamknięcia okna, karty przeglądarki. Rzadko się stosuje taki rodzaj pętli. Nowoczesne przeglądarki posiadają zabezpieczenie przed długo działającymi skryptami i po jakimś czasie zadają pytanie czy przerwać skrypt. Takie pętle jak pisałem wcześniej rzadko się stosuje, ale nadal z takiej pętli można wyjść „od środka”. Pętla sama się nie zakończy ale możemy ją przerwać stosując instrukcję break. Kolejny przykład pokazuje jej użycie. Zauważcie, że w pętli nie ma części warunku_wyjścia. for(i = 0; ; ++i){ if (i == 10) break; i ); } Pętla powyżej zakończy się w chwili jak zmienna i osiągnie wartość 10. Inne instrukcje, które powodują wyjście z pętli to return (powrót z funkcji) i throw (rzucenie wyjątku). Kolejną instrukcją, którą należy znać to continue. Wykonanie tej instrukcji powoduje, że pętla od razu wykonuje część wyrażenie_modyfikujące i rozpoczyna kolejną iterację, czyli przejście. W ten sposób można na przykład wyświetlić tylko liczby parzyste. for (i = 0; i < 100; ++i){ if (i % 2 != 0) continue; i ) } Pętla for/in. Pętla ta służy do łatwego wyliczania kolejnych elementów tablic i właściwości obiektów. Składnia: for (zmienna in tablica_lub_obiekt){ instrukcja_1; instrukcja_2; } Przykład wypisania zawartości tablicy przy użyciu pętli for/in: tablica = Array( 'a', 'b', 'c', 'd' ); for (n in tablica) { } Zadania. Przy użyciu instrukcji i pętli wyświetlić w przeglądarce: linię składającą się z ośmiu znaków #: ######## trójkąt o dolnej podstawie pięciu #: # ## ### #### ##### prostokąt zbudowany ze znaków # o wymiarach 3 x 7: ####### ####### ####### odwróconą choinkę ze znaków # o górnej podstawie 9 ######### ####### ##### ### # choinkę ze znaków # o podstawie 9 # ### ##### ####### ######### Zadanie: zrobić tabliczkę mnożenia używając tabeli w HTML 1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100
Innymi słowy, kolejne liczby to liczby, które następują po sobie w kolejności, bez przerw, od najmniejszej do największej, zgodnie z MathIsFun. A Wolfram MathWorld zauważa: Kolejne liczby (a właściwie kolejne liczby całkowite ) to liczby całkowite n 1 i n 2 takie, że n 2 –n 1 = 1 takie, że n 2 następuje bezpośrednio po n 1 .
Co to jest Javascript? JS jest to interpretowany skryptowy język programowania wykonywany po stronie klienta. Czy są jakieś zasady programowania w dobrym stylu? Co to znaczy programować w dobrym stylu? Oczywiście, że są takie zasady. Wiąże się to z pracą w zespole. Wtedy wiele osób ogląda nasz kod źródłowy / skrypt. Czasem jak otwieramy nasz stary kod to łatwiej będzie się nam odnaleźć jak będą komentarze, wcięcia, niż jakby ich nie było. Kilka zasad programowania w dobrym stylu: każdą instrukcję piszemy w oddzielnym wierszu, dla czytelności kodu stosujemy wcięcia, stosujemy komentarze, używamy zrozumiałych nazw zmiennych, używamy notacji camelCase lub innej notacji, Składnia języka JS: każdą instrukcję oddzielamy średnikiem [ ; ], komentarze mogą składać się z jednej linii lub wielu linii [ // ] [/* */ ], wielkość liter w nazwach zmiennych ma znaczenie, Co to jest JavaScript? JavaScript to skryptowy język programowania wykonywany przez przeglądarkę po stronie klienta. Co można robić za pomocą JS? Za pomocą JS możemy: zmieniać dynamicznie wygląd wybranych elementów (wielkość tekstu, kolor, tło itp.) wykonać walidację formularzy wypełnianych przez użytkowników, ale nie zwalnia nas to z obowiązku walidacji wysłanych danych po stronie serwera. Jak sami wiecie są różni użytkownicy Internetu i na pewno znajdzie się bardzo wielu, którzy będą chcieli „sprawdzić” Waszą stronę wysyłać żądania poprzez AJAX (Asynchronous JavaScript and XML). Jest to technika tworzenia aplikacji internetowych, w której interakcja użytkownika z serwerem odbywa się bez przeładowywania całego dokumentu. Miejsca umieszczania skryptów w dokumencie HTML: w sekcji dokumentu HTML, w jakimkolwiek miejscu dokumentu HTML, na końcu dokumentu HTML. Sposoby umieszczania skryptów JS w HTML: używając znacznika , a cały skrypt znajduje się bezpośrednio w dokumencie HTML, (skrypt osadzony):np.: ... importując kod skryptu z zewnętrznego pliku .js:np.: ... atrybut type jest wymagany w HTML 4, ale opcjonalny w HTML 5 Instrukcją odpowiedzialną za wyświetlenie tekstu na stronie w javascript jest instrukcja Żeby wyświetlić tekst na stronie należy go umieścić w nawiasach okrągłych i w cudzysłowie: do wyświetlenia"); Na końcu każdej instrukcji należy umieścić średnik. Instrukcja mówi przeglądarce, żeby wykonała metodę write na obiekcie document. Obiekt document reprezentuje aktualną stronę. Przykład: Wpisz po znaczniku body taki skrypt i sprawdź działanie: skrypt"); Instrukcja pozwala również na wyświetlanie wartości liczbowych: Można również łączyć ze sobą kilka ciągów znaków z wartościami liczbowymi: jest pierwszy ciąg znaków " + 120 + "to jest drugi ciąg znaków"); Ćwiczenie: Proszę o wpisanie takiego skryptu i przeanalizowanie jego działania: Kowalski: "); - " + 31 + " lat"); - " + + " m"); - " + + " kg"); Typy danych w JS: W JS jest kilka typów danych i można na nich wykonywać operacje: liczby (Number), ciągi znaków (String), wartości logiczne (Boolean), obiekty (Object), tablice (Array), typy specjalne: Null, Undefined. Każdy z tych typów można przypisać do zmiennej. typ liczbowy – w porównaniu z innymi językami programowania nie uwzględnia on podziału na liczby całkowite i zmiennoprzecinkowe. Umożliwia wprowadzanie liczb w postaci dziesiętnej (np. 16), ósemkowej (np. 020) lub szesnastkowej (np. 0xF) dozwolona jest również notacja wykładnicza w postaci gdzie X stanowi część całkowitą, Y część dziesiętną, z Z jest wykładnikiem potęgi liczby 10 (np. Wartość dziesiętna Wartość ósemkowa Wartość szesnastkowa Notacja wykładnicza 1 01 0x1 8 010 0x8 123 0173 0x78 1024 02000 0x400 ciągi znaków (typ łańcuchowy) – to dowolne ciągi znaków. Należy umieścić je w cudzysłowie lub w apostrofach. W ciągach znaków mogą również wystąpić znaki specjalne np.: Sekwencja znaków Znaczenie \b Backspace \n Nowy wiersz \r Powrót karetki \f Nowa strona \" Cudzysłów \' Apostrof \\ Lewy ukośnik (backslash) Przykład zastosowania sekwencji znaków. Ciąg znaków do wyświetlenia Zapis w JS Trzeba wejść do katalogu C:\Windows\System "Trzeba wejść do katalogu C:\\Windows\\System" style="color:black;background:yellow" "style=\"color:black;background:yellow\" \/\/ "\\\/\\\/" Łańcuchy znaków to obiekty typu String. Na tych obiektach możemy wywoływać różne metody. W tabeli zawarte są najczęściej używane: Metoda Wywołanie Wynik Opis text = "Ala ma kota"; length 11 Zwraca długość ciągu w znakach charAt() m Zwraca znak na danej pozycji] charCodeAt 109 Zwraca kod ASCII znaku na podanej pozycji toUpperCase() ALA MA KOTA Zamienia wszystkie litery na wielkie toLowerCase() ala ma kota Zamienia wszystkie litery na małe indexOf() 7 Podaje pozycję szukanego tekstu. Jeżeli nie ma tekstu zwracana jest -1 lastIndexOf() 10 Podobnie do wcześniejszej metody, ale zwraca index ostatniego wystąpienia encodeUrl() Ala%20ma%20kota W niektórych przypadkach niepożądane jest stosowanie niektórych znaków: , spacja - # _ & % [ ] & ; : ? ' ( ) ~ | ` !. Z tej racji należy je w jakiś sposób zakodować. decodeUrl Ala ma kota Odkodowanie łańcucha znaków zakodowanego poprzednią metodą. substr() kota Pobiera część ciągu znaków. Długość tego ciągu znaków wyznacza drugi parametr. Brak drugiego parametru oznacza pobranie ciągu znaków do samego końca. substring() Ala Metoda podobna do poprzedniej. Różnica polega na tym, że drugi parametr określa pozycję znaku w ciągu. Jeżeli drugi parametr będzie większy, metoda zamieni miejscami te dwa parametry. slice() Ala Metoda bardzo podobna do poprzedniej. Zwraca ciąg znaków z podanego ciągu. split() ',2) Array('Ala', 'ma') Zwraca tablicę ciągów znaków podzieloną wg pierwszego parametru (spacji). Drugi parametr określa ile ma być elementów w tablicy. Nie podanie drugiego parametru zwróci w tym przypadku wszystkie wyrazy. replace() Ola ma kota Zamienia pierwsze wystąpienie szukanego ciągu i zamienia go na ciąg podany w drugim parametrze. Aby zamienić wszystkie wystąpienia danego ciągu należy skorzystać z wyrażeń regularnych Typ logiczny może przyjmować jedną z dwóch dostępnych wartości: true oraz false. Jest stosowany głównie przy budowaniu wyrażeń logicznych lub do porównywania danych. Typ obiektowy służy do reprezentacji obiektów. Najczęściej wykorzystuje się obiekty wbudowane oraz udostępniane przez przeglądarkę, ale nic nie stoi na przeszkodzie, aby stworzyć własny typ obiektowy. Typ tablicowy. Tablice w JS obsługiwane są przez klasę Array. Obiekt tej klasy, czyli tablicę, możemy tworzyć na trzy sposoby: var tabl = new Array(); //pusta tablica var tabl = new Array(10); //utworzenie tablicy 10 elem. var tabl = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); //utworzenie tablicy z podaniem elementów, które mają się w niej znaleźć. Możemy również utworzyć tablicę stosując nawiasy kwadratowe: var tabl = [ ]; var tabl = [ 10 ]; var tabl = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; Aby pobrać wartość pierwszego elementu tablicy należy posłużyć się składnią: tabl[0]. W nawiasy kwadratowe wpisujemy indeks elementu, który chcemy pobrać. Indeksy numerowane są od zera. Są również tablice wielowymiarowe i asocjacyjne. Typy specjalne dzielą się na dwa rodzaje: null – określa wartość pustą, undefined – określa wartość niezdefiniowaną. Można go przypisać do zmiennej bezpośrednio lub przyjmuje go zmienna, która nie została zainicjowana – nie przypisano do niej żadnej wartości. Co to jest zmienna? Zmienna jest to element programu pozwalający na przechowywanie danych różnych typów. W JavaScript nie wymaga się podania typu zmiennej podczas jej deklaracji. Ponadto typ zmiennej może ulec modyfikacji podczas wykonywania skryptu np. zmienne typu łańcuchowego (String) możemy przypisać wartość logiczną (Boolean). Jak się deklaruje (ustawia) zmienne? Deklaracja zmiennej odbywa się przez nadanie jej jednoznacznej nazwy, przez którą jest identyfikowana. Przed nazwą należy wprowadzić instrukcję var (variable – zmienna). Zasady w nazewnictwie zmiennych: nazwa zmiennej musi zaczynać się od litery, lub od znaku podkreślenia [ _ ], w nazwie można używać cyfr, np.: zmienna1, zmienna2 wielkość znaków w nazwie ma znaczenie, (zmienna i ZMIEnna to dwie różne zmienne) nazwa zmiennej nie może być słowem kluczowym np.: function, var, alert, w nazwach zmiennych nie używamy polskich liter np.: ą, ć, ę, nazwa zmiennej nie może zawierać spacji. Skrypt pokazujący jak zachowują się zmienne. var zmienna_a = 3; zmienna_a = true; zmienna_a = "Ala ma kota"; Do czego wykorzystywane są operatory arytmetyczne? Operatory arytmetyczne wykorzystywane są do wykonywania operacji matematycznych na zmiennych (i nie tylko zmiennych). Operator Składnia Opis + x + y Operacja dodawania - X - y Operacja odejmowania - - x Zmienia wartość zmiennej z wartości ujemnej na wartość dodatnią i odwrotnie. Zamiast tego operatora można wykonać -1*x % X % y Zwraca resztę z dzielenia pierwszej zmiennej przez drugą. Dzielenie modulo np.: 4 % 3 = 1 * X * y Wykonuje operację mnożenia / X / y Wykonuje operację dzielenia Skrypt pokazujący działanie operatorów arytmetycznych: var a = 4; var b = 3; = " + a +""); = " + b +""); + b = " +(a + b) +""); – b = " +(a - b) +""); * b = " +(a * b) +""); / b = " +(a / b) +""); % b = " +(a % b) +""); Operator łańcuchowy pozwala na łączenie dwóch ciągów znaków w jeden. Stosuje się w tym celu „+”, przykład: "text1" + "tekst2" //wynik działania text1tekst2 Operatory bitowe związane są z wykonywaniem operacji na bitach. Na odpowiednich bitach zmiennych wykonywane są operacji algebry logicznej. Najpowszechniej chyba spotykanym przypadkiem stosowania wartości bitowych są wszelkiego rodzaju systemy uprawnień. Operator Składnia Opis & X & y Wykonuje operację bitową AND, która zwraca 1 jeśli oba bity wynoszą 1. ^ X ^ y Wykonuje operację bitową XOR, która zwraca 1, jeśli jeden z bitów, ale nie oba jednocześnie, wynosi 1. | X | y Wykonuje operację bitową OR, która zwraca 1, jeśli jeden z bitów wynosi jeden > X >> y Wykonuje przesunięcie bitów w prawo o podaną liczbę usuwając nadmiarowe bity z prawej strony. X >> 1 równoznaczne jest z podzieleniem liczby X przez 2 bez reszty ~ ~x Bitowe NOT. Odwraca bit podanego argumentu. Operatory bitowe traktują swoje argumenty jako zbiory 32 bitów, a nie jak liczby dziesiętne, szesnastkowe, czy ósemkowe. Na przykład binarny zapis liczby dziesiętnej 9 to 1001. Operatory bitowe dokonują swoich operacji na takich właśnie reprezentacjach dwójkowych, ale zwracają standardowe wartości liczbowe JavaScript. Operator Działanie (x = 15; y = 9) & x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 & 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 | x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 ^ x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 y 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 | 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 > 2 x 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 >>2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 Operatory przypisania. Symbol Składnia Opis = X = y Przypisuje wartość y do zmiennej Y += X += y Wykonuje przypisanie X = X + y -= X -= y Wykonuje przypisanie X = X - y *= X *= y Wykonuje przypisanie X = X * y /= X /= y Wykonuje przypisanie X = X / y %= X %= y Wykonuje przypisanie X = X % y ^= X ^= y Wykonuje przypisanie X = X ^ y // alternatywa rozłączna bitów (xor) |= X |= y Wykonuje przypisanie X = X | y //suma logiczna bitów (or) &= X &= y Wykonuje przypisanie X = X & y //iloczyn logiczny bitów (and) >= X >>= y Wykonuje przypisanie X = X >> y //przesunięcie bitów w prawo o y >>>= X >>>=y Wykonuje przypisanie X = X >>> y //przesunięcie bitów w prawo o y Operatory inkrementacji i dekrementacji Symbol Składnia Opis ++ X++ Postinkrementacja (zwraca wartość i zwiększa wartość X o 1) ++ ++X Preinkrementacja (zwiększa wartość X o 1 i zwraca wartość) -- X-- Postdekrementacja (zwraca wartość i zmniejsza wartość X o 1) -- --X Predekrementacja (zmniejsza wartość X o 1 i zwraca wartość) Operatory porównania – wykorzystuje się je do porównania dwóch argumentów. W wyniku podawana jest wartość true, jeżeli zależność jest prawdziwa lub wartość false, jeżeli warunek nie został spełniony. Symbol Składnia Opis != X != y Zwraca true, jeżeli zmienne nie są równe X > y Zwraca true, jeżeli X jest większe od y >= X >= y Zwraca true, jeżeli X jest większe lub równe y === X === y Zwraca true, jeżeli X jest równe y i są tego samego typu !== X !== y Zwraca true, jeżeli X jest różne od y albo są różnych typów Operatory logiczne Symbol Składnia Opis ! !x Operator neguje wyrażenie && X && y Operator logiczny AND zwraca true jeżeli oba wyrażenia są prawdziwe || X || y Operator logiczny OR zwraca true, jeżeli przynajmniej jedno wyrażenie jest prawdziwe Instrukcja warunkowa określa, który z fragmentów programu zostanie wykonany w zależności od spełnienia określonych warunków. Ogólna postać instrukcji warunkowej. if (warunek) { instrukcje; } Instrukcja warunkowa z blokiem else if (warunek) { instrukcje; }else{ inne_instrukcje; } Instrukcja przetwarzania warunkowego pozwala na łatwa i szybkie zastąpienie bloku if..else. Można powiedzieć, że stanowi jego skróconą wersję. Jeżeli wynikiem działania warunku jest wartość true, to zostanie wykonana pierwsza instrukcja. Jeżeli warunek nie zostanie spełniony i przyjmie wartość false, zostanie wykonana instrukcja_2 (warunek) ? {instrukcja_1}:{instrukcja_2} Prosty skrypt pokazujący działanie instrukcji przetwarzania warunkowego: var x = prompt("Podaj liczbę", ""); x = (x%2==0) ? "parzysta" : "nieparzysta"; to liczba " + x); Czasem się zdarzy, że trzeba byłoby kilkukrotnie sprawdzać warunek czy zmienna przyjmuje odpowiednią wartość. Na przykład weźmy, że w zależności od wartości zmiennej x będziemy wykonywać inne operacje. Dla instrukcji warunkowej if wyglądałoby to mniej więcej tak: if (x==0){ instrukcja_1; } if (x==1){ instrukcja_2; } if (x==2){ instrukcja_3; } Jak sami widzicie nie wygląda to zbyt elegancko. Z pomocą przychodzi nam konstrukcja switch. Powyższe instrukcje if można zamienić na: switch (x){ case 0 : instrukcja_1;break; case 1 : instrukcja_2;break; case 2 : instrukcja_3; } W konstrukcji switch można dopisać blok default. Wykonuje się on wtedy, kiedy żaden warunek nie jest spełniony: switch (x){ case 0 : instrukcja_1;break; case 1 : instrukcja_2;break; case 2 : instrukcja_3;break; default: instrukcja_4; } Instrukcja break odpowiedzialna jest za wyjście z konstrukcji switch po znalezieniu opcji. Jeżeli nie byłoby break instrukcje następujące po znalezionej opcji wykonałyby się jedna po drugiej. Na ostatniej opcji nie jest wymagana instrukcja break. Czasem zachodzi potrzeba, żeby sprawdzić warunek w sekcji else. Robi się to poprzez konstrukcję if (x){ instrukcja_1; } else if(y>0){ instrukcja_2; } Pętla for jest chyba najczęściej stosowaną pętlą w JS. Składnia pętli for: for(inicjalizacja; warunek_wyjścia; wyrażenie_modyfikujące){ wykowywane intrukcje; } Opis poszczególnych elementów: inicjalizacja – instrukcja wykonywana tylko raz na samym początku pętli. Zwykle używa się jej do przypisania wartości początkowej do zmiennej, która np. będzie zwiększana po każdym obiegu pętli. Zmienna taka zwykle nazywana jest licznikiem pętli warunek_wyjścia – dowolny warunek, który będzie sprawdzany przed każdym obiegiem pętli, także tym pierwszym. W momencie, gdy warunek zwróci false wykonywanie pętli zostanie przerwane, wyrażenie_modyfikujące – instrukcja, która będzie wykonywana po każdym obiegu pętli. Zwykle jej zadaniem jest zwiększenie wartości zmiennej pełniącej rolę licznika pętli. Przykład pętli for, która wypisze kolejne cyfry od 0 do 9 for (i = 0; i var x = 1; while (x Oczywiście w pętli tej można również użyć instrukcji break i continue. Zasada działania tych instrukcji jest taka sama jak w pętli for. Zadania do wykonania Wypisać wszystkie dzielniki liczby 912 używając pętli while. Policzyć sumę wszystkich liczb od 1 do 100 używając pętli while. 12. Pętla do ... while 13. Funkcje 15. Obiekty wbudowane 16. Własne obiekty
. 48tz65ym4g.pages.dev/29448tz65ym4g.pages.dev/9448tz65ym4g.pages.dev/14748tz65ym4g.pages.dev/7248tz65ym4g.pages.dev/39848tz65ym4g.pages.dev/2648tz65ym4g.pages.dev/5848tz65ym4g.pages.dev/748tz65ym4g.pages.dev/300
liczby parzyste od 0 do 100 javascript