Проверить, есть ли в массиве X идущие подряд элементы, совпадающие с содержимым массива Y - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Даны два целочисленных массива Х[1:n] и Y[1:k]. Можно ли в первом из них выбрать такие k идущих подряд элементов X[i+1], X[i+2], …, X[i+k], чтобы X[i+1]=Y[1], X[i+2]=Y[2], …, X[i+k]=Y[k]? Написать программу, которая решает эту задачу и печатает ответ ДА или НЕТ. Я немного начала, но понимаю что делаю что-то не то. Помогите а)
Листинг программы
  1. Var
  2. n,k,p,i:integer;
  3. X: array [1..n] of integer;
  4. Y: array [1..k] of integer;
  5. begin
  6. p:=0; i:=0;
  7. if X[i+p]=Y[p] then inc(p); inc(i);
  8. write('DA');
  9. if X[i+p] <> Y[p]then
  10. write('Net')
  11. end.

Решение задачи: «Проверить, есть ли в массиве X идущие подряд элементы, совпадающие с содержимым массива Y»

textual
Листинг программы
  1. const
  2.   n = 7;
  3.   k = 3;
  4.  
  5. var
  6.   ix, iy: integer;
  7.   found: boolean;
  8.   X: array [1..n] of integer := (1, 2, 3, 2, 3, 4, 7);
  9.   Y: array [1..k] of integer := (2, 3, 4);
  10.  
  11. begin
  12.   ix := 0;
  13.   repeat
  14.     inc(ix);
  15.     while (ix <= n - k) and (x[ix] <> y[1]) do inc(ix);
  16.     found := ix <= n - k;
  17.     for iy := 1 to k do found := found and (x[ix + iy - 1] = y[iy]);
  18.   until found or (ix + k >= n);
  19.  
  20.   if found then write('DA')
  21.   else write('Net')
  22.  
  23. end.

Объяснение кода листинга программы

  1. Объявлены константы n = 7 и k = 3.
  2. Объявлены переменные ix, iy: integer; found: boolean; X: array [1..n] of integer; Y: array [1..k] of integer.
  3. Инициализированы массивы X и Y.
  4. Начинается цикл по переменной ix от 0 до n-k.
  5. Внутри цикла проверяется, что текущий элемент массива X не равен первому элементу массива Y.
  6. Если текущий элемент массива X равен первому элементу массива Y, то начинается цикл по переменной iy от 1 до k.
  7. Внутри цикла проверяется, что каждый последующий элемент массива X равен соответствующему элементу массива Y.
  8. Если все элементы массива X совпадают с элементами массива Y, то значение переменной found устанавливается в true.
  9. После завершения циклов выводится сообщение DA, если были найдены совпадающие элементы, иначе выводится сообщение Net.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы