iralebedeva.ru :: зелёный коллаж с цветами
КОНТАКТЫ
E-mail: ira.alma@yandex.ru
Телефон: +7 910 317 0585
ВКонтакте:
https://vk.com/iralebedeva_vk


iralebedeva.ru :: зелёный коллаж с цветами
опубликовано 10.03.2004 (г. Алма-Ата)
Flash-мастерская зелёных страничек
Лекционные материалы, домашние задания и тесты
дистанционного курса «Электронная школа Macromedia Flash MX»

Уроки информатики (лекционные материалы и практикумы)


ЭЛЕКТРОННАЯ ШКОЛА MACROMEDIA FLASH MX
III курс: Основы программирования в Macromedia Flash MX
Модуль V: Организация циклов, Решение математических задач
Язык ActionScript

Экспресс-план модуля:
  • Организация циклических процессов
  • 1 способ. Цикл с предусловием. Команда while
  • 2 способ. Цикл с постусловием. Команда do … while
  • 3 способ. Циклическая конструкция с предварительным вычислением выражения. Команда for

Организация циклических процессов

В этой лекции представлены основные способы организации циклических процессов в Macromedia Flash MX. В циклических вычислительных процессах неоднократно повторяются одни и те же предписания. Для практического исследования организации циклов возьмём три математические задачи — «каждому способу по задаче». Эти задачи принадлежат к категории так называемых классических математических задач использующихся при изучении информатики, они очень наглядно и доступно демонстрируют работу циклической структуры. Эти задачи ранее были использованы мной в процессе преподавания курсов QBasic v4.5 и Turbo Pascal v7.1, а сейчас верой и правдой служат при изучении языков Action Scripts (Macromedia Flash MX) и Delphi 7.0.

1 способ. Цикл с предусловием. Команда while

Общий формат команды:
while (condition) {
statement(s);
}

Как работает эта конструкция?

condition — условие, логическое высказывание, которое может быть истинным (true) или ложным (false). Условие проверяется каждый раз при выполнении команды while. В этом случае если условие истинно (true), исполняется тело цикла, заключённое в фигурные скобки — statement(s). В том случае если условие окажется ложным (false), тело цикла не выполнится ни разу!!!

Используем этот способ организации циклической структуры для решения задачи.

Условие задачи:
Рассчитаем произведение натуральных чисел от 1 до … (170).

Факториал, произведение натуральных чисел от единицы до какого-либо данного натурального числа n, т. е. 1·2·3·... n; обозначается n!. Например, 5! = 1·2·3·4·5 = 120.

В нашем ролике будет работать один кадр, на котором будут расположены текстовые блоки Static Text (комментарии), а также использован один текстовой блок Input Text, Var: t1, и один блок Dynamic Text, Var: pr. Ограничим число символов вводимых в поле ввода: Maximum Characters: 5.

На сцене будет расположена кнопочка расчётов, которой мы пропишем скрипт:

on (release, keyPress "") {
    if (t1 == "" || Number(t1)!=t1) {
        pr = " Нет данных!";
    } else if (t1<=1) {
        pr = "Абсурд!";
    } else if (t1>170) {
        pr = "Не могу!";
    } else {
        pr = 1;
        i = t1;
        while (i>1) {
            pr = pr*i;
            i––;
        }
    }
}

Обратите внимание, что в скрипте работает ещё одна переменная i, «переменная-дублёр» для t1, которая добросовестно отвечает за работу цикла и не вносит ненужную сумятицу в работу поля ввода.

170! — это очень большое число: 170! = 7.257415615308e+306. Перед нами экспоненциальная форма записи числа. Эта форма удобна при записи чисел с очень большой или, напротив, маленькой абсолютной величиной.

<Мантисса>e<Десятичный порядок>
Например,
5e–12 = 5 · 10–12 = 0,000000000005
7.257415615308e+306 = 7.257415615308 · 10306

2 способ. Цикл с постусловием. Команда do … while

Общий формат команды:
do {
statement(s);
} while (condition);

Как работает эта конструкция?

В фигурных скобках за do заключено тело цикла — statement(s). После выполнения тела цикла проверяется условие прекращения повторений. Тело цикла выполняется до тех пор, пока условие (condition) истинно (true). Тело цикла с постусловием в любом случае выполнится хотя бы раз!!!

Используем этот способ организации циклической структуры для решения задачи.

Условие задачи:
Проанализировать, является ли натуральное число, введённое пользователем простым.

Простое число, натуральное число, большее, чем единица, и не имеющее других делителей, кроме самого себя и единицы: 2, 3, 5, 7, 11, 13... Число простых чисел бесконечно.

В нашем ролике будет работать один кадр, на котором будут расположены текстовые блоки Static text (комментарии), использован один блок Input Text, Var: t1 и один блок Dynamic Text, Var: an. Ограничим число символов вводимых в поле ввода: Maximum Characters: 10.

На сцене будет расположена кнопочка анализа, которой мы пропишем скрипт:

on (release, keyPress "") {
    if (t1 == "" || Number(t1) != t1) {
        an = "Нет данных!";
    } else if (t1<1) {
        an = "Число не натуральное!";
    } else if (t1 == 1) {
        an = "Это наименьшее натуральное число!";
    } else {
        d = 1;
        do {
            d++;
            r = Number(t1)/d;
            prr = Number(t1)–Math.floor(r)*d;
        } while (prr != 0);
        if (d == t1) {
            an = "Простое число!";
        } else {
            an = "Не простое число!";
        }
    }
}

Обратите внимание, что в срипте работают три дополнительные переменные:
d — На что будем делить?
Сначала на 2, потом на 3… в цикле это определено строкой d++;
r = Number(t1)/d; — В этой строке мы производим деление.
prr = Number(t1) - Math.floor(r)*d; — Как прошла операция деления? Рассчитаем остаток при делении. Остаток — величина, получаемая при вычитании из делимого произведения делителя на целое частное.
while (prr!=0); — До тех пор, пока не будет произведено деление без остатка, мы будем делить, делить, делить…
Когда работа цикла будет завершена, нам останется только проанализировать полученный результат.

3 способ. Циклическая конструкция с предварительным вычислением выражения. Команда for

Общий формат команды:
for (init; condition; next); {
statement(s);
}

Как работает эта конструкция?

Разберёмся с компонентами, записанными в круглых скобках:
init (initialize) — выражение, которое надо вычислить перед началом цикла, обычно это присваивание.
condition — условие, логическое высказывание, которое может быть истинным (true) или ложным (false). Истинность условия проверяют перед каждой итерацией (повторением цикла). Если условие окажется ложным (false), то работа цикла будет закончена.
next — выражение, которое надо вычислять при каждой итерации в цикле (шаг цикла). Обычно представляет собой оператор инкремента ++ (increment добавляет единицу) или декремента –– (decrement вычитает единицу).
В фигурные скобки заключено тело цикла — statement(s).

Используем этот способ организации циклической структуры для решения задачи.

Условие задачи:
Рассчитаем сумму натуральных чисел от 1 до … (99999).

В нашем ролике будет работать один кадр, на котором будут расположены текстовые блоки Static text (комментарии), использован один блок Input Text, Var: t1 и один блок Dynamic Text, Var: sum.
На сцене будет расположена кнопочка расчётов, которой мы пропишем скрипт:

on (release, keyPress "") {
    if (t1 == "" or Number(t1) != t1) {
        sum = "Нет данных!";
    } else if (t1<=1) {
        sum = "Абсурд!";
    } else if (t1>99999) {
        sum = "Не могу!";
    } else {
        sum = 0;
        for (i=1; i<=Number(t1); i++) {
            sum = sum+i;
        }
    }
}

Обратите внимание, что в скрипте работает дополнительная переменная i, она организовывает работу цикла и постоянно сопоставляет своё содержимое с содержимым поля ввода t1.

Домашнее задание: Основы программирования в Macromedia Flash MX

Горек корень учения, зато сладки плоды его.
Михайло Васильевич Ломоносов

Продублируйте ролики, представленные в этой лекции.

Выполненное задание представьте в виде файлов в формате fla (если суммарный размер файлов превысит 150 Кб, пожалуйста, упакуйте файлы в архив) и вышлите учителю.

Желаю Вам успехов в самостоятельном изучении Macromedia Flash MX!


Предыдущий модуль:
Модуль IV: Команда with, Программа «Правилка»
Следующий модуль:
Модуль VI: Подчиняемся курсору мыши пользователя, Игра «Весёлая кухня»




ваш комментарий *
 
ваше имя

защитный код (цифры с картинки) *







statistics
Top.Mail.Ru       Яндекс.Метрика   

Распространение материалов сайта приветствуется.
Ссылка на материалы весьма желательна, но не строго обязательна ;-)
«Знание должно служить творческим целям человека. Мало накоплять знания;
нужно распространять их возможно шире и применять в жизни». Рубакин Н.А.