Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2010, 14:21   #1
Angel-dm
ICQ: 444663614
 
Регистрация: 19.03.2010
Сообщений: 9
Сообщение Поменять местами элементы в массиве!

Дан одномерный массив целых чисел. Поменять местами первый элемент с ненулевым значением и последний элемент с нечетным значением Заранее спасибо. Ваш angel-dm)))

Последний раз редактировалось Angel-dm; 14.04.2010 в 14:44.
Angel-dm вне форума Ответить с цитированием
Старый 14.04.2010, 14:34   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну а нароботки то есть?
Напиши хотя бы как ты массив вводишь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.04.2010, 14:36   #3
Angel-dm
ICQ: 444663614
 
Регистрация: 19.03.2010
Сообщений: 9
Печаль

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну а нароботки то есть?
Напиши хотя бы как ты массив вводишь?
ссори но нету, мну просто ещё 7 штук сделать надо за час просто их сюда печатать долго, вот и прошу помочь)))
Angel-dm вне форума Ответить с цитированием
Старый 14.04.2010, 14:51   #4
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Так найдешь первый ненулевой элемент в матрице и его индекс.
Код:
Const
  Range=20;
Var
  idxNotZero:integer;
  idxOdd:integer;
  X:integer;
i:=0;
idxNotZero:=0;
while A[i]<>0 do
  begin
    Inc(i);
    idxNotZero:=i
  end
Вот так найдешь последний нечетный элемент матрицы
Здесь Range - Размерность массива
Код:
i:=Range;
idxOdd:=i;
while not odd(A[i]) do
  begin
    Dec(i);
    idxOdd:=i
  end;
А уж поменяй их местами сам...
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 14.04.2010 в 14:56.
Grag вне форума Ответить с цитированием
Старый 14.04.2010, 14:54   #5
Angel-dm
ICQ: 444663614
 
Регистрация: 19.03.2010
Сообщений: 9
Стрелка

Цитата:
Сообщение от Grag Посмотреть сообщение
Так найдешь первый ненулевой элемент в матрице и его индекс.
Код:
Const
  Range=20;
Var
  idxNotZero:integer;
  idxOdd:integer;
i:=0;
while A[i]<>0 do
  begin
    Inc(i);
    idxNotZero:=i
  end
Вот так найдешь последний нечетный элемент матрицы
Здесь Range - Размерность массива
Код:
i:=Range;
while not odd(A[i]) do
  begin
    Dec(i);
    idxOdd:=i
  end;
А уж поменяй их местами сам...
пасибо
большое отмечу))))
Ну если мож то и доделай сам
время нету аще писец
Angel-dm вне форума Ответить с цитированием
Старый 14.04.2010, 14:59   #6
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Вот так поменяешь их местами
Код:
X:=A[idxOdd];
A[idxOdd]:=A[idxNotZero];
A[idxNotZero]:=X;
А можно еще и такой трюк провернуть по обмену значениями
Код:
A[idxNotZero]:=A[idxNotZero]+A[idxOdd];
A[idxOdd]:=A[idxNotZero]-A[idxOdd];
A[idxNotZero]:=A[idxNotZero]-A[idxOdd];
Тогда можно обойтись без промежуточной переменной Х...
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 14.04.2010 в 15:19.
Grag вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Немного исходников решений студенческих задач merax Общие вопросы C/C++ 4 15.01.2010 16:48
Индивидуальное задание(список студентов, библиотека) AlverX Microsoft Office Access 0 24.05.2009 18:29
ПО - бесплатно (для студентов) Ulagay700 Свободное общение 22 29.04.2009 19:24
Программа учёта успеваемости студентов-такое задание Amen Помощь студентам 1 31.01.2008 20:11