> For the complete documentation index, see [llms.txt](https://frogs-organization-2.gitbook.io/oop.-sbornik./llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://frogs-organization-2.gitbook.io/oop.-sbornik./10.-strukturnoe-programmirovanie..md).

# 10. Структурное программирование.

Нисходящая разработка, использование базовых логических структур, сквозной структурный контроль.

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

### **Введение**

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

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

1. **Нисходящая разработка (Top-Down Design)**
   * Процесс разбиения сложных задач на более мелкие, управляющие логические блоки.
   * Пример:

     ```cpp
     void program() {
         step1();
         step2();
         step3();
     }

     void step1() { /* Код шага 1 */ }
     void step2() { /* Код шага 2 */ }
     void step3() { /* Код шага 3 */ }
     ```
2. **Использование базовых логических структур**

   * **Последовательность**: Выполнение команд в порядке их написания.
   * **Ветвление**: Условное выполнение команд (`if`, `switch`).
   * **Циклы**: Повторение команд (`for`, `while`, `do-while`).

   ```cpp
   void basicStructures() {
       // Последовательность
       int a = 10;
       int b = 20;

       // Ветвление
       if (a < b) {
           std::cout << "a меньше b" << std::endl;
       } else {
           std::cout << "a не меньше b" << std::endl;
       }

       // Циклы
       for (int i = 0; i < 5; ++i) {
           std::cout << i << " ";
       }
   }
   ```
3. **Сквозной структурный контроль**
   * Использование управляемого потока выполнения, где каждая программа может быть реализована с помощью трех базовых структур.
   * Принцип заключается в том, чтобы избегать использования `goto` и других нелинейных конструкций, которые делают код сложным для понимания и сопровождения.
