За то что пытался запутать автора
- переписал исходник. Теперь он полностью удовлетворяет условию. И описание добавил.
Код
{--------------------------------------------------
Удаление стобцов в матрице.
---------------------------------------------------
>> Описание процедур
---------------------------------------------------
1) MatrixOut(x,y:integer) - выводит матрицу на экран.
x - количество строк, y - количество столбцов.
2) MatrixPer(temp:integer) - Эта процедура делает
переназначение элементам массива.
temp - номер строки/стобца.
---------------------------------------------------
>> Пример
---------------------------------------------------
Дана матрица:
1 0 -3
A = 4 6 2
-1 4 7
, необходимо удалить вторую столбей. Алгоритм такой:
1) Необходимо присовить элементам второго стобца элементы
третьего столбца (A[1,2] = A[1,3], A[2,2] = A[2,3] и т.д.)
После преобразований получится матрица:
1 -3 -3
A = 4 2 2
-1 7 7
2) Теперь осталось скрыть третий столбец и вывести на экран только
первые два
}
uses
crt;
var
m,n,i,j,k:integer;
a: array[1..10,1..10] of integer;
{процедура вывода матрицы}
procedure MatrixOut(x,y:integer);
begin
writeln;
for i:=1 to x do
begin
for j:=1 to y do
write(a[i,j]:8);
writeln;
end;
writeln;
end;
{процедура переназначения эл-в массива}
procedure MatrixPer(temp:integer);
begin
for i:=1 to m do
begin
for j:=temp to n-1 do
begin
a[i,j]:=a[i,j+1];
end;
end;
end;
{основная программа}
begin
clrscr;
write('Введите размер матрицы (MxN): ');
readln(m,n);
writeln('Введите элементы матрицы: ');
{Вводим матрицу}
for i:=1 to m do
for j:= 1 to n do
begin
write('A[',i,' ',j,']:=');
readln(a[i,j]);
end;
MatrixOut(m,n); {вывод матрицы}
write('Введите номер стобца который необходимо удалить: ');
readln(k);
MatrixPer(k); {шаг 1. (см. алгоритм}
writeln('Результат: ');
MatrixOut(m,n-1); {шаг 2. (см. алгоритм)}
readln;
end.