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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2011, 15:38   #1
Bakasova
Пользователь
 
Регистрация: 25.09.2011
Сообщений: 16
Вопрос Массив

Определить в числовом массиве A(n) число соседств из двух чисел разного знака.
Bakasova вне форума Ответить с цитированием
Старый 03.11.2011, 15:59   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

могу ошибаться (обязательно проверьте идею/алгоритм)...
но я бы начал с такого цикла:
Код:
kol := 0;
for i:=1 to n-1 do
  if a[i]*a[i+1]<0 then inc(kol);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.11.2011, 22:29   #3
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Идея совершенно правильная, ессно, только одно но: при использовании произведения диапазон чисел эффективно занижается в два раза по логарифмической шкале. Если числа действительные, то оно еще ничего (хотя мало ли..), а если целые, то, грубо говоря, занижаем с двух байт до одного. Причем, вылет с ошибкой - это весьма неприятная вещь.
Так что я советовал бы использовать обычную систему неравенств:

(a[i]>0) and (a[i+1]<0) or (a[i]<0) and (a[i+1]>0)

Можно, правда, нормировать числа перед умножением, a[i]/abs(a[i]), но тогда потребуется проверка на ноль..
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С# задан массив 5х5. сформировать массивы А и В. в массив А поместить элементы с четными индексами, в массив В с нечетны Koksa Помощь студентам 0 10.10.2011 11:26
Запись координат в массив в реал тайм, Как записать координаты в массив Dark19 Visual C++ 2 21.06.2011 18:45
Из массив А получить массив В, удвоив все нечётные элементы удвоены ( на Pascal) KARTER Помощь студентам 1 18.06.2011 19:58
Массив - Нужно написать массив и распечатать на экран с конца в начало(язык С++) econ Помощь студентам 1 29.05.2011 22:02
Упорядочить массив в порядке возрастания и напечатать входной и исходный массив. TheVenny Помощь студентам 3 26.11.2008 15:06