Загрузка...

Таблица в с++. Как сделать?

Тема в разделе C/C++ создана пользователем Cabseel 17 окт 2023. (поднята 17 окт 2023) 225 просмотров

  1. Cabseel
    Cabseel Автор темы 17 окт 2023 730 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. Миллионер
    Тему в программирование c++ перенеси
    --- Сообщение объединено с предыдущим 17 окт 2023
    https://zelenka.guru/forums/96/
     
    1. Cabseel Автор темы
  3. Нечисть
    Нечисть 17 окт 2023 x..x.x.x 1550 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 Автор темы
      Нечисть, увы не то, тогда таблица разбивается надписью введите шаг
  4. Cabseel
    Cabseel Автор темы 17 окт 2023 730 27 фев 2021
    Нашёл решение, может кому пригодится
    C
    bool isFirstStringPrinted = false;//до цикла
    if (!isFirstStringPrinted)
    {
    std::cout <<"text" std::endl;
    isFirstStringPrinted = true
    }
    // это условие пишется в цикле
    C
     
    17 окт 2023 Изменено
    1. Cabseel Автор темы
      Cabseel, isFirstStringPrinted просто название переменной
Загрузка...
Top