Современное программирование предлагает пользователям использовать самые разнообразные языки программирования. Но основой основ является Паскаль.Данный язык был разработан в 1971 году в Университете Цюриха профессором Никлаусом Виртом. Его предназначение изначально было учебным. Имея достаточно четко выраженную структуру и систему предоставления данных Паскаль имел ограничения в функциях ввода - вывода, при создании подпрограмм.

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

Различают физическое и логическое программирование.

Физическое программирование осуществляется с помощью привязки создающегося ПО к имеющимся в наличии техническим средствам. Например: если при логическом проектировании в случае возникновения определенной ситуации пользователь получает сообщение об ошибке, то при физическом проектировании уточняется способ передачи информации (допустим, с помощью речевого синтезатора).

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

А. Линейная структура последовательности - чтобы получить результат нужно выполнить несколько операций в строго определенной последовательности.

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

В. Циклическая структура последовательности - чтобы получить результат нужно выполнить одну или ряд операций несколько раз.

Процессы данной циклической структуры делятся на 3 группы:

1. Счетный цикл - циклический процесс, при котором количество повторений определено.

2. Итерационный цикл - циклический процесс, который завершается при достижении либо нарушений определенных условий.

3. Поисковый цикл - циклический процесс, который завершается либо при завершении процесса, либо предусматривается досрочное завершение при достижении определенных условий.

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

Описание основных блок схем алгоритмов.

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

1. Следование - действия выполняются последовательно:

2. Ветвление - из двух предложенных вариантов действий выбирается один:

3. Цикл - пока - действие повторяется до тех пор, пока не нарушается условие, которое проверяется в начале цикла:

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

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

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

3. Цикл с заданным числом повторений (счетный цикл)- действия повторяются указанное количество раз.

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

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

Пример разработки структурного алгоритма.

Задание: Разработать алгоритм определения наибольшего общего делителя двух натуральных чисел.

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

Расчет наибольшего делителя двух чисел с помощью алгоритма Евклида
ABAB
125355132243
125355 - 125 = 230132243 - 132 = 111
125230 - 125 = 105132 - 111 = 21111
125 - 105 = 2010521111 - 21 = 90
20105 - 20 = 852190 - 21 = 69
2085 - 20 = 652169 - 21 = 48
2065 - 20 = 452148 - 21 = 27
2045 - 20 = 252127 - 21 = 6
2025 - 20 = 521 - 6 = 156
20 - 5 = 15515 - 6 = 96
15 - 5 = 1059 - 6 = 36
10 - 5 = 5536 - 3 = 3

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

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

Решение задачи (алгоритм Евклида)
Схема структурного алгоритмаОписание структурного алгоритма на псевдокоде
Алгоритм Евклида:
Ввести A, B
цикл - пока A = B
если A > B
то A:= A - B
иначе B:= B - A
все - если
все - цикл
Вывести A
Конец алгоритма.

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

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