Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Parzystosc zmiennej
telepawel
post 30.06.2004, 12:17:33
Post #1





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 11.05.2003

Ostrzeżenie: (0%)
-----


Witam

Doszukac sie nie moge funkcji ktora bedzie sprawdzala czy dana wartosc zmiennej
$value jest parzysta czy tez nieparzysta.

Czy istnieje taka funkcja ?

Pawel
Go to the top of the page
+Quote Post
kszychu
post 30.06.2004, 12:19:10
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


Jaki jest warunek parzystości liczby? Taki, że reszta z dzielenia przez 2 wynosi zero*. teraz tylko ubierz to w działania i już masz gotowe rozwiązanie.




*) wyjątkiem jest oczywiście zero, które jak wiadomo nie jest ani parzyste ani nieparzyste.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
jbiz
post 30.06.2004, 12:26:50
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 0
Dołączył: 10.03.2004
Skąd: z duszy :]

Ostrzeżenie: (20%)
X----


  1. <?php
  2. if ( $x % 2 == 0 ) print &#092;"parzysta\";
  3. ?>
Go to the top of the page
+Quote Post
sobstel
post 30.06.2004, 12:27:43
Post #4





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


poszukaj o modulo (%)


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post
telepawel
post 30.06.2004, 12:29:35
Post #5





Grupa: Zarejestrowani
Postów: 81
Pomógł: 0
Dołączył: 11.05.2003

Ostrzeżenie: (0%)
-----


:DDD
W jednej linijce zawarles 20 moich...ladnie smile.gif


Napisalem teraz gdyby ktos potrzebowal.
Uwaga nietestowane:

  1. <?php
  2.  
  3. function test_parzystosci($value){
  4. $val_po_dzieleniu = $value/2;
  5.  
  6. if(strstr($val_po_dzieleniu, &#092;".\"))
  7. $get = explode(&#092;".\", $val_po_dzieleniu);
  8. $reszta = $get['1'];
  9. {
  10.   if($get == 0 or $get == NULL)
  11.     {
  12.     $check = &#092;"Parzysta\";
  13.     }else{
  14.     $check = &#092;"Nieparzysta\";
  15.     }
  16. }else{
  17.   $check = &#092;"Parzysta\";
  18. }
  19.  
  20. echo $check;
  21. }
  22.  
  23.  
  24. ?>


wywolanie
np:
test_parzystosci(2);

Ten post edytował telepawel 30.06.2004, 12:35:26
Go to the top of the page
+Quote Post
kszychu
post 30.06.2004, 12:50:32
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


Cytat(telepawel @ 2004-06-30 12:29:35)
:DDD
W jednej linijce zawarles 20 moich...ladnie smile.gif


Napisalem teraz gdyby ktos potrzebowal.
Uwaga nietestowane:

  1. <?php
  2.  
  3. function test_parzystosci($value){
  4. $val_po_dzieleniu = $value/2;
  5.  
  6. if(strstr($val_po_dzieleniu, &#092;".\"))
  7. $get = explode(&#092;".\", $val_po_dzieleniu);
  8. $reszta = $get['1'];
  9. {
  10.   if($get == 0 or $get == NULL)
  11.     {
  12.     $check = &#092;"Parzysta\";
  13.     }else{
  14.     $check = &#092;"Nieparzysta\";
  15.     }
  16. }else{
  17.   $check = &#092;"Parzysta\";
  18. }
  19.  
  20. echo $check;
  21. }
  22.  
  23.  
  24. ?>


wywolanie
np:
test_parzystosci(2);

Nie no, ja wymiękam! Ludzie mu tu piszą jak to zrobić najprościej i najszybciej a ten wyświetla tu takie pokemony! Weź to schowaj i nie pokazuj, bo się ludzie będą śmiali!


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
talee
post 30.06.2004, 17:46:51
Post #7





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 7.09.2002
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Ha ha ha pokemony...

Może powiesz mi ile wynosi reszta z dzieleni 0 przez 2?

A najbardziej elegancko będzie:

  1. <?php
  2. if ($i & 1) {
  3.  echo 'nieparzysta';
  4. }
  5. else {
  6.  echo 'parzysta';
  7. }
  8. ?>


A koleś pytał się czy istnieje taka funkcja? Więc odp. brzmi tak/nie/nie wiem guitar.gif

Wybacz musiałem bo kolo oberwał bez przyczyny


--------------------
Inni dążą do doskonałości, ja nie muszę ;)
Go to the top of the page
+Quote Post
rzseattle
post 30.06.2004, 19:46:23
Post #8





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

Ostrzeżenie: (0%)
-----


php => php Poczatkujacy


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
Jabol
post 30.06.2004, 20:10:26
Post #9





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

Ostrzeżenie: (0%)
-----


ale numerek z 'and' (&) bitowym zadziała tylko na liczbach całkowitych, co dobrze może ilustrować majsterkowanie z tym programem (kompilacja `gcc -lm -o floatbits floatbits.c`):
Kod
#include<stdlib.h>
#include<stdio.h>
#include<math.h>

int main(int argc, char *argv[])
{
    int i=0, bit=0, bits=0;
    float f;
    if(argc<2) exit(-1);
    f=atof(argv[1]);
    memcpy(&bits, &f, 4);
    printf("float: %f (hex: 0x%x)\nint: %d (hex: 0x%x)\n", f, f, bits, bits);
    for(i=31; i>=0; i--)
        {
        bit=pow(2,i);
        if((bits&bit)==bit) printf("1");
            else printf("0");
        }
    puts("");
    return 0;
}
Dlatego też chyba lepsze jest rozwiązanie z modulo, chyba, że jesteśmy pewni iż liczba jest całkowita.

EDIT:
a tak wogóle to właśnie doszłem, że liczb zmiennoprzecinkowych nie można traktoawć operatorami bitowymi, więc jeżeli chcemy uniknąć zaskoczenia lepiej używać modulo.

Ten post edytował Jabol 30.06.2004, 20:35:34
Go to the top of the page
+Quote Post
kszychu
post 1.07.2004, 09:21:07
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

Ostrzeżenie: (0%)
-----


Cytat(talee @ 2004-06-30 17:46:51)
Może powiesz mi ile wynosi reszta z dzieleni 0 przez 2?

A może przeczytasz sobie mój pierwszy post? Podpowiem: szukaj przypisu.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
dr_bonzo
post 1.07.2004, 09:35:57
Post #11





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


kszychu:
Cytat
Jaki jest warunek parzystości liczby? Taki, że reszta z dzielenia przez 2 wynosi zero*.
(...)
*) wyjątkiem jest oczywiście zero, które jak wiadomo nie jest ani parzyste ani nieparzyste.


Jedno jest pewne, reszta z dzielenia zera przez dwa = 0:
0 / 2 = 0 reszty 0
A jesli reszta jest == 0 to zgodnie z ta definicja jst to liczba parzysta.
Liczba nieparzysta: reszta z dzielenia przez 2 == 1. Czyli zero nie jest liczba nieparzysta.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
talee
post 1.07.2004, 15:29:39
Post #12





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 7.09.2002
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Dokładnie mówiąc est tak: liczbą parzystą nazywamy każdą liczbę postaci 2 * k gdzie k należy do N. Czy zero jest parzyste czy ne parzyste zależy od tego czy w definicji N przyjmiemy 0 należy do N lub ne. O ile mi wiadomo już ładnych kilka lat przyjmuję się, że 0 należy do N.


--------------------
Inni dążą do doskonałości, ja nie muszę ;)
Go to the top of the page
+Quote Post
sobstel
post 1.07.2004, 17:49:57
Post #13





Grupa: Zarejestrowani
Postów: 853
Pomógł: 25
Dołączył: 27.08.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Cytat(talee @ 2004-07-01 15:29:39)
O ile mi wiadomo już ładnych kilka lat przyjmuję się, że 0 należy do N.

kwestia czy 0 zaliczać do liczb naturalnych czy nie zawsze zależy od konwencji przyjętej w danej książce. jest to kwestia sporna i nie rozstrzygnięta.


--------------------
"If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.07.2025 - 06:32