Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> stałe w pętlach, dynamiczne ustawianie stałych w pętli
jdar
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 3.05.2005

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


jeśli ktoś spotkał się z poniższym problemem/przypadkim to proszę o radę :)

w pętli for wykonywane są sekwencyjnie pewne działania matematyczne w celu obliczenia pewnych stałych wartości (mają one później być widoczne poza pętlą), jednak te stałe wartości są również potrzebne do wykonania działania na kolejnych wartościach z pętli - jeśli ustalam ręcznie wartość stałej (jako wynik to wszystko się ładnie liczy;
problem jest taki, że obliczona wartość (która jest ogólnie ustalonym konkretnym wynikiem) zapisana jako zmienna w pętli i wykorzystywana do obliczeń (np. mnożona przez kolejne wartości pętli) przestaje być stała :) tzn. jest tylko wtedy, kiedy pętla wykonuje się ostatni raz - w pozostałych przypadkach pojawia się dla każdej wartości pętli jakiś dziwny wynik.. na jakiej to działa zasadzie, co jest nie tak, jak to naprawić lub ominąć - proszę o pomoc :) z góry dzięki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
mario
post
Post #2





Grupa: Zarejestrowani
Postów: 186
Pomógł: 0
Dołączył: 23.09.2003
Skąd: Siemianowice Śląskie

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


Możesz wkleić tutaj kod, troszkę to wszystko pokręcone, jak wkleisz kod na pewno będzie łatwiej pomóc.
Go to the top of the page
+Quote Post
jdar
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 3.05.2005

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


pętla:
  1. <?php
  2. for ($a=1; $a<=$_POST['num_vars']; $a++) {
  3. $inside_x = &#092;"x\".$a.\"\";
  4. $inside_y = &#092;"y\".$a.\"\"; 
  5. $sum_x += $_POST[$inside_x];  // ------------------------- SUMA WARTOSCI X-OWYCH
  6. $sum_y += $_POST[$inside_y];  // ------------------------- SUMA WARTOSCI Y-OWYCH
  7. $product_xy = $_POST[$inside_x] * $_POST[$inside_y]; // ------------------------- ILOCZYNY WARTOSCI X I Y
  8. $sum_product_xy += $product_xy; // SUMA ILOCZYNOW WARTOSCI X I Y
  9. $square_x += $_POST[$inside_x] * $_POST[$inside_x]; // ------------------------- SUMA KWADRATOW WARTOSCI X
  10. $sum_xsquare = $sum_x * $sum_x; // ------------------------- KWADRAT SUMY WARTOSCI X
  11. $par_a_linear = ($sum_x * $sum_y - $_POST['num_vars'] * $sum_product_xy)/($sum_xsquare - $_POST['num_vars'] * $square_x); // STALY PARAMETR A (WSPOLCZYNNIK KIERUNKOWY PROSTEJ)
  12. $par_b_linear = ($sum_x * $sum_product_xy - $sum_y * $square_x)/($sum_xsquare - $_POST['num_vars'] * $square_x); // STALY PARAMETR B 
  13. $d_func = $_POST[$inside_y] - ($par_a_linear * $_POST[$inside_x] + $par_b_linear); // I TU SIE SYPIE;)
  14. }
  15. ?>
Go to the top of the page
+Quote Post
Ociu
post
Post #4





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




wypluwa jakiś błąd ? daj error_reporting();
Go to the top of the page
+Quote Post
jdar
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 3.05.2005

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


nie ma żadnych błędów - po prostu wyniki nie są prawidłowe
Go to the top of the page
+Quote Post
tiraeth
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


spróbuj operować na tablicach... za każdym razem kiedy pętla powtarza sekwecję funkcji umieszczonych w jej wnętrzu nadpisuje zmienne. jedyną możliwością jest wrzucanie wyników do tablicy a następnie wykonywania działań na nich... czyli, jeżeli do tablicy $tab[] wrzucasz kolejne elementy i chcesz do nich dodać np. wartość poprzedniego klucza tablicy ($tab[]-1) to wtedy otrzymasz $tab[]+$tab[]-1 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ciężko to napisać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ale mam nadzieję, że choć trochę z tego zrozumiałeś (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
jdar
post
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 3.05.2005

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


ok volture dzięki - tablice się przydały - może niezupełnie w formie jaką mi proponowałeś ale mimo wszystko problem rozwiązałam :) dzięki raz jeszcze i pozdrawiam
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.12.2025 - 20:55