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

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

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

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


Профи
****

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

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


как можно перекинуть, например все отрицательные элементы, каждой строки квадратной матрицы в начало строк?

мне кажется, оттталкивать нужно от этого

k:=0;
if a[i,j]<0 then
begin
k:=k+1;
b[i,k]:=a[i,j];
end;


а дальше у меня ничего не получается...
объясните пожалуйста!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


b-это новая матрица, что ли?
тогда тебе надо потом перекидывать в нее еще и оставшиеся положительные.

или работай с одной матрицей. запомни в k границу отрицательных элементов, а потом меняй обнаруженный отрицательный с первым, находящимся за этой границей.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

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

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


Цитата(мисс_граффити @ 26.11.2006 22:18) *



или работай с одной матрицей. запомни в k границу отрицательных элементов, а потом меняй обнаруженный отрицательный с первым, находящимся за этой границей.

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


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


ну смотри:
сначала ты предполагаешь, что у тебя в начало не "согнано" ни одного отрицательного элемента.
k=0, то есть предполагаем, что первый обнаруженный отрицательный будем менять с самым первым эл-том в строке. Поменяли.
Теперь первый эл-т заведомо отрицательный, менять с ним нет никакого смысла. Увеличиваем k на единицу - чтобы в следующий раз при необходимости менять уже со вторым.

то есть изначально-то они не по порядку, а потом - по порядку.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

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

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


Цитата(мисс_граффити @ 26.11.2006 22:33) *

ну смотри:
сначала ты предполагаешь, что у тебя в начало не "согнано" ни одного отрицательного элемента.
k=0, то есть предполагаем, что первый обнаруженный отрицательный будем менять с самым первым эл-том в строке. Поменяли.
Теперь первый эл-т заведомо отрицательный, менять с ним нет никакого смысла. Увеличиваем k на единицу - чтобы в следующий раз при необходимости менять уже со вторым.

то есть изначально-то они не по порядку, а потом - по порядку.

немного переделала, но не пойму, как учесть, чтоб после того, как отриц. элемент поменяется с первым элементом строки, следующий отрицательный менялся со вторым?

for i:=1 to n do
begin
k:=0;
for j:=1 to n do
if a[i,j]<0 then begin
b:=a[i,j]; a[i,j]:=a[i,1]; a[i,1]:=b;
k:=k+1;
end; end;



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


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


при обмене работаешь не с a[i,1], а с a[i,k+1]



--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Профи
****

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

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


Цитата(мисс_граффити @ 27.11.2006 16:52) *

при обмене работаешь не с a[i,1], а с a[i,k+1]

СПАСИБО!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


кстати, ты можешь начальное значение k сделать равным 1, а при обмене писать a[i,k] smile.gif то есть хранить номер ячейки, в которую собираешься записывать.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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