Мегаобучалка Главная | О нас | Обратная связь  


Начало и конец вычислительного процесса.




Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Подпрограмма. Группа операторов, которая решает логически самостоятельную часть задачи, может объединяться в подпрограмму.

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

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

Комментарии можно записывать около любого блока.

 

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



 

Основные структуры алгоритмов. Понятие о структур­ном подходе к разработке алгоритмов.

Основные структуры алгоритмов – это ограниченный набор стандартных способов соединения отдельных блоков или структур блоков для выполнения типичных последовательностей действий. Эти структуры следует использовать, если алгоритмы (и, следовательно, программы) разрабатываются в рамках структурного подхода. Иначе, структурный подход к программированию предполагает использование только нескольких основных структур, комбинация которых дает все многообразие алгоритмов.

Доказано (Бойм и Якопини (Bohm, Jacopini, 1966), Милс (Mills, 1972)), что программу для любой логической задачи можно составить из структур следование, разветвление и повторение (цикл) (основные структуры). Главная идея этого доказательства сводится к тому, что необходимо преобразовать каждую часть программы в одну из трех основных структур или их комбинацию так, чтобы неструктурированная часть программы уменьшилась. После достаточного числа таких преобразований оставшаяся неструктурированной часть либо исчезнет, либо станет ненужной.

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

Рассмотрим основные конструкции, включающие следование, два разновидности цикла и три разновидности разветвления.

Следование (рис.6а) – это последовательное размещение блоков и групп блоков.

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

Цикл «До»(рис.6б) применяется при необходимости выполнить какие-либо вычисления несколько раз до выполнения условия (блок 3). Особенность в том, что он выполняется хотя бы один раз, т.к. первая проверка условия выхода из цикла происходит после того, как тело цикла выполнено. Тело цикла (блок 2) – та последовательность действия, которая выполняется многократно (в цикле). Начальные присвоения (блок 1) – задание начальных значений тем переменным, которые используются в теле цикла. Цикл «Пока» (рис.6в) отличается от цикла «До» тем, что проверка условия (блок 3) производится до выполнения тела цикла (блок 2). В этом случае, если при первой проверке условия оно выполняется, то тело цикла не выполняется ни разу. Иначе такой цикл называется циклом по условию.

Возможен случай, когда проверка условия осуществляется внутри тела цикла, т.е. тело цикла разбивается на две последовательности операторов: одна выполняется до проверки условия, вторая – после.

Разветвление(рис.6г) применяется, когда в зависимости от условия требуется выполнить либо одно действие, либо другое.

Обход (рис.6д) – частный случай разветвления, когда одна ветвь не содержит ни каких действий.

Множественный выбор (рис.6е) является обобщением разветвления, когда в зависимости от значения переменной (I, в данном случае) выполняется одно из нескольких действий. Например, при I = 1 действие, обозначенное блоком S1, и т.д.

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

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

Рассмотрим в качестве небольшого примера алгоритм вычисления суммы квадратов первых N (N >= 1) натуральных чисел.

(N должно быть задано перед выполнением алгоритма - программы)

Решение задачи - последовательность простых шагов (рис.7).

Задать количество слагаемых N.

Присвоить S значение 0 и i значение 1.

Далее выполнять операцию S = S + i2, увеличивая значение i на 1 после очередного выпонения этой операции.

Чтобы обеспечить сложение точно N членов, после каждого изменения i необходимо проверять условие i <= N.

Если условие удовлетворяется, т.е. не все N сложений выполнены, то необходимо повторить действия, начиная с операции (блока), помеченной 4.

Распространен и другой способ описания логики программы до начала ее программирования кроме использования блок-схем. Альтернативный вариант - это применение псевдокода (или языка проектирования программ PDL – Process Design Language). Он занимает промежуточное положение между естественным языком и языком программирования. Он состоит из внешнего синтаксиса и внутреннего синтаксиса.

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

Следование. Записываются последовательно операции одна под другой. Для отделения части последовательности операторов используются операторы – do{do-часть}-(end-do) (выполнить);

Индексная последовательность (цикл по счетчику). Цикл с заранее определенным числом шагов (среднее между обычными последовательностью и циклом) – for{индексный список}-do{do-часть}-(end-do) (для-выполнить);

Цикл-До – do{do-часть}-until{until-тест}-(end-do). Операции структуры, включая модификацию until-теста, выполняются один или более раз до тех пор, пока until-тест не примет значение истина;

Цикл-Пока – while{while-тест}-do{do-часть}-(еnd-do) Do-часть выполняется пока while-тест имеет значение истина. Естественно do-часть модифицирует условие while-теста для того, чтобы окончить вычисления.

Разветвление – if{if-тест}-then{then-часть}-else{else-часть}[els]-(end-if) (если-то-иначе);

Множественный выбор – case{case-тест}-part{список1,case-часть1}-part{список2,case-часть2}-…-part{списокn,case-частьn}-else{else-часть}-(end-do) (выбор);

Кроме того, к внешнему синтаксису также относятся процедуры и модули. Процедура – это хранимые в памяти машины подпрограммы, которые могут вызываться для выполнения из различных мест основной программы, либо из других процедур. Она вызывается и выполняется до завершения без сохранения внутренних данных. Модуль­ – это несколько процедур, организованных в систему для удобства работы пользователя. Модуль имеет доступ к общим данным, которые сохраняются между последовательными вызовами модуля.

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

Рассмотренный ранее пример, представленный на языке PDL, изображен на рис.9.

 




Читайте также:
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...



©2015-2020 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (132)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.011 сек.)
Поможем в написании
> Курсовые, контрольные, дипломные и другие работы со скидкой до 25%
3 569 лучших специалисов, готовы оказать помощь 24/7