Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Переделать код из С++ в чистый С(Си)


Автор: Elaysa 19.5.2017, 21:49
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
double fix(double(*f)(double), double a, double b, double eps);
double f(double x);
int i;

int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "");//подключение языков
    double a, b, eps;
    cout << "Нахождение приближенного значения корня методом деления отрезка пополам.\nВведите левую границу отрезка 'a' = ";
    cin >> a;//ввод левой границы отрезка 'a'
    cout << "Введите правую границу отрезка 'b' = ";
    cin >> b;//ввод правой границы отрезка 'b'
    cout << "Введите точность нахождения 'eps' = ";
    cin >> eps;//ввод точности нахождения 'eps'
    cout << "Приближенное значение корня = " << fix(f, a, b, eps) << endl;
    cout << "Приближенное значение корня найдено за " << i << " шагов" << endl;
    system("PAUSE");
    return 0;
}

double fix(double(*f)(double), double a, double b, double eps)
{
    double x = (a + b) / 2;
    while ((abs(b - a)>eps) && (f(x) != 0))
    {
        if (f(a)*f(x)<0)
            b = x;
        else
            a = x;
        x = (a + b) / 2;
        cout << "x=" << x << endl;
        i++;
    }
    return x;
}

double f(double x)
{
    return sin(x);
    
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)