АЛГОРИТМЫ и ПРОГРАММИРОВАНИЕ
Алгоритм – описание последовательности действий (план), строгое исполнение которых приводит к решению поставленной задачи за конечное число шагов. Свойства алгоритмов: 1. Понятность для исполнителя исполнитель алгоритма должен понимать, как его выполнять. Иными словами, имея алгоритм и произвольный вариант исходных данных, исполнитель должен знать, как надо действовать для выполнения этого алгоритма. 2. Дискретность (алгоритм должен состоять из конкретных действий, следующих в определенном порядке); 3. Результативность (или конечность) (каждое действие и алгоритм в целом должны иметь возможность завершения); 4. Массовость (один и тот же алгоритм можно использовать с разными исходными данными)
Алгоритмические конструкции Линейная РазветвляющаясяЦиклическая Виды алгоритмов: 1. Линейный алгоритм (описание действий, которые выполняются однократно в заданном порядке); 2. Циклический алгоритм (описание действий, которые должны повторятся указанное число раз или пока не выполнено задание); 3. Разветвляющий алгоритм (алгоритм, в котором в зависимости от условия выполняется либо одна, либо другая последовательность действий); 4. Вспомогательный алгоритм (алгоритм, который можно использовать в других алгоритмах, указав только его имя).
Объект, который будет выполнять алгоритм, обычно называют исполнителем. Идеальными исполнителями являются машины, роботы, компьютеры... Исполнитель способен выполнить только ограниченное количество команд. Поэтому алгоритм разрабатывается и детализируется так, чтобы в нем присутствовали только те команды и конструкции, которые может выполнить исполнитель. Исполнитель, как и любой объект, находится в определенной среде и может выполнять только допустимые в нем действия. Если исполнитель встретит в алгоритме неизвестную ему команду, то выполнение алгоритма прекратится. Компьютер – автоматический исполнитель алгоритмов. Алгоритм, записанный на « понятном » компьютеру языке программирования, называется программой. Программирование - процесс составления программы для компьютера.
Формы представления алгоритмов: словесные (запись на естественном языке); графические(изображения из графических символов); псевдокоды (полуформализованные описания алгоритмов на условном алгоритмическом языке, включающие в себя как элементы языка программирования, так и фразы естественного языка, общепринятые математические обозначения и др.); программные (тексты на языках программирования). Словесный способ записи алгоритмов представляет собой описание последовательных этапов обработки данных. Алгоритм задается в произвольном изложении на естественном языке. Графический способ представления алгоритмов является более компактным и наглядным по сравнению со словесным. При графическом способе алгоритм изображается в виде последовательности связанных между собой функциональных блоков, каждый из которых соответствует выполнению одного или нескольких действий. Такое графическое представление называется схемой алгоритма или блок-схемой.
Блок-схема линейного алгоритма Начало Конец
Блок - схема разветвляющегося алгоритма Ветвление Полное ЕСЛИ – ТО – ИНАЧЕ Неполное ЕСЛИ – ТО Полное ветвление позволяет организовать в алгоритме две ветви (ТО или ИНАЧЕ) Условие Действия 2Действия 1 Да Нет Неполное ветвление предполагает наличие действий только на одной ветви (ТО), вторая ветвь отсутствует. Условие Действия Да Нет
Блок-схема циклического алгоритма Цикл С параметром С предусловием С постусловием В цикле с параметром число повторений цикла однозначно определено и задается с помощью начального, конечного значений параметра и шагом его изменения. Тело цикла i = N,К,Н
Цикл с предусловием Действия внутри этого цикла повторяются, пока выполняется условие в блоке ветвления, причем сначала проверяется условие, а затем выполняется действие. Условие Тело цикла Нет Да
Цикл с постусловием Тело цикла с постусловием всегда будет выполнено хотя бы один раз. Оно будет выполняться до тех пор, пока значение условного выражения ЛОЖНО. Как только условное выражение принимает значение ИСТИНА, цикл завершается. Условие Тело цикла Нет Да Условие Тело цикла +
Посмотрите на рисунок, где показана блок-схема алгоритма рисования рамки. Она состоит из двух частей: блок-схемы основного алгоритма и блок- схемы вспомогательного алгоритма ЛИНИЯ.
Из этих схем видно назначение блоков различной формы.
ПРИМЕР: В квадратной комнате шириной A и высотой B есть окно с размерами C на D и дверь M на N соответственно. Вычислите площадь стен для оклеивания их обоями. Блок-схема алгоритма решения поставленной задачи.
ПСЕВДОКОД Псевдокод представляет собой систему обозначений и правил, предназначенную для единообразной записи алгоритмов. 1. Занимает промежуточное место между естественным и формальным языками. 2. Не приняты строгие синтаксические правила для записи команд, присущие формальным языкам, что облегчает запись алгоритма на стадии его проектирования и дает возможность использовать более широкий набор команд, рассчитанный на абстрактного исполнителя. 3. Так же, как и в формальных языках, есть служебные слова, смысл которых определен раз и навсегда. Они выделяются в печатном тексте жирным шрифтом, а в рукописном тексте подчеркиваются. 4. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором служебных слов и основных (базовых) конструкций. 5. При записи алгоритма в словесной форме, в виде блок-схемы или на псевдокоде допускается определенный произвол при изображении команд. Вместе с тем, такая запись точна настолько, что позволяет человеку понять суть дела и исполнить алгоритм.
Языки программирования Язык программирования формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под её управлением.
Процедурные языки К процедурным (или структурным) языкам относится большинство « классических » языков программирования, таких как FORTRAN, BASIC, Паскаль, Си. Эти языки удобны при создании относительно коротких программ. В процедурных языках программа и данные рассматриваются как отдельные, вообще говоря, не связанные друг с другом элементы. Работа программы состоит в последовательном выполнении операторов. Связь различных частей программы (процедур) между собой осуществляется только через данные. Данные можно передавать из одной процедуры в другую и обрабатывать совместно. Логические языки Логические языки программирования (ЛИСП, ПРОЛОГ и другие) используют при теоретическом исследовании алгоритмов, в работах по созданию искусственного интеллекта, в операциях с базами данных и в сложных системах автоматического управления. Объектно-ориентированные языки Объектно-ориентированные языки программирования (Visual BASIC, C++, Object Pascal, Java) ориентированы на создание очень больших и сложных программ. Программы, написанные на объектно-ориентированном языке программирования, обычно используют событийный механизм управления. Различные воздействия на программные объекты рассматриваются как последовательность событий. Работа программы состоит в том, что объекты, составляющие программу, реагируют на эти события.