«выполнить
; выполнить »,если
, то выполнить , иначе выполнить »,«до тех пор, пока
, выполнять »,где
- условие; , , - действия.Рассматривая схему программы, можно выделить в ней части, достаточно простые и понятные по структуре. Представление этих фрагментов укрупненными блоками существенно облегчает восприятие алгоритма в целом.
Достаточно часто структурное программирование подразумевает использование более трех базисных структур. Применительно к языку Паскаль, в котором наиболее полно нашли свое отражение идеи структурного программирования, целесообразно при проектировании алгоритмов дополнительно использовать еще четыре элементарные структуры: сокращенную запись разветвления (рис. 16,
); структуру варианта (рис. 16, ); структуру повторения или цикла с параметром (рис. 16, ); структуру цикла с постусловием (рис. 6, ). Каждая из этих структур имеет один вход и один выход. В языке Паскаль имеются средства, позволяющие непосредственно реализовывать в программе любую из этих структур, поэтому правильное использование типовых структур в процессе разработки алгоритма обеспечивает упрощение этапов решения задачи на ЭВМ.Рис. 6
Ветвящимся (разветвляющимся) называется вычислительный процесс, вкотором происходит выбор одного из возможных вариантов вычислений в зависимости от проверки заданных условий.
В зависимости от типа и числа проверяемых условий различают:
- ветвление с простым условием (условие - выражение отношения);
- ветвление с составным условием (условие - логическое выражение);
- сложное ветвление (несколько условий).
Вариант вычислений, определяемый в результате проверки условия, называется ветвью.
При необходимости одновременного выполнения нескольких операций отношения они объединяются в составное условие в виде логического выражения. Для этой цели используют логические операции:
-
- логическое сложение (ИЛИ), дизъюнкция;-
- логическое умножение (И), конъюнкция;- I - отрицание (не).
Циклическимназывается процесс многократного повторения некоторого участка вычислений при изменении хотя бы одной из входящих в него величин.
Повторяющийся участок вычисления называется циклом. Операции, осуществляемые в цикле, составляют тело цикла.
Величина, изменяющая своё значение от цикла к циклу, называется параметром цикла.
Зависимость, связывающая текущее и предыдущее значения параметра цикла, определяет закон изменения параметра цикла.
Зависимость, предписывающая повторение цикла, либо выход из него, называется условием повторения цикла.
Все циклические процессы по признаку определения количества повторений (М) разделяются на два класса.
Арифметическим называется циклический процесс, число повторений в котором может быть определено заранее, т.е. не зависит от результатов счёта в челе цикла.
Итерационным является циклический процесс, число повторений в котором зависит от результатов вычислений в теле цикла и не может быть определено заранее.
Независимо от того, к какому классу относится вычислительный процесс, каждый из них содержит обязательные элементы:
- вход в цикл (формирование начального значения параметра цикла);
- вычисления в теле цикла (расчёт текущего значения функций, формирования нового значения параметра цикла, а также вспомогательные операции);
- выход из цикла (проверка условия, определяющего повторение вычислений, либо их прекращение).
По своему содержанию эти элементы зависят от класса и особенностей цикла, в котором используются.
В соответствии с видом задания (изменения) параметра цикла арифметические циклы подразделяются на:
- циклы с аналитическим изменением параметра;
- циклы с табличным заданием параметра.
Выполнение арифметических циклов, т.е. многократное вычисление значений функции при изменяющихся значениях аргумента, называется табуляцией функции.
5 Предпрограммная подготовка задачи
На ЭВМ могут решаться задачи различного характера, например: научно-инженерные; разработки системного программного обеспечения; обучения; управления производственными процессами и т. д. В процессе подготовки и решения на ЭВМ научно-инженерных задач можно выделить следующие этапы [1]:
1. постановка задачи;
2. формирование математической модели задачи;
3. выбор и обоснование метода решения;
4. алгоритмизация вычислительного процесса;
5. программирование;
6. отладка и тестирование программы;
7. решение задачи на ЭВМ и анализ результатов;
8. сопровождение программы.
В задачах другого класса некоторые этапы могут отсутствовать, например, в задачах разработки системного программного обеспечения отсутствует математическое описание. Перечисленные этапы связаны друг с другом. Например, анализ результатов может показать необходимость внесения изменений в программу; алгоритм или даже в постановку задачи. Для уменьшения числа подобных изменений необходимо на каждом этапе по возможности учитывать требования, предъявляемые последующими этапами. В некоторых случаях связь между различными этапами, например, между постановкой задачи и выбором метода решения, между составлением алгоритма и программированием, может быть настолько тесной, что разделение их становится затруднительным.
Постановка задачи - этап словесной формулировки, определяющий цель решения, исходные данные, основные закономерности, условия и ограничения применения этих закономерностей. Анализируются характер и сущность всех величин, используемых в задаче, и определяются условия, при которых она решается. Корректность постановки задачи является важным моментом, так как от нее в значительной степени зависят другие этапы. Постановка задачи должна отвечать следующим требованиям:
- четкая формулировка цели с указанием вида и характеристик конечных результатов;
- представление значений и размерностей исходных данных;
- определение всех возможных вариантов решения, условий выбора каждого;
- обозначения границы применимости и действия в случае выхода за них.
Корректность постановки задачи является важным моментом, так как от нее в значительной степени зависят и другие этапы.
Формирование математической модели задачи - этап перевода словесной постановки задачи в совокупность математических зависимостей, описывающих исходные данные и вычисления промежуточных и конечных результатов.
Математическая модель формируется с определенной точностью, допущениями и ограничениями. При этом в зависимости от специфики решаемой задачи могут быть использованы различные разделы математики и других дисциплин.
Математическая модель должна удовлетворять по крайней мере двум требованиям: реалистичности и реализуемости. Под реалистичностью понимается правильное отражение моделью наиболее существенных черт исследуемого явления.
Реализуемостьдостигается разумной абстракцией, отвлечением от второстепенных деталей, чтобы свести задачу к проблеме с известным решением. Условием реализуемости является возможность практического выполнения необходимых вычислений за отведенное время при доступных затратах требуемых ресурсов.
Полученная математическая модель должна отвечать следующим требованиям:
- вначале составляется модель исходных данных, затем - расчетные зависимости;
- в модели исходных данных не изменяются размерности данных и не используются никакие математические операции;
- обозначение всех входящих в зависимости величин именами, определяющими их суть;
- указание размерностей всех используемых величин для контроля и дальнейшей модернизации решения;
Выбор и обоснование метода решения - этап разработки или выбора из уже имеющихся метода решения, в том числе выбор стандартных структур вычислительных процессов (линейной, ветвящейся, циклической). Критерии выбора определяются математической моделью решения (предыдущий этап), требованиями к универсальности метода и точности результата, ограничениями технического и программного обеспечении. При обосновании выбора метода необходимо учитывать различные факторы и условия, в том числе точность вычислений, время решения задачи на ЭВМ, требуемый объем памяти и другие. Здесь следует указать альтернативные методы и аргументы сделанного выбора. Одну и ту же задачу можно решить различными методами, при этом в рамках каждого метода можно составить различные алгоритмы.