Удаление каждого 3 символа в строке - Prolog

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

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

Требуется составить программу, вычеркивающую каждую 3 букву из слова Х. Что-то никак не могу понять как это сделать

Решение задачи: «Удаление каждого 3 символа в строке»

textual
Листинг программы
predicates
del_sym(string,integer,integer,string)
task(string,integer,string)
 
clauses
 
del_sym("",_,_,"").
del_sym(S,N,K,Q) :- N=K-1, frontchar(S,_,Z),del_sym(Z,0,K,Q).
del_sym(S,N,K,Q) :- N<K-1, frontchar(S,C,Z), M=N+1, del_sym(Z,M,K,U), frontchar(Q,C,U). 
 
task(S,N,R) :- del_sym(S,0,N,R).

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

  1. Задача состоит в удалении каждого третьего символа из строки.
  2. В коде используется язык программирования Prolog.
  3. Код содержит два предиката: del_sym и task.
  4. Предикат del_sym принимает четыре аргумента: строку S, индексы начала и конца удаляемого символа N и K, а также результат удаления Q.
  5. Первое правило для предиката del_sym гласит, что если строка пустая, то результат также будет пустым символом.
  6. Второе правило для предиката del_sym гласит, что если индекс N равен K-1, то перед символом в позиции N должен быть другой символ Z. Результат удаления будет Q.
  7. Третье правило для предиката del_sym гласит, что если индекс N меньше K-1, то перед символом в позиции N должен быть другой символ Z. Затем должен быть получен результат удаления U после добавления символа в позицию N+1. Результат будет Q.
  8. В функции task используется предикат del_sym для удаления каждого третьего символа из строки S с длиной N и сохранения результата в строку R.
  9. Задача состоит в том, чтобы использовать функцию task для ввода строки S, длины строки N и вывода результата R.

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


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

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

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