Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
0 / 0 / 1
Регистрация: 27.03.2012
Сообщений: 94
1

Много ошибок)

27.03.2012, 22:51. Показов 2689. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста с кодом
много ошибок выдаёт
нам Си только начали преподавать, я ничего не понимаю ( .
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 <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
class Telement{
protected:
Telement *left, *right;
Telement (Telement*l,Telement*r)
{
left=l;
right=r;
}
public:
~Telement(void)
{delete left; delete right;}
virtual float rezult(void){}
};
 
class Number:public Telement{
float f;
public:
Number(float F): Telement(NULL,NULL)
{
f=F;
}
float rezult(void)
{return f;}
};
 
Telement *A=new Number(3); 
A->rezult(); 
 
class Plus:public Telement{
public:
Plus(Telement*l,Telement*r):Telement{l,r}{}
float rezult(void)
{
return left->rezult()+right->rezult()
}
};
 
struct Mult:public Telement{
Mult(Telement* l,Telement* r):Telement(l,r){};
float rezult(void)
{
return left->rezult()*right->rezult();
}
 
 
telement* form(AnsiString s)
{
 Telement* h
 int p;
 int l=s.Leght();
 AnsiString s1, s2;
 if((p=s.Pos('+'))>1)
 {
  s1=s.SubString(1,p-1);
  s2=s.SubString(p+1,l-p);
  h = new Plus(form(s1), form(s2))
  }
  else if (s=="x")
  h=new Number(StrToFloat(Form1->Edit3->Text));
  else
  h=new Number(StrToFloat(s));
  return h;
  }
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   int dec=StrTolnt(ComboBox1->Text);
   Telement* x=form(Edit1->Text);
   Edit3->Text=FloatToStrF(x->rezult(), ffFixed, 25, dec);
   Telement* fx=form(Edit2->Text);
   Edit4->Text=FloatToStrF(fx->rezult(),ffFixed, 25, dec);
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
Button1Click(Button1);        
}
//---------------------------------------------------------------------------
Ошибки
[C++ Error] Unit1.cpp(37): E2238 Multiple declaration for 'A'
[C++ Error] Unit1.cpp(36): E2344 Earlier declaration of 'A'
[C++ Error] Unit1.cpp(37): E2141 Declaration syntax error
[C++ Error] Unit1.cpp(41): E2040 Declaration terminated incorrectly
[C++ Error] Unit1.cpp(41): E2276 ( expected
[C++ Error] Unit1.cpp(41): E2312 'r' is not an unambiguous base class of 'Plus'
[C++ Error] Unit1.cpp(41): E2275 { expected
[C++ Error] Unit1.cpp(46): E2040 Declaration terminated incorrectly
[C++ Error] Unit1.cpp(46): E2190 Unexpected }
[C++ Error] Unit1.cpp(46): E2190 Unexpected }
[C++ Error] Unit1.cpp(56): E2303 Type name expected
[C++ Error] Unit1.cpp(56): E2139 Declaration missing ;
[C++ Error] Unit1.cpp(98): E2040 Declaration terminated incorrectly
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2012, 22:51
Ответы с готовыми решениями:

Много ошибок
#include &lt;iostream&gt; using namespace std; double F(double X){ return (pow((sin(X) - 2 * cos(2 *...

Много ошибок в системе
Добрый день. Надеюсь на Вашу помощь, у знакомых стоит компьютер и не пользуются потому что трудно...

Не работает, много ошибок
Сделал все как по методичке Классы.docx,а в итоге ничего не работает.Не понимаю почему.Хммм

Много ошибок в MVS C++
Вот код: #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;fstream&gt; using namespace std;...

6
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
27.03.2012, 23:07 2
А английский как давно был? Даже если нет, возможностей он-лайн переводчиков вполне хватает, чтобы половину ошибок откинуть.

Цитата Сообщение от Vaylon Посмотреть сообщение
[C++ Error] Unit1.cpp(37): E2238 Multiple declaration for 'A'
Переменная объявлена несколько раз.
[C++ Error] Unit1.cpp(36): E2344 Earlier declaration of 'A'
Переменная ранее объявлялась.
[C++ Error] Unit1.cpp(37): E2141 Declaration syntax error
Ошибка синтаксиса в объявлении.
[C++ Error] Unit1.cpp(41): E2040 Declaration terminated incorrectly
Ошибка синтаксиса в завершении.
[C++ Error] Unit1.cpp(41): E2276 ( expected
Необходима скобка.
[C++ Error] Unit1.cpp(41): E2312 'r' is not an unambiguous base class of 'Plus'
'r' - не относится к классу 'Plus'.
[C++ Error] Unit1.cpp(41): E2275 { expected
Необходима фигурная скобка.
[C++ Error] Unit1.cpp(46): E2040 Declaration terminated incorrectly
Ошибка синтаксиса в завершении.
[C++ Error] Unit1.cpp(46): E2190 Unexpected }
[C++ Error] Unit1.cpp(46): E2190 Unexpected }
Необходима фигурная скобка.
[C++ Error] Unit1.cpp(56): E2303 Type name expected
[C++ Error] Unit1.cpp(56): E2139 Declaration missing ;
Ранее объявленный тип, у вас используется в функции с маленькой буквы, из-за этого компилятор не в курсе, что от него хотят.
[C++ Error] Unit1.cpp(98): E2040 Declaration terminated incorrectly
Ошибка синтаксиса в завершении.
ps. код весьма трудно просматривать без элементарного форматирования.
2
0 / 0 / 1
Регистрация: 27.03.2012
Сообщений: 94
27.03.2012, 23:11  [ТС] 3
спасибо и на этом
0
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
28.03.2012, 02:20 4
Куча new и не одного delete
Повторного объявления "A" я вроде не заметил,а значит скорее всего ошибка в других модулях советую их проверить либо пересоздать проект.
Код не отформатирован как следует, поэтому смотреть другие ошибки нет желания
0
0 / 0 / 1
Регистрация: 27.03.2012
Сообщений: 94
28.03.2012, 23:00  [ТС] 5
ок, спасибо

Добавлено через 12 часов 19 минут
Assembler
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 <vcl.h>
#pragma hdrstop
                #include <math.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
class Telement{
protected:
Telement *left, *right;
Telement (Telement*l,Telement*r)
{
left=l;
right=r;
}
public:
~Telement(void)
{delete left; delete right;}
virtual float rezult(void){}
};
 
class Number:public Telement{
float f;
public:
Number(float F): Telement(NULL,NULL)
{
f=F;
}
float rezult(void)
{return f;}
};
 
Telement *A=new Number(3);
A-> rezult();
 
struct Plus:public Telement{
Plus(Telement*l,Telement*r):Telement(l,r)
{};
float rezult(void)
{return left->rezult()+right->rezult();}
};
 
struct Mult:public Telement{
Mult(Telement* l, Telement* r):Telement(l,r){};
float rezult(void)
{
return left->rezult()*right->rezult();
}
};
 
Telement* form(AnsiString s)
{
 Telement* h;
 int p;
 int l=s.Length();
 AnsiString s1, s2;
 if((p=s.Pos('+'))>1)
 {
  s1=s.SubString(1,p-1);
  s2=s.SubString(p+1,l-p);
  h = new Plus(form(s1), form(s2));
  }
  else if ((p=s.Pos("*"))>1)
  {
  s1=s.SubString(1,p-1);
  s2=s.SubString(p+1,l-p);
  h=new Mult(form(s1),form(s2));
  }
  else if (s=="x")
  h=new Number(StrToFloat(Form1->Edit3->Text));
  else
  h=new Number(StrToFloat(s));
  return h;
  }
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   int dec=StrToFloat(ComboBox1->Text);
   Telement* x=form(Edit1->Text);
   Edit3->Text=FloatToStrF(x->rezult(), ffFixed, 25, dec);
   Telement* fx=form(Edit2->Text);
   Edit4->Text=FloatToStrF(fx->rezult(),ffFixed, 25, dec);
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::ComboBox1Change(TObject *Sender)
{
Button1Click(Button1);        
}
//---------------------------------------------------------------------------
[C++ Warning] Unit1.cpp(22): W8070 Function should return a value
[C++ Error] Unit1.cpp(37): E2238 Multiple declaration for 'A'
[C++ Error] Unit1.cpp(36): E2344 Earlier declaration of 'A'
[C++ Error] Unit1.cpp(37): E2141 Declaration syntax error
осталось только несколько ошибок
и те в 2-ух строках, пожалуйста помогите, чо не так)?
0
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
30.03.2012, 05:45 6
Во-первых, зачем вы объявления классов в модуль .cpp написали? Им самое место в хедере, хоть это и не критично.
Во-вторых, что более важно, вот эти строчки:
C++
1
2
Telement *A=new Number(3);
A-> rezult();
у вас находятся в области глобальной видимости и вне тела какой-либо функции.
В этом месте вы можете объявлять переменные, то есть первая строчка как бы в рамках приличия. Однако ее нужно переместить так, чтобы она была по тексту далее, чем объявление класса Telement, так как создавать переменные какого бы то ни было типа можно только после того, как этот тип был описан. Если вы перенесете объявления классов в хедер, эта проблема самоустранится.
А вот выполнять какие-либо функции в этом месте нельзя, поэтому вторую строчку следует переместить внутрь какой-нить функции или убрать.

Добавлено через 2 минуты
И проставьте точку с запятой после всех объявлений классов, внимательно.
1
0 / 0 / 1
Регистрация: 27.03.2012
Сообщений: 94
30.03.2012, 18:17  [ТС] 7
спасибо, большое
а ещё, если их удалить, программа пашет отлично)))
0
30.03.2012, 18:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.03.2012, 18:17
Помогаю со студенческими работами здесь

Много ошибок входа
Добрый день На сервере в логах почти каждую секунду вот такое Дата 04.10.2017 9:23:58...

Много ошибок в системе
Мои пробл*мы: 1. Нам не удалось завершить обновления. Отмена изменений. Не выключайте компьютер....

Много ошибок в Memtest 86
Протестил с помощью Memtest 86 оперативку OCZ DDR2 PC2-6400 Vista Upgrade 2GB Module/4GB Kit, одна...

Много ошибок в Qt Creator
Всем привет,скачал я Qt Creator c оффа (Qt 5.2.0 for Windows 64-bit (VS 2012, OpenGL, 589 MB) все...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru