Форум программистов, компьютерный форум CyberForum.ru

Программа останавливает свою работу, когда начинает выполнятся функция. Метод хорд - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обработка последовательности символов http://www.cyberforum.ru/cpp-beginners/thread1310305.html
На скрине задача. abc готово, но осталось для меня проблемой добавить aba Буду рад помощи еще раз. #include <iostream> #include <stdio.h> #include <conio.h> #include <cstring> #include <string>
C++ Пустое окно при создании нового проекта Добрый день, при создании проекта в любой из версий VS express(2008,2010,12,13) при создании проекта появляется пустое окно. Клавиши "готово" и "отмена" некликабельны. http://www.cyberforum.ru/cpp-beginners/thread1310294.html
Написать функцию: определение суммы цифр числа C++
Задание: Даны два натуральных числа. Выяснить, в каком из них сумма цифр больше. (Определить функцию для расчета суммы цифр натурального числа.) Я выяснил только в каком из них цифр больше, но нужно еще и сумму. хелп #include <iostream> #include <conio.h> using namespace std;
Работа с массивом с MPI C++ (есть код) C++
Задача инвертирования массива. Как делаю я: определяю количество значений, которое будет далее разослано по процессам. Заполняю массив. Раздаю значения массива по процессам. Остаток оставляю для управляющего процесса. Инвертирую. Код привожу ниже. Еще ниже результат работы программы. Первая строчка - как массив заполнился. Далее столбиком идет результат инвертирования. Проблема в том, что...
C++ Спроектировать класс Множество реализовав конструкторы и соответствующие методы http://www.cyberforum.ru/cpp-beginners/thread1310263.html
Спроектировать классы, реализовав конструкторы и соответствующие методы. В главной функции продемонстрировать их использование. Множество (2 класса: элемент множества и множество состоят в отношении агрегации) Конструкторы: пот умолчанию, с параметрами и копирования. Деструктор. Функции: прибавления элемента к множеству; вывод всех элементов множества на экран; проверка вхождения...
C++ Реализовать класс Срочно помогите пжл, сижу на контрольной) надо написать реализацию класса Animal с информацией о животном и примером применения подробнее

Показать сообщение отдельно
kikotus
0 / 0 / 0
Регистрация: 25.11.2014
Сообщений: 3
25.11.2014, 12:32     Программа останавливает свою работу, когда начинает выполнятся функция. Метод хорд
Писал программу для нахождения приближенных корней методом хорд, но программа работает нормально только до вызова функции Hord. Ввожу промежуток на котором есть корень, затем выбираю в меню программы "Метод Хорд", но консоль зависает на вызове этой функции.Вод код, если что корень находится на промежутке 1,2 и eps 0.01:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include<iostream>
#include<conio.h>
#include<cmath>
using namespace std;
double fx(double x0){//сама функция
    double y;
    y=pow(x0,3)-0.2*pow(x0,2)+0.4*x0-1.4;
    return y;
}
double ddx(double dx){//вторая производная
    double dy;
    dy=6*dx-0.4;
    return dy;
}
double hord(double a0,double b0,double eps0){//метод хорд
    double xn,xs;
    if((fx(b0)*ddx(b0))>0){
        xn=a0;
        do{
        xs=xn-((fx(xn)*(b0-xn))/(fx(b0)-fx(xn)));
        if(fx(xs)==0){
            cout<<"Корень уравнения x= "<<xs<<endl<<"Функция f(x)= "<<fx(xn)<<endl;
        return -1;}
        else{
            xn=xs;}
        }while(fabs(xs-xn)<eps0);
        cout<<"Корень уравнения x= "<<xs<<endl<<"Функция f(x)= "<<fx(xn)<<endl;
 
    }
        else{
        if((fx(b0)*ddx(b0))<0){
            xn=b0;
        do{
        xs=xn-((fx(xn)*(xn-a0))/(fx(xn)-fx(a0)));
        if(fx(xs)==0){
            cout<<"Корень уравнения x= "<<xs<<endl<<"Функция f(x)= "<<fx(xn)<<endl;
        return -1;}
        else{
            xn=xs;}
        }while(fabs(xs-xn)<eps0);
        cout<<"Корень уравнения x= "<<xs<<endl<<"Функция f(x)= "<<fx(xn)<<endl;}
        }
        return 0;}
int main()
{
    double a,b,eps;
    int option(0);
    char charoption;
    setlocale(0,"Russian");
    do{
    system("cls");
    cout<<"\t\t***Программа для нахождения приближенных корней***\n\t\t\tметодом Хорд и Секущих\n\n";
    cout<<"Введите первый край а: ";
    cin>>a;
    cout<<"Введите второй край b: ";
    cin>>b;
    cout<<"Введите eps: ";
    cin>>eps;
    if(fx(a)*fx(b)>0){
        cout<<"Введенный промежуток не подходят!";
        _getch();
        return -1;}
    cout<<"\nВыберите желаемое действие:\n1-для нахождения корней методом Хорд\n2-для нахождения корней методом Секущих";
    cout<<"\n3-для нахождения корней сразу двумя методами\n0-выход из программы \n";
    cin>>option;
    system("cls");
    switch(option){
        case 1:{
            cout<<"Метод Хорд:\n";
            hord(a,b,eps);
            cout<<"Хотите выйти в главное меню?(y/n)";
            cin>>charoption;
            break;
               }
        case 2: {
            cout<<"Метод Секущих\n";
 
            cout<<"Хотите выйти в главное меню?(y/n)";
            cin>>charoption;
            break;
                }
        case 3: {
            cout<<"Нахождение двумя методами сразу:\n";
 
            cout<<"Хотите выйти в главное меню?(y/n)";
            cin>>charoption;
            break;
                }
        case 0:{
            return -1;
               }
        }
    }while(charoption=='y');
    _getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru