![]() |
|
|
![]()
|
|
| Паровоз |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 12.10.2008 Репутация: нет Всего: нет |
Здравствуйте.
Не могу сделать прогу, может, подскажете, что не так? Теоретически, приведенная ниже прога должна выводить список из чисел без минимального и максимального элементов. Но не выводит... domains il=integer* v=integer l=v* predicates addtoend(integer,il,il) addtoendprint(il,il) min(l,v) max(l,v) clauses addtoendprint(L,Res):- write("novoe chislo (vyhod-Enter):"), readint(X),min([H|T],MT),max([H|T],MH), !, addtoend(X,L,L1), write(L1),nl, addtoendprint(L1,Res). addtoendprint(L,L). min([H|T],MT):-min(T,MT),MT<=H,!. min([H|_],H). max([H|T],MH):-max(T,MH),MH>=H,!. max([H|_],H). addtoend(X,[],[X]). addtoend(X,[A|L],[A|L1]):-addtoend(X,L,L1). goal addtoendprint([],[L]). Пролог при компиляции выдает ошибки, как их исправить не знаю. |
|||
|
||||
| Паровоз |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 12.10.2008 Репутация: нет Всего: нет |
теперь могу. Получилось так:
domains array=number* number=integer predicates vvod(integer,array) find_min(array,number) find_max(array,number) remove(integer,array,array) clauses vvod(0,[]):-!. vvod(N,[H|T]):-readint(H), N1=N-1,!, vvod(N1,T). find_min([X],X). find_min([X,Y|T],Min):- X>Y, find_min([Y|T],Min). find_min([X,Y|T],Min):- X<=Y, find_min([X|T],Min). find_max([X],X). find_max([X,Y|T],Max):- X<=Y, find_max([Y|T],Max). find_max([X,Y|T],Max):- X>Y, find_max([X|T],Max). remove(_,[],[]). remove(X,[H|T],L):-H=X,!,remove(X,T,L). remove(X,[H|T],[H|L]):-remove(X,T,L). goal clearwindow, write("Vvedite N: "), readint(N),nl, write("Vvedite spisok"),nl, vvod(N,X), nl, find_min(X,Min), find_max(X,Max), write("spisok: ",X), nl, write("Minimum: "), write(Min), nl, write("Maximum: "), write(Max), nl, remove(Min,X,Y), remove(Max,Y,Y1), write(Y1), readchar(_), exit(0). |
|||
|
||||
![]()
|
| Правила форума Prolog | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Prolog | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |