Проверка строгого чередования в массиве

Прикладное программирование Программирование на Pascal Проверка строгого чередования в массиве

Помечено: ,

  • В этой теме 0 ответов, 1 участник, последнее обновление 2 года, 6 месяцев назад сделано Васильев Владимир Сергеевич.
Просмотр 0 веток ответов
  • Автор
    Сообщения
    • #4231
      @admin
      StudLance.ru

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

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

      If ((a[i]=1)and(a[i+1]=0))or((a[i]=0)and(a[i+1]=1)) Then …

      В противном случае, если условие не выполняется, то выходим из цикла и возвращаем «НЕТ» — как ответ на задачу.

      Код программы:

      Uses Crt;
      Var 
      	a:Array[1..10] Of Integer;
      	Flag,i,k,n:Integer;
      Begin
      	ClrScr;
      	Write('Количество элементов таблицы, n=');
      	ReadLn(n);
      	For i:=1 To n Do
      		Begin
      			Write('a[',i,']=');
      			ReadLn(a[i]);
      		End;
      	i:=1;
      	While i<=n-1 do
      		Begin
      			Flag:=0;
      			If ((a[i]=1)and(a[i+1]=0))or((a[i]=0)and(a[i+1]=1))
      				Then Flag:=1
      			Else 
      				Begin
      					Write('нет');
      					Flag:=0;
      					ReadLn;
      					Halt;
      				End;
      			i:=i+2;
      		End;
      	If Flag=1 Then Write('Чередование существует');
      	Readln;
      End.

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

      StudLance.ru

Просмотр 0 веток ответов
  • Для ответа в этой теме необходимо авторизоваться.
×