Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Skrypty]Matematyka
ShadowD
post
Post #1





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


Mam skrypty napisane przeze mnie i chciał bym was prosić o ocenę, a tak naprawdę o wytknięcie błędów. Zmienne są brzydko ponazywane ale to wersja, że tak powiem robocza. Skrypty poruszają bajeczne problemy...

Nie będę pisał dużo niech skrypty mówią same za siebie. ;p

[ANR] Zamiana znaków arabskich na rzymskie:

  1. <?php
  2. function anr($a)
  3.  {
  4.        
  5.    $znakiArabskie=array(1,4,5,9,10,40,50,90,100,400,500,900,1000);
  6.    $znakiRzymskie=array('I','IV','V','IX','X','XL','L','XC','C','CD','D','CM','M');
  7.    
  8.    for($i=12;$i>=0;$i--)
  9.    {    
  10.      while($a>=$znakiArabskie[$i])
  11.      {
  12.        $a=$a-$znakiArabskie[$i];
  13.        $anr=$anr.$znakiRzymskie[$i];
  14.      }
  15.    }
  16.    
  17.    return $anr;    
  18.  }
  19.  
  20. ?>


[RNA] Zamiana znaków rzymskich na arabskie:

  1. <?php
  2. function rna($a)
  3.  {
  4.  
  5.    $znakiRzymskie=array('I','V','X','L','C','D','M');
  6.    $znakiArabskie=array(1,5,10,50,100,500,1000);
  7.  
  8.    for($i=strlen($a)-1;$i>=0;$i--)
  9.    {
  10.      for($j=6;$j>=0;$j--)
  11.      {
  12.        if($a[$i]===$znakiRzymskie[$j])
  13.          $b[$i]=$znakiArabskie[$j];
  14.      }
  15.    }
  16.  
  17.    for($i=0;$i
  18.    {
  19.      $n=$i+1;
  20.  
  21.      if(isset($b[$n]))
  22.      {
  23.        if($b[$i]>=$b[$n])
  24.          $rna=$rna+$b[$i];
  25.         else
  26.          $rna=$rna-$b[$i];
  27.      }
  28.      else
  29.        $rna=$rna+$b[$i];
  30.    }
  31.  
  32.  return $rna;  
  33.  }
  34.  
  35. ?>


[NWD] Największy wspólny dzielnik:

  1. <?php
  2. function NWD($a,$b)
  3.  {
  4.    
  5.    if($a>=$b)
  6.    {
  7.      $A=$a;
  8.      $B=$b;      
  9.    }
  10.    else
  11.    {
  12.      $A=$b;
  13.      $B=$a;
  14.    }
  15.        
  16.    do
  17.    {
  18.      $R=$A%$B;
  19.    
  20.      $A=$B;
  21.      $B=$R;
  22.    }
  23.    while($R!=0);
  24.    
  25.    return $A;
  26.  }
  27.  
  28. ?>


[NWW] najmniejsza wspólna wielokrotność:

  1. <?php
  2. function zna($a,$b)
  3.  {
  4.    $nwd=nwd($a,$b);
  5.  
  6.    $i=$a*$b;
  7.  
  8.    $nww=$i/$nwd;
  9.    
  10.    return $nww;
  11.  }
  12.  
  13. ?>


Niektóre funkcje korzystają z poprzednich więc powiedzmy, że wszystkie są w jednym pliku.

@Administracja/Opiekunowie - Jeśli istnieje lepsze miejsce na poruszenie owego tematu chciał bym prosić o przeniesienie go w to miejsce. Z góry dziękuję.

Ten post edytował ShadowD 19.10.2008, 12:17:16
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Speedy
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 28
Dołączył: 4.12.2004

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


Cytat
a raczej o porady jak można by łatwiej lub lepiej zapisać owe funkcję.


  1. <?php
  2. for($i=0;$i
  3.   {
  4. ?>


tu masz coś niedokończone

  1. <?php
  2. if($a>=$b)
  3.   {
  4.     $A=$a;
  5.     $B=$b;      
  6.   }
  7.  
  8.   if($a<$b)
  9.   {
  10.     $A=$b;
  11.     $B=$a;
  12.   }
  13. ?>


1. po co generować kolejną instrukcję warunkową? Przecież wiadomo, że w tym przypadku, jak jedna nie zadziała, to uruchomi się druga - wystarczy dać else.
2. Nie podoba mi się zwyczaj tworzenia różnych zmiennych, które różnią się tylko wielkością liter. Na dłuższą metę może to doprowadzić do niezłego bałaganu.

Ten post edytował Speedy 18.10.2008, 21:59:15
Go to the top of the page
+Quote Post

Posty w temacie


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: 4.10.2025 - 21:11