5 / 5 / 1
Регистрация: 20.04.2013
Сообщений: 95
1

Сформировать список целых чисел

26.10.2013, 14:06. Показов 3401. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сформировать список целых чисел в заданном диапазоне и подсчитать количество отрицательных значений. Удалить начало списка до заданного элемента X включительно.
Вот я список сформировала, только он почему отрицательные значения не правильно считает
Prolog
1
2
3
4
5
6
genl(N2,N2,[]):-!.
genl(N1,N2,[N1|L]):-N1<N2,N is N1+1,genl(N,N2,L).
len(0,[]).
len(X,[_|L]):-X1<0,len(X1,L),X is X1+1;len(X1,L),X1>=0,X is X1.
    create:-genl(-10,9,L),write(L),nl,len(X,L),
    write('Количество отрицательных элементов='),write(X).
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2013, 14:06
Ответы с готовыми решениями:

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

Сформировать список L1 из чисел списка L, кратных k
ПОмогите пжл решить задачку Сформировать список L1 из чисел L, кратных k.

Сформировать список L1 из нечетных чисел списка L
1. Сформировать список L1 из нечетных чисел списка L.

Сформировать список L1 из четных чисел списка L
необходимо Сформировать список L1 из четных чисел списка L,подскажите пожалуйста как это сделать ...

7
5 / 5 / 1
Регистрация: 20.04.2013
Сообщений: 95
28.10.2013, 14:29  [ТС] 2
люди добрые помогите)
0
99 / 99 / 14
Регистрация: 07.02.2013
Сообщений: 128
28.10.2013, 15:08 3
Prolog
1
2
3
len(X,[]):-write("Количество отрицательных элементов="),write(X), nl.
len(X,[H|L]):-H<0,X1=X+1, len(X1,L); X1=X,len(X1,L).
create:-genl(-10,9,L),write("Список ",L),nl,len(0,L).
0
5 / 5 / 1
Регистрация: 20.04.2013
Сообщений: 95
30.10.2013, 22:03  [ТС] 4
не работает
0
99 / 99 / 14
Регистрация: 07.02.2013
Сообщений: 128
30.10.2013, 22:50 5
Что именно не работает? Приведенный фрагмент кода реализует подсчет отрицательных элементов вписка. У меня VP5.2. Вот полный код:
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
domains
list=integer*
predicates
nondeterm genl(integer, integer,list).
nondeterm len(integer,list).
nondeterm create.
clauses
genl(N2,N2,[]):-!.
genl(N1,N2,[N1|L]):-N1<N2,N=N1+1,genl(N,N2,L).
len(X,[]):-write("Количество отрицательных элементов="),write(X), nl.
len(X,[H|L]):-H<0,X1=X+1, len(X1,L); X1=X,len(X1,L).
create:-genl(-10,9,L),write("Список ",L),nl,len(0,L).
 
%Либо так
%len(0,[]):-write("Количество отрицательных элементов=").
%len(X,[H|L]):-H<0,len(X1,L),X=X1+1;len(X1,L),X=X1.
%create:-genl(-10,9,L),write("Список  ",L),nl,len(X,L),write(X), nl.
goal
create.
А по поводу удаления начала списка возникае вопрос: X - это конкретный элемент списка? Если так, то в списке элементы могут и повторяться, тогда задание должно звучать, как "удалить начало списка до первого вхождения Х включительно"? Либо Х - число первых элементов списка, которые нужно удалить?
1
5 / 5 / 1
Регистрация: 20.04.2013
Сообщений: 95
08.11.2013, 18:43  [ТС] 6
Prolog
1
2
3
4
5
6
7
8
9
10
11
genl(N2,N2,[]):-!.
genl(N1,N2,[N1|L]):-N1<N2,N is N1+1,genl(N,N2,L).
len(0,[]).
len(X,[H|L]):-H<0,len(X1,L),X is X1+1;len(X1,L),X is X1.
delete(_,[],[]).
delete(Y,[Y|Z],Z):-!.
delete(Y,[X|Z],[X|A]):-
    delete(Y,A,Z).
create:-genl(-12,9,L),write(L),nl,len(X,L),
    write('Количество отрицательных элементов='),write(X),nl,
    write('Введите X: '),read(X),nl,delete(X,[],Y),write(Y).
вот про удаление надо что бы удаляло значение введение до Х(включительно).
я вот написала только оно удаляет первое вхождение
0
99 / 99 / 14
Регистрация: 07.02.2013
Сообщений: 128
08.11.2013, 19:22 7
Удаление до заданного элемента включительно:
Prolog
1
2
delete(Y,[Y|Z],Z):-!.
delete(Y,[_|Z],X):- delete(Y,Z,X).
Генерация списка с последующим удалением
Prolog
1
2
3
create:-genl(-12,9,L),write(L),nl,len(Xotr,L),
    write('Количество отрицательных элементов='),write(Xotr),nl,
    write('Введите X: '),read(X),nl,delete(X,L,Lout),write(Lout).
1
5 / 5 / 1
Регистрация: 20.04.2013
Сообщений: 95
08.11.2013, 19:46  [ТС] 8
спасибо большое!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.11.2013, 19:46
Помогаю со студенческими работами здесь

Создайте предикат, упорядочивающий список целых чисел по возрастанию
2. Создайте предикат, упорядочивающий список целых чисел по возрастанию (список одноуровневый).

Программа, которая преобразует список целых чисел во множество
Добрый день! Помогите, пожалуйста, решить задачу. Напишите на языке ПРОЛОГ программу, которая...

Задан список из N целых чисел. Путем перестановок получить значение
Добрый день! Пытаюсь освоить пролог на примерах - этакий быстрй курс. Просмотрел все 50 страниц, но...

Подсчитать количество целых чисел, входящих в список только один раз
Подсчитать количество целых чисел, входящих в список только один раз. Список упорядочен по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru