<?PHP
//формирование формы ввода(имя матрицы, значение по-умолчанию, ширина, высота)--
function readmat($matname, $default, $width, $height)//таблица для считывания матрицы
{
$tab = '';
function default_val($default, $n, $m)
{
if(is_array($default)) $defval = $default[$n][$m]; else $defval = $default;
return $defval;
}
$tab .= '<table border = "1" align = "center">';
for($i=1; $i<=$width; $i++)
{
$tab .= '<tr>'."\n";
for($j=1; $j<=$height; $j++)
{
//проверка значения по-умолчанию на мaсив
$value = (!empty($_GET[$matname.$i.$j])) ?
$_GET[$matname.$i.$j] : default_val
($default, $i, $j); $tab .= '<td><input type = "number" name = "'.$matname.$i.$j.'" value = "'.$value.'" size = "5"></td>'."\n";
}
$tab .= '</tr>'."\n";
}
$tab .= '</table>'."\n";
return $tab;
}
//приводм полученую срань в порядок
//формирование масива(содержание формы, имя матрицы, ширина, высота)------------
function srctomat($getmat, $matname, $width, $height)
{
for($i=1; $i<=$width; $i++)
{
for($j=1; $j<=$height; $j++)
{
$mat[$i][$j] = $getmat[$matname.$i.$j];
}
}
return $mat;
}
//недопиленый вывод матрицы.******АХТУНГ!******
//формирование таблицы(матрица, ширина, высота)---------------------------------
function printmat($matarr, $width, $height)
{
$mat = '<table border = "0" align = "center">';
for($i=1; $i<=$width; $i++)
{
$mat .= '<tr>'."\n";
if($i == 1)
{
$lines = '<td ROWSPAN='.$height.'><img src = "img/lines.png"></img></td>'."\n";
}
else
{
$lines = "";
}
$mat .= $lines;
for($j=1; $j<=$height; $j++)
{
$mat .= '<td align= "right">'.$matarr[$i][$j].'</td>'."\n";
}
$mat .= $lines;
$mat .= '</tr>'."\n";
}
$mat .= '</table>'."\n";
return $mat;
}
//транспонирование(матрица, ширина, высота)-------------------------------------
function transmat($mat, $width, $height)
{
for($i=1; $i<=$width; $i++)
{
for($j=1; $j<=$height; $j++)
{
$trmat[$i][$j] = $mat[$j][$i];
}
}
return $trmat;
}
//прибавление матриц(матрица1, матрица2, ширина, высота)------------------------
function matpmat($mat1, $mat2, $width, $height)
{
for($i=1; $i<=$width; $i++)
{
for($j=1; $j<=$height; $j++)
{
$resmat[$i][$j] = $mat1[$i][$j] + $mat2[$i][$j];
}
}
$res = printmat($resmat, $width, $height);
return $res;
}
function matxnum($mat, $width, $height, $num)
{
for($i=1; $i<=$width; $i++)
{
for($j=1; $j<=$height; $j++)
{
$matxn[$i][$j] = $num * $mat[$i][$j];
}
}
$res = printmat($matxn, $width, $height);
return $res;
}
//отладочная функция, потом м.б. выпилю!
//матрица из случайных чисел()-------------------------------------------------
function randmat()
{
for($i=1; $i<=3; $i++)
{
for($j=1; $j<=3; $j++)
{
$randmat[$i][$j] = rand(100
, 999
); }
}
return $randmat;
}
?>