Структурно програмиране

Структурно програмиране - раздел Програмиране, Структурно програмиране Между подробната алгоритъмна схема и програмата има доста.

Между подробната схема на алгоритъма и програмата има напълно недвусмислено съответствие, следователно структурата на алгоритъма напълно определя структурата и характеристиките на програмата. Ако не са наложени ограничения върху алгоритъма, тогава програмата може да има хаотична структура; може да има много безусловни скокове (GOTO оператори), което затруднява четенето и разбирането на програмата и увеличава разходите за отстраняване на грешки.

Експериментите показват, че за един и същ проблем могат да бъдат създадени много различни алгоритми и следователно различни програми. Ако не се налагат ограничения върху структурата на алгоритмите, тогава програмите, компилирани от различни програмисти с приблизително еднаква квалификация за решаване на един и същ проблем, могат да имат значителни разлики в такива показатели като разходите за машинно време за изпълнение, количеството използвана памет и времето, изразходвано за разработване на програмата.

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

Крайната цел на структурираното програмиране е да осигури висока надеждност и видимост на програмата и да увеличи производителността при създаването на програмата.

Тази цел се постига чрез последователно прилагане на методи, които осигуряват добра структура и горните характеристики на програмата на всички етапи от нейното създаване. На етапа на развитиеалгоритъм, тези методи включват:

- използването на редица правила и ограничения върху допустимите конструкции на алгоритъма;

- прилагане на метода на проектиране отгоре надолу при разработването на алгоритъма;

- прилагане на метода на паралелното развитие на алгоритъма и програмата.

В допълнение към изискванията, обсъдени по-горе, SP налага следните ограничения върху алгоритъма:

- алгоритъмът за решаване на задачата трябва да бъде набор само от допустими структури;

- схемата на алгоритъма трябва да съдържа минималния брой паралелни разклонения; всеки функционално завършен фрагмент от алгоритъма трябва да има само един вход и един изход;

- всяка подпрограма трябва да изпълнява само една функция и при това изцяло.

Теоретичните основи на SP са разработени през 1965 г. В съответствие със структурната теорема на италианските математици C. Bohm и G. Giacopini всеки алгоритъм и следователно програма може да бъде изграден, като се използват само три управляващи структури:

Структурираното програмиране също използва конструкцията SELECT. Основният компонент на тези структури е функционален блок с един вход и един изход, вътре в който се записва действието по обработка на информацията.

3.6.1. Следва строителство.

Тази управляваща структура е изобразена като последователност от функционални блокове, свързани със стрелки (фиг. 3.8.1), и означава, че управлението се прехвърля от предишния блок към следващия. Тъй като всеки функционален блок има един вход и един изход, сложно действие, изобразено като един функционален блок, може да бъде представено като последователност от по-прости действия. По подобен начин последователност от функционални блокове може да бъде заменена с единиченфункционален блок. Това важно свойство на SP конструкциите улеснява извършването на трансформации на алгоритъма.

3.6.2. Конструкция на вилица.

Тази управляваща структура е предназначена да избере един от два възможни алтернативни начина за изпълнение на алгоритъма, в зависимост от някое условие P (фиг. 3.8.2). При изпълнението на тази конструкция първо проверяваме

програмиране

логическо условие, записано в условен блок, чиито стойности могат да бъдат TRUE или FALSE. Ако условието е вярно, управлението се прехвърля към функционалния блок, разположен на пътя ДА, в противен случай управлението се прехвърля към блока, разположен на пътя НЕ.

Във всеки случай, след изпълнението на определена функция, управлението се прехвърля към една изходна точка на тази конструкция.

програмиране

Допуска се един от клоновете на конструкцията FORKING да е празен, обикновено клонът по пътя NO се прави празен. Пример за такъв дизайн е показан на фигура 3.8.3.

структурно
3.6.3. Избор на дизайн.

Тази конструкция има за цел да проектира фрагменти от алгоритъм, в които изчислителният процес в даден момент се разклонява по няколко паралелни пътя. Формата на конструкцията "Избор" е показана на фигура 3.8.4. В този случай CB е селектор на варианти; МВ1, МВ2 …MBn – вариантни етикети. В зависимост от стойността на контролната променлива (CV), управлението се прехвърля към функцията, чийто етикет на вариант съвпада съвпада. 3.8.4. със стойността на вариантния селектор CB. След като функцията бъде внедрена, конструкцията се излиза от нея.

структурно

3.6.4. Повторение на конструкцията.

Конструкцията Повторение има за цел да обозначи многократно повтарящи се действия. Такива процеси се наричат ​​циклични (или просто цикли). В структурнатапрограмирането предвижда използването на две структури REPEAT, цикъл с предусловие и цикъл с постусловие.

В цикъл с предварително условие (фиг.3.8.5) първо се проверява условието за край на цикъла и ако е вярно, се изпълнява тялото на цикъла, след което се извършва връщане към проверка на условието за край на цикъла. Тези действия се извършват, докато условието P стане невярно. В този случай изпълнението на тялото на цикъла се прекратява и цикълът излиза по пътя NO.

Основната характеристика на тази конструкция е, че ако условието P е невярно на входа на тази конструкция, тогава тялото на цикъла никога не се изпълнява.

алгоритъма

В цикъл с постусловие (Фиг.3.8.6) първо се изпълнява тялото на цикъла (блок R), след което се проверява условието за прекратяване на цикъла. В зависимост от стойността на R, или блокът R се изпълнява отново, или се излиза от цикъла.

В тази конструкция, независимо от началната стойност на условието P, тялото на цикъла винаги се изпълнява поне веднъж.

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

Коментирайте. Алгоритъмът, показан на фигура 3.8.7, дава неправилен резултат, ако N=0 и първият елемент от масива A не е равен на нула.

програмиране

Какво дава използването на конструкциите на съвместното предприятие?

Отличителна черта на всички проекти на съвместни предприятия и блокове е, че всички те имат само един вход и един изход. Това означава, че когато разработвате алгоритъм, можете да замените функционалните блокове с подходящи структури и да ги свържете по произволен начин.

Ако приемем, че има готова схема на алгоритъм за решаване на определен проблем, изградена от SP структури, тогава замествайкиотделете дизайните във функционални блокове, можете да свиете целия алгоритъм до един функционален блок (ФИГ.). Това ни позволява да решим обратната задача: представяйки алгоритъма за решаване на проблема под формата на един функционален блок, ние последователно го разширяваме и получените функционални блокове, използвайки конструкциите на съвместното предприятие, докато получим подробна схема на алгоритъма.

При разработването на алгоритъм по метода SP работата се извършва на два етапа.

1. Първо, функционалните блокове се разбиват на по-малки части с помощта на JV структури. На този етап е необходимо да се разбере в каква последователност да се изпълняват функции и как да се раздели голяма функция на по-малки функционално завършени части. Този процес продължава, докато в алгоритъма останат достатъчно прости функции, за чието изпълнение е необходимо да се използват числени методи на математиката или друга област на науката или да се измисли една или друга алгоритмична техника.

2. На втория етап се разработват алгоритми на получените елементарни функции. Тук трябва да разберем как да представим един или друг метод за изпълнение на функция под формата на схема на алгоритъм.