#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; } } 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 повторяются в таблице. Как это убрать, они должны быть только в шапке?
Тему в программирование c++ перенеси --- Сообщение объединено с предыдущим 17 окт 2023 https://zelenka.guru/forums/96/
Вы можете вынести вывод шапки таблицы за цикл, чтобы он выводился только один раз перед началом цикла. Вот пример: 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; } 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 выдал
Нашёл решение, может кому пригодится bool isFirstStringPrinted = false;//до цикла if (!isFirstStringPrinted) { std::cout <<"text" std::endl; isFirstStringPrinted = true } // это условие пишется в цикле C bool isFirstStringPrinted = false;//до цикла if (!isFirstStringPrinted) { std::cout <<"text" std::endl; isFirstStringPrinted = true } // это условие пишется в цикле C