Такое графическое представление называется схемой алгоритма или блок-схемой. В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блока. Блоки соединяются линиями переходов, определяющими очередность выполнения действий. В таблице приведены наиболее часто употребляемые символы.
Обозначение и пример заполнения | Пояснение |
| Вычислительное действие или последовательность действий |
| Проверка условий |
| Начало цикла |
| Вычисления по подпрограмме, стандартной подпрограмме |
| Ввод-вывод в общем виде |
| Начало, конец алгоритма, вход и выход в подпрограмму |
| Вывод результатов на печать |
Алгоритмы можно представлять как некоторые структуры, состоящие из отдельных базовых (т.е. основных) элементов. Естественно, что при таком подходе к алгоритмам изучение основных принципов их конструирования должно начинаться с изучения этих базовых элементов.
Логическая структура любого алгоритма может быть представлена комбинацией трех базовых структур: следование, цикл, ветвление.
Применение этой структуры рассмотрим на примере 1.
Пример 1. Найти корень линейного уравнения вида ах+b=0.
Для запуска программы в командном поле введем имя программы – УРАВНЕНИЕ и нажмем клавишу <Enter> .
В появившемся диалоговом окне введем значение для коэффициента А=2, во втором – В=5. В третьем диалоговом окне появится значение рассчитанного параметра Х=-2,5.
Пример 2. Тело движется прямолинейно с ускорением а м/с2 и начальной скоростью u м/с. Требуется определить, какой путь пройдет тело за Т секунд. [Гейн А.Г., Житомирский В.Г., стр.15].
Описание и использование функций
В число Лого входят стандартные функции: SQRT - квадратный корень, SIN - синус, COS - косинус градусного аргумента, POWER - квадрат.
Произведем вычисления tg :
Для нахождения модуля числа решим уравнение вида:
|
2. Базовая структура "цикл"
Обеспечивает многократное выполнение некоторой совокупности действий, которая называется телом цикла. Предписывает выполнять тело цикла до тех пор, пока выполняется условие, записанное после слова пока.
Можно заметить, что команды (пусть "a :a + 1, сообщи :a), повторяются 5 раз, следовательно применив структуру «Цикл» получим блок-схему применимо к рассматриваемому примеру 3 (рис.8). При вводе А=1, производится операция сложения А+1 и повторяется 5 раз, что в результате получаем А=5.
Принцип действия: прочитав, в наборе команд REPEAT Черепашка ищет указание числа повторений – указатель начала цикла «[». Запомнив его место, Черепашка будет выполнять команды, пока не встретит указатель конца цикла - «]». После этого Черепашка возвращается к началу цикла и проверяет, выполнила ли она цикл заданное число раз. Если нет, то она продолжает выполнять цикл, в противном случае (если она уже выполнила задуманное число раз) Черепашка начинает выполнять команды расположенные в квадратных скобках. Таким образом, тело цикла выполняется задуманное число раз.
Цикл с изменяющейся переменной для печатания числовых рядов могут быть построены по одной единой схеме. Сначала команды присваивания ПУСТЬ (MAKE) заводится новая переменная и ей присваивается начальное значение. Затем начинаются, повторения – многократно выполняется один и тот же набор действий. В этом наборе обязательно есть действие изменения значения переменной.
В такой программе команда присваивания ПУСТЬ (МАКЕ) встречается дважды. Первый раз при начальной установке переменной (а=0), второй раз – в цикле, при изменении значения переменной (а=а+1).
Первая команда присваивания выполняется один раз, вторая – многократно. При изменении переменной в цикле используется ее же предыдущее значение. Поэтому в команде ПУСТЬ "а :а + 1 (MAKE "а :а + 1) переменная упоминается дважды (присвоить переменной с именем “a” то значение, которое сейчас имеет переменная – “a”, увеличенное на единицу). Сначала упоминается имя, а затем – значение.
Команда (пусть "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 Если_иначе |