ТЕМА №1.1: АЛГОРИТМИЗАЦИЯ. ЭТАПЫ РЕШЕНИЯ ЗАДАЧ НА ЭВМ. ОСНОВНЫЕ ПОНЯТИЯ. БЛОК-СХЕМЫ. Алгоритм – это набор четко определенных правил для решения задачи за конечное число шагов. Алгоритмизация. Алгоритм – это совокупность строгих предписаний-приказов для исполнителя, выполняя которые он (исполнитель) может достичь цели, в частности решить задачу, составив программу на языке Паскаль (Исполнитель - это объект, который может выполнять какое-то действия, выполняя заданный алгоритм). Каждое такое предписание называется командой. Порядок команд в алгоритме очень важен. При составлении алгоритма требуется знать систему команд исполнителя (СКИ), а ни его устройство, то есть множество предписаний, которые понимает и умеет выполнять исполнитель нашего алгоритма. Исполнители можно разделить на неформальные (человек) и формальные (робот, компьютер или язык программирования). В дальнейшем мы будем иметь дело только с формальными исполнителями. Важным качеством алгоритма является то, что от исполнителя не требуется понимание метода решения задачи, все, что от него требуется – понимание инструкций и умение их выполнять. Свойства алгоритма К алгоритму решения задач предъявляются высокие требования. Он должен обладать понятность, дискретностью, массовостью, определенность и результативностью. Понятность. Соответствие команд СКИ. Массовостью алгоритма называется его способность быть пригодным для решения широкого класса задач данного типа. Дискретность алгоритма определяет то, всякий алгоритм имеет прерывистый, дискретный характер, т.е. представляет собой последовательность выполненных один за другим отдельно законченных шагов. Детерминированностью (определенность) алгоритма - это строгая определенность (однозначность предписываемых действий в каждой инструкции алгоритма), конкретность, чтобы в его записи не оставалось место двусмысленности и произвольному толкованию. Результативностью алгоритма называется свойство обеспечения нужного результата за конечное число шагов, если данные принадлежат области исходных данных, которыми определена массовость алгоритма. Понятность алгоритма – это обязательность составления алгоритма учетом системы команд исполнителя, т.е. алгоритм должен быть зафиксирован в той форме, которая будет понятна исполнителю. Важной характеристикой алгоритма является его краткость, свойство минимальности инструкций. Наиболее удачно составленным алгоритмом считается алгоритм, обладающий компактностью и минимальностью количества вычислений при обязательной массовости алгоритма. Алгоритмы бывают 3 типов: линейные, разветвляющиеся, циклические. Линейный алгоритм – это алгоритм, в котором последовательность операций при исполнении совпадает с порядком их следования в записи алгоритма и не зависит от конкретных значений входных данных (выполняются сверху вниз). Разветвляющийся алгоритм – это алгоритм, в котором последовательность операций определяется проверкой условия. Циклический алгоритм – это алгоритм, в котором неоднократно повторяются одни и те же предписания. Способы записи алгоритмов. Наибольшее распространение получили способы: Словесный табличный, графический, на алгоритмическом языке, в виде программ для ЭВМ. Графический – в виде блок-схем. Словесный – на естественном языке. На алгоритмическом языке – то есть на специальном языке. Алгоритмический язык – это система обозначений и правил для единообразной и точной записи алгоритмов и их исполнения. В виде программ для ЭВМ – значит на любом алгоритмическом языке программирования (Бейсик, Паскаль, Си++ т.д.), когда исполнителем является компьютер. Этапы решения задач на ЭВМ: Поставновка задачи в реальных объектах; Поставновка задачи в математических объектах; Алгоритмизация; Программирование; Разработка тестовых заданий; Тестирование и отладка программы; Использование в практике. Постановка задачи включает в себя определение входных и выходных данных, выбор метода решения и языка программирования, подготовка контрольного примера для проверки правильности работы программы. Программирование – это перевод алгоритма на выбранный язык программирования, создание текстового файла, который при запуске через соответствующий транслятор выдает решение задачи; Тестирование и отладка программы подразумевает работу с транслятором того языка программирования, который выбран в постановке задачи: запуск программы, анализ полученных результатов, исправление ошибок. В конце данного этапа получается программный продукт, отвечающий всем требованиям постановки задачи. Блок-схема - самый распространенный и понятный способ записи алгоритмов. Блок-схема – последовательность блоков, соединенных линиями передачи. Начало или конец алгоритма Информационный блок Ввод/вывод данных Начало Элементы блок-схемы Блок обработки Обработка данных a, b, c у=х/2 Логический блок Проверка условий Нет a>b Да Блок модификации Начало цикла Линии потока и изменение направлений I=1,10 Указание перехода от блока к блоку, если схема разбита на части Слияние линий потока 4 5 5