Принципы структурного программирования.
Еще в 60-х годах прошлого века выдающийся советский ученый, впоследствии академик АН СССР, А.П.Ершов предложил для разработки программ использовать так называемый операторный метод, в рамках которого он показал преимущества использования предопределенных структур.
Известный американский ученый Эдсгер Дейкстра в 1965 году предложил убрать из языков программирования оператор безусловного перехода goto, а в дальнейшем он разработал принципы структурного программирования. Базовым в предложениях и А.П.Ершова и Э.Дейкстры является возможность включения одних структур в другие, т.е. реализация многоуровневой вложенности структур.
Э.Дейкстра предложил использовать при проектировании программ 4 базовых структуры, или конструкты, как он их назвал:
1. Конструкта "Следование".
![]() |
Все операторы выполняются друг за другом. Эта конструкта реализует основной принцип фон Неймана – последовательное выполнение команд компьютером.
2. Конструкта "Ветвление". Имеет две формы:
· с альтернативной ветвью;
· без альтернативной ветви.
3. Конструкта "Цикл".
Эта конструкта также имеет две формы:
Цикл с предусловием:
и цикл с послеусловием:
3. Конструкта "Выбор". В зависимости от выполнения условия происходит выбор той или иной альтернативы:
|
{ 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();
}