Буду очень благадорна за помощь в написании программы на обоих языках.
Условие: Даны два предложения. Вывести слова, которые входят в каждое из них, т.е. совпадающее слова.
Как я не билась - написать не получается.
Условие: Даны два предложения. Вывести слова, которые входят в каждое из них, т.е. совпадающее слова.
Как я не билась - написать не получается.

-указатель на строку.
-указатель на эту же структуру.
Потом создал бы 2 указателя на такую структуру с названиями, которые отображали бы суть "начало списка слов первого предложения" и "текущая позиция в списке". Потом я бы пробегал по первому предложению и вытягивал по 1 слову. (искал бы начало слова (первая встретившаяся буква) и конец слова (либо конец строки, либо символ какой-нибудь, либо пробел)). Вот нашёл начало и конец слова, выделил бы место в динам. памяти под это слово и записал бы его туда. Указатель на эту строку в структуру. Потом создание новой структуры, её адрес в соответствующее поле первой структуры. Ну и так далее, пока не получится список слов первого предложения. Потом ищем первое слово во втором предложении, запоминаем его либо в переменной с большим объёмом, либо выделяем память под неё динамично. Пробегаем по списку и сравниваем с каждым словом из первого предложения. Находим - печатаем. Ну и так далее =)
Хотя может можно и как-то проще.. Это первое, что пришло в голову.
попробую скомпоновать..
по ходу дела этого не знает никто..
я тоже мечтаю сдать лисп и забыть.. хотя нам все твердят, что это очень полезно..
вот реализация на схеме (плт) - paste.org.ru/?qyarpq
пролога не знаю, а на эрланге думаю не подойдет
пысы
для правильной работы надо кое-где поменять местами значения (-;
и очень сильна, если ее правильно применять ( и оптимизировать компилятором )
посмотрела.. не все поняла, но разберусь думаю..
——————————————————
/*Дан файл, содержащий слова, разделенные пробелами, причем
среди них встречается слово BOOK. Создать файл, который будет
содержать слова из исходного файла, а слово BOOK будет заменено
словом CAR.*/
q :- exitsys.
/* Чтение слова */
read_word( Word ) :- get0(C),
!,
char(C, FirstChar),
get0(C1),
word_tail(C1, Tail),
name(Word, [FirstChar|Tail]).
word_tail(C, [NewChar|Tail]) :- char(C, NewChar),
get0(C1),
word_tail(C1, Tail); char(C, NewChar).
word_tail(C, []).
char(C, C) :- C>=97, C=65, C'), print(NW), nl.
/* Рекурсивная обработка файла */
work:- read_word(Word), print('|'), one_word(Word), !, work.
t :- see('1.txt'), (work, !, fail); see(user).
t2 :- see('1.txt'), get0(C).
————————————————————————————————
Пошарился сейчас по винту, думал может найду что-то похожее на задание, которое нужно реализовать, но нашел только это...
например любой цикл заменяеться хвостовой рекурсией. переходы - функциями. переменные вообще ненужны, достаточно констант. нужен только правильный компилятор.а то что его у пролога нет ( да и нет ли на самом деле, черт их знает эти секретные лаборатории
в моем исходнике хвостовая рекурсия как раз таки используеться для создания цикла (хотя думать в терминах рекурсии имхо удобней)
кста насколько я знаю программное обеспечение части небезизвестной системы энергия-буран написана именно на нем
кста насколько я знаю программное обеспечение части небезизвестной системы энергия-буран написана именно на нем
ну да, я тоже читал про это, но это жесть... имхо, ПО для таких вещей лучше писать на чем-то известном и проверенном, например для боинга его пишут на си, на обыкновенном си, без объектов.