Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Описание программы. ⇐ ПредыдущаяСтр 3 из 3
Входными данными для расчета являются: · Epsilon – значение точности · xLeft – начальная точка отрезка · xRight – конечная точка отрезка Промежуточными данными для расчета являются: · xMiddle – точка, делящая отрезок пополам
Написание текста программы (с комментариями) #include< iostream.h> //библиотека ввода-вывода #include< math.h> //библиотека математических операций #include< stdio.h> //библиотека ввода-вывода #include< conio.h> //библиотека консольного ввода-вывода
double f(double x) //вводим функцию для быстрого обращения { return pow(x, 2)-cos(x); //функция }
main(void) //основная функция, не возвращающая значение { Double xLeft, xRight, xMiddle, epsilon; //присвоение переменных cout< < " Input epsilon="; cin> > epsilon; //вводданных cout< < " Input right point="; cin> > xRight; //вводданных cout< < " \nInput left point="; cin> > xLeft; //вводданных if(xLeft> =xRight) cout< < " \nNot correct points"; //проверкавведенныхданных else while(fabs(xRight - xLeft)> epsilon) //Циклнаслучайверновведенныхданных(выполняется, пока |right-left|> epsilon) { xMiddle=(xLeft + xRight)/2.0; //деление отрезка пополам
if(f(xLeft)*f(xMiddle)< 0) //проверка отрезков xRight = xMiddle; //смещение точек elseif (f(xRight)*f(xMiddle)< 0)//проверка отрезков в другую сторону xLeft = xMiddle; //смещение точек else break; //прерывание цикла }
printf(" x=%f, F(X)=%f", xMiddle, f(xMiddle)); //вывод ответа на экран getch(); }
Конечный вид программы (листинг)
|