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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2010, 14:42   #1
n0rma1
 
Аватар для n0rma1
 
Регистрация: 15.04.2010
Сообщений: 9
Восклицание Формирование массива Pascal

Здравствуйте! Прошу помочь с решением следующей задачи -->
  • Дан массив целых чисел, каждое из которых отлично от нуля. Если в массиве отрицательные и положительные члены чередуются (+, -, +, -, … или -, +, -, +, …), то получить новый массив совпадающий с данным. Иначе получить новый массив из отрицательных элементов данного массива, сохранив порядок их следования.
Заранее спасибо!
n0rma1 вне форума Ответить с цитированием
Старый 20.04.2010, 14:58   #2
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Судя по всему, речь идет об одномерном массиве... Пробегаешь по массиву, начиная с нулевого элемента и отслеживаешь чередование знака: i:=0, ((A[i]>0 and A[i+1])<0) or ((A[i]<0 and A[i+1])>0), то Inc(i) и так до n-1 элемента массива... Если условие нарушено, то чередование не соблюдается и делаешь массив из отрицательных элементов исходного массива, в противном случае копируешь исходный массив в конечный...
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 20.04.2010 в 15:00.
Grag вне форума Ответить с цитированием
Старый 20.04.2010, 15:14   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Наработки в студию )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.04.2010, 16:03   #4
Филантроп
Форумчанин
 
Аватар для Филантроп
 
Регистрация: 12.04.2010
Сообщений: 134
По умолчанию

Цитата:
((A[i]>0 and A[i+1])<0) or ((A[i]<0 and A[i+1])>0), то Inc(i)
вместо этого можно
Код:
var a,b:array[1..n] of integer;
k:boolean;
c,i:integer;
begin
....
k:=true;
for i:=1 to n-1 do
a[i]*a[i+1]>0 then begin k:=false;break;end;
if k then
for i:=1 to n do
b[i]:=a[i]
write(b[i]:4);
else
begin c:=0;
for i:=1 to n do
if a[i]<0 then begin inc(c) b[c]:=a[i];writeln(b[i]);end;
end;
...
end.
кому нужна помощь! жду в аське и скайпе!
Филантроп вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Формирование нового массива из данных в Делфи Юлия Алексеевна Помощь студентам 0 07.03.2010 13:53
Формирование массива B из A(pascal,delphi) HouK Помощь студентам 3 10.12.2009 12:09
Turbo Pascal. Формирование и обработка одномерного массива мирЗвонка Помощь студентам 2 04.11.2009 12:17
задача на формирование массива. паскаль Ananim-Pbl6ak Помощь студентам 8 20.03.2009 03:57