Приложение
Ниже приводятся описания классов и тексты методов задачи "Об обезьяне и бананах", рассмотренной в разделе 3.4.
Класс Обезьяны(подкласс класса Объект)
Переменные экземпляра: координаты, наЯщике,
держитБананы
Методы экземпляра:
взятьБананы
"Обезьяна берет бананы"
(Ящик координаты = СвязкаБананов координаты) &
(сам наЯщике)
еслиИстина: [сам держитБананы: истина.
сам ответ: ' Обезьяна взяла бананы'.
сам ответ: ' Ура!']
еслиЛожь: [сам ответ: ' Обезьяна не может взять бананы']
держитБананы
"Выдает значение 'истина' или 'ложь' в зависимости от состояния обезьяны"
^держитБананы
держитБананы: экзЛогический
"Устанавливает состояние обезьяны"
держитБананы:= экзЛогический
достатьБананы
"Обезьяна добывает бананы"
сам держитБананы
еслиИстина: [сам ответ: ' Бананы у обезьяны. Ура!']
еслиЛожь: [сам наЯщике еслиИстина:[
сам координаты = СвязкаБананов координаты
еслиИстина: [сам взятьБананы]
еслиЛожь: [сам слезтьСЯщика;
подвинутьЯщикКБананам;
залезтьНаЯщик;
взятьБананы]
]
еслиЛожь: [
сам координаты = Ящик координаты
еслиИстина: [
сам координаты = СвязкаБананов координаты
еслиИстина: [сам залезтьНаЯщик;
взятьБананы]
еслиЛожь: [сам подвинутьЯщикКБананам;
залезтьНаЯщик;
взятьБананы]
]
еслиЛожь: [
СвязкаБананов координаты = Ящик координаты
еслиИстина: [сам подойтиКЯщику;
залезтьНаЯщик;
взятьБананы]
еслиЛожь: [сам подойтиКЯщику;
подвинутьЯщикКБананам;
залезтьНаЯщик;
взятьБананы]
]
]
]
забратьсяНаЯщик
"Обезьяна залезает на ящик"
сам наЯщике
еслиИстина: [сам ответ: ' Обезьяна уже на ящике!']
еслиЛожь:[(сам координаты = Ящик координаты)
еслиЛожь: [сам ответ: ' Обезьяна не подошла к ящику!']
еслиИстина:[сам наЯщике: истина.
сам ответ: ' Обезьяна забралась на ящик']
]
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.