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

квадратное уравнение: структура, объекты - C++

Восстановить пароль Регистрация
 
Andrew John
0 / 0 / 0
Регистрация: 12.12.2011
Сообщений: 5
29.12.2011, 01:19     квадратное уравнение: структура, объекты #1
Друзья, я только учусь программировать, сам по образованию вообще не технарь, но вот увлекся.

Плиз, укажите, где ошибка, т.к. в некоторых случаях не выдает правильные результаты: -1.#INFOO, 1.#INFOO

Т.е. пишу, исходя из того, что максимум освоил, прошу простить за "быдлокод" )

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "stdafx.h"
 
struct SQRT
{
    char str[256];
    double a; 
    double b; 
    double c;
    double x1();
    double x2();
    double d();
    int ROOTS();
    SQRT& operator=(SQRT&);
};
 
std::istream& operator >> (std::istream&, SQRT&);
std::ostream& operator << (std::ostream&, SQRT&);
std::ofstream& operator >> (std::ofstream&, SQRT&);
std::ifstream& operator << (std::ifstream&, SQRT&);
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
#include "stdafx.h"
#include <math.h>
 
SQRT& SQRT::operator=(SQRT& obj)
{
    this ->a = obj.a;
    this ->b = obj.b;
    this ->c = obj.c;
    return * this;
}
 
double SQRT::d()
{
    double d = (b * b - 4 * a * c);
    return d;
}
 
double SQRT::x1()
{
    double x1 = - b -  sqrt(d()) / (2*a);
    return x1;
}
 
double SQRT::x2()
{
    double x2 = -b + sqrt(d()) / (2*a);
    return x2;
}
 
int SQRT::ROOTS()
{
    if (d() < 0)
        return 0;
 
    if (!d())
        return 1;
 
    if (d() > 0)
        return 2;
    if (!a)
        return -1;
} 
 
std::istream& operator >> (istream& obj, SQRT& G)
{
    cout<<"Please enter value for a, b, c";
    obj>>G.a>>G.b>>G.c;
    return obj;
}
 
std::ostream& operator << (ostream& obj, SQRT& G)
{
    switch (G.ROOTS())
    {
    case -1: 
        sprintf_s(G.str, "There is no equation: 'a' is equal to 0, the equation is of the linear type");
        break;
    case 0:
        sprintf_s(G.str, "The roots are absent, since 'd < 0' \n");
        break;
    case 1:
        sprintf_s(G.str, "x1 = x2 = %lf", G.x1());
        break;
    case 2:
        sprintf_s(G.str, "There are 2 roots %lf, %lf", G.x1(), G.x2());
        break;
    }
    obj<<G.str;
    return obj;
}

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// objects for quadratic equation.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    SQRT * mas;
    int n, i; 
    printf_s("Pls., enter n, the number of the objects in the structure SQRT \n");
    scanf_s("%d", &n);
    mas = new SQRT[n];
 
    for (i = 0; i < n; i++)
    {
        cin>>mas[i];
        cout<<mas[i];
    }
    
    delete [] mas;
    return 0;
}

C++
1
2
3
4
5
6
7
8
9
10
11
#pragma once
 
#include "targetver.h"
 
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include "objects for quadratic equation.h"
#include <fstream>
#include <math.h>
using namespace std;
Спасибо за любой ответ,
А,
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2011, 01:19     квадратное уравнение: структура, объекты
Посмотрите здесь:

Квадратное уравнение C++
C++ Квадратное уравнение
C++ Квадратное уравнение в с
C++ Квадратное уравнение
Структура функции. Квадратное уравнение. C++
C++ Квадратное уравнение
Квадратное уравнение C++
C++ квадратное уравнение

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 08:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru