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

  • Автор темы APJIEKUH48
  • Дата начала
A

APJIEKUH48

#1
Нужно переделать программу таким образом что бы она получала данные из файла. Исходно данные вводятся через форму на странице
Код:
<!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' : '').'><=</option><option value="0" '.((int)$_POST['e'.$i]==0 ? 'selected' : '').'>=</option><option value="1" '.((int)$_POST['e'.$i]==1 ? 'selected' : '').'>=></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>
Я сделал чтение из файла в те же переменные. Файл загружается нормально, но программа не выполняется. Подскажите плиз что я делаю не так.
Код:
<!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. Договоримся
 

Вложения

  • 53 байт Просмотры: 2