Урок 8. Диалоги с черепахой
Тема: Язык программирования Logo
Принимаем сообщения
Ранее мы уже видели, как робот-черепаха может выводить текст на холст с помощью команды напиши. Однако это не единственная возможность вывода символьной информации. С помощью языка программирования Лого можно запрограммировать черепаху так, что она будет посылать сообщения с помощью специальных диалоговых окон.
Вот одно из таких окон, с написанной на нем любой фразой-сообщением и одной кнопкой ОК.

Такое окно получается в результате выполнения вот такой команды:
сообщение "Эй. Я черепаха. Это сообщение из вашей программы"Команда сообщение выводит окно, а фраза в кавычках – это то, что будет написано в этом окне. Фраза может быть абсолютно любой. Вместо нее даже может стоять переменная. Например, так:
$привет = "Здравствуйте, ребята!"
сообщение $приветВ результате получится окно с фразой "Здравствуйте, ребята!". Можно поступить еще интересней и передать команде сообщение несколько аргументов.
$привет = "Здравствуйте, ребята!" $задание = "Сидите и слушайте." сообщение $привет + " " + $задание
Здесь команде сообщение передается три аргумента: две переменные и одна строка (в кавычках). Строка состоит из одного пробела. Он нужен для того, чтобы отделить первую фразу от второй. С помощью знаков + фразы соединяются между собой. В результате окно сообщения будет содержать фразу "Здравствуйте, ребята! Сидите и слушайте."
Задание
Напишите программу по следующему алгоритму:
- Сброс всех параметров.
- Сообщение об установке цвета холста.
- Команда установки цвета холста в светло-зеленый цвет.
- Сообщение о предстоящем выводе на экран линии.
- Вывод на экран темно синей линии.
- Сообщение о том, что сейчас экран будет очищен.
- Сброс всех параметров.
Отвечаем на вопросы
Писать сообщения – это часть того, что можно делать с диалоговыми окнами. На самом деле, на языке Logo можно выводить окна с вопросами. В таких окнах есть сообщение и поле, куда человек пишет свой ответ, а также две кнопки: ОК и Отмена. Вот как это может выглядеть:

Кнопка ОК активируется ("загорается"), когда в пустое поле будет что-нибудь написано. Чтобы получить такое окно, надо выполнить такую команду:
спроси "Что вы хотите?"Именно благодаря команде спроси получается такое сложно диалоговое окно. То, что идет после кавычек – это сообщение о том, что требуется ввести в пустое поле ввода. Если после этого нажать кнопку ОК, то введенная в поле информация окажется в памяти компьютера. Если нажать Отмена, то ничего нигде не сохранится.
Предположим, что мы что-то ввели в поле и нажали ОК. Где же в памяти компьютера сохранилось, то, что мы ввели, и как черепахе узнать это значение? Все просто – надо использовать переменные. Приведенное выше выражение на самом деле должно быть примерно таким:
$желание = спроси "Что вы хотите?"Теперь то, что ввел человек в диалоговом окне, будет сохранено в памяти и связано с переменной $желание. Когда потребуется, чтобы черепаха что-нибудь сделала с этими данными, мы можем передавать командам нашу переменную. Например, чтобы вывести загаданное желание на холст достаточно дать такую команду:
напиши $желание
С помощью Лого-черепахи можно запрашивать у пользователя не только словесные фразы, но и числа. Рассмотрим такую программу:
сброс сообщение "Установите цвет холста в кодировке RGB." $к = спроси "Красный" $з = спроси "Зеленый" $с = спроси "Синий" цвет_холста $к, $з, $с
Человек получает сообщение о том, что ему сейчас предстоит установить цвет. Далее появляются окна, где он должен ввести числа от 0 до 255 (а потому что RGB). То, что вводит пользователь, запоминается в переменных $к, $з, $с. Поскольку команде цвет_холста надо передавать три числа через запятую, то мы это и делаем. Просто вместо переменных при выполнении будут подставлены числа, которые ввел пользователь.
Задание
Вспомните прошлый урок про конструкцию "Если – иначе". Напишите такую программу:
- Сброс параметров.
- Спросить у пользователя, сколько ему лет.
- Если пользователю больше 18, то сообщить ему, что он уже совершеннолетний по Российскому законодательству.
- Иначе, вывести сообщение, где будет указано, сколько лет ему осталось до 18.
Примерный ответ к заданию:
сброс $возраст = спроси "Сколько тебе лет?" если $возраст >= 18 { сообщение "Ты уже совершеннолетний" } иначе { $осталось = 18 - $возраст сообщение "До совершеннолетия осталось " + $осталось }
Напишите еще одну программу:
- Сброс параметров
- Попросите пользователя решить пример 2*2.
- Если пример решен правильно, то на холсте должен появиться большой синий квадрат.
- Во всех остальных случаях на холсте должно выводиться то, что ввел пользователь, а затем перечеркиваться красной линией.
Примерный ответ к заданию:
сброс $y = спроси "Сколько будет 2 * 2?" если $y == 4 { цвет_пера 0, 0, 220 иди 100, 100 назад 200 налево 90 назад 200 налево 90 назад 200 налево 90 назад 200 налево 90 } иначе { размер_шрифта 20 напиши $y иди 190, 220 направление -90 цвет_пера 255, 0, 0 назад 100 }
Последние комментарии
2 дня 3 часа назад
3 дня 30 минут назад
4 дня 45 минут назад
6 дней 16 часов назад
1 неделя 4 часа назад
1 неделя 2 дня назад
2 недели 1 день назад
2 недели 1 день назад
2 недели 6 дней назад
3 недели 5 часов назад