|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.02.2011, 23:13 | #1 |
Регистрация: 24.02.2011
Сообщений: 6
|
проверьте правильна ли решена задача
проверьте правильна ли решена задача, пожалуйста помогите
Значение аргумента х изменяется от а до b с шагом h. Для каждого х найдите значение функции Y(x), суммы S(x) и |Y(x) - S(x) | и выведите в виде таблицы. Значения а, b, h введи- те с клавиатуры произвольно. Вычисление Y(x) и S(x) реализуйте в виде функций. В основной программе организуйте ввод исходных данных, обращение к функциям и вывод результатов. Решение: #include <iostream.h> #include <conio.h> #include <iomanip.h> #include <math.h> void column_of_table(void); //прототип функции long double y_x(long double&); //прототип функции с передачей аргумента по ссылке long double s_x(long double,int); //прототип функции long double fact (long double); int main(void) { clrscr(); double a,b,h; //объявление переменных int n; cout<<endl; cout <<" Введите данные: \n "; cout <<" Введите левую границу диапазона a: "; cin>> a; cout <<" Введите правую границу диапазона b: "; cin>> b; if (a> b) { cout <<" Некорректные данные "; getch(); return 0; } cout <<" Введите шаг h "; cin>> h; if (h> b-a) { cout <<" Некорректные данные "; getch(); return 0; } n=(b-a)/h; column_of_table(); long double x=a; long double temp_value1=0,temp_value2=0; int i=1; while (x<=b) { setprecision(6); temp_value1= y_x(x); //вызов функции temp_value2= s_x(x , n); //вызов функции cout<<"|"<<setw(3)<<i<<"|"<<setw(7) <<setprecision(4)<<x<<"|"; cout<<setw(9)<<setprecision(4)<<tem p_value1<<"|"<<setw(9)<<setprecisio n(4); cout<<s_x(x,n)<<"|"<<setw(11)<<setp recision(4)<<(temp_value1-temp_value2)<<"|\n"; x+=h; i++; } cout<<"---------------------------------------------\n"; getch(); return 0; } // описание функции void column_of_table(void) { cout<<"---------------------------------------------\n"; cout<<"| N | x | y(x) | s(x) ||y(x)-s(x)||\n"; cout<<"|---|-------|---------|---------|-----------|\n"; } // описание функции long double y_x(long double& x) { if (x==0) return 0; else {long double y=2*(cos^2*x-1); return y; } } //описание функции long double s_x(long double x,int n) { long double s=0; for(int i=0;i<n+1;i++) s+=pow(-1,n)*(pow(x,2*n)/(fact(2*n))); return s; } long double fact(long double x) { long f=1; if (x==0) f=1; else if (x>0) f= f*fact(x-1); return f;} |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
проверьте:Обратная задача много-формульных вычислений. | Aidar9119 | Microsoft Office Excel | 0 | 02.02.2011 06:07 |
Задача на FOR, почти решена... просто проверить. | Andrux | Помощь студентам | 5 | 29.12.2008 11:27 |
Задача на Repeat! все написано, проверьте... | Andrux | Помощь студентам | 1 | 28.12.2008 10:38 |
Нужно объснить как решена задача | diesel-dbx | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 04.08.2008 17:53 |