Добрый день.
Подскажите как реализовать график работы устройства (например, 1/3) через массив. С функцией переключения графика по нужде (например, на 2/2 или 5/2).
Вроде просто, но не могу разобраться.
Создал массив 2 мерный.
week_day[3][7] = {
{1,2,3,4,5,6,7}, //порядковые номера дней недели.
{5,6,7,1,2,3,4}, // текущий день.
{1,0,0,0,1,0,0}, // график 1/3.
};
Не могу запилить цикл с корректным обновлением графика работы так чтобы со следующей недели стало
{0,1,0,0,0,1,0},
2 строки массива
d = time.weekday;
for (i = 0, n = 1; i < 7, n < 8; i++, n++) {
week_day[0][i] = n;
week_day[1][i] = d;
if (d == 7)d = 1; else d++;
}
С последней строкой массива затык
for (i = 0; i < 7; i+=4) {
if (i < 7) week_day[0][i] = 1;
else week_day[0][i-7] = 1;
}
Можно. Самый простой способ завести 3 переменных типа uint16_t и 1 типа bool
Bool для хранения текущего состояния, один инт для количества рабочих дней, второй для количества “выходных”. Третий - счетчик
UPD если я правильно понял сумбурное описание проблемы
Код громоздкий
Не хотел его сюда пихать.
Задача у меня тривиальная, нагружать публику масштабами идеи наверно лишнее.
Есть устройство, которое должно работать по графику 1/3. В рабочие дни - так, в выходные - по-другому. В общем. С функцией изменения графика (на будущее).
Устройство должно работать в рабочие дни в одном режиме, в выходные - в другом. Переключение режимов в loopе с помощью switch.
0 (по умолчанию) - авто режим по установленному графику.
1 - переключение на работу как в рабочий день
2 - как в выходной
3 - отпуск.
Ну, и дальше? Продолжайте! Проблема-то у Вас в чём?
Объясните проблему словами. Сделайте маленький код, который её демонстрирует (всё, что не касается проблемы выбросьте), выложите его и кто-нибудь обязательно подскажет.
что же вы Евгений Петрович , поближе надо быть к рабочему классу . 1/3 значит “1 через 3” , то есть 1 день рабочий, 3 дня - выходной ,ну или наоборот , 1 день выходной и 3 рабочих , т.е. например рабочий = пн , выходные = вт,ср,чт . рабочий пт , выходные = сб,пн,вт
ТСу надо реализовать такую схему работы некого устройства. а так же менять эту схему “налету”
Для меня бессмысленный набор слов. А от огрызка кода
последние остатки волос дыбом встают.
Догадаться что он пытался сделать я не могу, а что сделал … ну бред же голимый! Внутри цикла по i < 7 зачем-то ещё проверка if (i < 7). Зачем? На случай, если компилятор неправильно цикл скомпилирует? Или как?
Т.е. это просто бред. Понять чего хотели невозможно, … ну, пусть сам разбирается, если объяснять не умеет и/или не хочет. Я уже пожелал ему удачи.