Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
151900_МУ_КР_ИНФОРМАТИКА.doc
Скачиваний:
5
Добавлен:
14.09.2019
Размер:
304.13 Кб
Скачать

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

2.1. Символы данных

  • Данные

Символ отображает данные, носитель данных не определен.

2.2. Символы процесса

  • Процесс

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

  • Предопределенный процесс

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

  • Подготовка

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

  • Решение

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

  • Граница цикла

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

2.3. Символы линий

  • Линия

Символ отображает поток данных или управления.

2.4. Специальные символы

  • Соединитель

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

  • Терминатор

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

  • Комментарий

Символ используют для добавления описательных комментариев или пояснительных записей в целях объяснения или примечаний.

3. Описание структур алгоритмов

Различают следующие структуры:

  • линейная;

  • разветвляющаяся;

  • циклическая;

  • вспомогательный алгоритм.

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

Начало программы (блок 1) определяет ее запуск. Далее происходит ввод данных (блок 2), затем производится обработка информации, т.е. действия над исходными данными (блок 3).Результат этих выводится (блок 4), после чего программа заканчивает свою работу (блок 5).

Например, для нахождения решения функции y=f(x) алгоритм расчета может быть представлен в виде схемы программы (рис. 2)

Рис. 1. Линейная структура алгоритма

Рис. 2. Алгоритм решения функции y=f(x)

Вывод значения х (исходного данного) вместе с выводом y (результатом расчета) облегчает анализ полученного результата (в этом случае можно сопоставить х и у).

Недостатком алгоритма является невозможность произвести расчет по нескольким математическим зависимостям и повторить расчет не покидая программу.

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

Рассмотрим решение уравнения.

Рис. 3. Алгоритм нахождения значений функции, заданной на нескольких интервалах

В блоке 3 (рис. 3) условие изменено на противоположное с целью применения однотипных действий в алгоритме. Дополнительно введена переменная k, которая имеет значения 1,2,3, что соответствует номеру расчетной формулы и улучшает анализ полученного результата (указывает на ветвь, в которой происходит расчет). Каждый из блоков «решение» имеет по две ветви расчета, соответственно для выполнения условия «да» - «истинно», «нет» - «ложно».

Здесь также невозможно повторить расчет без перезапуска программы. Эту проблему можно решить, организовав циклическую структуру выполнения рассмотренного алгоритма.

Если значение х заранее не известно, то можно организовать алгоритм с использованием логического цикла, позволяющего повторить весь расчет с самого начала.

Рис. 4. Алгоритм для нахождения значений функции с использованием логического цикла

В схеме программы (рис. 4) блок 4 определяет часть программы, изображенной в другом месте. В данном случае имеется в виду часть алгоритмов: линейного (рис. 2) блок 3, или разветвляющегося (рис. 3) (блоки 3,4,5,6,7), связанная с нахождением значения функции.

Блоки 2 и 7 определяют границы логического цикла (начало и конец соответственно). Чтобы можно было однозначно сказать, что эти границы принадлежат одному циклу, они должны иметь уникальное имя, например, «Цикл А». Для выхода из цикла (или продолжения расчета) необходимо ввести значение переменной с (блок 6). Если условие с=0 выполнится, то программа заканчивает работу (цикл завершается), иначе цикл повторяется, начиная с блока 3, где вводится новое значение х. Для того, чтобы пользователь знал, что значение «0» вводится для выхода из программы, ему на экран надо вывести сообщение (блок 5).

В случае, когда количество расчетов заранее известно (или может быть вычислено), например, если задано начальное значение х=хmin, конечное хmax и шаг приращения х целесообразнее использовать арифметический цикл (цикл с параметром) (рис. 5)

Рис. 5. Структура арифметического цикла

где х – текущее значение переменной х (параметр цикла), которое меняется в цикле автоматически после каждого расчета на х, начиная с хmin (с начального значения). Цикл заканчивается х>xmax.

Недостатком данного алгоритма является то, что y=f(x) для последнего значения х (для х=хmax) может быть не рассчитано, если значение хmin- хmax кратно х, т.е. делится на целое число. Это связано с тем, что если значение параметра является действительным числом в силу округления значений, то полученное число будет несколько больше (или меньше) xmax.Этого недостатка можно избежать применением арифметического цикла с целочисленным параметром.

, тогда (рис. 6)

Наиболее точным является алгоритм с заданием исходных данных: хmin, xmax и n – число точек расчета.

, тогда х=хmin+х(i-1),

где n – количество точек расчета значений функций.

Тогда алгоритм примет вид (рис. 7)

Рис. 6. Циклический алгоритм Рис. 7. Циклический алгоритм

Такой алгоритм позволяет данные сохранить в массивах xi, yi так, и тем самым разделить расчетные функции и вывод данных. Тогда алгоритм примет следующий вид (рис. 8).

Рис. 8 Циклический алгоритм

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

ПП1 – подпрограмма 1 – ввод исходных данных;

ПП2 – подпрограмма 2 – обработка данных;

ПП3 – подпрограмма 3 – вывод результатов расчета.

Далее приступают к детализации алгоритма.

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

Рис. 9.Упрощенный вид алгоритма

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]