Помощь - Поиск - Пользователи - Календарь
Полная версия: Массивы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
vadim(b)

Const
size_col = 9; { число столбцов }
size_row = 3; { число строк }
Type
TColumn = Array[1 .. size_row] Of Integer;
TMatrix = Array[1 .. size_col] Of TColumn;
Var
k: Integer;

Procedure swap_cols(Var mx: TMatrix; n: integer);
Var
i, j: Integer;
T: TColumn;
Begin

For i := 1 To n Do
For j := n DownTo i+1 Do
If mx[Pred(j)][k] > mx[j][k] Then Begin
T := mx[Pred(j)]; mx[Pred(j)] := mx[j]; mx[j] := T
End
End;
procedure print(var mx: tmatrix);
var i, j: integer;
begin
for i := 1 to size_row do
begin
for j := 1 to size_col do
write(mx[j][i]:4); { <<< Обратите внимание на индексы !!! }
writeln
end;
end;

var
mx: tmatrix;
i, j: integer;

begin
randomize;
{ Заполнение матрицы }
for i := 1 to size_row do
for j := 1 to size_col do
mx[i][j] := random(10)+2;

{ Матрица до обмена }
writeln('before:'); print(mx);
readln(k);
{ Обмен столбцов }
swap_cols(mx,size_col);

{ Матрица после обмена }
writeln('after:'); print(mx);
readln;
end.


Задание поменять местами столбцы матрицы по к-той строке. Всё работает отлично но появляются какието не понятные нули в матрице покажите где ошибка
volvo
 { Заполнение матрицы }
for i := 1 to size_row do
for j := 1 to size_col do
mx[j][i] := random(10)+2; { <--- Индексы !!! }
vadim(b)
Вопрос 2. Как сделать ввод размерности матрицы с клавиатуры?!
volvo
Ну, тогда тебе прямая дорога в Динамические массивы и матрицы
мисс_граффити
Или, если Вы еще такого не проходили, а выходить за рамки курса боишься - просто создавай большой массив и работай с его кусочком (размеры которого можно спросить у пользователя).
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.