Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
 Аватар для MegaRoks
2 / 2 / 3
Регистрация: 25.12.2014
Сообщений: 258

‘deletee’ was not declared in this scope

15.09.2017, 19:26. Показов 715. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При компиляции выдает ошибки, я не могу понять почему он не видит deletee. Подскажите что я сделал не правильно?

Код программы

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
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#include <stdlib.h>
#include <semaphore.h>
#include <math.h>
#define N 15
 
int iterator[8];
sem_t Lift, men[100];
int *ostan;
int Spusk;
void Creat(){  //создание шахты лифта
int i;
    for(i = 4; i < 20; i++){    
        printf("\033[%d;%dH|               |",i,40);
    }
}
 
void lift(){  //потом лифта
int k = -1;  //куда лифт движется -1 вверх, - вниз
int i = 5;  //на какой позии появляется лифт
int n = 0;  //количество людей ф лифте
    for(;;){
        if(k == 1) i++;  //куда лифт движется -1 наверх, 1 вниз
        else i--;
        printf("\033[%d;%dh_____________%d__________",i,41,n);
        usleep(500000);
        if (((i%2) == 0)){  //проверка находится лифт на этаже
        int u = ((i/2)-2);
        int q = rand()%100;
        if (q > 50 && n!=0){
            n--;
            Spusk++;
            usleep(500000);
        }
        if (iterator[u] > 0 && n <=3){
            sem_post(&Lift);
            n = deletee(u,n);  //человек выходит
            usleep(500000);
            sem_wait(&Lift);
        }
        printf("\033[%d;%dH                       ",i,41);  //очистка (покидает лифт)
        if (i == 4) {k = 1;}
        if (i == 18) {k = -1;}
        }
    }
}
 
void add(int n, int k){ //добавление в очередь человека
    sem_post(&men[n]);
    iterator[n]++;
    ostan[k] = rand()%8;
    sem_wait(&men[n]);
}
    
int deletee(int n, int n2){  // удаление из очередит человека (n)
    int i;
    for (i = 0; i < 3; i++){ //цикл дя лифта
        if (iterator[n] == 0 || n2 == 3) break;  //если лифт загружен или полон, то не не остановится на этаже 
        iterator[n]--;  //удаление из череди человека
        n2++;  //количество людей
    }
    return n2;  //возврат людей
}
 
void Men(int in){  //поток людей
    int y = rand()%8;  //положение того или иного человека
    add(y, in);  //добавление в очередь
    for(;;){
        usleep(2000000);
        if (Spusk > 0){ 
            Spusk--;
            iterator[7]++;
            usleep(2000000);
        }
    }
}
 
void Writer(){ //вывод данных о людях(количествыо людей на каждом этаже), i этаж
    int i;
    for (;;)
    for (i = 0; i < 8;i++){
        printf("\033[%f;%fH%d",(i*2)+4.38,iterator[i]);
        usleep(100000);
    }
}
 
int main(){  //инициализирует количество людей(N), запускает потоки людей, лифта и вывод данных о людях
    printf("\033[02J");  //очистка экрана
    Spusk = 0;  //спуск людей
    pthread_t cd[101];  //индитификатор потомков
    setbuf(stdout,NULL);
    ostan = malloc(N * sizeof(int));  //создаем массив остановок
    int i;
    Creat();  //создание шахты лифта
    for (i = 0; i < N; i++){  //запускает потоки людей
        pthread_create(&cd[2+i],NULL,Men,i);
        sem_init(&men[i],0,1);  //инициализация скмафора людей
    }
    pthread_create(&cd[1],NULL,lift,NULL);  //поток лифта
    sem_init(&Lift,0,1);  //инициализация семафора лифта
    pthread_create(&cd[2],NULL,Writer,NULL);  //поток вывода данных людей
    while(1){}
}
Миниатюры
‘deletee’ was not declared in this scope  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.09.2017, 19:26
Ответы с готовыми решениями:

'arr' was not declared in this scope 'sum' was not declared in this scope такие вот ошибки.(
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; using namespace std; int main () { setlocale(LC_ALL, &quot;rus&quot;); ...

Список с дробями: Variable or field 'input' declared void 'pd' was not declared in this scope
почему не нравится 1ая функция? #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; struct rational_fraction { int numerator; int...

Was not declared in this scope!
Уже надоела данная ошибка! work.cpp:34: ошибка: 'ui' was not declared in this scope ...

7
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
15.09.2017, 20:47
Цитата Сообщение от MegaRoks Посмотреть сообщение
я не могу понять почему он не видит deletee
Не видит, потому что нет объявления доступного в точке использования.
Добавь объявление в начало файла.
C++
1
int deletee(int n, int n2);
Добавлено через 4 минуты
Правда на этом проблемы не закончатся.
Это код на Си. Вернее на диалекте Си в GCC. Так что компилироваться он будет, только если собирать его как код на Си.
Если собирать его как С++ будет еще много ошибок.
Не говоря уже про ошибки проектирования. Код, мягко говоря, ужасный.
0
 Аватар для MegaRoks
2 / 2 / 3
Регистрация: 25.12.2014
Сообщений: 258
15.09.2017, 21:22  [ТС]
Как привольно компилировать?
0
 Аватар для MegaRoks
2 / 2 / 3
Регистрация: 25.12.2014
Сообщений: 258
16.09.2017, 09:00  [ТС]
Исправил все ошибка, кроме одной. Почему он не видит мой "pthread_create"? Другие же видит, почему именно его не видит?

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
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#include <stdlib.h>
#include <semaphore.h>
#include <math.h>
#define N 15
 
int iterator[8];
sem_t Lift, men[100];
int *ostan;
int Spusk;
void Creat(){  //создание шахты лифта
int i;
    for(i = 4; i < 20; i++){    
        printf("\033[%d;%dH|               |",i,40);
    }
}
 
int deletee(int n, int n2){  // удаление из очередит человека (n)
    int i;
    for (i = 0; i < 3; i++){ //цикл дя лифта
        if (iterator[n] == 0 || n2 == 3) break;  //если лифт загружен или полон, то не не остановится на этаже 
        iterator[n]--;  //удаление из череди человека
        n2++;  //количество людей
    }
    return n2;  //возврат людей
}
 
void lift(){  //потом лифта
int k = -1;  //куда лифт движется -1 вверх, - вниз
int i = 5;  //на какой позии появляется лифт
int n = 0;  //количество людей ф лифте
    for(;;){
        if(k == 1) i++;  //куда лифт движется -1 наверх, 1 вниз
        else i--;
        printf("\033[%d;%dh_____________%d__________",i,41,n);
        usleep(500000);
        if (((i%2) == 0)){  //проверка находится лифт на этаже
        int u = ((i/2)-2);
        int q = rand()%100;
        if (q > 50 && n!=0){
            n--;
            Spusk++;
            usleep(500000);
        }
        if (iterator[u] > 0 && n <=3){
            sem_post(&Lift);
            n=deletee(u,n);  //человек выходит
            usleep(500000);
            sem_wait(&Lift);
        }
        printf("\033[%d;%dH                       ",i,41);  //очистка (покидает лифт)
        if (i == 4) {k = 1;}
        if (i == 18) {k = -1;}
        }
    }
}
 
void add(int n, int k){ //добавление в очередь человека
    sem_post(&men[n]);
    iterator[n]++;
    ostan[k] = rand()%8;
    sem_wait(&men[n]);
}
    
void Men(int in){  //поток людей
    int y = rand()%8;  //положение того или иного человека
    add(y, in);  //добавление в очередь
    for(;;){
        usleep(2000000);
        if (Spusk > 0){ 
            Spusk--;
            iterator[7]++;
            usleep(2000000);
        }
    }
}
 
void Writer(){ //вывод данных о людях(количествыо людей на каждом этаже), i этаж
    int i;
    for (;;)
    for (i = 0; i < 8;i++){
        printf("\033[%d;%dH%d",(i*2)+4,38,iterator[i]);
        usleep(100000);
    }
}
 
int main(){  //инициализирует количество людей(N), запускает потоки людей, лифта и вывод данных о людях
    printf("\033[02J");  //очистка экрана
    Spusk = 0;  //спуск людей
    pthread_t cd[101];  //индитификатор потомков
    setbuf(stdout,NULL);
    ostan = (int*)malloc(N*sizeof(int));  //создаем массив остановок
    int i;
    Creat();  //создание шахты лифта
    for (i = 0; i < N; i++){  //запускает потоки людей
        pthread_create(&cd[2+i],NULL,Men,i);
        sem_init(&men[i],0,1);  //инициализация симафора людей
    }
    pthread_create(&cd[1],NULL,lift,NULL);  //поток лифта
    sem_init(&Lift,0,1);  //инициализация семафора лифта
    pthread_create(&cd[2],NULL,Writer,NULL);  //поток вывода данных людей
    while(1){}
}
Миниатюры
‘deletee’ was not declared in this scope  
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,932
16.09.2017, 10:06
А почему pthread.h не подключено?
0
 Аватар для MegaRoks
2 / 2 / 3
Регистрация: 25.12.2014
Сообщений: 258
16.09.2017, 10:22  [ТС]
Подключил, но он теперь на всех жалуется "pthread_create"
Миниатюры
‘deletee’ was not declared in this scope  
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
16.09.2017, 11:41
Цитата Сообщение от MegaRoks Посмотреть сообщение
pthread_create
Жалуется, потому что типы несовместимы. Я же говорил, что это код для диалекта GNU C, в нем менее строгое отношение к приведению типов, чем в С++. Самый простой выход, это скомпилировать этот код как Си, а не С++.
0
 Аватар для MegaRoks
2 / 2 / 3
Регистрация: 25.12.2014
Сообщений: 258
16.09.2017, 13:16  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Самый простой выход, это скомпилировать этот код как Си, а не С++.
Я скомпилировал проект, запустился. Но мне кажется что то на заработало в нем
Миниатюры
‘deletee’ was not declared in this scope  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.09.2017, 13:16
Помогаю со студенческими работами здесь

Gets was not declared in this scope, why?
#include &lt;stdio.h&gt; //показываю что объявил char p; void *recvmg(void *sock) { struct client_info cl = *((struct...

Was not declared in this scope
int main() { int x=y; } int y; main.cpp: In function 'int main()': main.cpp:3:11: error: 'y' was not declared in this...

Was not declared in this scope
node* treecopy(node* node){ node *NewNode;//на вот этой строчке NewNode=tree::createNode(node-&gt;vol); if(node-&gt;left){ ...

'...' was not declared in this scope
Доброго времени суток. Столкнулся с одной проблемой при создании класса: имеется описание класса : class CDateTime { public: ...

Was not declared in this scope
вот мой класс, пишет вот такие ошибки: error: 'pow' was not declared in this scope, так же само с fabs, atan, M_PI. в чём моя ошибка? ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru