Подскажите Что Я Делаю Не Так.

Тема в разделе "PHP программирование", создана пользователем APJIEKUH48, 9 июн 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>
    Файл читается нормально, но программа не выполняется. Не могу понять в чем проблема. Подскажите пожалуйста.
    вот образец файла:
     

    Вложения:

    • test.txt
      Размер файла:
      53 байт
      Просмотров:
      4
Загрузка...

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