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

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

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

> Процедура обмена строк матрицы с условием, помогите написать процедуру....
КириллV
сообщение 18.12.2007 21:47
Сообщение #1


Новичок
*

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

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


Помогите написать процедуру которая бы меняла местами строки содержащие минимальный и максимальный по абсолютной величине элемент(в матрице)... заранее спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Айра
сообщение 19.12.2007 16:44
Сообщение #2


Профи
****

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

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


А что не понятно? Покажи, что делал?
Пробегаешь по матрице, находишь минимум и максимум по модулям, запоминаешь номера содержащих эти элементы строк и меняшь местами..

Сообщение отредактировано: Айра - 19.12.2007 16:45
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
КириллV
сообщение 19.12.2007 23:31
Сообщение #3


Новичок
*

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

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


Цитата(Айра @ 19.12.2007 16:44) *

А что не понятно? Покажи, что делал?
Пробегаешь по матрице, находишь минимум и максимум по модулям, запоминаешь номера содержащих эти элементы строк и меняшь местами..



вот код, прога не меняет...
что нетак ?






program matrix;
Uses crt;

const
size_row = 10; { число строк }
size_col = 10; { число столбцов }

type
tvector = array[1 .. size_col] of integer;
tmatrix = array[1 .. size_row] of tvector;
var
mx: tmatrix;
i, j: integer;
n, m: integer;
NN, MM: integer;

procedure smena(var mx: tmatrix;m, n: integer);{процедура обмена строк}
var
i, j: integer;
T: integer;
min, max: integer;
imin, imax: integer;
begin
min:=abs(mx[1,1]);
imin:=1;
for i:=1 to n do
for j:=1 to m do

if (abs(mx[i,j])<min) then
begin
min:=abs(mx[i,j]);
imin:=i;
end;

for i:=1 to n do
for j:=1 to m do
begin
max:=-maxint;
imax:=1;
if max<abs(mx[i,j]) then
begin
max:=abs(mx[i,j]);
imax:=i;
end;
end;

begin
T := mx[imin, j];
mx[imin,j] := mx[imax, j];
mx[imax,j] := T;
end;
end; {end procedure}


begin
clrscr;
NN:=size_row;
MM:=size_col;

writeln('В заданной матрице поменять местами строки,');
writeln('содержащие следующие элементы:');
writeln('минимальный и максимальный по абсолютной величине.');

{ Заполнение матрицы }
repeat
write('Введите количество строк: '); readln(N)
until (n>0) and (n<=NN);
repeat
write('Введите количество столбцов: '); readln(m)
until (m>0) and (m<=MM);
For i:=1 to n do
begin
For j:=1 to m do
begin
write('mx[',i,j,']= ');
readln(mx[i,j])
end
end;

{ Матрица до обмена }
writeln('до:');
for i := 1 to n do
begin
for j := 1 to m do
write(mx[i,j]:4);
writeln
end;

{Вызов процедуры обмена строк по условию }
smena(mx, m, n);


{ Матрица после обмена }
writeln('после:');
for i := 1 to n do
begin
for j := 1 to m do
write(mx[i,j]:4);
writeln
end;
end.



 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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