Организовать соединение символов в строку - Prolog

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

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

Помогите, пожалуйста Дана строка с отдельными символами, записанными через пробел. Организовать соединение символов в строку до тех пор, пока не будет считан символ «#». Вывести полученную строку.

Решение задачи: «Организовать соединение символов в строку»

textual
Листинг программы
  1. beforeSharp([H|[HT|_]],[H]):- HT =:= 35, !.
  2. beforeSharp([H|T],[H|NewList]) :- beforeSharp(T, NewList).
  3.  
  4. trim([],[]) :- !.
  5. trim([H|T], [H|NewList]) :- H =\= 32, trim(T, NewList).
  6. trim([_|T],NewList) :- trim(T,NewList).
  7.  
  8. getstr2(InputStr, Result) :- beforeSharp(InputStr, BeforeSharpOutputStr),
  9.     trim(BeforeSharpOutputStr, OutputStr),
  10.     string_to_list(Result, OutputStr).

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

  1. Код решает задачу обработки строки.
  2. В первой части кода есть два правила вывода:
    • beforeSharp([H|[HT|_]],[H]):- HT =:= 35, !. - если в голове списка HT равно 35, то выводим голову списка H и останавливаемся.
    • beforeSharp([H|T],[H|NewList]) :- beforeSharp(T, NewList). - если в голове списка HT не равно 35, то рекурсивно вызываем beforeSharp для списка T и объединяем результат с головой списка H.
  3. Во второй части кода есть два правила обработки строк:
    • trim([],[]) :- !. - если список пуст, то ничего не делаем и останавливаемся.
    • trim([H|T], [H|NewList]) :- H =\= 32, trim(T, NewList). - если элемент списка H не равен пробелу, то рекурсивно вызываем trim для списка T и добавляем элемент H в начало нового списка NewList.
  4. В третьей части кода есть правило:
    • trim([_|T],NewList) :- trim(T,NewList). - если первый элемент списка T пуст, то рекурсивно вызываем trim для списка T и добавляем результат в новый список NewList.
  5. В четвертой части кода есть правило:
    • getstr2(InputStr, Result) :- beforeSharp(InputStr, BeforeSharpOutputStr), trim(BeforeSharpOutputStr, OutputStr), string_to_list(Result, OutputStr). - функция getstr2 принимает на вход строку InputStr и результат string_to_list Result. Сначала происходит обработка строки с помощью beforeSharp, затем с помощью trim, после чего с помощью string_to_list из Результата формируется строка.

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


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

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

14   голосов , оценка 3.929 из 5

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

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

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