Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2009, 14:43   #1
SuBwooFer
Пользователь
 
Аватар для SuBwooFer
 
Регистрация: 28.08.2009
Сообщений: 28
Лампочка Как вам код, и есть ли более простые решения ?

Следующий код решает "Алгебраическое уравнение" с помощью брута(подбора чисел). В работе он выглядит так http://math.hop.ru, вводить уравнение нужно так, чтобы перед каждым знаком "+" или "-" был пробел! Для примера используйте "x3 -x2 -8x -6" Число после X означает степень. Соблюдены ли PHP стандарты, и есть ли более простые решения ?

PHP код:
<?php
$work 
$_GET['work'];
$num_space substr_count($work,' ');
$work explode(' '$work);

function 
start($q$work$num_space)
{
   for(
$i 0$num_space >= $i$i++)
   {
      if(
substr_count($work[$i], 'x') != 0)
      {
         
$num_symbol strlen($work[$i]);
         for(
$k 0$num_symbol $k$k++)
            
$work_mas[$i][$k] = substr($work[$i], $k1);
         
$tox strpos($work[$i], 'x');
         
$x 1;
         if(
$work_mas[$i][$tox+1])
         {
            for(
$m=0$m $work_mas[$i][$tox+1]; $m++)
            {
               
$x $x*$q;   
            }   
         }else{
               
$x $q;
         }
         if(
$work_mas[$i][0] != 'x' && $work_mas[$i][0] != '-' && $work_mas[$i][0] != '+')
         {
            if(
$work_mas[$i][1] != 'x')
            {
               
$numbers $work_mas[$i][0].$work_mas[$i][1];
               
$numbers $x*$numbers;
               
$numb    $numbers
            }else{
               
$numb    $x*$work_mas[$i][0];
            }
         }else{
            if(
$work_mas[$i][0] == '+')
            {
               if(
$work_mas[$i][1] != 'x')
               {
                  if(
$work_mas[$i][2] != 'x')
                  {
                     
$numbers $work_mas[$i][1].$work_mas[$i][2];
                     
$numbers $x*$numbers;
                     
$numb    '+'.$numbers;
                  }else{
                     
$numbers $work_mas[$i][1];
                     
$numbers $x*$numbers;
                     
$numb    '+'.$numbers;
                  }
               }else{
                  
$numb '+'.$x;
               }
            }
            if(
$work_mas[$i][0] == '-')
            {
               if(
$work_mas[$i][1] != 'x')
               {
                  if(
$work_mas[$i][2] != 'x')
                  {
                     
$numbers '-'.$work_mas[$i][1].$work_mas[$i][2];
                     
$numb    $x*$numbers;
                  }else{
                     
$numbers '-'.$work_mas[$i][1];
                     
$numb $x*$numbers;
                  }
               }else{
                  
$numb '-'.$x;
               }
            }
            if(
$work_mas[$i][0] == 'x')
               
$numb $x;
         }
         
$sak[$i] = $numb;
      }else{
         
$sak[$i] = $work[$i];
      }    
   }
   for(
$t=0$i >= $t$t++)
      
$bag $bag+$sak[$t];
   return 
$bag
}
for(
$v=1100 >= $v$v++)
{
   if(
start($v$work$num_space) == 0)
   { 
      echo 
$v;
      echo (
"<br />");
   }
   
$v *= -1;
   if(
start($v$work$num_space) == 0)
   { 
      echo 
$v;
      echo (
"<br />");
   }
   
$v *= -1;

?>
Using C++, C#, PHP, HTML, JavaScript, CSS, SQL.
SuBwooFer вне форума Ответить с цитированием
Старый 10.09.2009, 15:08   #2
wall66
Участник клуба
 
Аватар для wall66
 
Регистрация: 04.10.2008
Сообщений: 1,485
По умолчанию

практического применения у этого кода нет, так что более простого решения в данном случае и не требуется

а так - посоветовал бы изучить регулярные выражения, с помощью них задачу можно решить в одну строку
свободен...
wall66 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++. Есть код нужно исправить ошибки megavolt91 Общие вопросы C/C++ 6 06.06.2009 19:27
Есть код программы на с++. Нужно обьяснение Alex1991 Помощь студентам 1 16.03.2009 14:37
Трабла с округлениями. Задачу решил. Но - может есть еще более симпатишные варианты... winfacks Microsoft Office Excel 2 04.02.2009 23:30
Программа "простые итерации". Готовый код. Проблема с компилированием. Oleg330 Общие вопросы C/C++ 9 25.12.2008 23:51
Есть код!! Danilyuk Помощь студентам 1 31.05.2008 00:46