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

Ошибка при компилировани - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Массив переменной размерности http://www.cyberforum.ru/cpp-beginners/thread300494.html
Здравствуйте! Такой вопрос: мне нужно создать массив, размерность которого должна вводиться при запуске программы. Вот на это: int n; cout << "Enter lenght of reference sequence: "; cin >> n; float rd; компилятор ругается. Как можно реализовать данный случай? спасибо.
C++ Исключения У Эккеля, во втором томе, в главе про исключения, встретил конструкцию такого вида: T& operator(int i) throw(RangeError) { if(i >= 0 && i < sz) return ptr; throw RangeError(); } Что значит этот throw(RangeError) после списка аргументов? И почему он там? http://www.cyberforum.ru/cpp-beginners/thread300489.html
C++ описание класса прямоугольников
Составить описание класса прямоугольников со сторонами, параллельными осям координат. Предусмотреть возможность перемещения прямоугольников на плоскости, изменения размеров, построения наименьшего прямоугольника, содержащего два заданных прямоугольника, и прямоугольника, являющегося общей частью (пересечением) двух прямоугольников. прошу помощи...
C++ Можно ли поменять местами значения структур связного динамического списка целиком?
Можно ли поменять местами значения 2-х соседних структур связного динамического списка целиком? Чтобы не работать с каждым из полей этих структур по отдельности.
C++ нужно решить как можно проще http://www.cyberforum.ru/cpp-beginners/thread300458.html
в текстовом файле подсчитать количество строк, которые начинаются и оканчиваются одной и той же буквой
C++ Builder Кнопка на PageControl Возможно ли в заголовке PageControl поставить или добавить кнопку (програмно) ? Где токо не ползал по инету нечего подобного не видел. Желательно примерчик закрепите. Очень буду блогодарен,за совет. подробнее

Показать сообщение отдельно
ЛазаретЪ
1 / 1 / 0
Регистрация: 04.02.2011
Сообщений: 30
20.05.2011, 16:17  [ТС]     Ошибка при компилировани
Консольное приложение.

Позже попробую сменить тип...

Добавлено через 19 минут
Вот содержимое файлов проекта:

calc.cpp
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
97
98
99
#include "calc.h"
#include <iostream.h>
void calc::Calculate()
    {
        if(operation=='+')rezult=op1+op2;
        if(operation=='-')rezult=op1-op2;
        if(operation=='*')rezult=op1*op2;
        if(operation=='/')rezult=op1/op2;
        if(operation=='^')rezult=op1^st;
    };
calc::calc()
    {
        acop="+-*^/";
        logarithm op1;
        logarithm op2;
        operation='+';
        st=1;
        Calculate();
    };
calc::calc(logarithm OP1,logarithm OP2,char OPERATION)
    {
        acop="+-*^/";
        op1=OP1;
        op2=OP2;
        st=1;
        operation=OPERATION;
        Calculate();
    };
bool calc::SetOperation(char OPERATION)
    {
        bool ok=false;
        for(int i=0;i<=sizeof(acop);i++)
            if(OPERATION==acop[i]) ok=true;
        if(ok==false)
            {
                cout<<"Недопустимая_операция"<<endl;
                return false;
            }
        else
            {
                if(OPERATION=='^')
                    {
                        cout<<"введите_степень";
                        cin>>st;
                    };
                operation=OPERATION;
                Calculate();
                return true;
            };
        
    };      
void calc::Print()
    {
        if(operation=='^')
            cout<<"log"<<op1.GetOsn()<<"_"
            <<op1.GetNumber()<<operation<<st<<"="<<rezult<<endl;
        else
            cout<<"log"<<op1.GetOsn()<<"_"
            <<op1.GetNumber()<<operation<<"log"<<op2.GetOsn()
            <<"_"<<op2.GetNumber()<<"="<<rezult<<endl;
    };
void calc::InputLog(int i)
    {
        float OSN;
        float NUMBER;
        cout<<"введите основание:";cin>>OSN;
        if(i==1)
            op1.SetOsn(OSN);
        else
            op2.SetOsn(OSN);
        cout<<"введите число:";cin>>NUMBER;
        if(i==1)
            op1.SetNumber(NUMBER);
        else
            op2.SetNumber(NUMBER);
        Calculate();
    };
void calc::ChangeOsn(float OSN)
    {
        float i;
        i=op1.GetOsn();
        op1.SetOsn(OSN);
        op2.SetOsn(OSN);
        op2.SetNumber(i);
        operation='/';
        Calculate();
    };
char calc::GetOperation()
    {
        return operation;
    };
float calc::GetRezult()
    {
        return rezult;
    };
float calc::GetSt()
    {
        return st;
    };
dialog.cpp
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
#include "dialog.h"
#include <iostream.h>
#include <fstream.h>
#include <string.h>
void dialog::WriteLog(int i)
    {
    ofstream stream("log",ios::app);    
        if(i==1)
{stream<<"Ввод_первого_оператора: log"<<c.op1.GetOsn()<<"_" <<c.op1.GetNumber()<<"="<<c.op1.GetRezult()<<endl;
            };
        if(i==2)
{stream<<" Ввод_первого_оператора: log"<<c.op2.GetOsn()<<'_'<<c.op2.GetNumber() <<"="<<c.op2.GetRezult()<<endl;
            };
        if(i==3)
            {
                if(c.GetOperation()=='^')
stream<<"Вывод_результата:log"<<c.op1.GetOsn() <<'_'<<c.op1.GetNumber()
                <<c.GetOperation()<<c.GetSt()<<"="<<c.GetRezult()<<endl;
                else
stream<<"Вывод_результата:log"<<c.op1.GetOsn()<<'_'<<c.op1.GetNumber()
                <<c.GetOperation()<<"log"<<c.op2.GetOsn()<<'_'<<c.op2.GetNumber()
                <<"="<<c.GetRezult()<<endl;
            };
        if(i==4)
            {
                stream<<"Выбор_операции:"<<c.GetOperation()<<endl;
                if(c.GetRezult()==-1)
                    stream<<"!!!Деление_на_0!!!"<<endl;
            };
        if(i==41)
            {
                stream<<"Выбор_операции:Недопустимая операция"<<endl;
            };
        if(i==5)
            {
                stream<<"Переход_к_другому_основанию:"<<c.op1.GetOsn()<<endl;
            };
    };
 
void dialog::ReadLog()
    {
        char s[50];
        ifstream stream("log");     
        while(stream>>s) 
            cout<<s<<endl;
    };
 
 
bool dialog::menu()
    {
        int pm;
        int OSN;
        char op;
        bool ok=false;
        cout<<"1: ввести первый оператор"<<endl;
        cout<<"2: показать первый оператор "<<endl;
        cout<<"3: ввести второй оператор "<<endl;
        cout<<"4: показать второй оператор "<<endl;
        cout<<"5: ввести вид операции"<<endl;
        cout<<"6: выполнить переход оператора 1 к заданному основанию "<<endl;
        cout<<"7: вывести результат операции"<<endl;
        cout<<"8: показать лог-файл"<<endl;
        cout<<"9: выход"<<endl;
 
        while((pm>9)|(pm<1))
            cin>>pm;
        if(pm==1) {c.InputLog(1);WriteLog(1);return false;};
        if(pm==2) {c.op1.Print();return false;};
        if(pm==3) {c.InputLog(2);WriteLog(2);return false;};
        if(pm==4) {c.op2.Print();return false;};
        if(pm==5) 
            while(ok==false)
                {
                    cout<<"введите операцию:"; 
                    cin>>op;
                    ok=c.SetOperation(op);
                    if(ok==true)WriteLog(4);
                    else WriteLog(41);
                    return false;
                };
        if(pm==6) 
            {
                cout<<"введите основание";
                cin>>OSN;
                c.ChangeOsn(OSN);
                WriteLog(5);
                return false;
            };
        if(pm==7) {c.Print();WriteLog(3);return false;};
        if(pm==8) {ReadLog();return false;};
        if(pm==9) {return true;};
 
    };
logarithm.cpp
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
97
98
99
100
101
102
103
104
105
#include <math.h>
#include "logarithm.h"
#include <iostream.h>
#include <ctype.h>
float logarithm::Calculate()
{
    if(number==1) return 0;
    if(osn==1) return 1;
    if(number==osn) return 1;
    return log(number)/log(osn);
}   
logarithm::logarithm()
{
    osn=1;
    number=1;
    rez=0;
};
logarithm::logarithm(float OSN,float NUMBER)
{
    if(NUMBER==0)
        {
        cout<<"Нельзя вводить 0 в качестве основания. Основание установлено в 1";
        number=1;
        }
    else
        number=NUMBER;
 
    if(OSN==0)
        {
        cout<<"Нельзя вводить 0 в качестве числа. Число установлено в 1";
        osn=1;
        }
    else
        osn=OSN;
 
    rez=Calculate();
};
logarithm::logarithm(const logarithm &op1)
{
    osn=op1.osn; 
    number=op1.number;
    rez=op1.rez;
}
float logarithm::GetRezult()
{
    return rez;
};
void logarithm::SetOsn(float OSN)
{
    if(OSN==0)
    {
        cout<<" Нельзя вводить 0 в качестве основания. Основание установлено в 1";
        osn=1;
    }
    else
        osn=OSN;
    rez=Calculate();
};      
void logarithm::SetNumber(float NUMBER)
{
    if(NUMBER==0)
    {
        cout<<" Нельзя вводить 0 в качестве числа. Число установлено в 1";
        number=1;
    }
    else
        number=NUMBER;
    rez=Calculate();
};
float logarithm::operator +(logarithm &op1)
{   
    return rez+op1.GetRezult();
};
float logarithm::operator -(logarithm &op1)
{   
    return rez-op1.GetRezult();
};
float logarithm::operator *(logarithm &op1)
{   
    return rez*op1.GetRezult();
};
float logarithm::operator /(logarithm &op1)
{
    if(op1.GetRezult()!=0)
        return rez/op1.GetRezult();
    cout<<"!!!Деление_на_0!!!"<<endl;
    return -1;
};
float logarithm::operator ^(float st)
{
    
    return pow(rez,st);
};
void logarithm::Print()
{
    cout<<"log"<<osn<<"_"<<number<<"="<<rez<<endl;      
};
float logarithm::GetOsn()
    {
        return osn;
    };
float logarithm::GetNumber()
    {
        return number;
    };
calc.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "logarithm.h"
class calc
{
char* acop;
char operation; 
float rezult;
float st;
public:
    logarithm op1;
    logarithm op2;  
    calc();
    calc(logarithm OP1,logarithm OP2,char OPERATION);   
    void Calculate();
    void InputLog(int i);
    float GetSt();
    float GetRezult();
    char GetOperation();
    bool SetOperation(char OPERATION);
    void ChangeOsn(float OSN);
    void Print();
};
dialog.h
C++
1
2
3
4
5
6
7
8
9
#include "calc.h"
class dialog
    {
        calc c;
        void WriteLog(int i);
        void ReadLog();
    public:
        bool menu();
    };
logarithm.h
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
#include <iostream.h>
#include <iomanip.h>
class logarithm
{
    float osn;
    float number;
    float rez;
    float Calculate();
public:
    logarithm();
    logarithm(float OSN, float NUMBER);
    logarithm(const logarithm &op1);
    void SetOsn(float OSN);
    void SetNumber(float NUMBER);
    float GetRezult();
    float GetOsn();
    float GetNumber();
    void Print();
    float operator +(logarithm&);
    float operator -(logarithm&);
    float operator *(logarithm&);
    float operator /(logarithm&);
    float operator ^(float st);
};
 
Текущее время: 17:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru