Важная информация
Показано с 1 по 2 из 2

Тема: Соотсветствие кода на С++ блок-схеме

  1. #1 Соотсветствие кода на С++ блок-схеме 
    Новичок
    Регистрация
    16.10.2018
    Сообщений
    2
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Построить таблицу значений для функции f(x)=sin(1/x) на отрезке [pi/8,2/pi] с числом разбиений отрезка m=10.
    C помощью двух циклов for и do while.
    C++ Code:
    1. #include <iostream>
    2. #include <cmath>
    3. #include <stdlib.h>
    4.  
    5. using namespace std;
    6.  
    7. double F(double x)
    8. {
    9.     return sin(1. / x);
    10. }
    11.  
    12. int main()
    13. {
    14.     const int N = 10;
    15.  
    16.     const double M_PI = 3.14;
    17.     double a = M_PI / 8;
    18.     double b = 2 / M_PI;
    19.  
    20.     double h = (b - a) / N;
    21.  
    22.     int Press = 0;
    23.  
    24.     cout << "Menu:" << endl;
    25.     cout << "Press 1 - for" << endl;
    26.     cout << "Press 2 - do.... while" << endl;
    27.     cout << "Press 3 - Exit" << endl;
    28.  
    29.     cin >> Press;
    30.  
    31.     cout << "  x" << "    " << "      F(x)" << endl;
    32.  
    33.     switch (Press)
    34.     {
    35.     case 1:
    36.     {
    37.         for (int i = 0; i <= N; i++)
    38.         {
    39.             cout << a + i * h << "  " << F(a + i * h) << endl;
    40.         }
    41.     }
    42.     break;
    43.     case 2:
    44.     {
    45.         do
    46.         {
    47.             cout << a << "  " << F(a) << endl;
    48.             a += h;
    49.         } while (a < b + h);
    50.     }
    51.     break;
    52.     case 4:
    53.     {
    54.         exit(1);
    55.     }
    56.     break;
    57.     }
    58.  
    59.     system("pause");
    60.  
    61.     return 0;
    62. }

    правильно ли составлена блок схема?
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Последний раз редактировалось rrrFer; 22.10.2018 в 15:00.
    Ответить с цитированием  
     

  2. #2  
    Профи Аватар для rrrFer
    Регистрация
    01.08.2013
    Сообщений
    561
    Сказал(а) спасибо
    34
    Поблагодарили 248 раз(а) в 164 сообщениях
    Код не совсем корректный.

    Вот тут программа может вести себя "странно":
    C++ Code:
    1. while (a < b + h);


    Ну потому что для последней итерации (когда a = b) она может отработать и как a < b, и как a > b. Это зависит от конкретного компилятора и компьютера, на котором это запускается.

    Блок-схема составлена совершенно неверно. Ну хотя бы потому, что функция F в коде вызывается внутри цикла, а в блок-схеме - вызовется только один раз уже после цикла.

    Блок параллелограмма предназначен для вывода, а не для вызова функций (ну это если вас ГОСТ интересует хоть чуть-чуть), для вызова функции есть другой блок - советую тут почитать: [Ссылки могут видеть только зарегистрированные пользователи. ] (первая ссылка с гугла, кстати).
    [Ссылки могут видеть только зарегистрированные пользователи. ] // программирование на Prolog, Erlang, C++
    Ответить с цитированием  
     

  3. 2 пользователя(ей) сказали cпасибо:

    >Quiet Snow< (22.10.2018), Free Admin (22.10.2018)

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. блок-схемы в delphi
    от Евгения Павлова в разделе Delphi
    Ответов: 0
    Последнее сообщение: 11.04.2018, 23:04
  2. Ответов: 4
    Последнее сообщение: 28.05.2012, 11:12
  3. БЛОК СХЕМА! решите пожалуйста
    от qewone в разделе Turbo Pascal
    Ответов: 3
    Последнее сообщение: 23.12.2011, 00:56
  4. Ответов: 2
    Последнее сообщение: 06.06.2011, 12:00
  5. Ответов: 0
    Последнее сообщение: 01.06.2011, 14:35
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •