Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Najwększy wspólny dzielnik, NWD w pętli while
Jozjasz
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 11.09.2009

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


Witam forumowiczów

Od dłuższego czasu głowię się nad skryptem z książki(słabo jest tam wyjaśniony), który działa, ale nie rozumiem dlaczego działa. Wygląda on tak:

  1. <?
  2. $a=32;
  3. $b=12;
  4. print ("Największy wspólny dzielnik liczby $a i $b to: ");
  5. while ($a != $b) //operator różności - true jesli $a i $b są różne
  6. {
  7. if ($a<$b)
  8. {
  9. $pom=$a; $a=$b; $b=$pom;
  10. }
  11. $a=$a-$b;
  12. }
  13. print ($a);
  14. ?>


Analizując drogę skryptu, to działa on tak: dopóki $a i $b są różne, to $a=$a-$b, ale w związku z instrukcją "if" - jesli $a jest mniejsze od $b to $a staje się równe $b (nie rozumiem po co tutaj zmienna pomocnicza $pom). Ale $a jest mniejsze od $b już w momencie gdy $a=8. Ponieważ działanie $a=$a-$b działa tak:

32-12=32
20-12=20
8-12=8

Zatem nie rozumiem dlaczego $a ma być kiedykolwiek równe 4... (nie widzę tego momentu)Czy ktoś mógłby mi jasno i szczegółowo wyjaśnić skąd ta 4, (która jest faktycznie NWD dla tych liczb) i gdzie zrobiłem błąd w mojej analizie tego skryptu ?

dzięki za odpowiedź

Ten post edytował Jozjasz 17.09.2009, 01:53:11
Go to the top of the page
+Quote Post

Posty w temacie
- Jozjasz   [PHP]Najwększy wspólny dzielnik   17.09.2009, 01:52:08
- - Berg   Pierwsze przejście pętli: $a = 32; $b =...   17.09.2009, 02:10:23


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 Aktualny czas: 21.08.2025 - 14:47