
- •Базовые управляющие конструкции
- •Основные блочные символы
- •Базовые алгоритмические структуры.
- •Некоторые стандартные приемы алгоритмизации
- •1. Поменять местами содержимое двух переменных (три ведра).
- •Найти сумму элементов массива
- •Найти максимальный элемент массива.
- •Использование флага наступления события
- •Этапы обработки программы машиной
Некоторые стандартные приемы алгоритмизации
Научиться составлять алгоритмы даже средней сложности - дело непростое и творческое, поскольку именно здесь в полной мере требуется логическое мышление. Существует очень большое количество различных видов алгоритмов, и рассмотреть в нашем курсе даже их небольшую часть невозможно.
Однако можно научиться тому, как надо подходить к составлению алгоритма, что пытаться сделать в первую очередь. В общем случае нужно сначала определить входные и выходные данные, а затем попытаться разбить алгоритм на более мелкие и простые части. Затем по тем же правилам составить алгоритмы для этих частей. Разбиение на более простые части надо проводить до тех пор, пока составление непосредственно алгоритма для такой части будет достижимо.
Используемые в алгоритмах данные хранятся в переменных. Переменную можно интерпретировать, как ячейку памяти ЭВМ, имеющую имя, в которую можно временно занести значение (например, число). Это значение может быть выдано из ячейки для использования сколько угодно раз, но при этом содержимое ячейки не меняется: из него каждый раз выдается копия хранящегося значения с сохранением оригинала.
При составлении алгоритма полезно нарисовать ячейки памяти, в которых находятся данные, и продумать, как же нужно обрабатывать содержимое этих ячеек, чтобы получить результат. При этом могут потребоваться дополнительные ячейки, где будут храниться промежуточные данные. Затем можно оформить свои мысли в виде блок-схемы.
Существует также несколько приемов алгоритмизации, которые можно применить во многих задачах. Поэтому будет полезно рассмотреть некоторые из них в нашем курсе.
1. Поменять местами содержимое двух переменных (три ведра).
Назовем эти переменные a и b (пусть их значения равны 15 и -3) и изобразим их на схеме. Чтобы поменять их содержимое местами, добавим еще одну (буферную) переменную c, в которой временно запомним значение переменной a (1-е действие). Затем занесем в a значение переменной b (2-е действие), а затем в b - c (3-е действие). После того, как продумали таким образом алгоритм, изобразим его в виде блок-схемы.
|
|
Определить, имеют ли две переменные один знак.
Чтобы узнать одного ли знака две переменные, достаточно их перемножить. Если результат положительный, то переменные одного знака. Поскольку в алгоритме должна быть предусмотрена реакция на все допустимые варианты исходных данных, то должна быть и проверка a и b на нулевые значения. |
|
Проверить делимость числа на 3
Если число делится нацело, то остаток от деления будет равен нулю. Чтобы узнать этот остаток, нужно запомнить в какой-либо переменной (например, b) результат деления, а в переменной c - его целую часть (целую часть числа принято обозначать квадратными скобками). Тогда разность b и c и является целой частью результата деления. |
|
Алгоритм обработки массива.
При решении задач с массивами чисел или символов чаще всего используется один и тот же алгоритм единообразной поочередной обработки каждого элемента массива в отдельности. Для этого обычно применяется циклический алгоритм с параметром, рассмотренный справа. Массив a из n элементов будем обозначать {a}n, а элемент массива с номером i - ai. Сначала вводится количество n элементов массива a и сам массив (блок 1). Затем проводятся подготовительные операции (блок 2), содержание которых зависит от решаемой задачи. Обычно здесь задаются начальные значения вспомогательным переменным. Блоки 3, 4 и 6 являются обязательными, именно они реализуют цикл и позволяют поочередно обработать каждый элемент массива. Блок 3 задает номер начального элемента обрабатываемого массива, блок 4 позволяет закончить обработку и выйти из цикла после превышения номером текущего элемента значения n, а блок 6 позволяет после обработки текущего элемента перейти к следующему, увеличив номер элемента на 1. |
|
При обработке i-го элемента массива в некоторых случаях возможен досрочный выход из цикла, тогда в блок-схеме появляется блок 9, на который передается управление прямо от блока 5. После окончания обработки производят вывод исходного массива для контроля правильности его ввода (блок 7), а затем анализируют и печатают результаты обработки (блок 8). |