Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2013, 15:20   #1
AZelensky
Пользователь
 
Регистрация: 15.11.2013
Сообщений: 52
По умолчанию Задана матрица NxM...

Задана матрица NXM, где N>1, M>1. В матрице поменять местами I-тую строку и J-тый столбец.

Начало кода я смастерил, а вот сам процесс смены я не понял. Прочитал здесь на форуме тему, посвящённую этому дело, но всё ровно не понял.

Вот код того, что на данный момент у меня имеется:

Код:
USES CRT;
CONST
MaxElI = 30;
MaxElJ = 30;
Var
MatrixMass: array [1..MaxElI, 1..MaxElJ] of REAL;
n: integer;
i, j: byte;
Begin
CLRSCR;
write('Enter max element: '); READ(n);
While (n <= 1) do begin
write('Enter max element: '); READ(n);
end;
writeln('Enter values: ');
For i:= 1 to n Do begin
For j:= 1 to n Do begin

    write('Matrix element ', i, 'x', j, ' : ');
    READLN(MatrixMass[i, j]);
    end;
end;
writeln('The resulting array: ');
Writeln('Получившаяся матрица:');
 For i:=1 to n do
  Begin 
    For j:=1 to n do
     Write(MatrixMass[i,j],' ');
    Writeln;
  End;
  Readln;
end.
AZelensky вне форума Ответить с цитированием
Старый 23.11.2013, 16:09   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
поменять местами I-тую строку и J-тый столбец.
Думаю примерно так:
Код:
for l:=1 to M do
 if l<=n then begin
  k=MatrixMass[i,l];
  MatrixMass[i,l]:=MatrixMass[l,i];
  MatrixMass[l,i]:=k;
 end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.11.2013, 16:42   #3
AZelensky
Пользователь
 
Регистрация: 15.11.2013
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Думаю примерно так:
Код:
for l:=1 to M do
 if l<=n then begin
  k=MatrixMass[i,l];
  MatrixMass[i,l]:=MatrixMass[l,i];
  MatrixMass[l,i]:=k;
 end;
Значит вот так?:
Код:
USES CRT;
CONST
MaxElI = 30;
MaxElJ = 30;
Var
MatrixMass: array [1..MaxElI, 1..MaxElJ] of REAL;
n: integer;
i, j, l: byte;
k: real;
Begin
CLRSCR;
write('Enter max element: '); READ(n);
While (n <= 1) do begin
write('Enter max element: '); READ(n);
end;
writeln('Enter values: ');
For i:= 1 to n Do begin
For j:= 1 to n Do begin

    write('Matrix element ', i, 'x', j, ' : ');
    READLN(MatrixMass[i, j]);
    end;
end;
writeln('The resulting array: ');
Writeln('Получившаяся матрица:');
 For i:=1 to n do
  Begin 
    For j:=1 to n do
     Write(MatrixMass[i,j],' ');
    Writeln;
  End;
  Readln;
for l:=1 to n do
 if l<=n then begin
  k:=MatrixMass[i,l];
  MatrixMass[i,l]:=MatrixMass[l,i];
  MatrixMass[l,i]:=k;
 end;
 readln;
Writeln('Получившаяся матрица:');
 For i:=1 to n do
  Begin 
    For j:=1 to n do
     Write(MatrixMass[l,i],' ');
    Writeln;
  End;
  Readln;
end.
AZelensky вне форума Ответить с цитированием
Старый 23.11.2013, 17:12   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Возможно. Запусти и узнаешь. Я не проверял.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.11.2013, 20:31   #5
AZelensky
Пользователь
 
Регистрация: 15.11.2013
Сообщений: 52
По умолчанию

Вот задание:
Задана матрица NXM, где N>1, M>1. В матрице поменять местами I-тую строку и J-тый столбец.

Вот код:
Код:
USES CRT;
CONST
MaxElI = 30;
MaxElJ = 30;
Var
MatrixMass: array [1..MaxElI, 1..MaxElJ] of REAL;
b: REAL;
n: INTEGER;
i, j, a: BYTE;
Begin
CLRSCR;
write('Enter max element: '); READ(n);
writeln('Enter values: ');
For i:= 1 to n Do begin
For j:= 1 to n Do begin
    write('Element ', i, 'x', j, ' : ');
    READLN(MatrixMass[i, j]);
    end;
end;
writeln('The resulting matrix: ');
For i:= 1 to n Do begin
For j:= 1 to n Do
    write(MatrixMass[i, j]:0:0, ' ');
    writeln;
end;
ReadLN;
For a:= 1 to n Do
If a <= n then begin
   b:= MatrixMass[a, i];
   MatrixMass[i, a]:= MatrixMass[a, i];
   MatrixMass[a, i]:= b;
end;
writeln('Final matrix:');
For i:= 1 to n Do begin
For a:= 1 to n Do
    write(MatrixMass[a, i]:0:0, ' ');
    writeln;
end;
ReadLN;
end.
Вот результат:


Правильно у меня всё тогда?
AZelensky вне форума Ответить с цитированием
Старый 23.11.2013, 21:24   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если я скажу что все правильно тебя это успокоит?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.11.2013, 22:06   #7
AZelensky
Пользователь
 
Регистрация: 15.11.2013
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Если я скажу что все правильно тебя это успокоит?
Если на самом деле всё правильно, то естественно упокоит. Если всё верно, можешь закрывать тему.
AZelensky вне форума Ответить с цитированием
Старый 24.11.2013, 00:25   #8
Unique_Maks
Пользователь
 
Регистрация: 07.06.2010
Сообщений: 89
По умолчанию

финальная матрица не должна ли быть вот такой:

12 76 90
54 11 37
34 87 17
Unique_Maks вне форума Ответить с цитированием
Старый 24.11.2013, 03:18   #9
AZelensky
Пользователь
 
Регистрация: 15.11.2013
Сообщений: 52
По умолчанию

Цитата:
Сообщение от Unique_Maks Посмотреть сообщение
финальная матрица не должна ли быть вот такой:

12 76 90
54 11 37
34 87 17
Я тоже об этом подумал
AZelensky вне форума Ответить с цитированием
Старый 24.11.2013, 06:36   #10
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Условие задачи неполное. Задача не решаема с подобным условием.
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задана матрица размером NxM. Определить k – количество “особых” элементов матрицы, считая элемент “особым”, если он больше суммы о Маленыч Общие вопросы Delphi 3 20.05.2013 00:08
задана символьная матрица nxm. Напечатайте символы, находящиеся в столбцах, элементы которых симметричны (ошибка в коде. Delphi) Начинающий програм Помощь студентам 5 04.04.2012 22:53
Матрица nxm. Flaik Помощь студентам 4 08.12.2011 16:35
дана матрица размера NxM Глебыч Паскаль, Turbo Pascal, PascalABC.NET 4 25.10.2011 11:11
Задана символьная матрица размером NxM Sergey Zhlobo Общие вопросы Delphi 5 21.06.2011 00:12