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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Axeo
сообщение 18.05.2007 21:41
Сообщение #2





Группа: Пользователи
Сообщений: 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 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 



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