PUPOK2101
07.07.2022 06:07

Visual prolog 9
почему ошибка

class my

domains
list_d = integer*.

predicates
readlist (list_d). (пишет тут ошибка, указывает на первую скобку error c 150 :Syntax error )

end class

implement my

clauses
readlist([Head | Tail]) :-
console::write("enter element value or empty string to finish: "),
readlist(Head),
!,
readlist(Tail).
readlist([]).

end implement

goal
readlist([]).

исправлял по всякому и все равно находит ошибки может кто

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
nikitasonar
28.12.2021 20:18
1. Оператор цикла предназначен для выполнения большого количества однотипных вычислений, отличающихся только значениями переменных, входящих в формулу. Например, вычисление значений формулы y=sin(x) для х=1..10 с шагом 1.
2. В языке Паскаль существуют циклы: с параметром (FOR), с предусловием (WHILE..DO), с постусловием (REPEAT...UNTIL).
3. Оператор FOR для примера п.1 имеет вид: FOR K:= 1 TO 10 DO Y[K]:=SIN(K). Если в теле цикла будет несколько операторов, то они заключаются в операторных скобки BEGIN...END.
4. Во время исполнения этого оператора переменной Y[K] (элементам маccива Y) последовательно присваиваются значения SIN(K).
5. Оператор FOR применяется в тех случаях, когда число повторений заранее известно (К=1..10).
6-9. Циклы WHILE и  REPEAT применяются, когда число повторений заранее неизвестно, например, для вычисления суммы ряда с заданной точностью, но их можно применять и для расчета по предыдущему примеру.
K:=0;
WHILE K<11 DO
BEGIN
K:=K+1;
Y[K]:=SIN(K)
END;
или для цикла REPEAT:
K:=0;
REPEAT
K:=K+1;
Y[K]:=SIN(K}
UNTIL K>10;
Для вычислений эти циклы равносильны, но есть одно (иногда решающее) отличие - цикл WHILE не будет выполнен ни разу, если условие сразу ложно, а цикл REPEAT сначала выполнит одну операцию, а потом, если условие окажется ложным, остановится.
0,0(0 оценок)
Ответ:
ndzandigiv
15.07.2021 04:20
Попытка поиска выигрышной стратегии может быть сделана при метода, получившего название "бэкрекинг" (backtracking - обратное прослеживание).
Рассматриваем финальную позицию для второго студента. У него должно оставаться от 1 до 4 карточек, чтобы он мог их все забрать и не оставить карточек первому студенту. Следовательно, у первого студента должно быть ровно 5 карточек. Забрав от 1 до 4 карточек, он оставит второму студенту как раз требуемое количество карточек.
Чтобы у первого студента осталось 5 карточек, второй студент должен иметь от 6 до 9 карточек, т.е. первый студент для этого должен делать выбор из 10 карточек.
И так далее. Выигрышная стратегия второго студента состоит в том, чтобы предоставлять первому студенту количество карточек, кратное 5.
Но исходное количество карточек равно 20; это число кратно 5, следовательно  второй студент всегда выигрывает, применяя описанную стратегию (она же - алгоритм).
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота