Такое графическое представление называется схемой алгоритма или блок-схемой. В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блока. Блоки соединяются линиями переходов, определяющими очередность выполнения действий. В таблице приведены наиболее часто употребляемые символы.
Обозначение и пример заполнения | Пояснение |
Вычислительное действие или последовательность действий | |
Проверка условий | |
Начало цикла | |
Вычисления по подпрограмме, стандартной подпрограмме | |
Ввод-вывод в общем виде | |
Начало, конец алгоритма, вход и выход в подпрограмму | |
Вывод результатов на печать |
Алгоритмы можно представлять как некоторые структуры, состоящие из отдельных базовых (т.е. основных) элементов. Естественно, что при таком подходе к алгоритмам изучение основных принципов их конструирования должно начинаться с изучения этих базовых элементов.
Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур: следование, цикл, ветвление.
Характерной особенностью базовых структур является наличие в них одного входа и одного выхода. 1. Базовая структура "следование". Образуется последовательностью действий, следующих одно за другим, представлена на рис1.Применение этой структуры рассмотрим на примере 1.
Пример 1. Найти корень линейного уравнения вида ах+b=0.
Для решения примера 1 составим блок-схему алгоритма (рис. 2.). Следуя последовательности блоков в алгоритме можно составить программу на языке Лого, которая может быть представлена, так как на рис. 3.Для запуска программы в командном поле введем имя программы – УРАВНЕНИЕ и нажмем клавишу <Enter> .
В появившемся диалоговом окне введем значение для коэффициента А=2, во втором – В=5. В третьем диалоговом окне появится значение рассчитанного параметра Х=-2,5.
Пример 2. Тело движется прямолинейно с ускорением а м/с2 и начальной скоростью u м/с. Требуется определить, какой путь пройдет тело за Т секунд. [Гейн А.Г., Житомирский В.Г., стр.15].
Описание и использование функций
В число Лого входят стандартные функции: SQRT - квадратный корень, SIN - синус, COS - косинус градусного аргумента, POWER - квадрат.
Произведем вычисления tg :
Для нахождения модуля числа решим уравнение вида:
.2. Базовая структура "цикл"
Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла. Предписывает выполнять тело цикла до тех пор, пока выполняется условие, записанное после слова пока.
В языке Лого существует только один вид цикла, применяемый для повторения определенных действий. Базовую структуру «цикл» и команду REPEAT можно применять не только для перемещения Черепашки и рисования, но также и решения вычислительных задач, подразумевающих получения результата. Рассмотрим применение структуры Цикл на примере 3 (рис.8). Пример 3. Получить цифру 5 с помощью операции сложения и цифры 1.Можно заметить, что команды (пусть "a :a + 1, сообщи :a), повторяются 5 раз, следовательно применив структуру «Цикл» получим блок-схему применимо к рассматриваемому примеру 3 (рис.8). При вводе А=1, производится операция сложения А+1 и повторяется 5 раз, что в результате получаем А=5.
Принцип действия: прочитав, в наборе команд REPEAT Черепашка ищет указание числа повторений – указатель начала цикла «[». Запомнив его место, Черепашка будет выполнять команды, пока не встретит указатель конца цикла - «]». После этого Черепашка возвращается к началу цикла и проверяет, выполнила ли она цикл заданное число раз. Если нет, то она продолжает выполнять цикл, в противном случае (если она уже выполнила задуманное число раз) Черепашка начинает выполнять команды расположенные в квадратных скобках. Таким образом, тело цикла выполняется задуманное число раз.
Цикл с изменяющейся переменной для печатания числовых рядов могут быть построены по одной единой схеме. Сначала команды присваивания ПУСТЬ (MAKE) заводится новая переменная и ей присваивается начальное значение. Затем начинаются, повторения – многократно выполняется один и тот же набор действий. В этом наборе обязательно есть действие изменения значения переменной.
В такой программе команда присваивания ПУСТЬ (МАКЕ) встречается дважды. Первый раз при начальной установке переменной (а=0), второй раз – в цикле, при изменении значения переменной (а=а+1).
Первая команда присваивания выполняется один раз, вторая – многократно. При изменении переменной в цикле используется ее же предыдущее значение. Поэтому в команде ПУСТЬ "а :а + 1 (MAKE "а :а + 1) переменная упоминается дважды (присвоить переменной с именем “a” то значение, которое сейчас имеет переменная – “a”, увеличенное на единицу). Сначала упоминается имя, а затем – значение.
Пример 4. Вычислить уравнение: y=a+b четыре раза и получить результат.Команда (пусть "y :a + b, сообщи :y), повторяются 4 раза, следовательно применив структуру «Цикл» получим блок-схему применимо к рассматриваемому примеру 4 (рис.9). При вводе А=12, а B=24 производится операция сложения А+B и повторяется 4 раза, что в результате получаем y=36.
Пример 5. Вычислить 5 раз значения X=i3, Y=X/2 и вывести значения на экран.
Сначала команды присваивания ПУСТЬ заводится новая переменная I и ей присваивается начальное значение. Затем начинаются, повторения – многократно выполняется один и тот же набор действий. В этом наборе обязательно есть действие изменения значения переменной. Команда (пусть "y :x / 2, сообщи :y, пусть “x :I * :I * :I ,сообщи :x ), повторяются 5 раз, следовательно применив структуру «Цикл» получим блок-схему применимо к рассматриваемому примеру 5 (рис.10). При выводе значений :y и :x производится операция возведения :x в степень, а :y=x/2 , что в результате получаем y=32, x=64.
Это такой цикл, когда тело цикла отсутствует, т.е. после слова REPEAT в квадратных скобках ничего не стоит.
Например: REPEAT 1000 [ ]
Если ввести эту команду в ЭВМ, то Черепашка какое-то время не будет реагировать на команды, а будет 1000 раз выполнять НИЧЕГО. Иногда это полезно, потому что обеспечивает паузу между выполнением команд.
Это можно рассмотреть на примере 6.
Пример 6. Вывести две фразы “СЕГОДНЯ ПРЕКРАСНАЯ ПОГОДА” с паузой, затем фразу “ВСЕМ ПРИВЕТ”.
3. Базовая структура "ветвление"
Обеспечивает в зависимости от результата проверки условия (да или нет) выбор одного из альтернативных путей работы алгоритма. Каждый из путей ведет к общему выходу, так что работа алгоритма будет продолжаться независимо от того, какой путь будет выбран. Структура ветвление существует в четырех основных вариантах: если—то; если—то—иначе;
1. если—то | ||
Обеспечивает ветвление (не полная форма). Если условие истинно, то выполняются действия, указанные в списке. | If Если | |
2. если—то—иначе | ||
Обеспечивает ветвление (полная форма). Если условие истинно, то выполняется первое действие, если условие ложно – выполняется второе действие. | Ifelse Если_иначе |