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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Soft
4 / 4 / 1
Регистрация: 20.09.2010
Сообщений: 102
#1

Исправить ошибки в программе - C++

26.09.2010, 16:24. Просмотров 1130. Ответов 0
Метки нет (Все метки)

Помогите пожалуйста исправить ошибки в программе:
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
#include <iostream>
#include <conio.h>
#include <pthread.h>
#include <semaphore.h>
    int N;
  int X[N];
 int Y[N];
int Q[N];
     const N=20;
  sem_t sem_inpX, sem_inpY, sem_outQ;
  void * func_first (void * args)
int i;
{
   for (i=0; i<=N; i++)
Y[i]=1;
   sem_post (&sem_inpY);
  sem_wait (&sem_inpX);
 for (i=N/2+1; i<N; i++)
Q[i]=X[i]+3*Y[i];
     sem_post (&sem_outQ);
}
    int main ()
{
   sem_init (&sem_inpX,0,0);
sem_init (&sem_inpY,0,0);
 sem_init (&sem_outQ,0,0);
    pthread_t first;
          pthread_create (&first,NULL,func_first,NULL);
  int i; 
    for (i=0; i<N; i++)
              X[i]=1;
  sem_post (&sem_inpX);
       sem_wait (&sem_inpY);
for (i=0;i<N/2; i++)
     Q[i]=X[i]+3*Y[i];
  sem_wait(&sem_inpY);
  for (i=0; i<N; i++)
  std::cout <<Q[i];
             return 0;
}
Вот ошибки:
Untitled1.cpp:6: variable-size type declared outside of any function
Untitled1.cpp:7: variable-size type declared outside of any function
Untitled1.cpp:8: variable-size type declared outside of any function
Untitled1.cpp:9: ISO C++ forbids declaration of `N' with no type
Untitled1.cpp:9: conflicting types for `const int N'
Untitled1.cpp:5: previous declaration as `int N'
Untitled1.cpp: In function `void* func_first(void*)':
Untitled1.cpp:12: parse error before `int'
Untitled1.cpp:13: parse error before `{' token
Untitled1.cpp:14: syntax error before `<=' token
Untitled1.cpp:14: syntax error before `++' token
Untitled1.cpp:16: ISO C++ forbids declaration of `sem_post' with no type
Untitled1.cpp:16: `int sem_post' redeclared as different kind of symbol
C:/Program Files/Dev-Cpp/include/semaphore.h:139: previous declaration of `int
sem_post(sem_t_**)'
Untitled1.cpp:16: invalid conversion from `sem_t_**' to `int'
Untitled1.cpp:17: ISO C++ forbids declaration of `sem_wait' with no type
Untitled1.cpp:17: `int sem_wait' redeclared as different kind of symbol
C:/Program Files/Dev-Cpp/include/semaphore.h:134: previous declaration of `int
sem_wait(sem_t_**)'
Untitled1.cpp:17: invalid conversion from `sem_t_**' to `int'
Untitled1.cpp:18: parse error before `for'
Untitled1.cpp:18: parse error before `;' token
Untitled1.cpp:18: syntax error before `++' token
Untitled1.cpp:20: ISO C++ forbids declaration of `sem_post' with no type
Untitled1.cpp:20: redefinition of `int sem_post'
Untitled1.cpp:16: `int sem_post' previously defined here
Untitled1.cpp:20: invalid conversion from `sem_t_**' to `int'
Untitled1.cpp:21: parse error before `}' token
Untitled1.cpp: In function `int main()':
Untitled1.cpp:32: `sem_post' cannot be used as a function
Untitled1.cpp:33: `sem_wait' cannot be used as a function
Untitled1.cpp:36: `sem_wait' cannot be used as a function

Добавлено через 28 минут
С ошибками разобрался! Помогите пожалуйста теперь реализовать ввод X в1-й поток и ввод Y в главный поток main.

Добавлено через 26 минут
Всем спасибо за внимание, я уже разобрался! Программа работает! Кому интересно вот рабочий правильный код:
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
#include <iostream>
#include <conio.h>
#include <pthread.h>
#include <semaphore.h>
int i;
const int N=20;
int X[N];
int Y[N];
int Q[N];
sem_t sem_inpX, sem_inpY, sem_outQ;
void * func_first (void * args)
{
for (i=0; i<=N; i++)
Y[i]=1;
sem_post (&sem_inpY);
sem_wait (&sem_inpX);
for (i=N/2+1; i<N; i++)
Q[i]=X[i]+3*Y[i];
sem_post (&sem_outQ);
return NULL;
}
int main (void)
{
sem_init (&sem_inpX,0,0);
sem_init (&sem_inpY,0,0);
sem_init (&sem_outQ,0,0);
pthread_t first;
pthread_create (&first,NULL,func_first,NULL);
int i;
for (i=0; i<N; i++)
{
X[i]=1;
}
sem_post (&sem_inpX);
sem_wait (&sem_inpY);
for (i=0;i<N/2; i++)
Q[i]=X[i]+3*Y[i];
sem_wait(&sem_outQ);
for (i=0; i<N; i++)
std::cout <<Q[i] <<"\n";
getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2010, 16:24     Исправить ошибки в программе
Посмотрите здесь:

C++ Исправить ошибки в программе
C++ Исправить ошибки в программе
C++ Исправить ошибки в простой программе
Исправить ошибки в программе на С++ C++
Исправить ошибки в программе C++
C++ Исправить ошибки в программе
Нужно исправить ошибки в программе C++
C++ Исправить ошибки в программе C++
C++ Помогите исправить ошибки в программе
Исправить ошибки в программе C++
C++ Исправить ошибки в программе
Исправить ошибки в программе C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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