Помогите Найти Ошибку

Тема в разделе "PHP программирование", создана пользователем APJIEKUH48, 10 июн 2012.

  1. APJIEKUH48

    APJIEKUH48 Гость

    Нужно переделать программу таким образом что бы она получала данные из файла. Исходно данные вводятся через форму на странице
    Код (Text):
    <!doctype html><html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Симплекс</title>
    <link rel="stylesheet" href="/ascet.css" type="text/css" media="screen">
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script>google.load("visualization", "1", {packages:["corechart"]});</script>
    </head><body><?php
    list($sad_u1m_sec,$sad_u1s_sec)=explode(' ',microtime());

    echo '<form method="post"><table class="sad">';
    echo '<tr >';for ($j=1;$j<9;$j++){
    echo '<td><input name="x0_'.$j.'" value="'.(strlen($_POST['x0_'.$j])>0 ? $_POST['x0_'.$j] : '0').'">*x'.$j.'+</td>';
    }
    echo '<td >→<select name="e0"><option value="1" '.((int)$_POST['e0']==1 ? 'selected' : '').'>min</option><option value="0" '.((int)$_POST['e0']==0 ? 'selected' : '').'>max</option></select></td></tr>';

    for ($i=1;$i<10;$i++){
    echo '<tr>';
    for ($j=1;$j<9;$j++){
    echo '<td><input name="x'.$i.'_'.$j.'" value="'.(strlen($_POST['x'.$i.'_'.$j])>0 ? $_POST['x'.$i.'_'.$j] : '0').'">*x'.($j).'+</td>';
    }
    echo '<td><select name="e'.$i.'"><option value="-1" '.((int)$_POST['e'.$i]==-1 ? 'selected' : '').'>&lt;=</option><option value="0" '.((int)$_POST['e'.$i]==0 ? 'selected' : '').'>=</option><option value="1" '.((int)$_POST['e'.$i]==1 ? 'selected' : '').'>=&gt;</option></select> <input name="y'.$i.'" value="'.(strlen($_POST['y'.$i])>0 ? $_POST['y'.$i] : '0').'"></td>';
    echo '</tr>';
    }
    echo '</TABLE><input class="nice mrgn" type="submit"><input type="hidden" name="action" value="math"></form>';

    if ($_POST['action']!=='math'){echo '</body></html>';return;}

    $x=array();$e=array();$max_i=0;$max_j=0;
    for ($i=0;$i<10;$i++){
    $x[$i]=array(0);
    for ($j=1;$j<9;$j++){
    preg_match('|(\\-?[0-9.]+)|',$_POST['x'.$i.'_'.$j], $a);
    $x[$i][$j]=(float)$a[1];

    if ($x[$i][$j]!==(float)0){$max_i=$i;$max_j=max($j, $max_j);}
    }

    $e[$i]  =(int)$_POST['e'.$i];
    $x[$i][0]=(float)$_POST['y'.$i];
    }

    require('./simplex.php');
    $debug=false;

    echo "\r\n\r\n\r\n\r\n\r\n";
    // echo '<pre>';print_r($x);echo '</pre>';
    /* A*x1+B*x2 -> max
    C*x1+D*x2 -> E
    F*x1+G*x2 -> H */
    $orig=$x;


    function draw_graph($a, $title){
    global $orig, $max_i, $max_j, $e;

    echo 'Перебираем значения для переменных: ';
    $s=array();$names='';
    for ($id=0;$id<count($a);$id++){
    echo $a[$id][0].' ['.$a[$id][1].', '.$a[$id][2].'] ('.$orig[$a[$id][1]][$a[$id][2]].'); ';
    $names.='data.addColumn("number", "'.mysql_escape_string($a[$id][0]).'");'."\r\n";
    $x=$orig; for ($v=-100;$v<=100;$v++){
    $x[$a[$id][1]][$a[$id][2]]=$orig[$a[$id][1]][$a[$id][2]]+$v;
    $r[$v][$id]=math_simplex($x, $e, $max_i, $max_j);
    if ($r[$v][$id]==null or $r[$v][$id]=='inf'){$r[$v][$id]='null';}

    //Вычисляем скорость функции
    if ($r[$v][$id-1]=='null' or $r[$v][$id]=='null'){
    $s[$v-1][$id]='null';
    }else{
    $s[$v-1][$id]=$r[$v][$id]-$r[$v][$id-1];
    }
    }
    }
    echo '<br />';
    //echo '<pre>';print_r($r);echo '</pre>';exit;

    $data=''; for ($v=-100;$v<=100;$v++){
    $data.=',["'.$v.'"';
    for ($id=0;$id<count($a);$id++){$data.=', '.$r[$v][$id];}
    $data.="]\r\n";
    }

    $rand=mt_rand(1,10000);
    echo '<div id="graph'.$rand.'"></div><script>
    var data = new google.visualization.DataTable();
    data.addColumn("string", "???");';
    echo $names;
    echo 'data.addRows(['.substr($data, 1).']);';
    ?>
    var options<?php echo $rand ?> = {
    width: 800,
    height: 300,
    title: '<?php echo mysql_escape_string($title); ?>',
    colors: ['#ff4d4d', '#ffa94d', '#a6ff4d', '#a64dff', '#4dffff',
    '#4da6ff', '#4d4dff', '#4dffa6', '#ff4dff', '#4dff4d', '#ff4da6', '#e6e645'],
    };
    var data<?php echo $rand; ?> = data;
    var chart<?php echo $rand; ?> = new google.visualization.LineChart(document.getElementById('graph<?php echo $rand; ?>'));
    chart<?php echo $rand; ?>.draw(data<?php echo $rand; ?>, options<?php echo $rand; ?>);
    </script><?php

    //Скорость функции
    $data=''; for ($v=-101;$v<=99;$v++){
    $data.=',["'.$v.'"';
    for ($id=0;$id<count($a);$id++){$data.=', '.$s[$v][$id];}
    $data.="]\r\n";
    }

    $rand=mt_rand(1,10000);
    echo '<div id="graph'.$rand.'"></div><script>
    var data = new google.visualization.DataTable();
    data.addColumn("string", "???");';
    echo $names;
    echo 'data.addRows(['.substr($data, 1).']);';
    ?>
    var options<?php echo $rand ?> = {
    width: 800,
    height: 300,
    title: 'Цена: <?php echo mysql_escape_string($title); ?>',
    colors: ['#ff4d4d', '#ffa94d', '#a6ff4d', '#a64dff', '#4dffff',
    '#4da6ff', '#4d4dff', '#4dffa6', '#ff4dff', '#4dff4d', '#ff4da6', '#e6e645'],
    };
    var data<?php echo $rand; ?> = data;
    var chart<?php echo $rand; ?> = new google.visualization.LineChart(document.getElementById('graph<?php echo $rand; ?>'));
    chart<?php echo $rand; ?>.draw(data<?php echo $rand; ?>, options<?php echo $rand; ?>);
    </script><?php
    }

    //Рисуем графики
    $a=array();
    for ($j=1;$j<=$max_j;$j++){$a[]=array('x'.$j, 0, $j);}
    draw_graph($a, 'График оптимумов для переменных в функции L');

    $a=array();
    for ($i=1;$i<=$max_i;$i++){$a[]=array('S'.$i, $i, 0);}
    draw_graph($a, 'График оптимумов для ресурсов');

    $a=array();
    for ($i=1;$i<=$max_i;$i++){
    for ($j=1;$j<=$max_j;$j++){
    $a[]=array('F'.$i.'_'.$j, $i, $j);
    if (count($a)==6){draw_graph($a, 'График оптимумов для коэфициэнтов при ограничениях');$a=array();}
    }
    }
    if (count($a)>0){draw_graph($a, 'График оптимумов для коэфициэнтов при ограничениях');}


    list($sad_u2m_sec,$sad_u2s_sec)=explode(' ',microtime());
    echo '<hr><b>'.($sad_u2s_sec+$sad_u2m_sec-$sad_u1s_sec-$sad_u1m_sec).'</b> секунд на генерацию страницы';
    ?></body></html>
    Я сделал чтение из файла в те же переменные. Файл загружается нормально, но программа не выполняется. Подскажите плиз что я делаю не так.
    Код (Text):
    <!doctype html><html><head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Симплекс</title>
    <link rel="stylesheet" href="/ascet.css" type="text/css" media="screen">
    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script>google.load("visualization", "1", {packages:["corechart"]});</script>
    </head><body>
    <form enctype="multipart/form-data" action="/index.php" method="POST">
    <input type="hidden" name="action" value="send" />
    <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
    </form>
    <?php
    if ($_POST['action']!=='send'){echo 'null';exit;}
    echo '<pre>'; print_r($_FILES);echo '</pre>';
    $file=file_get_contents($_FILES['userfile']['tmp_name']);
    echo '<pre>'; print_r($_FILES);echo '</pre>';
    $lines=explode("\r\n", $file);
    $decode=array('min'=>1, 'max'=>0 ,'<='=>-1,'='=>0,'=>'=>1);
    foreach ($lines as $i=>$line)
    {
    $x[$i]=explode(' ', $line);
    $e[$i]=$decode[array_pop($x[$i])];
    }
    list($sad_u1m_sec,$sad_u1s_sec)=explode(' ',microtime());
    if ($_POST['action']!=='math'){echo '</body></html>';return;}
    require('./simplex.php');
    $debug=false;

    echo "\r\n\r\n\r\n\r\n\r\n";
    // echo '<pre>';print_r($x);echo '</pre>';
    /* A*x1+B*x2 -> max
    C*x1+D*x2 -> E
    F*x1+G*x2 -> H */
    $orig=$x;


    function draw_graph($a, $title){
    global $orig, $max_i, $max_j, $e;

    echo 'Перебираем значения для переменных: ';
    $s=array();$names='';
    for ($id=0;$id<count($a);$id++){
    echo $a[$id][0].' ['.$a[$id][1].', '.$a[$id][2].'] ('.$orig[$a[$id][1]][$a[$id][2]].'); ';
    $names.='data.addColumn("number", "'.mysql_escape_string($a[$id][0]).'");'."\r\n";
    $x=$orig; for ($v=-100;$v<=100;$v++){
    $x[$a[$id][1]][$a[$id][2]]=$orig[$a[$id][1]][$a[$id][2]]+$v;
    $r[$v][$id]=math_simplex($x, $e, $max_i, $max_j);
    if ($r[$v][$id]==null or $r[$v][$id]=='inf'){$r[$v][$id]='null';}

    //Вычисляем скорость функции
    if ($r[$v][$id-1]=='null' or $r[$v][$id]=='null'){
    $s[$v-1][$id]='null';
    }else{
    $s[$v-1][$id]=$r[$v][$id]-$r[$v][$id-1];
    }
    }
    }
    echo '<br />';
    //echo '<pre>';print_r($r);echo '</pre>';exit;

    $data=''; for ($v=-100;$v<=100;$v++){
    $data.=',["'.$v.'"';
    for ($id=0;$id<count($a);$id++){$data.=', '.$r[$v][$id];}
    $data.="]\r\n";
    }

    $rand=mt_rand(1,10000);
    echo '<div id="graph'.$rand.'"></div><script>
    var data = new google.visualization.DataTable();
    data.addColumn("string", "???");';
    echo $names;
    echo 'data.addRows(['.substr($data, 1).']);';
    ?>
    var options<?php echo $rand ?> = {
    width: 800,
    height: 300,
    title: '<?php echo mysql_escape_string($title); ?>',
    colors: ['#ff4d4d', '#ffa94d', '#a6ff4d', '#a64dff', '#4dffff',
    '#4da6ff', '#4d4dff', '#4dffa6', '#ff4dff', '#4dff4d', '#ff4da6', '#e6e645'],
    };
    var data<?php echo $rand; ?> = data;
    var chart<?php echo $rand; ?> = new google.visualization.LineChart(document.getElementById('graph<?php echo $rand; ?>'));
    chart<?php echo $rand; ?>.draw(data<?php echo $rand; ?>, options<?php echo $rand; ?>);
    </script><?php

    //Скорость функции
    $data=''; for ($v=-101;$v<=99;$v++){
    $data.=',["'.$v.'"';
    for ($id=0;$id<count($a);$id++){$data.=', '.$s[$v][$id];}
    $data.="]\r\n";
    }

    $rand=mt_rand(1,10000);
    echo '<div id="graph'.$rand.'"></div><script>
    var data = new google.visualization.DataTable();
    data.addColumn("string", "???");';
    echo $names;
    echo 'data.addRows(['.substr($data, 1).']);';
    ?>
    var options<?php echo $rand ?> = {
    width: 800,
    height: 300,
    title: 'Цена: <?php echo mysql_escape_string($title); ?>',
    colors: ['#ff4d4d', '#ffa94d', '#a6ff4d', '#a64dff', '#4dffff',
    '#4da6ff', '#4d4dff', '#4dffa6', '#ff4dff', '#4dff4d', '#ff4da6', '#e6e645'],
    };
    var data<?php echo $rand; ?> = data;
    var chart<?php echo $rand; ?> = new google.visualization.LineChart(document.getElementById('graph<?php echo $rand; ?>'));
    chart<?php echo $rand; ?>.draw(data<?php echo $rand; ?>, options<?php echo $rand; ?>);
    </script><?php
    }

    //Рисуем графики
    $a=array();
    for ($j=1;$j<=$max_j;$j++){$a[]=array('x'.$j, 0, $j);}
    draw_graph($a, 'График оптимумов для переменных в функции L');

    $a=array();
    for ($i=1;$i<=$max_i;$i++){$a[]=array('S'.$i, $i, 0);}
    draw_graph($a, 'График оптимумов для ресурсов');

    $a=array();
    for ($i=1;$i<=$max_i;$i++){
    for ($j=1;$j<=$max_j;$j++){
    $a[]=array('F'.$i.'_'.$j, $i, $j);
    if (count($a)==6){draw_graph($a, 'График оптимумов для коэфициэнтов при ограничениях');$a=array();}
    }
    }
    if (count($a)>0){draw_graph($a, 'График оптимумов для коэфициэнтов при ограничениях');}


    list($sad_u2m_sec,$sad_u2s_sec)=explode(' ',microtime());
    echo '<hr><b>'.($sad_u2s_sec+$sad_u2m_sec-$sad_u1s_sec-$sad_u1m_sec).'</b> секунд на генерацию страницы';
    ?>

    </body></html>
    Пример загружаемого файла:

    Если кто-то за хочет помочь моя аська:605-558-841. Договоримся
     

    Вложения:

    • test.txt
      Размер файла:
      53 байт
      Просмотров:
      2
Загрузка...
Похожие Темы - Помогите Найти Ошибку
  1. OlgaZag
    Ответов:
    1
    Просмотров:
    1.291
  2. OlgaZag
    Ответов:
    0
    Просмотров:
    523
  3. Google313
    Ответов:
    0
    Просмотров:
    999
  4. Marikd
    Ответов:
    2
    Просмотров:
    1.209
  5. ruivit
    Ответов:
    2
    Просмотров:
    1.329

Поделиться этой страницей