Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2010, 01:01   #1
ArniLand
Пользователь
 
Регистрация: 27.06.2009
Сообщений: 89
По умолчанию Логарифм - Исключения[C++]

Написал программу подсчитывает логарифм вида lg(2*c-a)+d-152)/(a/4+c) и обрабатывает возможные исключительные ситуации по следующему заданию. Какие буду замечание к программе, что стоит переделать в программе и т.д.
1. Описание класса:
Переменные - операнды выражения; конструкторы; методы установления значений объекта, вычисления выражения, выведения объекта
2. Задание - Создать массив объектов; вычислить выражение для каждого объекта, вывести результат.

Код программы:

Код:
//Logarifm.h
class Logarifm
{
private:
    double a;
    double c;
    double d;
    double F;
public:
    Logarifm(double a1, double c1, double d1);
    ~Logarifm();
    double Function();
};

//.cpp
#include "stdafx.h"
#include <iostream>
#include "Logarifm.h"
#include <math.h>

using namespace std;

Logarifm::Logarifm(double a1, double c1, double d1)
{
    a = a1;
    c = c1;
    d = d1;
}

Logarifm::~Logarifm()
{}

double Logarifm::Function()
{
    try
    {
        cout <<"a :" << a <<"\n";
        cout <<"c :" << c <<"\n";
        cout <<"d :" << d <<"\n";
        cout <<"Function F = (lg(2*c-a)+d-152)/(a/4+c)\n";

        if (a <=0)
        throw "a < 0";
        
        if ((a/4+c) == 0)
        throw "Delenie na 0 zapresheno";

        if (((2*c-a)+d-152) <= 0)
        throw "Logarifm <= 0";

        F = (log10((2*c-a)+d-152)/(a/4+c));
        cout << F;
    }

    catch (const char *t)
    {
        cout << t <<"/n";
    }
     
    return 0;
}

//main.cpp
#include "stdafx.h"
#include <iostream>
#include "Logarifm.h"

using namespace std;

int main()
{
    Logarifm *obj1 = new Logarifm(0.0, 0.0, 4.5);
    Logarifm *obj2 = new Logarifm(3.4, 5.6, 6.0);
    Logarifm *obj[2] = {obj1, obj2};

    obj[0]->Function();
    cout << "\n\r";
    obj[1]->Function();
    cout << "\n\r";
    return 0;
}
ArniLand вне форума Ответить с цитированием
Старый 04.05.2010, 02:45   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Замечание одно - а зачем здесь вообще класс? Не стоит пихать ООП везде, куда вздумается. Что это за объект такой - Логарифм? К тому же высчитываемый по таким специфичным правилам.
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 04.05.2010, 15:11   #3
ArniLand
Пользователь
 
Регистрация: 27.06.2009
Сообщений: 89
По умолчанию

Greblin, ну я изучаю сейчас в университете ооп и в задании написано "создать класс..."
ArniLand вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как записать Логарифм в с++ PFFAN91 Помощь студентам 2 09.04.2010 18:15
Натуральный логарифм Granus Паскаль, Turbo Pascal, PascalABC.NET 6 22.05.2009 20:56
Логарифм натуральный C++ Builder 6 werser Помощь студентам 3 19.05.2009 18:36
Логарифм в паскале gamer123 Помощь студентам 1 20.01.2008 15:15