logo
Моделирование алгоритмических исполнителей

2.1.2 Тестирование программы

Данная программа была протестирована во 2 и 3 классах лингвистической школы и в 6 классе коррекции СОШ№3 г. Славянска-на-Кубани. В течение третей четверти 2003-2004учебного года ученикам предлагалось изучить возможности ПервоЛого. За это время они приобрели навыки по работе в данной среде, научились программированию. В качестве контрольного задания было предложено создать проект «Смена Дня и Ночи». Все ученики успешно справились с заданием. Были сделаны интересные и красивые проекты, что показало эффективность использования данного приложения в качестве обучающей программы.

2.1.3 Исполнитель «Черный ящик»

Всякая система представляет собой некоторый объект, который можно выделить из окружающей среды. Система взаимодействует с окружающей средой: среда оказывает влияние на систему , а система - на среду. Воздействие среды на систему называют входами или входом системы, в воздействие системы на среду - выходами или выходом системы. Здесь «воздействие» понимается в широком смысле. Это могут быть материальные объекты, которыми обменивается среда и система, физическое воздействие, информация. Для всякой системы можно перечислить множество входов и выходов, совсем не обязательно связанных с ее прямым назначением. Например, система «ручные механические часы». Ее входы -это верньер для завода часов и для перевода стрелок; но в тоже время и пыль, грязь, вода, тряска, удары. Выходы - циферблат со стрелками, тиканье, вес, способ крепления на руке, способ изображения цифр на циферблате, точность хода и так далее. Для большинства реальных систем список входов/выходов бесконечен. Мы часто не знаем как объект устроен «внутри». Нам важно лишь знать к каким результатам на выходе приведут определенные воздействия на входе системы. В таких случаях говорят, что система рассматривается как «черный ящик».

Черный ящик - это объект, на вход которого вы можете подать число, он произведет над числом некоторые действия и сообщит вам ответ. Ваша задача - отгадать, какие именно вычисления черный ящик производит над заданным вами числом. При запуске программы открывается окно с инструкцией к игре. Чтобы приступить к игре щелкните на кнопку Игра.

Рис.6 Лист «инструкция»

Для игры - щелкните на кнопке черный_ящик, появится диалоговое окно, в которое вы можете ввести любое число. В текстовом окне появится результат вычисления. Повторите это несколько раз, после чего попробуйте отгадать, какие именно математические действия черный ящик производит над вашими числами.

Рис.7. Лист «игра» Рис.8. Ввод начального значения

Если вы решите, что отгадали - щелкните по кнопке отгадка, и ответьте на вопросы, которые задаст компьютер.

Рис.9. Окно «Отгадки»

Для того, чтобы изменить формулу, по которой производит вычисления черный ящик, щелкните по кнопке новая игра. Появится спрятанное текстовое окно, в котором находится формула, по которой черный ящик производит вычисления, измените ее - и можете начинать новую игру. Чтобы спрятать текстовое окно - щелкните по зеленому фону листа.

Листинг программы

это startup

пусть "помню [] {Создает переменную с именем помню и присваивает ей нулевое значение. Переменные не исчезают при закрытии проекта}

вл "инструкции {Показывает на экране лист «инструкции». Входной параметр - имя листа в активном проекте. Для загрузки листа можно просто напечатать его имя.}

конец

это новая.игра

экран, ст { Стирает текст в активном текстовом окне. }

пусть "помню []

загадка, покажи_текст{ Спрятанное активное текстовое окно появляется на экране. В этом блоке программы, при нажатии кнопки «новая игра» , появляется спрятанное окно, в котором можно изменить формулу по которой производятся вычисления.}

конец

это черный_ящик

спроси "|Введите число на вход черного ящика| { Открывает диалоговое окно, в котором предлагается ввести число на вход черного ящика и нужно напечатать ответ. После того как ответ будет напечатан, его текст хранится в виде символьной цепочки, до следующего применения команды спроси и может быть получен с помощью датчика ответ. }

если не число? ответ [сообщи [На вход черного ящика можно подать только число!] стоп] { Если входной параметр не является числом, выводится сообщение в сигнальном окне, что на вход черного ящика можно подать только число. Чтобы закрыть окно, щелкните на OK.

Работа процедуры останавливается. }

пусть "цифра ответ {Если входной параметр является числом, сообщает последовательность символов, напечатанную в диалоговом окне, открытом командой спроси. Ответ сообщает введенный текст как одно (длинное) слово. }

пусть "помню внсп :цифра :помню {Сообщает список, полученный добавлением первого входного параметра в начало второго. Второй параметр должен быть списком.}

экран, вставь "|Ввели | вставь :цифра вставь "| получили | пиши вычисления :цифра{ Печатает входной параметр в позиции курсора в активном текстовом окне. Курсор не переходит на следующую строку.}

конец

это вычисления :цифра

выход делай разбери загадка {Останавливает процедуру и сообщает результат.}

конец

это отгадка

пусть "проверка 1

пусть "счетчик 0 контроль

конец

это контроль

подбор

локально "вопрос { Делает указанную переменную локальной по отношению к процедуре, содержащей команду локально. }

пусть "вопрос пред "|Сколько получится если на вход черного ящика подать| :проверка спроси :вопрос

если_иначе ответ = (вычисления :проверка) [пусть "счетчик :счетчик + 1

если :счетчик = 3 [сообщи [Все правильно !] стоп] контроль][сообщи [Неправильно !]] {В данной процедуре происходит проверка правильности работы черного ящика. Выводится диалоговое окно, в котором спрашивается сколько получится, если на вход черного ящика подать число (число предлагается, которое не было использовано в процессе работы черного ящика.). Если в течении трех раз были получены правильные ответы, выводится сообщение, что все правильно сделано, иначе выводится сообщение «неправильно».}