Другие языки программирования и технологии
Решить задачу в Delphi7
Удалить из целочисленной матрицы m*n строку и столбец, содержащий максимальный элемент. Напечатать исходную и полученную матрицы.
program N72477697;
{$APPTYPE CONSOLE}
var a:array of array of shortint;
i, j, imax, jmax:byte;
begin
randomize;
setlength(a, random(9) + 2, random(9) + 2);
writeln('Исходная матрица A(', High(a) + 1, 'x', High(a[Low(a)]) + 1, '):');
for i := Low(a) to High(a) do
begin
for j := Low(a[і]) to High(a[і]) do
begin
a[i, j] := random(101) - 50;
write(a[i, j]:5);
if (i or j = Low(a) or Low(a[Low(a)])) or (a[i, j] > a[imax, jmax]) then
begin
imax := i;
jmax := j
end
end;
writeln
end;
writeln('Максимальный элемент A(', imax + 1, ',', jmax + 1, ') = ', a[imax, jmax]);
for i := Low(a) to High(a) do
begin
for j := jmax to High(a[і]) - 1 do
a[i, j] := a[i, j + 1];
setlength(a[і], High(a[і]))
end;
for j := Low(a[Low(a)]) to High(a[Low(a)]) do
for i := imax to High(a) - 1 do
a[i, j] := a[i + 1, j];
setlength(a, High(a));
writeln('Полученная матрица A(', High(a) + 1, 'x', High(a[Low(a)]) + 1, '):');
for i := Low(a) to High(a) do
begin
for j := Low(a[і]) to High(a[і]) do
write(a[i, j]:5);
writeln
end;
readln;
finalize(a)
end.
P.S. Программа удаляет строку и столбец с первым попавшимся максимальным элементом. Если в матрице есть другие элементы с максимальным значением, то они не рассматриваются.
Конечно, выглядит это безобразно, зато наглядно демонстрирует, что можно обойтись без переменных, хранящих количество строк и столбцов матрицы.
{$APPTYPE CONSOLE}
var a:array of array of shortint;
i, j, imax, jmax:byte;
begin
randomize;
setlength(a, random(9) + 2, random(9) + 2);
writeln('Исходная матрица A(', High(a) + 1, 'x', High(a[Low(a)]) + 1, '):');
for i := Low(a) to High(a) do
begin
for j := Low(a[і]) to High(a[і]) do
begin
a[i, j] := random(101) - 50;
write(a[i, j]:5);
if (i or j = Low(a) or Low(a[Low(a)])) or (a[i, j] > a[imax, jmax]) then
begin
imax := i;
jmax := j
end
end;
writeln
end;
writeln('Максимальный элемент A(', imax + 1, ',', jmax + 1, ') = ', a[imax, jmax]);
for i := Low(a) to High(a) do
begin
for j := jmax to High(a[і]) - 1 do
a[i, j] := a[i, j + 1];
setlength(a[і], High(a[і]))
end;
for j := Low(a[Low(a)]) to High(a[Low(a)]) do
for i := imax to High(a) - 1 do
a[i, j] := a[i + 1, j];
setlength(a, High(a));
writeln('Полученная матрица A(', High(a) + 1, 'x', High(a[Low(a)]) + 1, '):');
for i := Low(a) to High(a) do
begin
for j := Low(a[і]) to High(a[і]) do
write(a[i, j]:5);
writeln
end;
readln;
finalize(a)
end.
P.S. Программа удаляет строку и столбец с первым попавшимся максимальным элементом. Если в матрице есть другие элементы с максимальным значением, то они не рассматриваются.
Конечно, выглядит это безобразно, зато наглядно демонстрирует, что можно обойтись без переменных, хранящих количество строк и столбцов матрицы.
100 руб. за все удовольствие...
используй stringgrid
можно решить как в паскале через матрицу, а потом перекинуть в stringgrid
можно решить как в паскале через матрицу, а потом перекинуть в stringgrid
можно но дельфи это компилятор!!!
Похожие вопросы
- Помогите решить задачу на Турбо паскале
- Помогите решить задачу на программирование!
- Помогите решить задачу.
- Какой язык программирования сможет решить задачу? (Pascal не смог)
- помогите пожалуйста решить задачу по работе компьютера!
- Помогите,пожалуйста,решить задачу в Паскале.
- Народ, слезно прошу помочь решить задачу по информатике (програмирование), я просто ноль в этом(((
- Объясните, пожалуйста, как решить задачу по информатике...
- Pascal. Помогите пожалуйста решить задачу в паскале !
- Помогите решить задачу на Basic