Помощь - Поиск - Пользователи - Календарь
Полная версия: Транспонирование матрицы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Начинающий
Здравствуйте
вот моя прога
Program matrixx (Input, Output);
Const
k=10;
Type
  matrix= Array [0..k, 0..k] of integer;
Var
  matrix1: matrix;
  i, j, n, temp:Integer;
{процедура транспонирования}
Procedure transp;
Begin
  For i := 0 to n-1 do
  For j := 0 to n do
  Begin
    temp:= matrix1[i,j];
    matrix1[i,j]:= matrix1[j,i];
    matrix1[j,i]:= temp;
  end;
 {matrix2 [i, j] := matrix1 [j, i];};
end;

Procedure readMatrix;
Begin
  Write ('Введите размерность матрицы: ');
  ReadLn (n);
  WriteLn ('Введите  элементы таблицы:');
  For i := 1 to n do
  For j := 1 to n do
  Begin
    Write ('элемент [', i, ',', j, '] = ');
    ReadLn (matrix1 [i, j] );
  End;
 End;

Procedure writeMatrix;
Begin
  For i := 1 to n do
  Begin
    For j := 1 to n do
    Write (matrix1 [i, j] : 6);
    WriteLn;
  End;
End;

Begin
   WriteLn ('Транспонирование матрицы.');
   readMatrix;
   WriteLn;
 writeMatrix;
     transp;
     WriteLn;
     WriteLn('Транспонированная матрица:');
 writeMatrix;
     ReadLn;
END.

У меня проблема с процедурой транспонирования, начиная с матрицы размерностью 3, транспонированная матрица начинает выводится не правильно, помогите пожалуйста. Транспонирование в этой прграмме должно происходить только с одним массивом, без вспомогательного. smile.gif Очень нуждаюсь в вашей помощи.

М

Начинающий, начинай для своих вопросов новые темы, а не задавай их в старых.

И пользуйся тегом [соde]

hiv
Мда... проблемы с индексами.
Вы определяете массив элементы которого нумеруются от 0 до k.
Код
Type matrix= Array [0..k, 0..k] of integer;
Потом почему-то вставляете элементы матрицы с 1, а не с нуля.
Код
For i := 1 to n do
For j := 1 to n do
А при транспонировании снова начинаете отчет с нуля:
Код
  For i := 0 to n-1 do
   For j := 0 to n do
В общем если хорошенько подумаете и приведете использование индексов массива к одному виду, то программа будет работать правильно! smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.