Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452

Разработка класса управления светом согласно схеме

10.09.2016, 14:54. Показов 3088. Ответов 42
Метки нет (Все метки)

Добрый день !

Есть такая задачка для электриков - программистов.

Разработка класса управления светом согласно схеме

Всего переключателей 10.
Миниатюры
Разработка класса управления светом согласно схеме  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.09.2016, 14:54
Ответы с готовыми решениями:

Разработка класса управления файлом
Создаю файл, а в результате - expected an indented block и выделяет "filename =". И никак не пойму в чем дело.O_o :mda: from Tkinter...

Устройства на основе ESP8266 для управления светом и другими нагрузками.
Доброе время суток! Я разрабатываю и выпускаю бюджетные устройства, с помощью которых можно управлять светом и другими потребителями по...

Пишу эмулятор контроллера управления светом. Не могу найти ошибку в коде
Доброго времени суток. Помогите найти ошибку.Компилятор выдаёт вот это: 1>Программа управлением света.(ConsoleVersion).obj :...

42
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
11.09.2016, 13:55  [ТС]
теперь все это надо упоковать же.

какие предложения ? вопрос не к magirus
Миниатюры
Разработка класса управления светом согласно схеме  
0
 Аватар для Nosey
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
11.09.2016, 14:39
Цитата Сообщение от RAFA91 Посмотреть сообщение
C++
1
2
3
4
5
int main() 
{
    
    return 0;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <chrono>
#include <thread>
 
int main()
{
    auto targetTime = std::chrono::high_resolution_clock::now() + std::chrono::seconds(1);
    std::this_thread::sleep_for(std::chrono::seconds(2));
    if (std::chrono::high_resolution_clock::now() > targetTime)
    {
        //yeah
    }
    return 0;
}
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
11.09.2016, 15:21  [ТС]
не то.
0
 Аватар для Kastaneda
5232 / 3206 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
11.09.2016, 15:58
Nosey, решение не корректное, если в момент слипа в системе поменяется время, то событие не сработает.
1
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
11.09.2016, 16:09  [ТС]
https://msdn.microsoft.com/en-... s.85).aspx в помощь
0
 Аватар для Nosey
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
11.09.2016, 16:34
Цитата Сообщение от Kastaneda Посмотреть сообщение
решение не корректное, если в момент слипа в системе поменяется время, то событие не сработает.
Окей.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <chrono>
#include <thread>
 
int main()
{
    auto targetTime = std::chrono::steady_clock::now() + std::chrono::seconds(1);
    std::this_thread::sleep_for(std::chrono::seconds(2));
    if (std::chrono::steady_clock::now() > targetTime)
    {
        //yeah
    }
    return 0;
}
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
11.09.2016, 16:38  [ТС]
не ужели вы думаете что это пойдет в производство ?

#include <thread> даааа. а кто говорил про отдельный поток ?
Цитата Сообщение от RAFA91 Посмотреть сообщение
Разработка многофункционального класса таймерного реле
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
11.09.2016, 17:06  [ТС]
Цитата Сообщение от RAFA91 Посмотреть сообщение
теперь все это надо упоковать же.
какие предложения ? вопрос не к magirus

так чоль ?

что не так сделал ?

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
#include <iostream>
#include <vector>
#include <map>
#include <string>
 
using namespace std;
 
string str[] = {"Мерефа","Минск","Люботин","Полтава","Изюм"};
 
class Lamp
{
    int n; // к-во рубильников
    bool *cond_switch; // массив состояния рубильников
    // true - верхнее, false - нижнее
    bool cond_lamp;  // состояние лампы true - включена, false - выключена
public: 
    Lamp(int n) 
    {
        this->n = n;
        cond_switch = new bool[n];
        for (int i=0; i<n; i++)  cond_switch[i] = false;
        cond_lamp = false;
    }
    ~Lamp() {delete [] cond_switch;}
    void switch_up(int index)   // поставить в true
    {
        if (index < 0 || index >= n || cond_switch[index]) return;
        cond_switch[index] = true;
        if (cond_lamp) cond_lamp = false;
        else cond_lamp = true;
    }
    void switch_down(int index)  // поставить в false
    {
        if (index < 0 || index >= n || !cond_switch[index]) return;
        cond_switch[index] = false;
        if (cond_lamp) cond_lamp = false;
        else cond_lamp = true;
    }
    bool cond_Lamp() const {return cond_lamp;}
};
 
void show(const Lamp *lamp)
{
    if (lamp->cond_Lamp()) cout<<"Лампа горит"<<endl;
    else cout<<"Лампа не горит"<<endl;
}
 
int main() 
{
    vector<Lamp *> v;
    map<string, vector<Lamp *>> m;
    map<string, vector<Lamp *>> :: iterator it;
    Lamp *lamp;
    
    for (int i=0; i<5;i++) 
    {
        for (int j=0;j<(10+i);j++) v.push_back(new Lamp(10*(j+1)));
        
        m.insert(pair<string,vector<Lamp *>>(str[i],v));
        v.clear();
    }
    
    cout<<"В карте: "<<m.size()<<" элементов"<<endl;
    
    it = m.begin();
    
    while(it != m.end())
    {
        cout<<"Ключ: "<<it->first<<"  ";
        
        cout<<"Длина списка: "<<(it->second).size()<<endl;
   
        it++;
    }
    
    
    
    return 0;
}
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
11.09.2016, 19:44
Цитата Сообщение от RAFA91 Посмотреть сообщение
что не так сделал ?
Хоть бы объекты уничтожил для начала.
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
12.09.2016, 15:13  [ТС]
Алеша, ну что там с реле времени ? Я почти дописал
0
 Аватар для Kastaneda
5232 / 3206 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
12.09.2016, 16:52
Цитата Сообщение от RAFA91 Посмотреть сообщение
#include <thread> даааа. а кто говорил про отдельный поток ?
а где здесь отдельный поток?
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
12.09.2016, 17:13  [ТС]
все то не то.

у меня лишь на уме это https://msdn.microsoft.com/en-... s.85).aspx

с помощью этого и будем варить кашу малашку
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
14.09.2016, 16:42  [ТС]
Цитата Сообщение от RAFA91 Посмотреть сообщение
Добрый день !
Разработка многофункционального класса таймерного реле
В классе должен быть метод который возвращает информацию о наступлении события (время выдержки к примеру прошло)
Также можно изменять выдержку времени. Можно повторно вгонять обьект в выдержку.
Когда выдержка прошла - то обьект переводим в активное состояние.
Спасибо за решение.
так как тямы у знатоков нету, поэтому привожу рабочий пример.

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
#include "stdafx.h"
#include <windows.h>
#include <iostream>
 
using namespace std;
 
class Rele_Time
{
    bool flag; // Индикатор сигнального состояния
    LARGE_INTEGER time; // Начальное время отсчета
    int Delay;   // Задержка мс
 
    void processing()
    {
        if (!flag)
        {
            LARGE_INTEGER time;
            SYSTEMTIME st;                     
            FILETIME ft; 
 
            GetSystemTime(&st);
            SystemTimeToFileTime(&st,&ft);
            
            time.LowPart = ft.dwLowDateTime;
            time.HighPart = ft.dwHighDateTime;  
            
            if ((time.QuadPart - (this->time).QuadPart) >= (10000*Delay)) flag = true;
        }
    }
public:
    Rele_Time(int Delay) 
    {
        this->Delay = Delay;
        flag = false;
 
        SYSTEMTIME st;                     
        FILETIME ft; 
 
        GetSystemTime(&st);
        SystemTimeToFileTime(&st,&ft);
            
        time.LowPart = ft.dwLowDateTime;
        time.HighPart = ft.dwHighDateTime;
    }
 
    bool condition() 
    {
        processing();
        return flag;
    }
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    Rele_Time *r1 = new Rele_Time(5000);
 
    cout<<"))))))))))))))))))))))))"<<endl;
 
    while (!(r1->condition())) {}
 
    cout<<"***********************"<<endl;
 
    return 0;
}
0
Эксперт .NET
 Аватар для Usaga
14350 / 9453 / 1360
Регистрация: 21.01.2016
Сообщений: 35,638
14.09.2016, 16:52
RAFA91, какой треш... А мусор за собой ты принципиально не убираешь? Или это как домашнее задание форумчанам оставляешь?
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
14.09.2016, 16:53
Цитата Сообщение от RAFA91 Посмотреть сообщение
C++
1
while (!(r1->condition())) {}
Круто. Ничего не делаем, но ресурсы жрем по максимуму.
Такой задержке место на свалке.
Думаю, за такое можно руки отрубать, причем по самый яйца,
т.к. у авторы подобного кода руки явно растут из задницы.
0
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
14.09.2016, 17:01  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
А мусор за собой ты принципиально не убираешь?

ява есть ява
Цитата Сообщение от HelicopterK52 Посмотреть сообщение
Круто. Ничего не делаем,
а кто сказал что это конечный вариант ?
Цитата Сообщение от HelicopterK52 Посмотреть сообщение
Думаю, за такое можно руки отрубать

как всегда ты не о чем

и это не задержка.

проверка может осуществляться в более сложном коде.

не ?????
0
829 / 253 / 34
Регистрация: 27.07.2016
Сообщений: 497
Записей в блоге: 1
14.09.2016, 17:05
Цитата Сообщение от RAFA91 Посмотреть сообщение
а кто сказал что это конечный вариант ?
вот:
Цитата Сообщение от RAFA91 Посмотреть сообщение
поэтому привожу рабочий пример.
не, оно, конечно работает, только сделано через Ж,
о чем Вам любезно поведали, причем не только я.
0
Эксперт .NET
 Аватар для Usaga
14350 / 9453 / 1360
Регистрация: 21.01.2016
Сообщений: 35,638
14.09.2016, 17:34
Цитата Сообщение от RAFA91 Посмотреть сообщение
ява есть ява
Причём тут ява?
0
Полярный
 Аватар для dimcoder
477 / 449 / 158
Регистрация: 11.09.2011
Сообщений: 1,156
14.09.2016, 18:23

Цитата Сообщение от RAFA91 Посмотреть сообщение
так как тямы у знатоков нету, поэтому привожу рабочий пример.
Цитата Сообщение от RAFA91 Посмотреть сообщение
не ужели вы думаете что это пойдет в производство ?
1
 Аватар для RAFA91
-28 / 35 / 25
Регистрация: 14.06.2013
Сообщений: 1,452
15.09.2016, 12:36  [ТС]
Цитата Сообщение от HelicopterK52 Посмотреть сообщение
не, оно
думаешь сделаешь лучше. что то не......
Цитата Сообщение от Usaga Посмотреть сообщение
Причём тут ява?
нууууууу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.09.2016, 12:36

Нарисовать треугольник согласно схеме
Нарисовать треугольник согласно схеме (см. рисунок 5.) Координаты x, y вводятся пользователем.

Код выполнения условий согласно блок-схеме
Помогите,я написала программный код к схеме...а в итоге получается какая-то каша!Подскажите,кто может.. Dim a As Single, b As Single, c...

Построить график функции и, согласно схеме, исследовать ее по графику
Построить график функции и, согласно схеме, исследовать ее по графику: 1) исследовать функцию на четность(нечетность) ; 2) исследовать...

Разделение массива по диагонали и формировка нового согласно схеме
Всем привет. Нужно сделать такую программу: дано одномерный массив и нужно разместить его элементы так, как указано на схеме. у меня есть...

Фильтр в схеме управления симистором
Изучаю разные схемы включения симисторов, хочется получить максимально возможную надежность. Чтобы не ставить снаббер (габариты платы...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru