Добавить к последовательности наименьшее число символов так, чтобы последовательность стала палиндромом - Pascal

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

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

Даны натуральное число N и символы S[1],...,S[n].Преобразовать последовательность S[1],...,S[n], добавив к ней наименьшее число символов S[n+1],...,S[m] так, чтобы последовательность S[1],...,S[m] стала палиндромом: S[1]=S[m],S[2]=S[m-1] и т.д.

Решение задачи: «Добавить к последовательности наименьшее число символов так, чтобы последовательность стала палиндромом»

textual
Листинг программы
var s: array [1..255] of char;
    i, j, n: integer;
begin
  write('n = ');
  readln(n);
  writeln('Enter symbols:');
  for i := 1 to n do
    begin
      write('s(', i, ') = ');
      readln(s[i])
    end;
  writeln('Source array:');
  for i := 1 to n do write(s[i]);
  writeln;
  i := n;
  while s[i] = s[i - 1] do dec(i);
  for j := i - 1 downto 1 do
    begin
      inc(n);
      s[n] := s[j]
    end;
  writeln('Result:');
  for i := 1 to n do write(s[i]);
  readln
end.

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

  1. Создается переменная s типа array [1..255] of char. Это массив символов, который будет использоваться для хранения последовательности.
  2. Создаются три переменные i, j и n типа integer. Они будут использоваться для итерации по массиву и контроля над процессом изменения последовательности.
  3. Выводится сообщение n =, после чего считывается значение переменной n с помощью функции readln().
  4. Выводится сообщение Enter symbols:, после чего пользователю предлагается ввести символы для добавления в последовательность.
  5. Запускается цикл for, который повторяется n раз. В каждой итерации цикла выводится сообщение s(i) = и считывается символ с помощью функции readln(). Этот символ добавляется в массив s.
  6. Выводится сообщение Source array:, после чего выводятся все символы из массива s.
  7. Запускается еще один цикл for, который начинается с i = n и продолжается до тех пор, пока символ в позиции i не станет равным символу в позиции i-1. В каждой итерации цикла увеличивается значение i на единицу.
  8. Для каждого символа в массиве s, начиная с позиции i-1 и заканчивая позицией i, происходит операция инкремента inc(n). Это увеличивает значение n на единицу.
  9. Затем происходит операция s[n] := s[j]. Это замена символа в позиции n на символ в позиции j.
  10. Выводится сообщение Result:, после чего выводятся все символы из массива s.
  11. Считывается символ с помощью функции readln() и выводится сообщение n = с новым значением n.
  12. Цикл while продолжается до тех пор, пока символ в позиции i не станет равным символу в позиции i-1.
  13. После окончания цикла while выводится сообщение n = с новым значением n.
  14. Выводится сообщение Readln() для завершения программы.

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


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

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

14   голосов , оценка 4.286 из 5
Похожие ответы