Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
30 / 30 / 9
Регистрация: 15.03.2010
Сообщений: 146

Исключения (Exceptions)

02.06.2010, 00:37. Показов 1311. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ПОмогите доделать прогу...хотя, честно говоря, она работает, но только вот если не будет одного "исключения" (http://www.cppreference.com/wiki/exception/start)

Задание:
Написать рекурсивную функцию для вычисления корня уравнения на некотором отрезке. Функция, реализуемая в задании, обязана выполнять проверку передаваемых параметров и генерировать исключение в случае ошибочных данных со спецификацией throw().Функция принимает в качестве параметров отрезок [xн , xк], на котором предположительно находится корень, коэффициенты уравнения а, b, с и точность eps.
Реализовать нужно с помощью метода "половинного деления отрезка" (и никаким другим)
про этот метод можно прочитать здесь
http://www.pm298.ru/pribl.php

сама функция вот: a-b*x=LOGc(x) (логарифм по основанию "с" от "х")

в приницпе я все так и сделал, но почему то у меня постоянно вылазиит вот это
"Взят отрезок, на котором метод неприменим" (f(x1,a,b,c)*(f(x2,a,b,c)>0)
но концы функции должны быть разных знаков, чтоб на этом отрезке был корень...как быть подскажите?))
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
#include <iostream>
#include <cmath>
using namespace std;
double f(double x, double a, double b, double c)
{
    //return log(x)/log(c)+b*x-a;
    return x-pow(c,a-b*x);
}
double root(double x1, double x2, double a, double b, double c, double eps)
{
    double xt=(x1+x2)/2;
    if(f(xt, a,b,c)>f(x1,a,b,c)) 
        x1=xt;
    else 
        x2=xt;
    if (abs(x2-x1)>eps)
        return root(x1,x2,a,b,c,eps);
    return xt;
}
int main()
{
    setlocale(0,"");
    cout<<"f(x,a,b,c) = ln(x)/ln(c) + b*x - a\n\n";
    double x1,x2,a,b,c,eps;
    try 
    {   
        cout<<"Введите коэффициенты уравнения a,b,c (через пробел) : "; 
        cin>>a>>b>>c;
        if (c<0 || c==1)
            throw("Неправильно заданы параметры");
        cout<<"Введите начало и конец отрезка [x1;x2](через пробел) : "; 
        cin>>x1>>x2;
        if (x1>x2 || x1<=0)
            throw("Неправильно задан промежуток");
        if (f(x1,a,b,c)*(f(x2,a,b,c)>0))
            throw("Взят отрезок, на котором метод неприменим");
        cout<<"Введите точность: "; 
        cin>>eps;
        if (eps<0)
            throw("Введена отрицательная точность");
        cout <<"Корень уравнения= "<<root(x1,x2,a,b,c,eps)<< endl;
    } 
    // обработка исключения
    catch( const char *s ) 
    {
        cout << s << endl; 
    }   
system ("pause");
return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.06.2010, 00:37
Ответы с готовыми решениями:

Throw exceptions
В массиве нужно отловить все исключения. Скока их ? Zerodevide,out_of_range_,wrong_type,bad_alloc. Привидите еще примеры.Желательно с...

exceptions (no matching function for call to .)
Помогите, пожалуйста, разобраться с исключениями: double ctok(double c) { return c + 273.15; } int main() { try { ...

Как отлавливать exceptions от stl?
Использую вектор, в описнии написано Return value f a reallocation happens, the storage is allocated using the container's...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.06.2010, 00:37
Помогаю со студенческими работами здесь

Exceptions в Qt
Здравствуйте! В Qt новичок (в принципе и в С++ нуб), прошу помощи. Пытаюсь обработать исключения, но не вышло. Делал примерно так: ...

Linux & exceptions
Предоставляет ли ядро Линукс системные вызовы, для установки пользовательских исключений или замены системных? Если да, то какие? Если нет,...

Организация собственного исключения и передача в него исходного исключения
Для обработки исключений при работе с БД я создал собственное исключение: public class SQLEntityException : ApplicationException ...

Exceptions
Здравствуйте! В данный момент изучаю исключения и необходимо было создать исключение, если юзер попробует использовать калькулятор в...

Exceptions
1) Создайте 2 класса-наследника от Exception: NullException и NoNumberException. 2) В классе NullException реализуйте метод...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru