Napisz program, który wypełnia tablicę o wymiarach n x m, gdzie n<100 i m<100 - wartości n i m podaje użytkownik, a następnie wyświetla te liczby. Liczby należy wprowadzić do komponentu textarea oddzielone przecinkami. Program powinien zweryfikować, czy n i m są liczbami całkowitymi mniejszymi od 100, czy podane wartości są liczbami (całkowitymi lub rzeczywistymi), oraz czy ich liczba zgadza się z n x m, a następnie wyświetlić tablicę w czytelny sposób, np. w formie tabeli.
Wskazówki dla ucznia
- Sprawdź, czy n i m są liczbami całkowitymi (is_numeric() i is_int() po konwersji) oraz czy są mniejsze od 100.
- Użyj explode(), aby rozdzielić ciąg z textarea na tablicę liczb na podstawie przecinków.
- Zweryfikuj, czy każda wartość jest liczbą za pomocą is_numeric().
- Przekształć jednowymiarową tablicę na dwuwymiarową, rozdzielając ją na wiersze po m elementów.
- Zabezpiecz dane wejściowe za pomocą htmlspecialchars() przy pobieraniu, aby chronić przed XSS.
';
$count = count($values);
$isCountValid = $count === ($n*$m);
$areAllValuesValid = true;
for ($i = 0; $i < $count; $i++) {
if (!is_numeric($values[$i])) {
$areAllValuesValid = false;
} else {
$values[$i] = (float)$values[$i];
}
}
if ($isValidDimensions && $isCountValid && $areAllValuesValid) {
$values2d = array_chunk($values, $m);
echo "Wymiary tablicy: n = $n, m = $m
";
echo "Wprowadzone liczby: ";
echo implode(', ', $values);
echo "
Tablica $n x $m:";
echo '
';
for ($i = 0; $i < $n; $i++) {
echo '';
for ($j = 0; $j < $m; $j++) {
echo '| ' . $values2d[$i][$j] . ' | ';
}
echo '
';
}
echo '
';
} else {
echo 'Dane wejściowe nie są poprawne! Sprawdź wymiary, liczbę wartości lub czy wszystkie są liczbami.';
}
echo '
';
}
?>