IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Транспонирование матрицы, программа не работает
Начинающий
сообщение 26.06.2007 10:26
Сообщение #1


Гость






Здравствуйте
вот моя прога
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]



Сообщение отредактировано: Michael_Rybak - 26.06.2007 11:28
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 1)
hiv
сообщение 26.06.2007 12:05
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Мда... проблемы с индексами.
Вы определяете массив элементы которого нумеруются от 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


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 29.07.2025 1:53
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"