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

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

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

> Задачи с матрицами, Задача по замене злементов матрицы
сообщение
Сообщение #1


Пионер
**

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

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


Помогите с задачкой справиться PlzZ:
1. Заменить
 Минимальный элемент в каждой строке на противоположный по знаку;
 Все элементы первых трех столбцов на их квадраты;
 Все симметричные элементы квадратной матрицы на нули.
2. Поменять местами
 Средние столбцы;
 Средние строки с первой и последней;
 Средние столбцы со вторым и предпоследним;
 Средние строки;
 Первый максимальный и последний минимальный элементы;
 В каждой строке первый отрицательный и последний положительный;
 Первую строку и строку, в которой находится первый нулевой элемент;
 Вторую и предпоследнюю строки;
 Первую строку с последней строкой, вторую – с предпоследней и так далее;


--------------------
Минус - это уже половина плюса, а плюс порой - целых два минуса...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
как в твоей проге одновременно менять местами и столбы и строки??

Гораздо проще, чем кажется:
const
size_row = 10; { число строк }
size_col = 10; { число столбцов }

type { это - матрица из строк }
tvector = array[1 .. size_col] of integer;
tVecmatrix = array[1 .. size_row] of tvector;

{ меняем строки местами }
procedure swap_rows(var mx: tVecmatrix;
const i, j: integer);
var T: tvector;
begin
T := mx[i]; mx[i] := mx[j]; mx[j] := T
end;

type { это - матрица из столбцов }
trow = array[1 .. size_row] of integer;
tRowmatrix = array[1 .. size_col] of trow;

{ меняем столбцы местами }
procedure swap_cols(var mx: tRowmatrix;
const i, j: integer);
var T: trow;
begin
T := mx[i]; mx[i] := mx[j]; mx[j] := T
end;

{ печатаем (матрицу СТРОК !!!) }
procedure print(var mx: tVecmatrix);
var i, j: integer;
begin
for i := 1 to size_row do
begin
for j := 1 to size_col do
write(mx[i][j]:4);
writeln
end;
end;

{ преобразуем матрицу строк -> матрицу столбцов }
procedure convert_vr(mv: tVecmatrix; var mr: tRowmatrix);
var i, j: integer;
begin
for i := 1 to size_row do
for j := 1 to size_col do
mr[j, i] := mv[i, j];
end;
{ обратное преобразование }
procedure convert_rv(mr: tRowmatrix; var mv: tVecmatrix);
var i, j: integer;
begin
for i := 1 to size_row do
for j := 1 to size_col do
mv[i, j] := mr[j, i];
end;


var
mx: tVecmatrix;
mr: tRowmatrix; { для промежуточных вычислений }
i, j: integer;

begin
for i := 1 to size_row do
for j := 1 to size_col do
mx[i][j] := random(100); { заполняем матрицу }

writeln('before:'); print(mx); { начальная матрица }

swap_rows(mx, 1, 5); { меняем 1 и 5 СТРОКИ местами }

convert_vr(mx, mr); { преобразуем в матрицу столбцов }
swap_cols(mr, 1, 5); { меняем местами 1 и 5 столбцы }
convert_rv(mr, mx); { и возвращаем назад -> матрицу строк }

writeln('after:'); print(mx); { полученная матрица }
end.
 К началу страницы 
+ Ответить 

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


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

 





- Текстовая версия 5.09.2025 13:52
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name