Принципы структурного программирования.

Еще в 60-х годах прошлого века выдающийся советский ученый, впоследствии академик АН СССР, А.П.Ершов предложил для разработки программ использовать так называемый операторный метод, в рамках которого он показал преимущества использования предопределенных структур.

Известный американский ученый Эдсгер Дейкстра в 1965 году предложил убрать из языков программирования оператор безусловного перехода goto, а в дальнейшем он разработал принципы структурного программирования. Базовым в предложениях и А.П.Ершова и Э.Дейкстры является возможность включения одних структур в другие, т.е. реализация многоуровневой вложенности структур.

Э.Дейкстра предложил использовать при проектировании программ 4 базовых структуры, или конструкты, как он их назвал:

1. Конструкта "Следование".

 
 

 

 


Все операторы выполняются друг за другом. Эта конструкта реализует основной принцип фон Неймана – последовательное выполнение команд компьютером.

2. Конструкта "Ветвление". Имеет две формы:

· с альтернативной ветвью;

 

· без альтернативной ветви.

 

3. Конструкта "Цикл".

Эта конструкта также имеет две формы:

Цикл с предусловием:

 

 

и цикл с послеусловием:

 

3. Конструкта "Выбор". В зависимости от выполнения условия происходит выбор той или иной альтернативы:

 

  case
switch (A)

{ case 0;

case 1;

case 2;

}

Конструкты могут быть вложены друг в друга. Например, в следующей задаче: определить в диапазоне чисел от 1 до N количество чисел, кратных заданному числу M. Составим блок-схему алгоритма (Рис. 2.4.1.):

 

 

Рис. 2.4.1.

На основе данной блок-схемы можно составить программу:

void main ()

{ int n, m, k, i;

cout<<"N="; cin>>n;

cout<<"N="; cin>>n;

k=0;

for (i=0; i<n; i++;)

if (i%m==0) k++;

printf("K = %i\n",k);

getch();

}