- •Тема 4. Технологии и инструментальные средства программирования
- •Содержание
- •Технология подготовки и решения задач на эвм
- •Алгоритм, основные свойства и способы представления. Проектирование алгоритмов
- •Понятие алгоритма
- •Способы описания алгоритмов
- •Методы проектирования алгоритмов
- •Базовые элементы и структуры программирования
- •Переменные
- •Константы
- •Массивы
- •Операции
- •Встроенные функции
- •Первое знакомство с vba
- •Общие сведения о vba
- •Понятие макросов
- •Структура программы на алгоритмическом языке
- •Простейшие операторы ввода-вывода
- •История развития и совершенствования технологий и средств программирования
- •Процедурное программирование
- •Модульное программирование
- •Структурное программирование
- •Событийно-ориентированное программирование
- •Объектно-ориентированное программирование
- •Этапы обработки программ
- •Список использованной литературы
Алгоритм, основные свойства и способы представления. Проектирование алгоритмов
-
Понятие алгоритма
Алгоритм (в общем смысле) – точное предписание исполнителю совершить определенную последовательность действий для достижения поставленной цели за конечное число шагов.
Алгоритм (с точки зрения информатики) – строго детерминированная последовательность действий, описывающая процесс преобразования объекта из начального состояния в конечное, записанная с помощью понятных исполнителю команд.
Алгоритм обладает следующими свойствами (они следуют из определения):
– определенность (детерминированность) – каждая команда (или предписание) понятна исполнителю (человеку или компьютеру) и исключает неоднозначность исполнения;
– результативность – реализация вычислительного процесса, предусмотренного алгоритмом, должна через определенное число шагов привести к результату или сообщению о невозможности его получения;
– массовость – если алгоритм разработан для решения определенной задачи, он должен быть применим для решения задач этого типа при всех допустимых значениях исходных данных;
– дискретность – пошаговый характер процесса получения результата, состоящий в последовательном выполнении конечного числа заданных алгоритмом действий.
Различают следующие простейшие виды алгоритмов:
– линейный, когда предписания алгоритма выполняются в той последовательности, в которой они представлены в алгоритме;
– разветвляющийся, когда ход исполнения предписаний может меняться относительно их нахождения в алгоритме в зависимости от значений исходных или промежуточных данных;
– циклический, когда предписания алгоритма выполняются многократно. В зависимости от характера повторений различают циклические алгоритмы с заданным и незаданным числом повторений (в этом случае такие алгоритмы называют итерационными).
-
Способы описания алгоритмов
Существуют следующие способы описания алгоритмов:
– словесный;
– структурно-стилизованный;
– язык графических символов;
– операторный язык.
При словесном способе алгоритм задается в произвольном изложении на естественном языке. Недостаток этого способа состоит в том, что алгоритм строго не формализуем, многословен, допускает неоднозначности. Однако данный способ изложения алгоритма не требует специальных знаний и может применяться конечными пользователями. Именно на этом языке, как правило, сообщается неформальная постановка задачи на этапе формализации и он же может быть использован для представления результата первого этапа.
Как правило, именно этот способ используют при объяснении какой-либо задачи преподаватели, сопровождая его рисунками, схемами, графиками и т.д. Несмотря на указанные недостатки данного способа, он наиболее привычен и без него не обходится практически ни одна постановка задачи, поэтому примеров его использования можно найти множество в процессе обучения студента и в повседневной жизни.
Структурно-стилизованный способ – это формализованное представление предписаний, задаваемых путем использования ограниченного набора типовых синтаксических конструкций. Данный способ представления алгоритма требует подготовки и специальных несложных знаний. Примером его может служить нотация Бэкуса – Наура, которая часто используется для описания структуры формализованных языков, например, языка программирования Visual Basic for Application.
Пример: Синтаксис процедуры MsgBox, предназначенной для вывода на экран диалогового окна с текстовым сообщением:
MsgBox(prompt[, buttons] [, title] [, helpfile, context])
где – MsgBox – обязательное к написанию наименование процедуры;
prompt – обязательный параметр процедуры, в качестве которого должен быть указано само текстовое сообщение;
[, buttons] [, title] [, helpfile, context] – необязательные дополнительные параметры процедуры, определяющие соответственно кнопки, которые должны отражаться в диалоговом окне, заголовок диалогового окна, справочные идентификаторы.
Таким образом, получается набор правил, описывающих основные понятия языка. Следуя этим правилам, программист может составить правильную в синтаксическом смысле программу, т.е. эти правила могут рассматриваться как алгоритм.
Язык графических символов предполагает соотнесение каждому типу действий соответствующей геометрической фигуры, представленной в виде блочного символа. Действия (блоки) соединяются линиями потока. Совокупность таких связанных блоков называется блок-схемой. Составление блок-схем регламентируется ГОСТ 19.003-80 и ГОСТ 19.002-80. Основными блоками, используемыми в блок-схемах, являются следующие:

Данная нотация является широко распространенной в советские времена. В настоящее время широкую популярность приобрели западные нотации: методология функционального моделирования SADT, семейство стандартов IDEF, ARIS eEPC (extended Event-driven Process chain), UML (Unified Modeling Language) и др.
Операторный язык – это такой способ кодирования алгоритма, в результате которого получается понятная для компьютера запись алгоритма – программа. Этот способ требует, как минимум, знания правил записи выражений средствами того или иного языка программирования.
