Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Blokada liczb - instrukcja warunkowa.
--ozi--
post 10.07.2012, 13:05:20
Post #1





Goście







Witam.

Oto prawidłowy zestaw liczb pionowych: 1,1 2,1 3,1 4,1
a ten zaś z błędem 1,2 2,1 3,1 4,1

Funkcją explode rozbijam sobie liczby:
  1. $ciag = $_POST["nr1"].','.$_POST["nr2"].','.$_POST["nr3"].','.$_POST["nr4"];
  2. $zn = explode(',', $ciag);
  3.  
  4. $liczba1 = $zn[0];
  5. $liczba2 = $zn[1];
  6. $liczba3 = $zn[2];
  7. $liczba4 = $zn[3];
  8. $liczba5 = $zn[4];
  9. $liczba6 = $zn[5];
  10. $liczba7 = $zn[6];
  11. $liczba8 = $zn[7];


Liczby pionowe 1, 3, 5, 7 reszta poziome.
Jak zrobić aby tak jak w powyższym przykładzie jedne albo drugie będą o jeden większe a drugie muszą być takie same ponieważ nie ma możliwości na skos?
Go to the top of the page
+Quote Post
Sephirus
post 10.07.2012, 13:15:39
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

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


Hmmm... Say what?! tongue.gif


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
--ozi--
post 10.07.2012, 13:27:32
Post #3





Goście







Użytkownik wpisuje dwie liczby po przecinku w cztery pola formularza następnie skrypt rozbija te ciągi na dwie liczby które są przypisane do zmiennych. Liczby nieparzyste w zmiennych czyli $liczba1, $liczba3, $liczba5 i $liczba 7 są pionowymi a parzyste poziomymi. Chodzi o to, że nie mogę zabezpieczyć aby użytkownik albo wybiera liczby pionowe (np. 1,1 2,1 3,1 4,1 lub 2,5 3,5 4,5 5,5) albo poziome (np.1,2 1,3 1,4 1,5 lub 3,2 3,3 3,4 3,5).

Pion liczby pierwsze zmieniają się poziom liczby drugie.

Go to the top of the page
+Quote Post
Shido
post 10.07.2012, 14:20:37
Post #4





Grupa: Zarejestrowani
Postów: 121
Pomógł: 22
Dołączył: 22.06.2012

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


Chyba wiem o co chodzi.
Czym funkcje, nie wiem z czym miał być problem.
  1. function ciag($ciag)
  2. {
  3. $zn = explode(',', $ciag);
  4. $liczba1 = $zn[0];
  5. $liczba2 = $zn[1];
  6. $liczba3 = $zn[2];
  7. $liczba4 = $zn[3];
  8. $liczba5 = $zn[4];
  9. $liczba6 = $zn[5];
  10. $liczba7 = $zn[6];
  11. $liczba8 = $zn[7];
  12.  
  13. if($liczba1 == $liczba3 and $liczba3 == $liczba5 and $liczba5 == $liczba7)
  14. {
  15.  
  16. if($liczba4 == $liczba2+1 and $liczba6 == $liczba4+1 and $liczba8 == $liczba6+1)
  17. {
  18. return true;
  19. }
  20. else
  21. {
  22. return false;
  23. }
  24. }
  25. else if($liczba2 == $liczba4 and $liczba4 == $liczba6 and $liczba6 == $liczba8)
  26. {
  27. if($liczba3 == $liczba1+1 and $liczba5 == $liczba3+1 and $liczba7 == $liczba5+1)
  28. {
  29. return true;
  30. }
  31. else
  32. {
  33. return false;
  34. }
  35. }
  36. }
  37.  
  38. $ciag = $_POST["nr1"].','.$_POST["nr2"].','.$_POST["nr3"].','.$_POST["nr4"];
  39. if(ciag($ciąg))
  40. {
  41. echo('Dobre liczby');
  42. }
  43. else
  44. {
  45. echo('Błędne Liczby');
  46. }


Ten post edytował Shido 10.07.2012, 14:21:22


--------------------
Sorka za błędy ort. jak coś dajcie znać na PW to popoprawiam.
Go to the top of the page
+Quote Post
SmokAnalog
post 10.07.2012, 14:48:08
Post #5





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Ależ paskudnie, panowie. Stworzyłem taką funkcję na szybko bez sprawdzenia. Przyjmuje ona jako parametr dowolną tablicę punktów. Każdy punkt to array(x, y). Uważam, że taka powinna być postać argumentów funkcji.
  1. function isVertical($points) {
  2. $lastX = null;
  3. $coordsY = array();
  4. foreach($points as $point) {
  5. list($x, $y) = $point;
  6. if($lastX !== null AND $x !== $lastX) // jeżeli współrzędna X jest inna niż nasz ostatni X, to zwracamy fałsz
  7. return false;
  8. $coordsY[] = $y;
  9. $lastX = $x;
  10. }
  11. sort($coordsY);
  12. $lastY = null;
  13. foreach($coordsY as $y) { // sprawdzamy, czy współrzędne Y rosną co 1
  14. if($lastY !== null AND $y - $lastY !== 1)
  15. return false;
  16. $lastY = $y;
  17. }
  18. return true;
  19. }
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: 19.07.2025 - 02:18