| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Табулирование графика функции |
| Автор: fenixkl 14.10.2007, 16:38 |
| Здравствуйте уважаемые программисты!Помогите пожалуйста с одной программкой. Условие: задается функция на отрезке в виде графика.зад-ся АВ, В>A и кол-во точек табулирования "n" Протубулировать функции и написать результат на экране постранично в виде таблицы с шапкой,состающей из столбцов , №.найти наиб\наим на отрезке и выделить это в таблице напечатать их повторно в n столбце.Оста-е значения не повторяются График функции. ![]() Примерно, что я пока успел и смог додуматься, то должно быть примерно так: #include <cmath> #include <cstdio> #include <cstdlib> #include <iostream> #include <iomanip> using namespace std; int main() { int n,i,m, ost; float a, b, x,y,min, max; double Tab,z; do{ cout<<"Vvedite znachenie nachala otrezka AB \"a\" \na="; cin>>a; cout<<"Vvedite znachenie konca otrezka AB \"b\" \nb="; cin>>b; if(b<=a){ cout<<"\"B\" dolzhno byt bolshe \"A\""<<endl;} } while (b<=a); cout<<"Vvedite znachenie kolichestva tochek \"n\" vnutri otrezka:\nn="; cin>>n; { min=-1,max=2; x=a; Tab=(b-a)/(n-1); for(i=1;i<=n;i++) { m= x/4; z=x-4*m; if (z<=2) y=sqrt(1-(z-1)*(z-1)); if (z==2) y=max; if(z>=2&&z<=3) y=2-sqrt(z*z); if (z==3)y=min; if(z>=4)y=0; if (y<min) min=y; else min=min; if (y>max) max=y; else max=max; x=x+Tab; } x=a; for (i=1;i<=n;i++) { m=(x/4); z=x-4*m; if (z<=2) y=sqrt(1-(z-1)*(z-1)); if (z==2)y=max; if(z>=2&&z<=3) y=2-sqrt(z*z); if (z==3)y=min; if(z>=4)y=0;} if ((i%20==0)||(i==1)) { cout<<"N\t" <<" X\t" <<" Y\t" <<"min/max\n"; }; cout<<i<<"\t"; cout<<setprecision(4)<<x<<"\t" <<setprecision(4)<<y<<"\t"; if ((y==max)||(y==min)) {cout<<setprecision(4)<<y<<"\n"; x=x+Tab; }} system("PAUSE"); return 0; } Нужно подредактировть вывод строками и столбцами. |
| Автор: DjoNIK 15.10.2007, 07:36 |
| Неконструктивно, но все же... Код желательно выделять в BB - так его приятнее читать! |