Смекни!
smekni.com

Организация изучения основных алгоритмических конструкций в среде Лого Миры (стр. 9 из 10)

На примере 7 наглядно показано ветвление (“ЕСЛИ” не полная форма).

Если условие истинно, то выполняются действия, указанные в программе. Вычисления выполняются командной строкой [пусть :y sin (:x)],затем если условие выполнено, выводится “y”.

Пример 8. Если a>b, то вычислить значение a=2*a, если условие не выполняется, то вычислить b=2*b

В примере 8 рассматривается полная форма ветвления. Если условие истинно, то выполняется первое действие, если условие ложно – выполняется второе действие.

Процедуры с параметрами

1. Процедура без параметра


Рассмотрим применение процедуры без параметра на уже решенном примере 3.

Процедура вызывается только с помощью имени, стоящего после ЭТО (ТО). Для этого используется процедура без параметра.

2. Процедура с параметром


Теперь в список команд Черепашки добавим переменную величину :х, которая позволит изменять размер начального значения :х.

Такой параметр в заголовке процедуры называется формальный параметр - та же самая переменная "х". При вызове же процедуры нужно будет указать соответствующее значение - так называемый фактический параметр. Например, "уравнение 100". Следовательно, начальное значение переменной :х=100.

Рассмотрим чуть подробнее, что происходит при исполнении процедуры с параметром. Переменную можно представить в виде ящика, на котором наклеена табличка с именем. В этот ящик может поместиться одно значение. Компьютер в любое время может посмотреть, что там находится, а может и поменять хранящееся значение. Допустим, если дать команду уравнение 100.

В заголовке процедуры после ее имени стоит ":х". Поэтому число 100 компьютер положит в "ящик" с такой "табличкой". Теперь начинается выполнение самой процедуры. Черепашка начинает выполнять цикл. Встретившись с командой "пусть “х :х + 1", она смотрит, какое значение "лежит в ящике", и подставляет его в эту команду. Само значение переменной при этом не меняется.

Процедура может иметь не один параметр, а несколько. Рассмотрим пример 9.


Пример 9. Вычислить

В этом случае при запуске процедуры количество фактических параметров и их порядок должны соответствовать формальным. Если их будет меньше, Лого выдаст сообщение:

Если больше –



Рекурсия

В Лого все процедуры равноправны. Допускается, что одна процедура может вызывать вторую, вторая – третью и так далее. Кроме того, в Лого допускается, что процедура может вызывать процедуру со своим собственным именем. Такой вызов процедурой самой себя называется рекурсией.

а) Процедура, обращающаяся сама к себе


Пример 10. Составить процедуру А, бесконечно печатающую слово «ПРИВЕТ»:

Процедура А печатает в текстовом окне слово «ПРИВЕТ» и вызывает процедуру А, которая печатает в текстовом окне слово «ПРИВЕТ» и вызывает процедуру А и т.д. Слово «ПРИВЕТ» будет печататься до тех пор, пока пользователь не прервет программу. Такого типа программы называют программами рекурсивного вызова самой себя или бесконечным циклом. Более интересный результат получится, если при рекурсивном вызове изменить значение параметра.


Пример 11. Используя уравнение х+3 рассчитать и нарисовать траекторию движения Черепашки:

б) Управляемая рекурсия

Для остановки программы в нужный момент можно применить условие и команду STOP (СТОП).


Пример 12. Ввести коэффициенты А, В, С. Если А<200, вычислить Х=А.В-В.С. В противном случае остановить программу.

Если при очередном вызове параметр А оказался больше 200, то программа остановится. В противном случае последует запрос и ввод коэффициентов А и В, расчет значения Х и новый вызов с увеличенным параметром.

в) Косвенная рекурсия

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


Пример 13. Вычислить значения у=sin(a) и х=cos(a), установив между ними взаимосвязь и не превышать значения 1.

Эти две процедуры (вычисления sin(a) b cos(a)) работают так: первая вызывает вторую, а вторая – первую. В результате получается один из примеров косвенной рекурсии.
Решение задачи с использованием основных базовых структур

и операторов языка Лого на примере экологической задачи

Пример 14. Расположенный на берегу реки металлургический завод осуществил сброс вод, в результате чего концентрация вредных веществ в реке резко увеличилось. С течением времени эта концентрация, естественно, уменьшается. Требуется сообщить, каков будет уровень загрязнения реки через N суток, до тех пор, пока концентрация не станет нормой.

Сначала построим математическую модель изучаемого явления. Специалистам-экологам установлена следующая приближенная закономерность: в каждом конкретном случае можно указать такое число K>1, что концентрация примесей C уменьшается в К раз за сутки. При этом коэффициент К зависит от района, где протекает река, типа примесей и т. п. Значение К можно узнать из соответствующего справочника. Эту закономерность примем в качестве исходного предположения для рассматриваемой математической модели.

Исходными данными будут начальная концентрация С вредных веществ в реке, предельно допустимая концентрация D и коэффициент К. Результат – последовательностью значений концентрации вредных веществ через сутки, двое суток и т. д. Связь между исходными данными и результатом дается следующими соотношениями:

где

- концентрация вредных веществ через N суток после сброса.

Руководствуясь этой математической моделью, составим блок-схему, где C - начальное значение концентрации,

D – предельно допустимая концентрация, K – коэффициент, Z – ограничения количества шагов для расчета, H – точность подсчета в сутках, N - количество суток.


Составим программу на языке Лого и произведем расчеты для свинца при C=10 мг/л, D=0.03 мг/л, K=1.12. [Гейн А.Г. стр.71]

Полученные расчеты дают возможность увидеть нормальную концентрацию свинца С= 0.027 в воде на 52 сутки.

2.3. Методические рекомендации

Изучение базовых алгоритмических конструкций в языке Лого в учебном процессе школы

Данный курс предлагает введение в алгоритмизацию с помощью среды Лого Миры, основу которой составляет язык Лого. Во время обучения должны быть решены три главные задачи: приобретение детьми навыков обработки различных видов информации на ПК, усвоение основных алгоритмических конструкций, освоение работы с объектами языка Лого.

На изучение темы в учебном плане школы отводится достаточное количество академических часов, в течение которых рассматриваются ниже перечисленные понятия алгоритмизации и реализация соответствующих данным понятиям вычислительных задач:

1. Базовая структура «следование» в Лого Мирах

2. Базовая структура «цикл» в Лого Мирах

3. Базовая структура «ветвление» в Лого Мирах

На изучение каждого из пунктов отводится соответствующее количество часов.