Цитата(InFuz @ 12.3.2010, 21:06) *

да "Прикладная математика и информатика"

Тогда больше готового кода не будет, только подсказки))

Цитата(InFuz @ 12.3.2010, 21:06) *

if((a*b )>0) //не понял как тут работает ведь b=0 и a*b всегда будет 0


Чуть ниже есть строчка b=a;, она и меняет значение. Суть вот в чём. Мы каждую итерацию "запоминаем" значение предыдущего элемента в b.
В следующей итерации проверяем положительность произведения a*b - если произведение положительно, то предыдущий и текущий элемент одного знака - выставляем флаг и, фактически, дальше программу можно не выполнять.

Если же все произведения были неположительными (0 допустим для 1-й итерации, когда b=0), то флаг alter так и останется true, в конце выводится Последовательность знакочередующаяся. Если же хоть одно произведение было положительным, мы не можем считать такую последовательность положительной и выводим Последовательность не знакочередующаяся.

Кстати, зачем bool убрали? Судя по cin, cout используется STL. Раз используется STL - перед нами C++. Раз C++, то bool абсолютно корректен. Хотя... Вам виднее) Не видел я эту версию борланда и ничего утверждать не берусь)