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

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

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

 
 Ответить  Открыть новую тему 
> Цикл транспонирования прямоугольной матрицы.
Axeo
сообщение 18.05.2007 21:33
Сообщение #1





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

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


Неважно как задается матрица. Главное использование массива.
Пожалуйста, подскажите сам цикл, че то никак врубиться не могу....
Если еще будет возможность прописать через процедуру, на седьмом небе окажусь!
Заранее спасибо!


Код
for i:=1 to n do
for j:=1 to n do matr2[i,j]:=matr1[j,i]

для прямоугольной такой вариант не катит...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 18.05.2007 21:37
Сообщение #2


Гость






Описание массива, с которым это все будет производиться, можно увидеть? Как ты собрался транспонировать матрицу (2x3) в матрицу (3x2) в RunTime?
 К началу страницы 
+ Ответить 
MAXXX
сообщение 18.05.2007 21:40
Сообщение #3


В поисках Занаду
*

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

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


А как ты собираешся транспонировать данные из матрицы размером(м*н) в (н*м) Другое дело, если у тебя обе матрицы размера макс(м*н), но значущие только м*н еементов 1-ой матрицы
Тогда твой код должен проходить
Вот примерная реализация
Код

Const maxn=100;
         maxm=100;
Var matr1,matr2:array[1..maxn,1..maxm] of Integer;
      n,m,i,j:Integer;
begin
{ввод н,м,таблицы}
For i:=1 to n do
For j:=1 nto m do
matr2[j,i]:=matr1[i,j];
{вывод в цикле
For i:=1 to m do
For j:=1 to n do
Write(a[i,j]}
end.


Сообщение отредактировано: MAXXX - 18.05.2007 21:41
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Axeo
сообщение 18.05.2007 21:41
Сообщение #4





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

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


В общем, вопрос наверное уже не актуален...

Работает такой вариант:

Код
program laba8v1;
var a:array[1..19, 1..19] of real;
    b:array[1..19, 1..19] of real;
    c,n,m,i,j,s,k:integer;

Begin
writeln('stroki n,stolbci m:');
readln(n,m);
writeln('Matrix A:');
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(10);
write(a[i,j]:4:0);
end;
writeln;
end;
readln;
for j:=1 to m do
begin
for i:=1 to n do
begin
write(a[i,j]:4:0);
end;
writeln;
end;
writeln;
readln;
end.



Не знаю чего я тупил =/

Добавлено через 1 мин.
Цитата(MAXXX @ 18.05.2007 22:40) *

А как ты собираешся транспонировать данные из матрицы размером(м*н) в (н*м) Другое дело, если у тебя обе матрицы размера макс(м*н), но значущие только м*н еементов 1-ой матрицы
Тогда твой код должен проходить
Вот примерная реализация
Код

Const maxn=100;
         maxm=100;
Var matr1,matr2:array[1..maxn,1..maxm] of Integer;
      n,m,i,j:Integer;
begin
{ввод н,м,таблицы}
For i:=1 to n do
For j:=1 nto m do
matr2[j,i]:=matr1[i,j];
{вывод в цикле
For i:=1 to m do
For j:=1 to n do
Write(a[i,j]}
end.




Этот вариант обрезает значения если n не равно m. Вроде....хммм

Сообщение отредактировано: Axeo - 18.05.2007 21:43
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 19.05.2007 3:16
Сообщение #5


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

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

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


извините меня, конечно... но в математике операция транспонирования определена только для квадратных матриц. у прямоугольных и диагонали-то как таковой нет...


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


Гость






Юля, ты чего? blink.gif
1 2 3
4 5 6
я не могу транспонировать (в математике) в
1 4
2 5
3 6
?
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 19.05.2007 11:22
Сообщение #7


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

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

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


Все. Больше после изучения философии в 4 утра не буду на форум писать... mega_chok.gif
Сорри.
Мне стыдно.


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

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

 



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