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

Ошибки в программе - C++

Восстановить пароль Регистрация
 
Julia9311
3 / 3 / 0
Регистрация: 05.11.2011
Сообщений: 190
25.12.2012, 21:56     Ошибки в программе #1
Здравствуйте! Помогите, пожалуйста, разобраться с ошибками)

C++ (Qt)
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include <iostream.h>
#include <conio.h>
#include <math.h>
 
class Complex // класс компелексных чисел
{
   double re, im; // целая и мнимая части
   
// создаем конструкторы   
public:
   
   Complex() {};
   
   Complex (double r) // конструктор по умолчанию
   {
      re = r; 
      im = 0;
   }
   
   Complex (double r, double i) // конструктор по умолчанию
   {
      re = r; 
      im = i;
   } 
   
   Complex (Complex &c) // конструктор копирования
   {
      re = c.re; 
      im = c.im;
   }
   
   ~Complex() {}
   
   float abs() // Модуль комплексного числа
   {
      return sqrt(re * re - im * im);
   }     
 
   Complex & operator = (Complex &c) // перегрузка оператора присваивания
   {
      re = c.re;
      im = c.im;
 
      return (*this);
   }
 
   Complex Complex::operator + (Complex &c) // перегрузка оператора сложения
   {
      Complex temp;
 
      temp.re = re + c.re;
      temp.im = im + c.re;
 
      return temp;
   }
 
   Complex Complex::operator - (Complex &c) // перегрузка оператора вычитания
   {
      Complex temp;
 
      temp.re = re - c.re;
      temp.im = im - c.re;
    
      return temp;
   }
 
   Complex Complex::operator * (Complex &c) // перегрузка оператора умножения
   {
      Complex temp;
 
      temp.re = re*c.re;
      temp.im = re*c.im;
 
      return temp;
   }
 
   Complex Complex::operator / (Complex &c) // перегрузка оператора деления
   {
      Complex temp;
 
      double r = c.re * c.re + c.im * c.im;
      temp.re = (re * c.re + im * c.im) / r;
      temp.re = (im * c.re - re * c.im) / r;
 
      return temp;
   }   
 
   friend ostream &operator<<(ostream &, Complex &); // перегрузка оператора <<
   friend istream &operator>>(istream &, Complex &); // перегрузка оператора >>
 
};
 
ostream &operator<<(ostream &out, complex &c)
{
   out << "(" << c.re << ") + I (" << c.im << "\n";
   
   return out;
}
 
istream &operator>>(istream &in, Complex &c)
{
   in >> c.re >> c.im;
   
   return in;
}
 
int main()
{
    Complex value1(5,2);
    Complex value2(3,-3);
    
    cout << value1 << " " << value2 << endl;
     
    cout << value1 + value2 << endl;
    
    cout << value1 - value2 << endl;
    
    cout << value1 * value2 << endl;
    
    cout << value1 / value2 << endl;    
    
    value1 = value2;
    
    cout << value1 << " = " << value2 << endl;
    
    return 0;
}
:\Program Files\Microsoft Visual Studio\MyProjects\123456789087654e3\3456765.cpp(36) : warning C4244: 'return' : conversion from 'double' to 'float', possible loss of data
C:\Program Files\Microsoft Visual Studio\MyProjects\123456789087654e3\3456765.cpp(93) : error C2061: syntax error : identifier 'complex'
C:\Program Files\Microsoft Visual Studio\MyProjects\123456789087654e3\3456765.cpp(94) : error C2805: binary 'operator <<' has too few parameters
C:\Program Files\Microsoft Visual Studio\MyProjects\123456789087654e3\3456765.cpp(95) : error C2065: 'c' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\123456789087654e3\3456765.cpp(95) : error C2228: left of '.re' must have class/struct/union type
C:\Program Files\Microsoft Visual Studio\MyProjects\123456789087654e3\3456765.cpp(95) : error C2228: left of '.im' must have class/struct/union type
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2012, 21:56     Ошибки в программе
Посмотрите здесь:

C++ Ошибки в программе
Ошибки в программе C++
C++ Ошибки в программе
Ошибки в программе С++ C++
Ошибки в программе C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
25.12.2012, 22:00     Ошибки в программе #2
Цитата Сообщение от Julia9311 Посмотреть сообщение
error C2061: syntax error : identifier 'complex'
У тебя имя класса начинается с большой буквы, а на 93-ей строке с маленькой написано.
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
25.12.2012, 22:01     Ошибки в программе #3
поправил
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
 
class Complex // класс компелексных чисел
{
   double re, im; // целая и мнимая части
   
// создаем конструкторы   
public:
   
   Complex() {};
   
   Complex (double r) // конструктор по умолчанию
   {
      re = r; 
      im = 0;
   }
   
   Complex (double r, double i) // конструктор по умолчанию
   {
      re = r; 
      im = i;
   } 
   
   Complex (Complex &c) // конструктор копирования
   {
      re = c.re; 
      im = c.im;
   }
   
   ~Complex() {}
   
   float abs() // Модуль комплексного числа
   {
      return sqrt(re * re - im * im);
   }     
 
   Complex & operator = (Complex &c) // перегрузка оператора присваивания
   {
      re = c.re;
      im = c.im;
 
      return (*this);
   }
 
   Complex Complex::operator + (Complex &c) // перегрузка оператора сложения
   {
      Complex temp;
 
      temp.re = re + c.re;
      temp.im = im + c.re;
 
      return temp;
   }
 
   Complex Complex::operator - (Complex &c) // перегрузка оператора вычитания
   {
      Complex temp;
 
      temp.re = re - c.re;
      temp.im = im - c.re;
    
      return temp;
   }
 
   Complex Complex::operator * (Complex &c) // перегрузка оператора умножения
   {
      Complex temp;
 
      temp.re = re*c.re;
      temp.im = re*c.im;
 
      return temp;
   }
 
   Complex Complex::operator / (Complex &c) // перегрузка оператора деления
   {
      Complex temp;
 
      double r = c.re * c.re + c.im * c.im;
      temp.re = (re * c.re + im * c.im) / r;
      temp.re = (im * c.re - re * c.im) / r;
 
      return temp;
   }   
 
   friend ostream &operator<<(ostream &, Complex &); // перегрузка оператора <<
   friend istream &operator>>(istream &, Complex &); // перегрузка оператора >>
 
};
 
ostream &operator<<(ostream &out, Complex &c)
{
   out << "(" << c.re << ") + I (" << c.im << "\n";
   
   return out;
}
 
istream &operator>>(istream &in, Complex &c)
{
   in >> c.re >> c.im;
   
   return in;
}
 
int main()
{
    Complex value1(5,2);
    Complex value2(3,-3);
    
    cout << value1 << " " << value2 << endl;
     
    cout << value1 + value2 << endl;
    
    cout << value1 - value2 << endl;
    
    cout << value1 * value2 << endl;
    
    cout << value1 / value2 << endl;    
    
    value1 = value2;
    
    cout << value1 << " = " << value2 << endl;
    
    return 0;
}
Julia9311
3 / 3 / 0
Регистрация: 05.11.2011
Сообщений: 190
25.12.2012, 22:12  [ТС]     Ошибки в программе #4
David Sylva, ошибок еще больше стало(
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
25.12.2012, 22:15     Ошибки в программе #5
Цитата Сообщение от Julia9311 Посмотреть сообщение
David Sylva, ошибок еще больше стало(
Какая у вас Студия стоит? У меня на 10 без ошибок.
Julia9311
3 / 3 / 0
Регистрация: 05.11.2011
Сообщений: 190
25.12.2012, 22:17  [ТС]     Ошибки в программе #6
у меня 6 версия
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
25.12.2012, 22:19     Ошибки в программе #7
Цитата Сообщение от Julia9311 Посмотреть сообщение
у меня 6 версия
Старенькая версия.Не пользовался, незнаю, что вам сказать, может ребята по опытней подскажут, как можно поправить.А так в целом лучше использовать версии по новей.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2012, 23:06     Ошибки в программе
Еще ссылки по теме:

Ошибки в программе C++
C++ Ошибки в программе
C++ Ошибки в программе

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

Или воспользуйтесь поиском по форуму:
Julia9311
3 / 3 / 0
Регистрация: 05.11.2011
Сообщений: 190
25.12.2012, 23:06  [ТС]     Ошибки в программе #8
Заработало) правда очень быстро результат показывает) я пробовала и system("pause") и getch(); все равно... Может кто-нибудь еще что-то подскажет?

Добавлено через 32 минуты
У меня еще одна программма с ошибками) помогите, пожалуйста)

файл C++ Source File

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "Rational.h"
void main()
{
Rational value1( 7, 24 );
Rational value2( 10, 36 );
cout << "value1=" << value1 << endl;
cout << "value2=" << value2 << endl;
value2.assign( 1, 3 );
cout << "value2=" << value2 << endl;
value1 += value2;
cout << "value1=" << value1 << endl;
Rational value3 = value1 + Rational( 2 );
cout << "value3=" << value3 << endl;
if( value1 < value3 ) cout << "Ok" << endl;
else cout << "???" << endl;
}
файл С/С++ Header File

C++ (Qt)
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
#ifndef _Rational_h_
#define _Rational_h_
#include <iostream>
using namespace std;
// Определение класса "рациональная дробь"
class Rational
{
int num; // Числитель (может иметь знак)
int denom;// Знаменатель (положителен)
public:
// Конструктор
Rational( int _num = 0, int _denom = 1 ) : 
num( _num ), denom( _denom )
{
if( denom <= 0 ) 
throw out_of_range(  "Incorrect rational value "
"denominator "
"(should be positive)" );
simplify();
}
// Изменение значения рациональной дроби
Rational& assign( int _num, int _denom = 1 )
{
num = _num;
denom = _denom;
if( denom <= 0 ) 
throw out_of_range( "Incorrect rational value "
"denominator "
"(should be positive)" );
simplify();
return *this;
}
Rational& assign( const Rational& Val )
{
return assign( val.num, val.denom );
}
// Перегрузка арифметических операций
Rational& operator+=( const Rational& arg2 )
{
int cmnDivisor = gcd( denom, arg2.denom );
num = num * (arg2.denom / cmnDivisor) + 
arg2.num * (denom / cmnDivisor);
denom = denom / cmnDivisor * arg2.denom;
return simplify();
} 
 
Rational operator+( const Rational& arg2 ) const
{
Rational result( num, denom );
return result += arg2;
}
// Другие арифметические операции
// ...
// Перегрузка операций отношения
int operator<( const Rational& arg2 ) const
{
int cmnDivisor = gcd( denom, arg2.denom );
return num * (arg2.denom / cmnDivisor) < 
  arg2.num * (denom / cmnDivisor);
}
// Другие операции отношения
// ...
// Перегрузка операции вывода в выходной поток
friend ostream& operator << ( ostream& out, 
  const Rational& value )
{
int whole = value.num/value.denom;
if( whole!=0 )
{
out << value.num/value.denom << " ";
if( value.num%value.denom == 0 ) return out;
}
if( value.num != 0 )
out << value.num%value.denom << "\\";
out << value.denom;
else out << "0";
return out;
}
// ...
private:
// "Сокращение" дроби
Rational& simplify()
{
int cmnDivisor = gcd( abs( num ), denom );
num /= cmnDivisor;
denom /= cmnDivisor;
return *this;
}
// Служебная функция: 
// вычисление наибольшего общего делителя
static int gcd( int a, int b )
{
if( a==0 ) return 1;
while( a!= b ) a>b ? a-=b : b-=a;
return a;
}
};
вот что выдает

c:\program files\microsoft visual studio\myprojects\ration\rational.h(35) : error C2065: 'val' : undeclared identifier
c:\program files\microsoft visual studio\myprojects\ration\rational.h(35) : error C2228: left of '.num' must have class/struct/union type
c:\program files\microsoft visual studio\myprojects\ration\rational.h(35) : error C2228: left of '.denom' must have class/struct/union type
c:\program files\microsoft visual studio\myprojects\ration\rational.h(76) : error C2181: illegal else without matching if
c:\program files\microsoft visual studio\myprojects\ration\rational.h(98) : fatal error C1070: mismatched #if/#endif pair in file 'c:\program files\microsoft visual studio\myprojects\ration\rational.h'
Yandex
Объявления
25.12.2012, 23:06     Ошибки в программе
Ответ Создать тему
Опции темы

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