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

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

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

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


Пионер
**

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

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


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


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


Гость






To: Dead.MorozZ
Ты бы поиском сначала воспользовался. Ибо решать уже решенное (да еще и с таким количеством заданий) - nea.gif Вот если будут КОНКРЕТНЫЕ вопросы, тогда задавай...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

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

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


Может ссылку даш, а то найти не могу. А вопросы чувствую скоро появятсяsmile.gif


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


Гость






Ну, например, при использовании вот этого:
FAQ: Как задать матрицу, чтобы быстро поменять местами...
все это:
Цитата
2. Поменять местами
 Средние столбцы;
 Средние строки с первой и последней;
 Средние столбцы со вторым и предпоследним;
 Средние строки;

делается одной строкой (!!!), я имею в виду каждый пункт - одна строка...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

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

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


Oбъясните, пожаловста, в подробностях как работает процедура по обмену строк (Swap_rows)


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


Гость






А какие тебе еще подробности? Как поменять местами 2 числа, знаешь (через дополнительную переменную)? Ну, так для Паскаля разницы между числом и строкой/столбцом (при том описании, которое я предложил) НЕТУ...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Perl. Just code it!
******

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

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


надо поменять строку p со строкой q :

проходим по всем столбцам митрицы и меняем местами соответствующие элементы...


for j := 1 to m do begin
temp := x[q,j];
x[q,j]:= x[p,j];
x[p,j]:= temp;
end;


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Пионер
**

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

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


Volvo как исправить твою прогу с FAQ, чтоб в матрице появлялись и отрицательные элементы?javascript:emoticon(':wacko:')
smilie


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


Perl. Just code it!
******

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

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


Неужели так трудно догадаться ? Это конечно зависит он интеравала который тебе нужен, но можно например так :

x[i,j] := random(101) - 50;

будет интервал значений [-50..50];


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Пионер
**

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

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


Как найти максимальный элемент в строке/столбе??


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


Гость






To: Dead.MorozZ
Или ты начнешь пользоваться поиском и читать, а не бегло просматривать то, что написано в FAQ-е, или эта тема плавно переместится в мусорку. Поиск сразу же выдает 3 страницы ссылок, неужели кто-то должен искать ЗА ТЕБЯ?

Вот тут смотри: FAQ: решения: МАТРИЦЫ, МАССИВЫ (Задача №7) Принцип поиска по строке/столбцу такой же...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Пионер
**

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

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


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


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


Гость






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

Гораздо проще, чем кажется:
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

 





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