Исключить из списка символов пробелы — Visual Prolog

      Комментарии к записи Исключить из списка символов пробелы — Visual Prolog отключены

Главная Форумы Программирование Помощь с решением задач на Prolog Задачи на строки и файлы Исключить из списка символов пробелы — Visual Prolog

В этой теме 1 ответ, 2 участника, последнее обновление  Васильев Владимир Сергеевич 2 года/лет, 5 мес. назад.

  • Автор
    Сообщения
  • #1933

    questioner
    Участник

    Помогите решить задачу на Visual Prolog:

    Ввести строку.
    Получить из введённой строки список символов.
    Исключить из списка все пробелы, символы g и G.
    Вывести результирующий список при помощи предиката вывода.

    Предикаты должны быть детерминированными.
    Преобразовать строку в список у меня получилось, осталось удалить из списка пробелы и другие буквы.

  • #1934

    Ввод строки в Visual Prolog выполняет функция readln(String).
    Готового предиката для вывода списка нет, но можно написать:

    outlist([]):-
      nl, !.
    outlist([Head|Tail]):-
      write(Head), write(" "), outlist(Tail).

    Если исходный список пуст — функция завершает вывод списка. Чтобы обозначить конец — на экран выводится символ конца строки (предикатом nl).
    В противном случае от списка отделяется первый элемент, выводится на экран. Остальные элементы обрабатываются рекурсивно.

    Для удаления из списка заданных символов — воспользуйтесь функцией delete(InputList, Elem, ResultList):

    readln(String), % ввел строку
    string_to_list(String, List), % преобразовал в список символов
    delete(List, ' ', ListWithoutSpaces), % удалил пробелы
    delete(ListWithoutSpaces, 'g', ListWithoutG), % удалил символ 'g'
    outlist(ListWithoutG). % вывел результат на экран
    

Для ответа в этой теме необходимо авторизоваться.