• Предмет: Информатика
  • Автор: schwppsschweppes
  • Вопрос задан 5 месяцев назад

Розробіть блок-схему алгоритму обчислення всіх зна-
чень y, де y n = + 2 1 ( ) + + 3 2 ( ) k , для n = 1, 2, 3 і k = 3, 4, 5, 6.(C++)
ДАЮ 90Б

Ответы

Ответ дал: eznitro4
1

#include <iostream>

int main() {

 const int n_min = 1;

 const int n_max = 3;

 const int k_min = 3;

 const int k_max = 6;

 for (int n = n_min; n <= n_max; ++n) {

   for (int k = k_min; k <= k_max; ++k) {

     int y = 0;

     for (int i = 1; i <= n; ++i) {

       y += (i + 1) * (k - i);

     }

     std::cout << "y(" << n << ", " << k << ") = " << y << '\n';

   }

 }

 return 0;

}

Блок-схема алгоритму може виглядати так:
           +-------------------+

           | n_min = 1         |

           | n_max = 3       |

           | k_min = 3        |

           | k_max = 6       |

           +-------------------+

                    |

                    |

             +-------------------+

           |                             |

           | for n = n_min to  |

           | n_max                 |

           |   for k = k_min    |

           |   to k_max          |

           |     y = 0               |

           |     for i = 1 to       |

           |     n                     |

           |       y += (i + 1)     |

           |       * (k - i)          |

           |     end for          |

           |     output y        |

           |   end for            |

           | end for             |

           +-------------------+

Одним з варіантів реалізації алгоритму може бути наступний:

#include <iostream>

int main() {

 const int n_min = 1;

 const int n_max = 3;

 const int k_min = 3;

 const int k_max = 6;

 for (int n = n_min; n <= n_max; ++n) {

   for (int k = k_min; k <= k_max; ++k) {

     int y = 0;

     for (int i = 1; i <= n; ++i) {

       y += (i + 1) * (k - i);

     }

     std::cout << "y(" << n << ", " << k << ") = " << y << '\n';

   }

 }

 return 0;

}

Блок-схема алгоритму може виглядати так:

           +-------------------+

           | n_min = 1         |

           | n_max = 3         |

           | k_min = 3         |

           | k_max = 6         |

           +-------------------+

                    |

                    |

           +-------------------+

           |                   |

           | for n = n_min to  |

           | n_max             |

           |   for k = k_min   |

           |   to k_max        |

           |     y = 0         |

           |     for i = 1 to  |

           |     n             |

           |       y += (i + 1)|

           |       * (k - i)  |

           |     end for       |

           |     output y      |

           |   end for         |

           | end for           |

           +-------------------+

Цей алгоритм знаходить усі значення y для n від n_min до n_max і k від k_min до k_max, використовуючи три вкладені цикли. В кожному циклі for i обчислюється частина суми, яка відповідає даному i, і ця сума додається до загального результату y

Вас заинтересует