Дан массив, состоящий из целых чисел. Напишите программку, которая определяет, есть

Дан массив, состоящий из целых чисел. Напишите программу, которая определяет, есть ли в массиве пара примыкающих элементов с одинаковыми знаками.
Входные данные

Поначалу задано число N количество частей в массиве (1N10000). Дальше через пробел записаны N чисел элементы массива. Массив состоит из целых чисел.
Выходные данные

Нужно вывести слово YES, если существует пара примыкающих частей с схожими знаками. В противном случае следует вывести слово NO.
Образцы
Входные данные
5
1 -3 4 -2 1
Выходные данные
NO

Задать свой вопрос
1 ответ
Const
n=10000;
var
a:array[1..n]of integer;
i,n1, flag:integer;
begin
    readln(n1);
        for i:=1 to n1 do
             read(a[i]);
for i:=1 to n1-1 do
   if ((a[i]lt;0)and(a[i+1]lt;0))or
      ((a[i]gt;0)and(a[i+1]gt;0))then
                flag:=1;
if flag=1 then
    writeln('YES')
 else
    writeln('NO');
end.
            
Владик
"Крутую" конструкцию ((a[i]<0)and(a[i+1]<0)) or ((a[i]>0)and(a[i+1]>0)) обычно пишут в виде (a[i]*a[i+1])>0. Так как еще в исходной школе изучают, что творенье двух чисел, хороших от нуля и имеющих одинаковые знаки есть число положительное.
Алла Отарова
А вообщем алгоритм очень неэффективный, поэтому что после того, как найдена искомая пара частей, компьютер будет принуждён продолжать напрасно перелопачивать остальную часть массива. что мешало организовать выход из цикла по условию - разума не приложу. Можно было использовать ненавистный канонам структурного программирования (привет Эдгару Дейкстре!) break, либо применить цикл c перед/постусловием.
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт