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

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

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

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста с кодом
много ошибок выдаёт
нам Си только начали преподавать, я ничего не понимаю ( .
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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.03.2012, 22:51
Ответы с готовыми решениями:

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

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

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

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

Цитата Сообщение от 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
 Аватар для Vaylon
0 / 0 / 1
Регистрация: 27.03.2012
Сообщений: 94
27.03.2012, 23:11  [ТС]
спасибо и на этом
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
28.03.2012, 02:20
Куча new и не одного delete
Повторного объявления "A" я вроде не заметил,а значит скорее всего ошибка в других модулях советую их проверить либо пересоздать проект.
Код не отформатирован как следует, поэтому смотреть другие ошибки нет желания
0
 Аватар для Vaylon
0 / 0 / 1
Регистрация: 27.03.2012
Сообщений: 94
28.03.2012, 23:00  [ТС]
ок, спасибо

Добавлено через 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
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
30.03.2012, 05:45
Во-первых, зачем вы объявления классов в модуль .cpp написали? Им самое место в хедере, хоть это и не критично.
Во-вторых, что более важно, вот эти строчки:
C++
1
2
Telement *A=new Number(3);
A-> rezult();
у вас находятся в области глобальной видимости и вне тела какой-либо функции.
В этом месте вы можете объявлять переменные, то есть первая строчка как бы в рамках приличия. Однако ее нужно переместить так, чтобы она была по тексту далее, чем объявление класса Telement, так как создавать переменные какого бы то ни было типа можно только после того, как этот тип был описан. Если вы перенесете объявления классов в хедер, эта проблема самоустранится.
А вот выполнять какие-либо функции в этом месте нельзя, поэтому вторую строчку следует переместить внутрь какой-нить функции или убрать.

Добавлено через 2 минуты
И проставьте точку с запятой после всех объявлений классов, внимательно.
1
 Аватар для Vaylon
0 / 0 / 1
Регистрация: 27.03.2012
Сообщений: 94
30.03.2012, 18:17  [ТС]
спасибо, большое
а ещё, если их удалить, программа пашет отлично)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.03.2012, 18:17
Помогаю со студенческими работами здесь

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

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

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

Много ошибок в 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) все как надо. VS 2012 у меня стоит...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru