Скачиваний:
7
Добавлен:
01.06.2021
Размер:
27.04 Кб
Скачать

ГУАП

КАФЕДРА № 41

ОТЧЕТ

ЗАЩИЩЕН С ОЦЕНКОЙ

ПРЕПОДАВАТЕЛЬ

старший преподаватель

Е.П. Виноградова

должность, уч. степень, звание

подпись, дата

инициалы, фамилия

ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №4

Программирование поисковых алгоритмов

по курсу: Информатизация и анализ информационных ресурсов общества

РАБОТУ ВЫПОЛНИЛА

СТУДЕНТКА ГР.

4716

С.А. Янышева

подпись, дата

инициалы, фамилия

Санкт-Петербург

2021

  1. Цель работы

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

  1. Вариант 6

Произвести сдвиг элементов списка (не циклический):

– на одну позицию влево (вправо),

– на N позиций влево (вправо).

ХОД ВЫПОЛНЕНИЯ РАБОТЫ

Запросы:

  1. Сдвиг на одну позицию влево

  1. Сдвиг на 3 позиции вправо

Листинг программы:

build(0,[]).

build(N1,[0|L]):- N1 > 0, N is N1 - 1, build(N,L).

reverse([],Z,Z).

reverse([H|T],Z,Acc) :- reverse(T,Z,[H|Acc]).

cut(L,N,R):- length(X, N), append(R, X, L).

move(L, N, 'left', RES):- reverse(L,L1,[]), move(L1, N, 'right', R1), reverse(R1,RES,[]).

move(L, N, 'right', RES):- cut(L,N,R), build(N,ZER), append(ZER,R, RES).

  1. Выводы

В ходе лабораторной работы была разработана программа, реализующая нециклический сдвиг элементов массива.

Соседние файлы в предмете Информатизация и анализ информационных ресурсов общества