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

Не могу скомпилировать файл, ошибка E2379 Statement missing и пр

02.06.2014, 18:23. Показов 4987. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго времени суток. Проблема заключена в следующем: Код написан, проверен уже несколько раз, но компилятор выдает несуществующие ошибки. Я не могу понять в чем дело. Подскажите пожалуйста. Вот код

файл model.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
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
#include<iostream.h>
#include<stdio.h>
 
class Com
{ int state;
int state1;
int state2;
int state3;
 
int power;
 
int data_count;
int data_count1;
int data_count2;
int data_count3;
 
int time_mes;
int time_mes1;
int time_mes2;
int time_mes3;
 
public:
 Com();
take_mes();
 run();
friend class Io;};
 
class Io
{int arrival_data;
int time_job;
public:
 Io();
 
void run(Com& com);
};
 
 
 
Com::Com()
{ state=0;
state1=0;
state2=0;
state3=0;
data_count=0;
data_count1=0;
data_count2=0;
data_count3=0;
time_mes=0;
time_mes1=0;
time_mes2=0;
time_mes3=0;
power=0;
}
 
Com::run()
{ if (power==1)
{take_mes();
cout<<"you model run"<<endl;}
 
else cout<<"the power do not work"<<endl;
return 0;}
Com::take_mes()
{ int i;
if (state==0)
{for (i=0;i<5;i++)
{state=1;
 data_count++;
 }
 time_mes=time_mes+1;
 cout<<"Time job processor number 1"<<data_count<<endl;
 cout<<"Quanity message"<<time_mes;
 } else if(state1==0)
 {for(i=0;i<5;i++)
 {state1=1;
 data_count1++;
 }
 time_mes1=time_mes1+1;
  cout<<"Time job processor number 2"<<data_count1<<endl;
 cout<<"Quanity message"<<time_mes1;}
 else if(state2==0)
 {  {for(i=0;i<5;i++)
 {state2=1;
 data_count2++;
 }
 time_mes2=time_mes1+2;
  cout<<"Time job processor number 3"<<data_count2<<endl;
 cout<<"Quanity message"<<time_mes2;}
 if (state==1&&state1==1&&state2==1&&state3==0)
  {for(i=0;i<5;i++)
 {state3=1;
 data_count3++;
 }
 time_mes3=time_mes3+1;
  cout<<"Time job processor number 4"<<data_count3<<endl;
 cout<<"Quanity message"<<time_mes3;}
else
 cout<<"all processors busy"<<endl;}
 
Io::Io()
{arrival_data=0;
time_job=0;}
 
void Io::run(Com& com)
{
int t_ar;
 
t_ar=rand()%10+1;
time_job=time_job+t_ar;
arrival_data++
cout<<"Working time your model: "<<time_job<<endl;
cout<<"loading data: "<<arrival_data<<endl;
if (t_ar==0)
{if(Com.power==0)
 Com.power=1;
 cout<<"Model run"<<endl;
 else cout<<"processors busy, wait"<<endl;}
 
 else cout<<"wait tasks"<<endl;}
и файл Main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include"Model.h"
#define TOTALTIME 50000
int main()
{Com myCom;
 Io Put;
 
 rand((unsigned)time(0));
 
 for (i=0;i<TOTALTIME;i++
{ Put.run(myCom);
 myCom.run(); }
 return ; }
Компилятор выдает такие ошибки:

[C++ Error] Model.h(100): E2379 Statement missing ;
[C++ Warning] Model.h(40): W8058 Cannot create pre-compiled header: code in header
[C++ Error] Main3.cpp(21): E2134 Compound statement missing }

Я уже склоняюсь к тому, что просто компилятор глючный. Подскажите , в чем ошибка?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.06.2014, 18:23
Ответы с готовыми решениями:

[C++ Error] Unit1.cpp(21): E2379 Statement missing;
Сегодня начал заниматься программированием (1 день). Решил начать с самых азов т.е. сделал самую...

"E2379 Statement missing ;"
Подскажите где ошибка?Или я сплю еще, или хз,в упор не вижу :( ....

Ошибка E2379 Statement missing
Я не совсем понимаю как вставлять SQL запросы программным путем. Попробовал вот так: void...

Ошибка Statement missing ;
Моя первая прога с классом. Компилятор ругается, не могу понять в чем ошибка... подскажите...

6
1702 / 898 / 207
Регистрация: 25.11.2009
Сообщений: 1,847
02.06.2014, 20:54 2
Посчитай фигурные скобки в model.h, не хватает их у тебя

Добавлено через 18 минут
чтоб не было таких ошибок, нужно по-человечески код выравнивать!

лишняя скобка "}" в Com::take_mes()
отсутствует ";" в void Io::run(Com& com), после строки arrival_data++
и там же, в void Io::run(Com& com), не хватает скобок "{" "}". Возможно я поставил их не в том месте, проверь
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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#include<iostream.h>
#include<stdio.h>
 
class Com
{
    int state;
    int state1;
    int state2;
    int state3;
 
    int power;
 
    int data_count;
    int data_count1;
    int data_count2;
    int data_count3;
 
    int time_mes;
    int time_mes1;
    int time_mes2;
    int time_mes3;
 
public:
    Com();
    take_mes();
    run();
    friend class Io;
};
 
class Io
{
    int arrival_data;
    int time_job;
public:
    Io();
    void run(Com& com);
};
 
 
 
Com::Com()
{
    state=0;
    state1=0;
    state2=0;
    state3=0;
    data_count=0;
    data_count1=0;
    data_count2=0;
    data_count3=0;
    time_mes=0;
    time_mes1=0;
    time_mes2=0;
    time_mes3=0;
    power=0;
}
 
Com::run()
{
    if (power==1)
    {
        take_mes();
        cout<<"you model run"<<endl;
    }
    else
        cout<<"the power do not work"<<endl;
 
    return 0;
}
 
Com::take_mes()
{
    int i;
    if (state==0)
    {
        for (i=0;i<5;i++)
        {
            state=1;
            data_count++;
        }
        time_mes=time_mes+1;
        cout<<"Time job processor number 1"<<data_count<<endl;
        cout<<"Quanity message"<<time_mes;
    }
    else if (state1==0)
    {
        for(i=0;i<5;i++)
        {
            state1=1;
            data_count1++;
        }
        time_mes1=time_mes1+1;
        cout<<"Time job processor number 2"<<data_count1<<endl;
        cout<<"Quanity message"<<time_mes1;
    }
    else if(state2==0)
    {
        //{    вот тут лишняя скобка!!!!
        for(i=0;i<5;i++)
        {
            state2=1;
            data_count2++;
        }
        time_mes2=time_mes1+2;
        cout<<"Time job processor number 3"<<data_count2<<endl;
        cout<<"Quanity message"<<time_mes2;
        }
    if (state==1&&state1==1&&state2==1&&state3==0)
    {
        for(i=0;i<5;i++)
        {
            state3=1;
            data_count3++;
        }
        time_mes3=time_mes3+1;
        cout<<"Time job processor number 4"<<data_count3<<endl;
        cout<<"Quanity message"<<time_mes3;
    }
    else
        cout<<"all processors busy"<<endl;
}
 
Io::Io()
{
    arrival_data=0;
    time_job=0;
}
 
void Io::run(Com& com)
{
    int t_ar;
 
    t_ar=rand()%10+1;
    time_job=time_job+t_ar;
    arrival_data++;  //тут не хватало ;
    cout<<"Working time your model: "<<time_job<<endl;
    cout<<"loading data: "<<arrival_data<<endl;
    if (t_ar==0)
    {
        if(сom.power==0)  //тут com нужно писать с маленькой буквы
        {  //вот тут!!!
            сom.power=1;  //тут com нужно писать с маленькой буквы
            cout<<"Model run"<<endl;
        }  //и вот тут!!!!
        else
            cout<<"processors busy, wait"<<endl;
    }
    else
        cout<<"wait tasks"<<endl;
}
Добавлено через 5 минут
Ещё ты в двух местах пишешь Com с большой буквы (как имя класса), хотя тебе нужно обратиться к экземпляру класса, который ты назвал com (с маленькой буквы)

Добавлено через 6 минут
в файле main.cpp тоже куча ошибок
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include"Model.h"
#define TOTALTIME 50000
 
int main()
{
    Com myCom;
    Io Put; 
    rand();  //функция int rand(void) не принимает никаких параметров
    //было rand((unsigned)time(0));
 
    for (int i=0;i<TOTALTIME;i++)  //переменная i была не объявлена, не хватало скобки ")"
    {
        Put.run(myCom);
        myCom.run();
    }
    return 0;  //функция int main() должна вернуть значение типа int
}
Добавлено через 3 минуты
кроме того, ошибка [C++ Error] Main3.cpp(21): E2134 Compound statement missing } указывает, что у тебя в проекте есть ещё файл Main3.cpp, тоже с ошибками
2
0 / 0 / 0
Регистрация: 02.04.2012
Сообщений: 23
03.06.2014, 07:23  [ТС] 3
Lelik-pahan, Большое вам спасибо!

Добавлено через 18 минут
Если не сложно, подскажите еще один вопрос, если писать функцию getch(), то в какой форме? в main.cpp, или в model.h?

Добавлено через 7 минут
И еще, при компиляции выдается предупреждение:
[C++ Warning] P1.h(42): W8058 Cannot create pre-compiled header: code in header
Что это означает?
0
1702 / 898 / 207
Регистрация: 25.11.2009
Сообщений: 1,847
03.06.2014, 10:34 4
Цитата Сообщение от rina_san Посмотреть сообщение
если писать функцию getch(), то в какой форме? в main.cpp, или в model.h?
Форм тут никаких нет, это консольное приложение. Как ни странно это прозвучит, писать нужно там, где тебе это нужно... Там, где ты хочешь получить клавишу, нажатую на клавиатуре. И если под словами "писать функцию" ты подразумеваешь просто её использование (а не написание кода функции самостоятельно), то не забудь подключить conio.h

Цитата Сообщение от rina_san Посмотреть сообщение
[C++ Warning] P1.h(42): W8058 Cannot create pre-compiled header: code in header
компилятор не может создать предкомпелируемый заголовок из-за кода, который находится до #pragma hdrstop
тут как минимум нужно видеть, что у тебя в файле P1.h
0
0 / 0 / 0
Регистрация: 02.04.2012
Сообщений: 23
03.06.2014, 16:30  [ТС] 5
В этом файле та же самая программа, что и в model.h, только с исправлениями, которые вы мне советовали. В результате , только вот это сообщение выскакивает, предупреждение ссылается на конструктор Com::Com(), и не компилирует программу.
0
1702 / 898 / 207
Регистрация: 25.11.2009
Сообщений: 1,847
03.06.2014, 22:09 6
это Warning, а не Error, из-за него программа не может не компилиться. У меня он тоже выходит, но экзешник нормально собирается и работает. Уж не знаю, делает ли он то, что ты задумал, но что-то он в цикле выводи.


Вот проект для 6-го билдера, который у меня нормально компилится.
project.rar
1
0 / 0 / 0
Регистрация: 02.04.2012
Сообщений: 23
04.06.2014, 17:49  [ТС] 7
Большое вам спасибо за помощь Lelik-pahan. Программа должна была просто имитировать взаимодействие процессора и какого-нибудь устройства ввода вывода. Даже не знаю, получилось ли или нет...

Добавлено через 50 секунд
Но все равно, буду над ней работать)))) Еще раз спасибо))
0
04.06.2014, 17:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2014, 17:49
Помогаю со студенческими работами здесь

Что значит ошибка: missing return statement?
Что значит ошибка: missing return statement? import java.util.Scanner; public class Pirmin{...

Что неправильно? Ошибка "statement missing"
//--------------------------------------------------------------------------- #include&lt;iostream&gt;...

Ошибка "Statement missing"
Пишет &quot;statement missing ;&quot; в 50 и 55 строке,хотя &quot;;&quot; там стоит. И еще &quot;illegal use of floating...

Statement missing
Только такая ошибка на строке: vsrz+=StrToFloat(FrmVpl-&gt;StGr2-&gt;Cells);Statement missing А вот ...


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

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