Современное программирование предлагает пользователям использовать самые разнообразные языки программирования. Но основой основ является Паскаль.Данный язык был разработан в 1971 году в Университете Цюриха профессором Никлаусом Виртом. Его предназначение изначально было учебным. Имея достаточно четко выраженную структуру и систему предоставления данных Паскаль имел ограничения в функциях ввода - вывода, при создании подпрограмм. |
---|
Проектирование программного обеспечения |
---|
Различают физическое и логическое программирование. Физическое программирование осуществляется с помощью привязки создающегося ПО к имеющимся в наличии техническим средствам. Например: если при логическом проектировании в случае возникновения определенной ситуации пользователь получает сообщение об ошибке, то при физическом проектировании уточняется способ передачи информации (допустим, с помощью речевого синтезатора). Логическое программирование производится без учета технических особенностей среды, в которой будет работать программа. Представляет собой поэтапную проработку выполняемых действий программы. Сначала определяются со структурой будущего программного обеспечения (одна программа или система программ, состоящая из нескольких взаимосвязанных подпрограмм). Следующий этап - разработка алгоритмов программного продукта. Алгоритм - последовательность необходимых действий, которые нужно произвести для получения определенного результата. Данные последовательности подразделяются на виды: А. Линейная структура последовательности - чтобы получить результат нужно выполнить несколько операций в строго определенной последовательности. Б. Разветвленная стуктура последовательности - поочередность выполняемых действий зависит от значений определенного параметра или их группы. В. Циклическая структура последовательности - чтобы получить результат нужно выполнить одну или ряд операций несколько раз. Процессы данной циклической структуры делятся на 3 группы: 1. Счетный цикл - циклический процесс, при котором количество повторений определено. 2. Итерационный цикл - циклический процесс, который завершается при достижении либо нарушений определенных условий. 3. Поисковый цикл - циклический процесс, который завершается либо при завершении процесса, либо предусматривается досрочное завершение при достижении определенных условий. Описания алгоритмов производятся с помощью псевдокодов и схем. Схемы алгоритмов разрабатываются согласно ГОСТ 19.701-90, в котором определенному дейтсвию соответствует блок определенной формы. Наиболее популярные обозначения отражены в таблице: Описание основных блок схем алгоритмов. В процессе создания алгоритма все действия обозначают соответствующими блоками, их последовательность указывается с помощью стрелок. Если блок схема настолько масштабна, что не умещается на один лист, тогда используют соединители. При ссылке на другой лист в комментариях прописывают пояснения: например - "на листе 2". Любой алгоритм можно записать с помощью трех основных базовых структур: 1. Следование - действия выполняются последовательно: 2. Ветвление - из двух предложенных вариантов действий выбирается один: 3. Цикл - пока - действие повторяется до тех пор, пока не нарушается условие, которое проверяется в начале цикла: Существуют также производимые от базовых дополнительные структуры: 1. Выбор - выбирается один вариант из нескольких предложенных в зависимости от определенной величины. 2. Цикл - до - действие повторяется до тех пор, пока не выполняется заданное условие (его проверка выполняется после того, как действие в цикле произведено). 3. Цикл с заданным числом повторений (счетный цикл)- действия повторяются указанное количество раз. Указанные выше структуры составляют основу структурного программирования. Структурное программирование - комплекс технологий и рекомендаций, созданных для избежания ошибок в программах. Если схема алгоритма построена без применения других вариантов передачи управления данными, такой алгоритм называют структурным. Для описания алгоритмов используют псевдокод (описание алгоритма действий, которое базируется на тех же принципах что и структурные схемы алгоритмов). Помните! Описать на псевдокоде неструктурный алгоритм невозможно! Каждой структуре соответствует определенная форма описания. Существует несколько вариантов псевдокодов, один из них рассмотрим в таблице. Пример разработки структурного алгоритма. Задание: Разработать алгоритм определения наибольшего общего делителя двух натуральных чисел. Решение: Среди различных способов определения наибольшего общего делителя самым простым является алгоритм Евклида. Суть метода: последовательно заменяется большее из чисел на разность большего и меньшего. Заканчиваются вычисления тогда, когда числа становятся равными.
При составлении программы следует учесть, что пользователь должен вводить данные с помощью запроса прежде чем программа запустится. При записи алгоритмов схематически и на псевдокоде подобный запрос обычно не указывают В основу алгоритма заложим циклический процесс, при котором число повторений заранее не известно (итерационный цикл). Выход из цикла осуществляется при достижении определенного условия - в результате вычислений получаются одинаковые числа. Не исключена возможность, что пользователь при запросе на ввод введет одинаковые числа, поэтому на входе в цикл осуществляем проверку с помощью цикла - пока. При соблюдении условия (числа неравные) начинается вычислительный процесс - на каждой стадии цикла большее число заменяется разностью большего и меньшего. Для этого будем использовать ветвление с функцией проверки - какое из двух чисел больше. На выходе из цикла пользователю выводится результат - любое из полученных чисел, поскольку они равны между собой.
При разработке простых программ разрабатывают алгоритмы, продумывая при этом последовательность действий при решении определенной задачи (как показано в приведенном примере). Совместно с разработкой алгоритма уточняется:
|
---|