Найти длину самой длинной последовательности стоящих рядом одинаковых элементов - PascalABC.NET

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

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

Заполнить массив из 10 элементов числами и найти длину самой длинной последовательности стоящих рядом одинаковых элементов.
Листинг программы
  1. program start;
  2. Var A : Array [1..10] of Integer;
  3. Var B: array[1..10] of Integer;
  4. Var i,k: integer;
  5. begin
  6. For i:=1 to 10 do begin
  7. Write('Enter value {',i,'} = ... ');
  8. Read (A[i]);
  9. end;
  10. k:=1;
  11. For i:=1 to 9 do begin
  12. If A[i]=A[i+1] then begin
  13. k:=k+1;
  14. end
  15. else
  16. B[i]:=k;
  17. k:=1;
  18. end;
  19. k:=1;
  20. For i:= 1 to 10 do begin
  21. If B[i]>B[k] then
  22. K:=i;
  23. end;
  24. Writeln('max length = ',b[k]);
  25. end.

Решение задачи: «Найти длину самой длинной последовательности стоящих рядом одинаковых элементов»

textual
Листинг программы
  1. program start;
  2. const n=10;
  3. Var A : Array [1..n] of Integer;
  4.     i,j,k,mx: integer;
  5. begin
  6. For i:=1 to n do
  7.  begin
  8.    Write('Enter value {',i,'} = ... ');
  9.    Readln (A[i]);
  10.  end;
  11. mx:=1;
  12. i:=2;
  13. while i<=n do
  14. if A[i]=A[i-1] then
  15.  begin
  16.   k:=1;
  17.   j:=i;
  18.   while(j<=n)and(A[j]=A[j-1]) do
  19.    begin
  20.     k:=k+1;
  21.     j:=j+1;
  22.    end;
  23.   if k>mx then mx:=k;
  24.   i:=i+k;
  25.  end
  26. else i:=i+1;
  27. Writeln('max length = ',mx);
  28. end.

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

В этом коде выполняется следующая последовательность действий:

  1. Создается массив A размером n, где n — константа, равная 10.
  2. Вводится значение первого элемента массива A с помощью функции Readln.
  3. Инициализируется переменная mx значением 1.
  4. Устанавливается значение переменной i равным 2.
  5. Запускается цикл while, который выполняется до тех пор, пока i не станет больше n.
  6. Внутри цикла проверяется, равен ли текущий элемент массива A элементу, следующему за ним. Если да, то выполняется следующий блок кода.
  7. В этом блоке кода устанавливается переменная k равной 1, а переменная j — равной i.
  8. Затем выполняется цикл while, который будет выполняться до тех пор, пока элемент массива A[j] равен элементу A[j-1] и j меньше или равно n.
  9. Внутри этого цикла увеличивается значение переменной k на 1, а затем увеличивается значение переменной j на 1.
  10. Если значение переменной k больше значения переменной mx, то значение переменной mx присваивается значение переменной k.
  11. После выхода из внутреннего цикла while значение переменной i увеличивается на значение переменной k.
  12. Если текущий элемент массива A не равен элементу, следующему за ним, то значение переменной i увеличивается на 1.
  13. После выхода из цикла while выводится сообщение с максимальным значением длины последовательности. Список действий:
  14. Создать массив A размером n.
  15. Ввести значение первого элемента массива A.
  16. Инициализировать переменную mx значением 1.
  17. Установить значение переменной i равным 2.
  18. Пока i меньше или равно n, проверять равенство текущего элемента массива A элементу, следующему за ним. Если да, перейти к шагу 7.
  19. Установить переменную k равной 1, а переменную j — равной i.
  20. Пока элемент массива A[j] равен элементу A[j-1] и j меньше или равно n, увеличить значение переменной k на 1, а затем увеличить значение переменной j на 1.
  21. Если значение переменной k больше значения переменной mx, присвоить значение переменной mx значение переменной k.
  22. После выхода из внутреннего цикла while, увеличить значение переменной i на значение переменной k.
  23. Если текущий элемент массива A не равен элементу, следующему за ним, увеличить значение переменной i на 1.
  24. После выхода из цикла while вывести сообщение с максимальным значением длины последовательности.

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


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

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

8   голосов , оценка 4.125 из 5

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

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

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