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

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

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

 
 Ответить  Открыть новую тему 
> Массив и вектор, помогите!
сообщение
Сообщение #1





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

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


дан массив A(M,N) и вектор B(M). Эллементы первого столбца массива упорядочены по убыванию. Включить в массив вектор, не нарушая при этом упорядочность.

Я вначале добавлял вектор в конец массива, а потом сортировал. А нужно "раздвинуть" строки и вставить вектор.

как это сделать? (я понимаю, что для вас это легко, но прошу...)

Сообщение отредактировано: baran -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






(Название темы поменяй)...

Идешь по всем строкам, пока первый элемент НЕ меньше первого элемента вставляемого вектора. Как только станет меньше - ты нашел позицию, куда вставлять. Перемещаешь вектора ОТ ПРЕДПОСЛЕДНЕГО до найденного номера на один назад (кстати, попутно - вопрос: что должно быть с последним вектором матрицы? Удаляется? Или это такой динамический массив векторов?), и вставляешь новый вектор в найденную позицию...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


Массив должен быть динамическим. ни одной строки нельзя потерять!!
я так и действовал, но что-т не работает. напишите код пожалуйста(с того момента, как находится элллемент менше 1-го еллемента массива).
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


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

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

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


а давай лучше ты напишешь свой код - который не работает?
и еще... ты на чем пишешь-то? на чистом паскале? и массив должен быть именно динамическим?

Сообщение отредактировано: мисс_граффити -


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





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

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


именно динамический!! я пишу на си, но если будет код на паскале, то я пойму и реализую на си.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
я пишу на си
Перенести в раздел, где решаются задачи на С? И, кстати, чистый С или С++? В С++ это вообще в десяток строк уложится...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





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

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


пока что С.

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


Гость






Цитата
а синтаксис изменить не тяжело
Но и не всегда легко. Это - как раз тот случай. Попробуй перевести ЭТО на С... rolleyes.gif На Паскале работает как положено...

{$R-}
const
vectorSize = 10;
type
TType = Word;
Type
PVector = ^TVector;
TVector = Array[1 .. vectorSize] of TType;

PDynMatrix = ^TDynMatrix;
TDynMatrix = Array[1 .. 1] of PVector;

const
insertVector: TVector = (17, 0, 0, 0, 0, 0, 0, 0, 0, 0);
Var
T, mxDynamic: PDynMatrix;
n, i, j: Word;


Begin
writeln('before: ', memavail);
Write('num lines = '); ReadLn(n);

GetMem(mxDynamic, n * SizeOf(PVector));
For i := 1 To n Do
GetMem(mxDynamic^[i], SizeOf(TVector));

For i := 1 To n Do Begin
mxDynamic^[i]^[1] := 10 * (n - i);
For j := 2 To vectorSize Do
mxDynamic^[I]^[J] := I*J;
End;

For i := 1 To n Do Begin
WriteLn;
For j := 1 To vectorSize Do
Write(mxDynamic^[I]^[J]:4);
End;

i := 1;
while mxDynamic^[i]^[1] > insertVector[1] do inc(i);

GetMem(T, (n + 1) * SizeOf(PVector));
Move(mxDynamic^[1], T^[1], n * SizeOf(PVector));
FreeMem(mxDynamic, n * SizeOf(PVector));
inc(n);

mxDynamic := T;
Move(mxDynamic^[i], mxDynamic^[i + 1], (n - i) * SizeOf(PVector));
GetMem(mxDynamic^[i], SizeOf(TVector));
mxDynamic^[i]^ := insertVector;


For i := 1 To n Do Begin
WriteLn;
For j := 1 To vectorSize Do
Write(mxDynamic^[I]^[J]:4);
End;


For i := 1 To n Do
FreeMem(mxDynamic^[i], SizeOf(TVector));
FreeMem(mxDynamic, n * SizeOf(PVector));
writeln('after: ', memavail);
End.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9





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

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


попробую... спасибо большое! smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 




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