Задача

Дана таблица а[1..n], состоящая из нулей и единиц. Проверить существует ли строгое чередование.


Решение

Для решения задачи, необходимо в цикле пройтись по всему массиву, проверяя текущий и следующий за ним элементы на чередование. Текущий элемент(a[i]) может быть равен либо единице (1), тогда следующий элемент (a[i+1]) должен будет быть равным нулю(0), либо текущий равен нулю, а следующий за ним единице. Это условие запишеться следующим образом:1 If ((a[i]=1)and(a[i+1]=0))or((a[i]=0)and(a[i+1]=1)) Then ...


В противном случае, если условие не выполняется, то выходим из цикла и возвращаем "НЕТ" - как ответ на задачу.
Программа 
?01 Uses Crt;
02 Var
03 a:Array[1..10] Of Integer;
04 Flag,i,k,n:Integer;
05 Begin
06 ClrScr;
07 Write('Количество элементов таблицы, n=');
08 ReadLn(n);
09 For i:=1 To n Do
10 Begin
11 Write('a[',i,']=');
12 ReadLn(a[i]);
13 End;
14 i:=1;
15 While i<=n-1 do
16 Begin
17 Flag:=0;
18 If ((a[i]=1)and(a[i+1]=0))or((a[i]=0)and(a[i+1]=1))
19 Then Flag:=1
20 Else
21 Begin
22 Write('нет');
23 Flag:=0;
24 ReadLn;
25 Halt;
26 End;
27 i:=i+2;
28 End;
29 If Flag=1 Then Write('Чередование существует');
30 Readln;
31 End.

view source

print
?01 Uses Crt;
02 Var
03 a:Array[1..10] Of Integer;
04 Flag,i,k,n:Integer;
05 Begin
06 ClrScr;
07 Write('Количество элементов таблицы, n=');
08 ReadLn(n);
09 For i:=1 To n Do
10 Begin
11 Write('a[',i,']=');
12 ReadLn(a[i]);
13 End;
14 i:=1;
15 While i<=n-1 do
16 Begin
17 Flag:=0;
18 If ((a[i]=1)and(a[i+1]=0))or((a[i]=0)and(a[i+1]=1))
19 Then Flag:=1
20 Else
21 Begin
22 Write('нет');
23 Flag:=0;
24 ReadLn;
25 Halt;
26 End;
27 i:=i+2;
28 End;
29 If Flag=1 Then Write('Чередование существует');
30 Readln;
31 End.

Пояснения к примеру

Основной проблемой при работе с массивами в Turbo Pascal, является отсутствие динамичности длины массива, поскольку все переменные в Паскале необходимо объявлять в разделе описания. То есть фактически нет возможности задать размер массива в теле операторов, в момент выполнения программы. Поэтому в подобных задачах, в разделе описания создаем массив, с размерностью, которая заранее превосходит размерность массива, которую может ввести пользователь (в рамках разумного конечно). В программе же работаем с тем числом первых элементов, которое ввел пользователь, игнорируя те элементы, позиция которых превосходяь введеное пользователем число.