Wpisany przez Michał Witaszek,
11 lipca 2011 13:24
Liczbę nazywamy parzystą, gdy możemy podzielić ją bez reszty przez dwa. Czyli liczba a jest parzysta, gdy reszta z dzielenia a przez 2 wynosi 0. W praktyce oznacza to że, by określić czy liczba a jest parzysta wystarczy sprawdzić czy spełnia warunek: a mod 2 = 0, co można przedstawić za pomocą następującego schematu blokowego:
Działanie operacji modulo można zobrazować następująco:
25 mod 2 = 1
Ponieważ:
25 / 2 = 12.5,
12.5 bez reszty to 12 (25 div 2 = 12),
25 – (12*2) = 1,
W 25 mieszczą się dwie pełne dwunastki i zostaje 1,
Reszta z dzielenia 25/2 wynosi 1.
Czy liczba 25 jest parzysta?
25 mod 2 = 1
25 nie jest liczbą parzystą.
Czy liczba 38 jest parzysta?
38 mod 2 = 0
38 jest liczbą parzystą.
Czy 0 jest liczbą parzystą?
0 mod 2 = 0
Nasz program uzna że 0 jest liczbą parzystą.
Uwaga:
W niektórych językach programowania (jak np. C++ ) do operacji modulo używa się symbolu %. Więc a mod 2 w C++ zapisujemy a % 2.
Przykład w JavaScript
Działanie operacji modulo można zobrazować następująco:
25 mod 2 = 1
Ponieważ:
25 / 2 = 12.5,
12.5 bez reszty to 12 (25 div 2 = 12),
25 – (12*2) = 1,
W 25 mieszczą się dwie pełne dwunastki i zostaje 1,
Reszta z dzielenia 25/2 wynosi 1.
Przykład:
Czy liczba 25 jest parzysta?
25 mod 2 = 1
25 nie jest liczbą parzystą.
Czy liczba 38 jest parzysta?
38 mod 2 = 0
38 jest liczbą parzystą.
Czy 0 jest liczbą parzystą?
0 mod 2 = 0
Nasz program uzna że 0 jest liczbą parzystą.
Uwaga:
W niektórych językach programowania (jak np. C++ ) do operacji modulo używa się symbolu %. Więc a mod 2 w C++ zapisujemy a % 2.
Przykład w JavaScript
Implementacje
Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
Bartosz Bednarczyk | C# | .cs | .cs | ***** / 21 | |
Michał Witaszek | C/C++ | .cpp | .cpp | ***** / 14 | |
Adam CZ | C/C++ | C++, funkcja obliczająca wynik | .cpp | .cpp | ***** / 2 |
Michał Witaszek | Delphi/Pascal | .pas | .pas | ***** / 3 | |
Bartosz Bednarczyk | Java | .java | .java | ***** / 11 | |
Dominik Goździuk | JavaScript | .js | .js | ***** / 17 | |
Tomasz Lubiński | Java_Block | .jbf | .jbf | ***** / 0 | |
Dominik Goździuk | Perl | .pl | .pl | ***** / 3 | |
Dominik Goździuk | Php | .php | .php | ***** / 6 | |
Nikodem Solarz | Ruby | 2 metody sprawdzające | .rb | .rb | ***** / 0 |
Poprawiony: 12 marca 2012 20:24
"Za pomocą schematu blokowego przedstaw algorytm, wypisywania wszystkich liczb nieparzystych od 1 do 30 w kolejności od największej do najmniejszej"
Jest to na stronie :
http://www.kostka.jezuici.pl/tmp/2010/Rejon_teoria.pdf i karta 7
A ja stąd dzięki Michałowi Witaszkowi mam część zadania, ale jak zrobic dalszą część czyli posortować od największej do najmiejszej?
Z góry dzięki za Odpowiedz!
www.algorytm.org/algorytmy-sortowania/
Najprostszą jest chyba sortowanie bąbelkowe: www.algorytm.org/algorytmy-sortowania/sortowanie-babelkowe-bubblesort.html
Jeśli chcesz posortować dane "w dół" wykonaj opisany algorytm "odwrotnie" ;)
Widać tu prawidłowość że liczby nieparzyste występują co dwa, a więc zapisując rozwiązanie w pseudokodzie otrzymamy:
i = 29 //zaczynamy od 29
dopoki (i >= 1) { // konczymy na 1
wypisz(i) // wypiszujemy aktualna wawrtosc i
i = i - 2; // zmniejszamy i o 2
}
Wszystko, żadnego sortowania...
dla liczby 1231321809308120938902181 podaje że jest parzysta ;)
Czyli całość powyżej jest potrzebna jak pisanie funkcji Dodaj(a,b)