Добрый день, возник вопрос по задаче, уже 2й день ломаю голову, не могу понять, как реализовать.
нам нужно 21 день добавить в массив, каждый 3й день имеет - да.
Пример:
1 день, Понедельник - нет
2 день, Вторник - нет
3 день, Среда - да
4 день, Четверг - нет
5 день, Пятница - нет
6 день, Суббота - да
и т.д, нужное кол-во 21 день.
помогите пожалуйста
нам нужно 21 день добавить в массив, каждый 3й день имеет - да.
Пример:
1 день, Понедельник - нет
2 день, Вторник - нет
3 день, Среда - да
4 день, Четверг - нет
5 день, Пятница - нет
6 день, Суббота - да
и т.д, нужное кол-во 21 день.
помогите пожалуйста
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
&НаКлиенте
Процедура Команда1(Команда)
Дни = 21;
Результат = Новый Массив(Дни, 2);
НовыйДень = НачалоМесяца(ТекущаяДата())-Дата(1,1,1);
Для Инд = 1 По Дни Цикл
Результат[Инд - 1][0] = Дата(1,1,1) + НовыйДень;
ТретийДень = (Инд % 3) = 0;
Результат[Инд - 1][1] = ТретийДень;
НовыйДень = НовыйДень + 86400;
КонецЦикла;
Для Каждого ДанныеДня Из Результат Цикл
Сообщить(СтрШаблон("%1 : %2", Формат(ДанныеДня[0], "ДФ=dd.MM.yyyy"), ДанныеДня[1]));
КонецЦикла;
КонецПроцедуры
ПоказатьПрикрепленные файлы:
КаждыйТретийДень.epf
(7) В одной "строчке" массива может хранится либо "Номер дня" (1,2,3,4...), либо "День недели" (понедельник, вторник...), либо пометка (да, нет).
Или речь все-таки не о массиве? Покажите задачу целиком так, как вам её задали. А не так, как вы её себе придумали.
Или речь все-таки не о массиве? Покажите задачу целиком так, как вам её задали. А не так, как вы её себе придумали.
(10)Написать программу. Программа должна считать количество протеина необходимое на период (ВсегоДней).
Во-первых, расчёт всегда начинается с понедельника. Это первый день.
Во-вторых, я принимаю протеин каждый третий день (значение хранить в переменной ЧастотаПриема, значение может меняться):
1 день, понедельник — нет,
2 день, вторник — нет,
3 день, среда — да,
4 день, четверг — нет,
5 день, пятница — нет,
6 день, суббота — да,
7 день, воскресенье — нет,
8 день, понедельник — нет,
9 день, вторник — да
и так далее.
В-третьих, известно, сколько протеина я съедаю в будние(ПротеинВБудни) и сколько в выходные дни (ПротеинВВыходные).
В-четвёртых, период задаётся целым числом, от одного до бесконечности (хотя планы дальше чем на месяц я обычно не строю).
Программа должна:
1. Хранить всю информацию по приему в массиве (с первого по последний день)
2. Сообщить количество необходимого протеина понедельно
(Неделя 1 – 500гр
Неделя 2 – 700гр
Неделя 3 – 600гр)
3. Сообщить сколько всего потребуется протеина. (Всего – 1800гр)
Во-первых, расчёт всегда начинается с понедельника. Это первый день.
Во-вторых, я принимаю протеин каждый третий день (значение хранить в переменной ЧастотаПриема, значение может меняться):
1 день, понедельник — нет,
2 день, вторник — нет,
3 день, среда — да,
4 день, четверг — нет,
5 день, пятница — нет,
6 день, суббота — да,
7 день, воскресенье — нет,
8 день, понедельник — нет,
9 день, вторник — да
и так далее.
В-третьих, известно, сколько протеина я съедаю в будние(ПротеинВБудни) и сколько в выходные дни (ПротеинВВыходные).
В-четвёртых, период задаётся целым числом, от одного до бесконечности (хотя планы дальше чем на месяц я обычно не строю).
Программа должна:
1. Хранить всю информацию по приему в массиве (с первого по последний день)
2. Сообщить количество необходимого протеина понедельно
(Неделя 1 – 500гр
Неделя 2 – 700гр
Неделя 3 – 600гр)
3. Сообщить сколько всего потребуется протеина. (Всего – 1800гр)
(13)
1. Так вот, массивы информацию не хранят. Информация хранится в БД в виде специализированных таблиц - справочников, документов, регистров и прочая. Массивы - это переменные наборы информации для работы в программном коде (в оперативной памяти).
2. ВСЮ информацию хранить в одном месте у вас не получится - у вас как минимум есть константы, которые хранить в массиве нет смысла - периодичность приема, два количества приема, глубина расчета (период приема)
3. Что такое ПротеинВБудние - это количество за один будний день, или за все будние дни?
Ну а теперь самое главное - покажите, что вы пытаетесь сделать и что именно у вас не получается? На каком этапе остановились?
1. Так вот, массивы информацию не хранят. Информация хранится в БД в виде специализированных таблиц - справочников, документов, регистров и прочая. Массивы - это переменные наборы информации для работы в программном коде (в оперативной памяти).
2. ВСЮ информацию хранить в одном месте у вас не получится - у вас как минимум есть константы, которые хранить в массиве нет смысла - периодичность приема, два количества приема, глубина расчета (период приема)
3. Что такое ПротеинВБудние - это количество за один будний день, или за все будние дни?
Ну а теперь самое главное - покажите, что вы пытаетесь сделать и что именно у вас не получается? На каком этапе остановились?
(14) Так из постановки ясно что это студенту дали задание, а константы, документы, регистры и прочая они еще не изучали. Вместо того что бы попробовать разобраться самому нашел 1С форум и выложил сюда в надежде, что сейчас ему тут код напишут и он таким образом станет программистом.
(15) Да я это с самого первого поста понял еще когда комментариев не было ))) Просто хочу мягко опустить человека на землю.
Если он собирается быть программистом, он пытается, у него что-то не получается и он обращается за помощью с опытным коллегам - это одно дело.
А если ему надо просто сдать лабу и программистом он быть не желает - чувак, это тебе на форумы, где лабы за деньги делают. Это не сюда.
Если он собирается быть программистом, он пытается, у него что-то не получается и он обращается за помощью с опытным коллегам - это одно дело.
А если ему надо просто сдать лабу и программистом он быть не желает - чувак, это тебе на форумы, где лабы за деньги делают. Это не сюда.
(14) не совсем понимаю, как сделать так, чтобы выводило количество каждую неделю, выводит общее кол-во, а вот за неделю не могу понять как сделать
Понедельник - нет
Вторник - Нет
Среда - Да ( 100)
Четверг - Нет
Пятница - Нет
Суббота - да(200)
Воскресенье - нет
Понедельник - нет
Вторник - да(100)
и т.д вплоть до 21 дня
Понедельник - нет
Вторник - Нет
Среда - Да ( 100)
Четверг - Нет
Пятница - Нет
Суббота - да(200)
Воскресенье - нет
Понедельник - нет
Вторник - да(100)
и т.д вплоть до 21 дня
Прикрепленные файлы:
(19) У вас уже есть один счетчик "Всего", куда вы суммируете общее количество (Всего = Всего + Будни и т.д.). А вам нужен еще один счетчик, в котором вы будете накапливать еженедельное количество (ВсегоЗаНеделю = ВсегоЗаНеделю + Будни).
Как только вы посчитали воскресенье (неделя вся рассчитана) - необходимо вывести значение этого еженедельного счетчика, после чего обнулить его и продолжить считать с понедельника.
То есть общий счетчик калорий у вас постоянный, не обнуляется и сообщается только после всего просчета.
А недельный счетчик сообщается раз в неделю, после чего обнуляется.
Как только вы посчитали воскресенье (неделя вся рассчитана) - необходимо вывести значение этого еженедельного счетчика, после чего обнулить его и продолжить считать с понедельника.
То есть общий счетчик калорий у вас постоянный, не обнуляется и сообщается только после всего просчета.
А недельный счетчик сообщается раз в неделю, после чего обнуляется.
(24) в общем-то можно, но это может сломать мозг и испортить нервы следующему, кто это будет сопровождать.
(23) Что-то вроде этого:
(23) Что-то вроде этого:
ВсегоДней = 21;
Для День = 1 По ВсегоДней Цикл
НомерНедели = Цел(День - 1) / 7) + 1;
НомерДня = День - 7 * (НомерНедели - 1);
Если НомерДня > 5 Тогда
Выражение = "ПротеинВНеделю" + НомерНедели + " = ПротеинВНеделю" + НомерНедели + " + ПротеинВВвыходные;";
Выполнить(Выражение);
Иначе
Выражение = "ПротеинВНеделю" + НомерНедели + " = ПротеинВНеделю" + НомерНедели + " + ПротеинВБудни;";
Выполнить(Выражение);
КонецЕсли;
КонецЦикла;
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот