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

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

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

 
 Ответить  Открыть новую тему 
> Транспонирование без вспомогательной матрицы
liash-7
сообщение 20.04.2007 15:24
Сообщение #1





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

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


Подскажите,пожалуйста,как транспонировать квадратную матрицу без использования вспомогательной.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 20.04.2007 16:00
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


 for i2:=0 to m-1 do
for j2:=0 to i2 do
begin
vsp:=A2[i2,j2];
A2[i2,j2]:=A2[j2,i2];
A2[j2,i2]:=vsp;
end;


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
liash-7
сообщение 20.04.2007 16:45
Сообщение #3





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

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


Спаисбо! good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Nymph
сообщение 17.07.2007 21:04
Сообщение #4


Гость






Помогите плиз!
Мне надо транспонировать ПРЯМОУГОЛЬНУЮ матрицу без использования вспомогательной.
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 17.07.2007 21:09
Сообщение #5


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


по-моему, это невозможно sad.gif размерность меняется. то есть либо работать с динамическими структурами, либо выделять память с запасом и забивать пустое место нулями


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 17.07.2007 21:10
Сообщение #6


Гость






Цитата
Мне надо транспонировать ПРЯМОУГОЛЬНУЮ матрицу

Покажи, как у тебя описана исходная матрица в таком случае... Что во что ты собрался транспонировать?
 К началу страницы 
+ Ответить 
Nymph
сообщение 17.07.2007 21:19
Сообщение #7


Гость






Ну задание звучит так: Выполнить операцию транспонирования прямоугольной матрицы A(m,n) m<>n, не выделяя дополнительного массива для хранения результата.
Должна получиться матрица A(n,m)
 К началу страницы 
+ Ответить 
volvo
сообщение 17.07.2007 21:26
Сообщение #8


Гость






Я не спрашивал, как звучит задание... Я спросил, как ты собрался при описании, скажем
var matrix: array[1 .. 2, 1 .. 3] of integer; получить в результате матрицу array[1 .. 3, 1 .. 2] of integer ?

Читай ответ мисс_граффити, и описывай матрицу как
mx: Array[1 .. max(m, n), 1 .. max(m, n)] of integer;
. Вот ее можно будет транспонировать.

P.S. Я надеюсь, понятно, что функции при описании типов/переменных использовать нельзя, и то что я привел - всего лишь псевдокод? Это я тем любителям находить ЧУЖИЕ ошибки, которые сюда сейчас налетят под маской гостей dry.gif

Сообщение отредактировано: volvo - 17.07.2007 21:28
 К началу страницы 
+ Ответить 
Гость
сообщение 17.07.2007 21:40
Сообщение #9


Гость






Цитата

Я спросил, как ты собрался при описании, скажем
var matrix: array[1 .. 2, 1 .. 3] of integer; получить в результате матрицу array[1 .. 3, 1 .. 2] of integer ?


Ну это и ежу понятно, что так не получится)))
Я описала матрицу A:array[1..100,1..100] of integer; потом в проге задается кол-во строк и столбцов. Ну например 5 и 4. Пробовала много вариантов, но в матрице либо не меняется последний столбик, либо вместо него нули или еще какая-нибудь ерунда wacko.gif
 К началу страницы 
+ Ответить 
Гость
сообщение 17.07.2007 22:10
Сообщение #10


Гость






Я написала, но только по-читерски=)

  if m>n then t:=m else t:=n;
for i:=1 to t-1 do
for j:=i+1 to t do begin
sub:=a[i,j];
a[i,j]:=a[j,i];
a[j,i]:=sub;
end;
...
for i:=1 to n do begin
for j:=1 to m do write(a[i,j]:3);
writeln;
end;



Получается, что транспонируется квадратная матрица, а потом уже выводится то, что надо. Не знаю, прокатит ли=)
 К началу страницы 
+ Ответить 

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

 



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