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

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

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

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


Профи
****

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

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


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

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

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


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


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

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

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


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

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


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


Профи
****

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

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


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



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

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


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

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

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


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

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


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
18192123
сообщение 27.11.2006 15:42
Сообщение #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 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 27.11.2006 16:52
Сообщение #6


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

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

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


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



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


Профи
****

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

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


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

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

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


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

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

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


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


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

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

 



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