Работа со списками - Программирование, компьютеры и кибернетика лабораторная работа
![](/file/c17a668ccb7333e986a5a.jpg)
Приобретение навыков работы со списками в программах на Visual Prolog. Изображение списка в виде головы и хвоста. Удаление всех вхождений элемента в списке. Обозначение пустого списка. Вычисление суммы элементов, стоящих в списке на нечетных местах.
посмотреть текст работы
скачать работу можно здесь
полная информация о работе
весь список подобных работ
Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РЕСПУБЛИКИ БЕЛАРУСЬ
БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Цель работы: приобретение навыков работы со списками в программах на Visual Prolog.
Из списка L1 получить список L2, очередной элемент которого равен среднему арифметическому очередной тройки элементов списка L1. Если число элементов списка L1 не кратно 3, то последний элемент списка L2 получается делением на 3 одного или суммы двух последних элементов списка L1. Список L1 вводится по подсказке с экрана. В результате выполнения программы должны выдаваться исходный L1 и результирующий L2 списки.
Удалить все вхождения заданного элемента в списке.
0Б Произвести сдвиг элементов списка (не циклический):
Определить разность между максимальным и минимальным элементами списка.
Удалить первое вхождение заданного элемента в списке.
Вычислить сумму элементов, стоящих в списке на нечетных местах, и сумму элементов, стоящих на четных местах.
Заменить в списке все элементы со значением X на значения Y.
nondeterm nov_spisok(integer,list,list)
read_list(N,[H|T]):-readreal(H),N1 = N - 1,read_list(N1,T).
nov_spisok(1,[H|T],[H1|T1]):- H1 = H/3,nov_spisok(0,T,T1).
nov_spisok(2,[H|[H1|T]],[H2|T1]):- H2 = (H1+H)/2,nov_spisok(0,T,T1).
nov_spisok(N,[H|[H1|[H2|T]]],[H3|T3]):- H3 = (H+H1+H2)/3,
result :- write("Vvedite chislo elementov massiva : "),readint(N),nl,
write("Vvedite elementi massiva : "),nl,read_list(N,H),nov_spisok(N,H,H1),nl,
write("Noviy spisok : "),write(H1),nl.
read_list(N,[H|T]):-readreal(H),N1=N-1, read_list(N1,T).
chg ([H|T], H, T1) if chg (T, H, T1),!.
chg ([H|T], S, [H|T1]) if chg (T, S, T1),!.
result:-write("Введите число элементов списка"),nl, write("N="),readint(N),nl,
write("Вводите элементы списка"),nl, read_list(N,L), write("Исходный список L="),
write (L),nl,nl,write("Введите искомый элемент"),nl, readreal(E),nl, chg(L, E, LL),write ("Результирующий список:"), nl, write(LL), nl.
read_list(N,[H|T]):-readreal(H),N1=N-1, read_list(N1,T).
del(X, [Y|T], [Y|T1]) if del(X, T, T1).
result:-write("Введите число элементов списка"),nl, write("N="),readint(N),nl,
write("Вводите элементы списка"),nl, read_list(N,L), write("Исходный список L="),
write (L),nl,nl,write("Введите искомый элемент"),nl, readreal(E),nl, del(E, L, LL),write ("Результирующий список L="), write(LL), nl.
nondeterm summ_nechet(list,integer, integer)
nondeterm summ_chet(list,integer, integer)
I mod 2 = 0, !, II = I + 1, summ_nechet(T, II, TR), R = TR + H;
I mod 2 = 1, !, II = I + 1, summ_chet(T, II, TR), R = TR + H;
readlist([H|T]):-readint(H),!,readlist(T). readlist([]).
write("Vvodite elementi spiska"),nl,
del_last([H|Tail],[H|NewTail]):-del_last(Tail,NewTail).
add_last([H|Tail],[H|NewTail]):-add_last(Tail,NewTail).
pravo(N,T,L):-del_last(T,T1),N1=N-1,pravo(N1,[0|T1],L).
b(A,N,B):-pravo(0,A,A1),pravo(N,A1,B).
readlist([H|T]):-readint(H),!,readlist(T). readlist([]).
write("Введите элементы (конец ввода - двойное нажатие на ENTER): "),nl,
nondeterm res(integer,integer,integer).
max([H|Tail], H)if max(Tail, M), H>M,!.
min([H|Tail], H)if min(Tail, M), H X, replace(T, X, Y, R).
replace([H|T], X, Y, [Y|R]) :- H = X, replace(T, X, Y, R).
Список - это специальный вид сложного терма, состоящий из последовательности термов, заключенных в квадратные скобки и разделенных запятой. Как обозначается отсечение в программе?
2. Голова и хвост списка. Изображение списка в виде головы и хвоста.
Н - голова, Т - хвост списка. Изображается в виде [H|T]. H- первый элемент, Т - список оставшийся.
4. Можно ли изобразить пустой список в виде головы и хвоста ?
5. Что означают следующие виды изображения списка: L, [X], [ _ , A], [ _ |T], [H| _ ], [ _ ], [ _ ,B|C] ?
L - тип списка; [X] - список состоящий из одного элемента; [_,A] - список из двух элементов, первый элемент может принимать любое значение; [ _ |T], - список в котором голова принимает любое значение; [H| _ ] - список в котором не важен хвост; [_] - список из одного элемента значение которого не имеет значения; [ _ ,B|C] - список в голове которого 2 элемента, и первый может принимать любое значение.
6. Может ли быть в голове списка более одного элемента?
7. Принадлежит ли элемент 5 списку [[1, 2, 3], [4, 5, 6]]?
Нет, он принадлежит элементу списка.
8. Сопоставимы ли два списка: [5, 6, 7] и [H|T] ?
9. Можно ли в процедурах ввода списка ввод_списка1 и ввод_списка2 поменять местами первое и второе предложения?
10. Как нужно изменить процедуру удал_перв_эл, чтобы можно было удалить из списка: a) два первых элемента; б) второй элемент?
B) удал_перв_эл([ H,_ | T], [H|T]).
11. Как нужно изменить процедуру удал_посл_эл, чтобы из списка были удалены: a) два последние элементы; б) предпоследний элемент ?
12. Как нужно изменить процедуру выдел_перв_эл, чтобы можно было выделить из списка: a) два первых элемента; б) второй элемент ?
А) выдел_перв_эл([H,H1| _ ], H,H1).
13. Как нужно изменить процедуру выдел_посл_эл, чтобы из списка можно было выделить: a) два последние элементы; б) предпоследний элемент?
выдел_посл_эл([ _ |T], X,H):- выдел_посл_эл(T, X,H).
выдел_посл_эл([ _ |T], X):- выдел_посл_эл(T, X).
14. Как нужно изменить процедуру доб_эл_в_начало, чтобы можно было вставить заданный элемент между первым и вторым элементами списка ?
доб_эл_в_начало(E, [H,H1|T], [H,E,H1|T]).
15. Как нужно изменить процедуру доб_эл_в_конец, чтобы заданный элемент вставился перед последним элементом списка ?
доб_эл_в_конец(E, [H|T], [H|T1]):- доб_эл_в_конец(E, T, T1).
16. Можно ли в программе со списками обойтись без раздела domains ?
Приобрели навыки работы со списками в программах на Visual Prolog.
Понятие и обработка списков. Имя домена списка. Примеры записи списков. Основные принципы работы со списками. Рекурсивная программа обработки списка. Определение номера элемента или элемента по номеру. Решение задач, использующих структуру графа. презентация [65,0 K], добавлен 29.07.2012
Операции, осуществляемые с однонаправленными списками. Порядок создания однонаправленного списка, вставка и удаление элементов. Алгоритмы основных операций с двунаправленными списками. Примеры реализации однонаправленных и двунаправленных списков. курсовая работа [172,7 K], добавлен 20.01.2016
Расположение элементов списка в памяти. Информация о полях структуры TMember. Логическая структура двусвязного кольцевого списка. Логические схемы наиболее важных операций со списками. Алгоритмы обработки основных структур. Руководство пользователя. курсовая работа [2,3 M], добавлен 27.08.2012
Формирование матрицы и выполнение заданий: вычисление сумы четных элементов; максимума из нечетных элементов в строке; произведение элементов в нечетных столбцах; количество четных элементов выше главной диагонали. Создание программы в Visual Basic. контрольная работа [12,0 K], добавлен 07.10.2012
Решение задачи на составление компромиссного списка. Построение математической модели. Цена перемещения элементов. Вывод программы. Закреплении элемента а1 на первом месте, а а4 на пятом. Матрица оценок для задачи. Оптимальное решение в виде списка. курсовая работа [37,5 K], добавлен 30.01.2016
Общие сведения о Microsoft Excel. Формирование таблицы продаж в виде списка. Создание формы для ввода информации командой Данные-Форма. Выполнение сортировки, фильтрации данных в списке. Формирование промежуточных итогов по ежемесячной прибыли. курсовая работа [23,5 K], добавлен 16.12.2010
Создание классов, реализующих работу со списками и применение их к задаче построения графических моделей. Использование языка С++ для реализации списковой структуры. Назначение и условия применения программы. Руководство для программиста и оператора. курсовая работа [131,1 K], добавлен 19.03.2010
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .
© 2000 — 2021
Работа со списками лабораторная работа. Программирование, компьютеры и кибернетика.
Информатика 2 Класс Итоговая Контрольная Работа
Курсовая работа по теме Химия в домашних условиях
Курсовая Характеристика Этапов Отмывания Грязных Денег
Сочинение Школьника Из Ейска
Курсовая работа по теме Формирование Древнегреческой государственности
Реферат по теме Аналоги наркотических средств
Реферат: Terrorism
Контрольная работа: Математические методы обработки результатов эксперимента
Список литературы по предмету: "английский язык"
Дипломная работа: Инвестиционная политика Российской Федерации
Как Написать Мотивационное Эссе На Обучение
Реферат На Тему Право На Поиск, Получение И Использование Информации
Дипломная работа по теме Исследование основных подходов к определению качества образования
Реферат: Газоперекачивающие агрегаты
Реферат: Залози внутрішньої секреції гормони та їх роль у регуляції людини
Курсовая работа по теме Поэтика заглавий (на примере рассказов А.П. Чехова)
Реферат Галактика По Астрономии
Реферат по теме Подход и методы изучения проблем философии техники
Кант Сочинения В Шести Томах
Сочинение На Тему Развитие Казахской Письменной Культуры
Основы бронхоскопии - Медицина реферат
Особенности использования основных медиаканалов рекламы - Маркетинг, реклама и торговля курсовая работа
Стресс-менеджмент. Гендерные особенности принятия решений - Менеджмент и трудовые отношения дипломная работа