Загрузка...

Table in C++. How to do it?

Thread in C/C++ created by Cabseel Oct 17, 2023. (bumped Oct 17, 2023) 229 views

  1. Cabseel
    Cabseel Topic starter Oct 17, 2023 730 Feb 27, 2021
    C
    #include<iostream>
    using namespace std;
    #include<math.h>
    int main()
    {
    setlocale(LC_ALL, "Russian");
    float x, y, p,step,end, nac;
    std::cout << "Введите режим работы: 0 - ручной, 1 - цикл" <<endl<<"p=";
    std::cin >> p;
    while (p < 2)
    {

    if (p == 0)
    {
    std::cout << "Введите x=";
    cin >> x;
    if (x < -7 || x>11)
    {
    std::cout << "eror" << endl;
    }
    else
    {
    if (-7 >= x || x <= -3)
    {
    y = 3;
    }
    else if (-3 >= x || x <= 3)
    {
    y = (-sqrt((3+x)*(3-x)))+3;
    }
    else if (3 >= x || x <= 6)
    {
    y = -2 * x + 9;
    }
    else if (6 >= x || x <= 11)
    {
    y = x - 9;
    }
    std::cout << "y=" << y << endl;
    }
    }
    else if (p == 1)
    {
    x=nac = -7;
    end = 11;
    std::cout << "Введите шаг"<<endl;
    std::cin >> step;
    for (int i = nac; i <= end; i = + step)
    {
    if (-7 >= x || x <= -3)
    {
    y = 3;
    }
    else if (-3 >= x || x <= 3)
    {
    y = (-sqrt((3 + x) * (3 - x))) + 3;
    }
    else if (3 >= x || x <= 6)
    {
    y = -2 * x + 9;
    }
    else if (6 >= x || x <= 11)
    {
    y = x - 9;
    }
    std::cout << "----------------" << endl;
    std::cout << "x "<<"|"<< " y"<< endl;
    std::cout << "----------------" << endl;
    std::cout <<x<<" | " << y << endl;
    x = x + step;
    if (x >11)
    break;
    }
    }
    std::cout << "Для продолжения введи 0" << endl;
    std::cout << "Для прокрутки цикла введи 1" << endl;
    std::cout << "Чтобы закончить введи 2" << endl;
    std::cin>> p;
    }
    }
    Надо чтобы когда крутишь цикл в конце была табличка. Как реализовать таблицу вида
    x|y
    1|8
    -4|5
    У меня получается, что каждый круг цикла x и y повторяются в таблице. Как это убрать, они должны быть только в шапке?
     
  2. Миллионер
    1. Cabseel Topic starter
  3. Нечисть
    Нечисть Oct 17, 2023 x..x.x.x 1550 Aug 25, 2018
    Вы можете вынести вывод шапки таблицы за цикл, чтобы он выводился только один раз перед началом цикла. Вот пример:


    C
    std::cout << "----------------" << endl;

    std::cout << "x "<<"|"<< " y"<< endl;

    std::cout << "----------------" << endl;



    for (int i = nac; i <= end; i = + step)

    {

    if (-7 >= x && x <= -3)

    {

    y = 3;

    }

    else if (-3 >= x && x <= 3)

    {

    y = (-sqrt((3 + x) * (3 - x))) + 3;

    }

    else if (3 >= x && x <= 6)

    {

    y = -2 * x + 9;

    }

    else if (6 >= x && x <= 11)

    {

    y = x - 9;

    }



    std::cout <<x<<" | " << y << endl;

    x = x + step;

    if (x >11)

    break;

    }

    Здесь мы сначала выводим шапку таблицы, а затем запускаем цикл, который выводит значения x и y для каждого шага. Таким образом, шапка таблицы выводится только один раз перед началом цикла.


    Вот че gpt выдал
     
    1. Cabseel Topic starter
      Нечисть, увы не то, тогда таблица разбивается надписью введите шаг
  4. Cabseel
    Cabseel Topic starter Oct 17, 2023 730 Feb 27, 2021
    Нашёл решение, может кому пригодится
    C
    bool isFirstStringPrinted = false;//до цикла
    if (!isFirstStringPrinted)
    {
    std::cout <<"text" std::endl;
    isFirstStringPrinted = true
    }
    // это условие пишется в цикле
    C
     
    1. Cabseel Topic starter
      Cabseel, isFirstStringPrinted просто название переменной
Loading...
Top