Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];

Вниз

Вторничная задачка   Найти похожие ветки 

 
Kerk ©   (2004-12-21 09:36) [0]

В языке PROLAN/F, предназначенном для работы со строками символов и
логическими значениями, программа состоит из двух частей. Первая часть
содержит разделенные запятыми определения функций (с логическими либо
строковыми значениями и логическими или строковыми формальными параметрами),
а вторая - запросы значений функций для конктреных параметров - строк символов
(например, "abs") или логических констант (ДА и НЕТ).

В языке есть несколько функций:
ПУСТО?(х) (х - строка, результат - ДА, если х пустая, и НЕТ - если х непуста);
СИМРАВ?(х,у) (х,у - односимвольные строки; результат - ДА, если строки совпадают);
КОНСИМ(х) (х - непустая строка; результат - односимвольная строка, состоящая из последнего символа строки х);
НАЧСТР(х) (х - непустая срока; результат - строка, получающаяся удалением в х последнего символа);
ПРИПКОНСИМ(х,у) (х - строка, у - односимвольная строка; результат - строка, получающаяся приписыванием символа у в конец х);

Определение новой функции записывается так:
<имя функции>(<перечень формальных параметров>)=<условное значение>Здесь <перечень формальных параметров> - разделенные запятыми идентификаторы формальных параметров,
а <условное значение> имеет вид:
(<условие>-<значение>,<условие>-<значение>,..,ИНАЧЕ-<значение>)
При исполнении условное значение равно самому первому из тех <значений>, для которых
записанные перед ними условия истинны, если же все условия ложны - то значению, записанному
после "ИНАЧЕ".

Участвующие в записи <условного значения> <условия> и <значения> могут быть:
а) логическими или строковыми константами,
б) элементами <перечня формальных параметров> текущего определения,
в) обращениями к встроенным либо описанным функциям,
г) некоторыми <условными значениями>.
Такими же могут быть и аргументы функций, используемых в определении.

Заметим, что в данном языке отстутствуют такие объекты, как переменные, оператор
присваивания, цикл и т.п., что делает программирование на нем весьма не очень
скучным занятием.

ПРИМЕРЫ:
Определение логического отрицания:
 не(х)=(х-НЕТ,ИНАЧЕ-ДА)
Логическое "и":
 и(х,у)=(х-у,ИНАЧЕ-НЕТ)
Логическое "или":
 или(х,у)=(х-ДА,у-ДА,ИНАЧЕ-НЕТ)
либо
 или(х,у)=(ДА-не(и(не(х),не(у))),ИНАЧЕ-"")

ТРЕБУЕТСЯ дать на описанном языке определения функций с аргументами - строками:
а) СТРРАВ?(х,у) - равна "ДА", если аргументы равны;
б) СТРПРИНАДЛ?(х,у) - равна "ДА", если строка х является подстрокой у (т.е.
некоторая совокупность идущих подряд символов строки у образует строку х);
в) ПЕРЕВОР(х) - строка, получаемая перестановкой символов строки х в обратном порядке;
г) ПОДСТАВИТЬЛЕВ(х,у,z) - строка, получающаяся из строки z заменой самого левого
вхождения в нее подстроки х (если таковые в z есть) на строку у.

===
бан - оружие слабых.


 
Johnmen ©   (2004-12-21 09:38) [1]

Своё домашнее задание ты должен решить сам.


 
Kerk ©   (2004-12-21 09:49) [2]

Ой.. давай не будем.. :)
Я по-моему уже достаточно давно на форуме, чтоб народ знал, что я так не поступаю...


 
Johnmen ©   (2004-12-21 10:04) [3]

>Kerk ©   (21.12.04 09:49) [2]
>Я по-моему уже достаточно давно на форуме, чтоб народ знал, что
>я так не поступаю...

Юношеский нарциссизм ? :)))

PS Народ м.б. и знает, а я нет.


 
Kerk ©   (2004-12-21 10:08) [4]


> Юношеский нарциссизм ? :)))

Ну чего мне сегодня с утра все диагнозы ставят? :)))


 
Внук ©   (2004-12-21 10:09) [5]

>>Kerk ©   (21.12.04 10:08) [4]
 Хотите поговорить об этом? LOL


 
TUser ©   (2004-12-21 10:10) [6]

а) СТРРАВ?(х,у)=
  (и(СИМРАВ?(КОНСИМ(х),КОНСИМ(у)),
     СТРРАВ(НАЧСТР(х),НАЧСТР(у))))
в) ПЕРЕВОР(х)=
  (КОНСИМВ(x)+ПЕРЕВОР(НАЧСТР(х)))
" я надеюсь конкатенация там разрешена,
" хотя это явно и не оговорено
" если да - то я большой спец по использованию
" рекурсии для переворачивания массивов


> Johnmen ©   (21.12.04 09:38) [1]

Мне, например, тоже интересно решить в и д функциональными методами.


 
Kerk ©   (2004-12-21 10:13) [7]


> TUser ©   (21.12.04 10:10) [6]

Нет. Конкатенация не разрешена. Разрешено только то, что явно упомянуто. И в пункте А, что у тебя будет, если длины строк разные?


 
Kerk ©   (2004-12-21 10:14) [8]

В свое время я решил первые три. :)


 
Johnmen ©   (2004-12-21 10:15) [9]

>Kerk ©   (21.12.04 10:08) [4]
>Ну чего мне сегодня с утра все диагнозы ставят? :)))

Это всего лишь предположение.

>TUser ©   (21.12.04 10:10) [6]
>Мне, например, тоже интересно решить в и д функциональными методами.

Так никто не против...:)


 
Kerk ©   (2004-12-21 10:16) [10]


> > TUser ©   (21.12.04 10:10) [6]

К тому же у тебя ответы синтаксически неверно записаны. :)))


 
MBo ©   (2004-12-21 12:16) [11]


СТРРАВ(x,y)=(
и(ПУСТО?(x),ПУСТО?(y))=ДА,
  или(ПУСТО?(x),ПУСТО?(y))-НЕТ,
    ИНАЧЕ
      и(СИМРАВ?(КОНСИМ(х),КОНСИМ(у)),СТРРАВ(НАЧСТР(x),НАЧСТР(y)))


 
Kerk ©   (2004-12-21 12:29) [12]


> MBo ©   (21.12.04 12:16) [11]

Первая самая простая - есть.
Кто дальше? :)


 
MBo ©   (2004-12-21 12:41) [13]

>Kerk ©   (21.12.04 12:29) [12]
Сильно напрягают русские имена функций, как оказалось ;)
А так  - это работа со стеком, имеющим только Peek, Pop, Push


 
MBo ©   (2004-12-21 13:08) [14]

пришлось доп. функцию ввести:


СТРПРИНСТРОГ?(х,у)=(
 ПУСТО?(x)-ДА,
  ПУСТО?(y))=НЕТ,
   ИНАЧЕ
    и(СИМРАВ?(КОНСИМ(х),КОНСИМ(у)),СТРПРИНСТРОГ?(НАЧСТР(x),НАЧСТР(y)))

СТРПРИНАДЛ?(х,у)=(
 ПУСТО?(x)-ДА,
  ПУСТО?(y))=НЕТ,
    и(СИМРАВ?(КОНСИМ(х),КОНСИМ(у)),СТРПРИНСТРОГ?(НАЧСТР(x), НАЧСТР(y))-ДА,
  ИНАЧЕ
СТРПРИНАДЛ?(x,НАЧСТР(y)))



 
Kerk ©   (2004-12-21 14:17) [15]


> MBo ©   (21.12.04 13:08) [14]

А что какой смысл ты вкладывал в название доп.функции? Что-то никак не соображу. Похоже ты единственный кому это здесь интересно. :(



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.031 c
1-1103618080
paule
2004-12-21 11:34
2005.01.09
Проблема с переменной


9-1095658408
Cobalt
2004-09-20 09:33
2005.01.09
Переключение между программами


1-1103698576
Rat
2004-12-22 09:56
2005.01.09
indy ftp (idftp)


3-1102488885
AHTOH
2004-12-08 09:54
2005.01.09
Чайницкий вопрос про отображение и редактирование записей в IBX


14-1103715054
Vaitek
2004-12-22 14:30
2005.01.09
Анимация трехмерной модели.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский