Блок схемы программирования. «VBA Разработка алгоритма. Блок-схема. Структуры алгоритмов

Строго говоря, термина «блок-схема» не существует. Вместо этой фразы правильно говорить «схема алгоритма», но сейчас не об этом. Моя статья о том, можно ли быстро и удобно рисовать алгоритмы, при этом еще чтобы это было бесплатно. Было бы здорово, если бы существовал бесплатный аналог онлайн-редактора Gliffy, и он на наше счастье есть.

Алгоритмы в Pencil рисовать очень легко. Для этого имеется выделенная библиотека примитивов со стандартными блоками и соединителями. Выглядит это примерно так:

При рисовании блоков они привязываются автоматически к сетке, что позволяет легко их выравнивать. Нарисовав один блок, другой блок можно «примагнитить» к нему снизу или сбоку, всё при этом будет ровно.

Если навести на блок и кликнуть мышью один раз, будет режим изменения размера блока и перетаскивания. Если кликнуть второй раз, блок можно будет вращать (появятся круглые красные точки по краям).

Доступны основные базовые возможности, практически как в Visio: блоки можно объединять в группы, перетаскивать и копировать, располагать выше или ниже по слоям, магнитить коннекторы к центру и т.д.

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

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

Для чего нужна блок-схема программисту?

Нотация FlowChart - самый быстрый, универсальный и доступный метод, с помощью которого программист может объяснить неспециалисту, как выполняется любой процесс, или работает программа. Также блок-схема представляет собой и документацию на любую программу. Если программисту необходимо объяснить, как работает простая утилита или небольшой код, он может наглядно это продемонстрировать, воспользовавшись обычным редактором графики. Но если программа сложна, код ее состоит из множества модулей и строк, простой редактор не подойдет. В этом случае программисты пользуются профессиональными решениями и строят flowchart по исходному коду.

Программы и онлайн-сервисы для построения блок схем

Можно воспользоваться специальными программами, которые работают на компьютере, либо сервисами, предлагающими в режиме реального времени построить любую схему по Паскалю, Delphi и даже C++. Опытные программисты предпочитают пользоваться только компьютерными программами.

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

  • Не поддерживается целый ряд команд языка программирования и, следовательно, неверно строится диаграмма последовательности действий.
  • Графики, показывающие последовательность операций, плохо прорисованы.
  • Онлайн сервис зачастую не дает возможность сохранить блок-схему в необходимом формате.
  • И это не все недостатки таких сервисов.
Намного профессиональней с задачей построения блок-схем справляются специальные компьютерные приложения. Ну а тем, кто не хочет устанавливать программы на компьютер, рекомендуем воспользоваться программным интерфейсом для построения диаграмм и графиков Chart API от Google.


FCeditor - удобное приложение, поддерживающее языки программирования C++ (файл.cs), Делфи, Паскаль (файл.pas). Если вам необходимо отредактировать файл с кодом в этой программе, вы должны сначала его импортировать. Когда FCeditor проанализирует импортированный файл.pas или.cs, она отобразит слева дерево классов, на панели появится вкладка, а ней - программный код и схемы.

Важное примечание! Построенный график или диаграмму вы сможете экспортировать в любой формат: от jpeg и tiff, до png и bmp.Программа имеет русскоязычную поддержку и незамысловатый пользовательский интерфейс.


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

Построенную в программе Autoflowchart схему можно экспортировать не только в графический формат, но и в xml-файлы. Эта программа также является удобным редактором кода. Все, что вы редактируете в коде, мгновенно отображается в схеме. В Autoflowchart есть поддержка любых языков программирования.


Code Visual to Flowchart версии 6.0 - самая мощная компьютерная программа, которая используется специалистами для построения диаграмм и графиков. Она отличается обширным функционалом и возможностью построить точную схему. Несмотря на навороченный функционал и возможности программа обладает удобным пользовательским интерфейсом. В главном окне вы увидите три поля. Слева две вкладки: одна показывает устройство проекта, другая - устройство классов. В центре главного окна вы увидите программный код, а справа - схему отрезка кода.

Построенную диаграмму вы сможете экспортировать всего в два формата: png и bmp.

Важное примечание! Все эти программы - отличное решение, помогающее построить четкие блок-схемы, отвечающие стандартам. Но чтобы воспользоваться каждой из рассмотренных выше программ, придется заплатить. Пробная версия предоставляет лишь небольшую часть функционала, и поэтому годится только для ознакомительных целей.


Зачастую разработка приложения начинается с построения блок-схемы. Прежде чем создать программный код, его необходимо продумать, составить диаграмму последовательности действий. А это и есть схема, на основе которой потом программист пишет код.

Для тех, кто привык пользоваться онлайн сервисами, рекомендуем два проверенных - Chart от Google и Draw.io


Draw.io - удобный сервис, в котором можно строить и редактировать блок-схемы. Его обширный функционал, удобный интерфейс и пакет инструментов позволяет редактировать, форматировать и видоизменять блоки, создавая их по стандартной схеме или индивидуальной. Также при создании схемы можно пользоваться внешними изображениями. Готовую схему можно сохранить в графических, векторных форматах, или как документ на облачных хранилищах, или скачать себе на компьютер.

Draw.io понравится начинающим программистам своими богатыми функциональными возможностями и удобством в использовании. И что немаловажно, пользоваться им можно абсолютно бесплатно.

Chart API от Google прекрасно визуализирует любой код, создаст график, диаграмму и схему. Обширный инструментарий представлен подключаемыми библиотеками, с помощью которых создаются качественные графики, диаграммы. Сервис от Google имеет в своем функционале огромное разнообразие схем, с помощью которых создаются не только программы, но и web-сайты, документы.


Чтобы пользоваться этим мощным онлайн-сервисом, достаточно ознакомиться с подробной инструкцией и иметь минимальные знания. Как правильно пользоваться всеми инструментами-библиотеками сервиса от Google, показано в пакете документов.


Chart API от Google - отличный инструмент для профессиональных программистов.

Исключительно важно использовать язык блок-схем при разработке алгоритма решения задачи. Решение одной и той же задачи может быть реализовано с помощью различных алгоритмов, отличающихся друг от друга как по времени счета и объему вычислений, так и по своей сложности. Запись этих алгоритмов с помощью блок-схем позволяет сравнивать их, выбирать наилучший алгоритм, упрощать, находить и устранять ошибки.

Отказ от языка блок-схем при разработке алгоритма и разработка алгоритма сразу на языке программирования приводит к значительным потерям времени, к выбору неоптимального алгоритма. Поэтому необходимо изначально разработать алгоритм решения задачи на языке блок-схем, после чего алгоритм перевести на язык программирования.

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

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

  • Этап 1 . Математическое описание решения задачи.
  • Этап 2 . Определение входных и выходных данных.
  • Этап 3 . Разработка алгоритма решения задачи.

Базовые алгоритмические конструкции

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

  • следование (линейный алгоритм);
  • ветвление (разветвляющийся алгоритм);
  • цикл-пока (циклический алгоритм).

Линейные алгоритмы

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

Пример

ЗАДАЧА. Разработать алгоритм вычисления гипотенузы прямоугольного треугольника по известным значениям длин его катетов a и b.

На примере данной задачи рассмотрим все три этапа разработки алгоритма решения задачи:

Математическим решением задачи является известная формула:

,

где с-длина гипотенузы, a, b – длины катетов.

Входными данными являются значения катетов a и b. Выходными данными является длина гипотенузы – c.

Разветвляющиеся алгоритмы

содержит условие, в зависимости от которого выполняется та или иная последовательность действий.

Пример

ЗАДАЧА. Разработать алгоритм вычисления наибольшего числа из двух чисел x и y.

Этап 1. Математическое описание решения задачи.

Из курса математики известно, если x > y, то наибольшее число x, если x < y, то наибольшее число y, если x = y, то число x равно числу y.

Этап 2. Определение входных и выходных данных.

Входными данными являются значения чисел x и y. Выходным данными являются:

  • наибольшее число
  • любое из чисел, если числа равны

Для решения задачи нам необходимо знать значения x и y.

Этап 3. Разработка алгоритма решения задачи.

В схеме алгоритма решения задачи цифрами указаны номера элементов алгоритма, которые соответствуют номерам шагов словесного описания алгоритма

В рассматриваемом алгоритме (рис.3) имеются три ветви решения задачи:

  • первая: это элементы 1, 2, 3, 4, 8.
  • вторая: это элементы 1, 2, 3, 5, 6, 8
  • третья: это элементы 1, 2, 3, 5, 7, 8.

Выбор ветви определяется значениями x и y в элементах 3 и 5, которые являются условиями, определяющими порядок выполнения элементов алгоритма. Если условие (равенство), записанное внутри символа «решение», выполняется при введенных значениях x и y, то следующими выполняется элементы 4 и 8. Это следует из того, что они соединены линией с надписью «да» и направление (последовательность) вычислений обозначена стрелочкой.

Если условие в элементе 3 не выполняется, то следующим выполняется элемент 5. Он соединен с элементом 3 линией с надписью «нет». Если условие, записанное в элементе 5, выполняется, то выполняется элементы 6 и 8, в противном случае выполняются элементы 7 и 8.

Циклические алгоритмы

определяет повторение некоторой части действий (операций), пока не будет нарушено условие, выполнение которого проверяется в начале цикла. Совокупность операций, выполняемых многократно, называется телом цикла.

Алгоритмы, отдельные действия в которых многократно повторяются, называются циклическими алгоритмами, Совокупность действий, связанную с повторениями, называют циклом .

При разработке алгоритма циклической структуры выделяют следующие понятия:

  • параметр цикла – величина, с изменением значения которой связано многократное выполнение цикла;
  • начальное и конечное значения параметров цикла;
  • шаг цикла – значение, на которое изменяется параметр цикла при каждом повторении.

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

В подготовку цикла входят действия, связанные с заданием исходных значений для параметров цикла:

  • начальные значения цикла;
  • конечные значения цикла;
  • шаг цикла.

В тело цикла входят:

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

В условии продолжения цикла определяется допустимость выполнения повторяющихся действий. Если параметр цикла равен или превысил конечное значение цикла, то выполнение цикла должно быть прекращено.

Пример

ЗАДАЧА . Разработать алгоритм вычисления суммы натуральных чисел от 1 до 100.

Этап 1. Математическое описание решения задачи .

Обозначим сумму натуральных чисел через S. Тогда формула вычисления суммы натуральных чисел от 1 до 100 может быть записана так:

где Xi – натуральное число X c номером i, который изменяется от 1 до n, n=100 – количество натуральных чисел.

Этап 2. Определение входных и выходных данных.

Входными данными являются натуральные числа: 1, 2, 3, 4, 5, …, 98, 99, 100.

Выходные данные – значение суммы членов последовательности натуральных чисел.

Параметр цикла величина, определяющая количество повторений цикла. В нашем случае i – номер натурального числа.

Подготовка цикла заключается в задании начального и конечного значений параметра цикла.

  • начальное значение параметра цикла равно 1,
  • конечное значение параметра цикла равно n,
  • шаг цикла равен 1.

Для корректного суммирования необходимо предварительно задать начальное значение суммы, равное 0.

Тело цикла. В теле цикла будет выполняться накопление значения суммы чисел, а также вычисляться следующее значение параметра цикла по формулам:

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

Этап 3. Разработка алгоритма решения задачи.

Введем обозначения: S – сумма последовательности, i – значение натурального числа.

Начальное значение цикла i=1, конечное значение цикла i =100, шаг цикла 1.

Словесное описание алгоритма Запись алгоритма на языке блок-схем
  1. Начало алгоритма.
  2. Подготовка цикла: S:=0; i=1; n= 100;
  3. Проверка условия. Если i <=n , то перейти к шагу 4, иначе к шагу 6.
  4. Накопление суммы: S:=S+i;
  5. Вычисление следующего значения параметра цикла: i:=i+1;
  6. Вывод информации: сумма натуральных чисел – S.
  7. Конец алгоритма.

В схеме алгоритма решения задачи цифрами указаны номера элементов алгоритма. Номера элементов соответствуют номерам шагов словесного описания алгоритма.

Разработка блок-схемы алгоритма решения задачи

Цель работы : изучение графического способа описания алгоритма решения задачи.

Задачи работы :

    ознакомиться с основными способами представления алгоритмов;

    освоить графический способ описания алгоритмов.

1.1. Порядок выполнения работы

    Изучите теоретические сведения по теме данного раздела (п. 1.2)

    Ознакомьтесь с постановкой задачи (п. 1.3). Вариант задания соответствует вашему номеру в списке группы.

    Разработайте блок-схему алгоритма решения поставленной задачи.

    Ответьте на контрольные вопросы.

    Подготовьте отчет о выполнении практической работы, который должен содержать:

    титульный лист;

    цель практической работы;

    постановку задачи;

    блок-схему алгоритма решения поставленной задачи;

    ответы на контрольные вопросы;

    выводы по практической работе.

1.2. Общие сведения

Одним из наиболее трудоемких этапов решения задачи на ЭВМ является разработка алгоритма.

Под алгоритмом понимается точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату.

Основными характерными свойствами алгоритма являются:

    детерминированность (определенность) – при заданных исходных данных обеспечивается однозначность искомого результата;

    массовость – пригодность для задач данного типа при исходных данных, принадлежащих заданному подмножеству;

    результативность – реализуемый вычислительный процесс выполняется за конечное число этапов с выдачей осмысленного результата;

    дискретность – возможность разбиения алгоритма на отдельные этапы, выполнение которых не вызывает сомнений.

Выделяют следующие типы вычислительных процессов :

    Линейный вычислительный процесс.

Для получения результата необходимо выполнить некоторые операции в определенной последовательности.

    Разветвленный вычислительный процесс.

Конкретная последовательность операций зависит от значений одного или нескольких параметров. Например, если дискриминант квадратного уравнения не отрицателен, то уравнение имеет два корня, а если отрицателен, то действительных корней нет.

    Циклический вычислительный процесс

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

В свою очередь, существуют также несколько типов циклического вычислительного процесса , а именно:

    Счетные циклы (циклы с заданным количеством повторений) – ­­ это циклические процессы, для которых количество повторений известно.

    Итерационные циклы – это циклические процессы, завершающиеся по достижении или нарушении некоторых условий.

    Поисковые циклы – это циклические процессы, из которых возможны два варианта выхода:

Выход по завершению процесса;

Досрочный выход по какому-либо дополнительному условию.

По типу вычислительного процесса, реализуемого алгоритмом, различают:

Алгоритмы линейной структуры;

Алгоритмы разветвленной структуры;

Алгоритмы циклической структуры.

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

К изобразительным средствам описания алгоритмов относятся следующие основные способы их представления:

Словесный (записи на естественном языке);

Структурно-стилизованный (записи на алгоритмическом языке и псевдокод);

Графический (изображение схем и графических символов);

Программный (тексты на языках программирования).

Словесный способ описания алгоритма представляет собой описание последовательных пронумерованных этапов обработки данных и задается в произвольном изложении на естественном языке.

Пример 1.1.

Алгоритм сложения двух чисел (a и b).

    Спросить, чему равно число a.

    Спросить, чему равно число b.

    Сложить a и b, результат присвоить с.

    Сообщить результат с.

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

Для строгого задания различных структур данных и алгоритмов их обработки требуется иметь такую систему формальных обозначений и правил, чтобы смысл всякого используемого предписания трактовался точно и однозначно. Соответствующие системы правил называются языками описаний . К ним относятся алгоритмические языки (псевдокоды), блок-схемы и языки программирования.

Структурно-стилизованный способ описания алгоритма основан на записи алгоритмов в формализованном представлении предписаний, задаваемых путем использования ограниченного набора типовых синтаксических конструкций, называемых часто псевдокодами.

Достоинством псевдокодов является близость к языкам программирования, а недостатками, в свою очередь, являются сложность освоения и невозможность непосредственного ввода алгоритма для решения на ЭВМ, т.е. необходимость перевода на язык программирования.

Графический способ описания алгоритма предполагает, что для описания структуры алгоритма используется совокупность графических изображений (блоков), соединяемых линиями передачи управления. Такое изображение называется методом блок-схем .

Блок-схема алгоритма – это графическое представление хода решения задачи. Блок-схема состоит из блоков, соединенных линиями, а блоки изображаются в виде геометрических фигур, называемых символами. Внутри символов записываются указания о выполняемых блоком функциях – формулы, текст, логические выражения. Вид символов и правила выполнения блок-схем стандартизированы – ГОСТ 19.701-90 содержит перечень символов, их наименования, отображаемые функции, формы и размеры, а также правила выполнения схем. При разработке алгоритма каждое действие обозначают соответствующим блоком, показывая их последовательность линиями со стрелками на конце. Названия, обозначения и назначение элементов блок-схем приводится на рис. 1.1.

Рисунок 1.1 – Основные блоки

Следует упомянуть некоторые основные правила выполнения блок-схем, которыми надлежит руководствоваться при графическом описании алгоритмов. Начало алгоритмов отмечается символом "Терминатор", из которого выходит одна линия. В нем записывается слово "Пуск" ("Начало"). Конец алгоритма отмечается этим же символом, в котором записывается слово "Останов" ("Конец"). В этом случае данный символ не имеет ни одной выходной линии, а на него может замыкаться одна или более линий. Символ “Процесс” может иметь одну или несколько входных линий и только одну выходную. Внутри символа может быть записано несколько предписаний – в этом случае они выполняются в порядке записи. Представление отдельных операций достаточно свободно. Для обозначения вычислений можно использовать математические выражения, для пересылки данных – стрелки, для других действий – пояснения на естественном языке, например, А: = Х + 4; i: = i + 1, ––> B.

Линии потока должны быть параллельны сторонам листа. Основные направления линий потока – сверху вниз и слева направо – стрелкой не обозначаются. В других случаях на конце линии потока ставится стрелка, а в месте слияния линий ставится точка. Если блок-схема не умещается на одном листе, используют соединители. При переходе на другой лист или получении управления с другого листа в комментарии указывается номер листа, например "с листа 3" "на лист 1".

Для записи алгоритма любой сложности достаточно трех базовых структур :

    следование - обозначает последовательное выполнение действий (рис. 1.2, а);

    ветвление - соответствует выбору одного из двух вариантов действий (рис. 1.2, б);

    цикл-пока - определяет повторение действий, пока не будет нарушено условие, выполнение которого проверяется в начале цикла (рис. 1.2, в).

Рисунок 1.2 – Базовые алгоритмические структуры

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

    выбор - выбор одного варианта из нескольких в зависимости от значения некоторой величины (рис. 1.3, а, б);

    цикл-до - повторение некоторых действий до выполнения заданного условия, проверка которого осуществляется после выполнения действий в цикле (рис. 1.3, в, г);

    цикл с заданным числом повторений (счетный цикл ) повторение некоторых действий указанное число раз (рис. 1.3, д, е).

Рисунок 1.3 – Реализация дополнительных алгоритмических структур

через базовые структуры

Рассмотрим примеры графического описания алгоритмов различных типов: линейного, разветвляющегося, циклического и комбинированного (рис. 1.4 – 1.7).

Пример 1.2. Линейный алгоритм.

Алгоритм вычисления значения выражения K=3b+6а (рис. 1.4) .

Рисунок 1.4 – Пример блок-схемы линейного алгоритма

Пример 1.3. Разветвляющийся алгоритм.

Алгоритм, определяющий, пройдет ли график функции y=3x+4 через точку с координатами x1,y1 (рис. 1.5).

Рисунок 1.5 – Пример блок-схемы разветвляющегося алгоритма

Пример 1.4. Циклический алгоритм.

Алгоритм, определяющий факториал натурального числа n (рис. 1.6):

n ! = 1*2*3*….*(n -1)* n

5!=1*2*3*4*5=120

Рисунок 1.6 – Пример блок-схемы циклического алгоритма

Пример 1.5. Комбинированный алгоритм.

Необходимо определить наибольший общий делитель двух натуральных чисел А и В.

Для решения поставленной задачи используем алгоритм Евклида, который заключается в последовательной замене большего из чисел на разность большего и меньшего, пока числа не станут равны. Рассмотрим данный алгоритм на двух примерах.

Пример (а): А=225, В=125. Применяя алгоритм Евклида, получаем для А и В наибольший общий делитель, равный 25.

Пример (б): А=13, В=4. В этом случае наибольший общий делитель А и В равен 1.

B

50-25=25

Блок-схема алгоритма Евклида для нахождения наибольшего общего делителя двух натуральных чисел показана на рис. 1.7.

Рисунок 1.7 – Пример блок-схемы комбинированного алгоритма

Блок-схема алгоритма детально отображает все особенности разработанного алгоритма, но иногда такой высокий уровень детализации не позволяет выделить суть алгоритма. В этих случаях для описания алгоритма используют псевдокод . Псевдокод базируется на тех же основных структурах, что и структурные схемы алгоритма (табл. 1.1).

Пример 1.6. Описание алгоритма Евклида на псевдокоде .

Алгоритм Евклида:

Ввести А,В

цикл-пока А ≠ В

если А > В

то А:= А - В

иначе В:= В - А

все - если

все-цикл

Вывести А

Конец алгоритма.

Таблица 1.1 – Пример псевдокода для записи базовых алгоритмических структур

Структура

Псевдокод

Структура

Псевдокод

Следование

Выбор

Все-выбор

Ветвление

Если

заданным

количеством повторений

Для =

иначе

Все - если

Все-цикл

Цикл-пока

Цикл-пока

Выполнять

Все-цикл

1.3. Задачи для составления блок-схем алгоритмов

    Дано целое число m>1.

Получить наименьшее целое k, при котором 4 k >m.

Вычислить произведение

    Дано целое число n.

Получить наименьшее число вида 2 r , превосходящее n (r - натуральное).

    Даны целые числа n, k (n  k  0).

Вычислить.

    Дано натуральное число n и действительное число a.

Вычислить произведение .

    Дано натуральное число n.

Вычислить сумму .

    Даны действительное число х и натуральное число n.

Вычислить, не используя операцию возведения в степень.

    Дано натуральное число n.

Вычислить сумму:

    Даны действительные числа x и a, натуральное n.

Вычислить:

Вычислить:

    Даны натуральные числа n, m. Получить сумму m последних цифр числа n.

    Пусть n- натуральное число. Вычислить сумму.

    Дано натуральное число n.

Вычислить сумму:

Контрольные вопросы

    Дайте определение алгоритма.

    Перечислите основные свойства алгоритмов и раскройте их сущность.

    Как подразделяются алгоритмы по типу реализуемого вычислительного процесса?

    Какие способы описания алгоритмов вам известны?

    Что понимается под графическим способом описания алгоритмов? В чем состоит преимущество данного способа перед словесным описанием алгоритма?

    Курсовая работа >> Информатика

    Весов ребер оставного дерева. 2.4 Блок -схема Рисунок 7 – Блок -схема алгоритма решения задачи 2.5 Обоснование выбора языка программирования Турбо... , интегрированную среду, намного ускоряющую процесс разработки программ. Этот программный продукт прошел...

  1. Алгоритмы и основы программирования

    Практическая работа >> Информатика, программирование

    Составление программ решения различных задач на электронных вычислительных машинах; наука, занимающаяся разработкой методов... . Блок -схема данного линейного алгоритма показана на рисунке 4. Пример 1. Вычислить при x=2,3 В общем случае, алгоритм решения ...

  2. Построение блок схем алгоритмов . Алгоритмические языки высокого уровня

    Реферат >> Информатика

    Подход к решению поставленных задач . Задачи реализованы на трех различных языках программирования. Блок -схемы алгоритмов , листинги программ... время. Алгоритм решения задачи получается более эффективным, если ис­пользовать метод пошаговой разработки , суть...

  3. Системное и программное обеспечение

    Реферат >> Информатика

    ... : Разработка блок схемы алгоритма решения задачи по контролю знаний слушателей ФПК. ОписаниеФФффуввыа блоков схемы алгоритма решения задачи . Блок 1 ... – ввести имя (обозначение) задачи , ввести...

Основные элементы блок-схемы. Типы блок-схем.

Описание алгоритма с помощью блок схем осуществляется рисованием последовательности геометрических фигур, каждая из которых подразумевает выполнение определенного действия алгоритма. Порядок выполнения действий указывается стрелками. Написание алгоритмов с помощью блок-схем регламентируется ГОСТом. Внешний вид основных блоков, применяемых при написании блок схем, приведен на рисунке.

Представление алгоритма программы в виде блок-схемы имеет два недостатка:

· предполагает слишком низкий уровень детализации, что часто скрыва­ет суть сложных алгоритмов

· и позволяет использовать неструктурные способы передачи управления (goto), причем часто на схеме алгоритма они выглядят проще, чем эквивалентные структурные.

Кроме схем, для описания алгоритмов можно использовать псевдокоды , Flow-формы и диаграммы Насси-Шнейдермана . Все перечисленные способы с одной стороны базируются на тех же основных структурах, а с другой стороны, допускают разные уровни детализации.

Каждый символ Flow-формы соответствует управляющей структу­ре и изображается в виде прямоугольника. Для демонстрации вложенности структур символ Flow-формы вписывается в соответствующую область прямоугольника любого другого символа. Символы Flow-форм, соответствую­щие основным и дополнительным управляющим конструкциям, приведены на рисунке А1.

<Действие>
а)
б)
в)
г)
д)

Рисунок А2 - Условные обозначения диаграмм Насси-Шнейдермана для основных конструкций:

а - следование; б - ветвление; в - выбор; г - цикл-пока; д - цикл-до

Основное отличие диаграмм Насси-Шнейдермана от Flow-форм заключается в том, что область обозначения условий и вариантов ветвления изображают в виде треугольников (рисунок А2). Такое обозначение обеспечивает большую наглядность представления алгоритма.

Общим недостатком Flow-форм и диаграмм Насси-Шнейдермана являет­ся сложность построения изображений символов, что усложняет практическое применение этих нотаций для описания больших алгоритмов.

В отличие от блок-схем псевдокоды не ограничивают степень детализации операций, но, не являясь графическими, хуже отображают их вложенность.

Описать неструктурный алгоритм с помощью псевдокодов, Flow-форм и диаграмм Насси-Шнейдермана невозможно, т. к. для неструктурной передачи управления в них отсут­ствуют условные обозначения. Их использование изначально ориентирует проектировщика толь­ко на структурные способы передачи управления, а потому требует тщательного анализа алгоритма.

В зависимости от последовательности выполнения действий в алгоритме выделяют алгоритмы:

· линейной,

· разветвленной

· и циклической структуры.

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

В алгоритмах разветвленной структуры в зависимости от выполнения или невыполнения какого-либо условия производятся различные последовательности действий. Каждая такая последовательность действий называется ветвью алгоритма.

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

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

Итак: При всем многообразии алгоритмов решения задач в них можно выделить три основных вида вычислительных процессов:

· линейный ,

· разветвленный

· и циклический ,

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

· следование ,

· ветвление ,

· цикл-пока.

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

· выбор ,

· цикл-до ,

· цикл с заданным числом повторений .

Перечисленные шесть конструкций были положены в основу структур­ного программирования . Слово «структурное» в названии подчеркивает тот факт, что при программировании использованы только перечисленные конструкции. Отсюда и понятие «программирование без go to». Программы, написанные с использованием только структурных операторов передачи управления, называют структурными, чтобы подчеркнуть их отличие от программ, при реализации которых исполь­зовались низкоуровневые способы передачи управления.

Разработанный алгоритм реализуется в виде программных кодов (программы ) на одном из языков программирования.