Как создать алгоритм для правильной подстановки в прогр.код где нужно- "лет", а где нужно-"года"
Здравствуйте! - извините пожалуйста, я только учусь и хочется полностью разобраться в заданном уроке.
-Пожалуйста подскажите как написать программный код так, чтобы в тексте СтрШаблон( "... ему уже целых %3 года ! ... ); подставлялось правильное значение в соответствии с числом лет - например: « 22 годА» , «30 лет », « 41 год » ...
Задача:
•Дано: Сздать Списки Значений : ФИО, Качества, Возраст .
• Требуется вывести сообщение : « < ФИО > - самый < Качество > в нашем коллективе ! А, между прочим, ему уже целых < Возраст > лет ! ».
Решение :
Буду очень сильно благодарна всем кто подскажет решение :)
С уважением ко всем на форуме.
-Пожалуйста подскажите как написать программный код так, чтобы в тексте СтрШаблон( "... ему уже целых %3 года ! ... ); подставлялось правильное значение в соответствии с числом лет - например: « 22 годА» , «30 лет », « 41 год » ...
Задача:
•Дано: Сздать Списки Значений : ФИО, Качества, Возраст .
• Требуется вывести сообщение : « < ФИО > - самый < Качество > в нашем коллективе ! А, между прочим, ему уже целых < Возраст > лет ! ».
Решение :
СписокФИО = Новый СписокЗначений ;
СписокФИО.Добавить("Витя Иванов");
СписокФИО.Добавить("Петя Степанов");
СписокФИО.Добавить("Саша Хороший ");
СписокКачеств = Новый СписокЗначений ;
СписокКачеств.Добавить("Добрый") ;
СписокКачеств.Добавить(" Отзывчивый") ;
СписокКачеств.Добавить(" Веселый") ;
СписокВозрастов = Новый СписокЗначений ;
СписокВозрастов.Добавить( 30);
СписокВозрастов.Добавить(20);
СписокВозрастов.Добавить(50);
ФИО = СписокФИО.ВыбратьЭлемент("Какая Фамилия сотрудника", ФИО ) ;
Качество = СписокКачеств.ВыбратьЭлемент("Какое Качество сотрудника : ", Качество );
Возраст = СписокВозрастов.ВыбратьЭлемент("Какой Возраст сотрудника : ", Возраст ) ;
СтрокаВывода = СтрШаблон( " %1 - самый %2 в нашем коллективе!
| А, между прочим, ему уже целых %3 года! ", ФИО, Качество, Возраст );
Сообщить(СтрокаВывода);
ПоказатьБуду очень сильно благодарна всем кто подскажет решение :)
С уважением ко всем на форуме.
Найденные решения
(2)
Капитан Неочевидность: "От знания языка! И не языка 1С, а русского языка... с чем у современных программистов трудностей не меньше, чем с созданием алгоритмов."
Поэтому, так и быть, поможем новичку (с алгоритмом):
1. Если возраст меньше 20 - тогда "лет".
2. Если последняя цифра возраста равна 1 - "год".
3. Если эта цифра равна 2,3, или 4 - "года".
4. В остальных случаях - "лет".
Посмотрим, как автор переведет этот нехитрый алгоритм на язык 1С.
а в каком случае пишется "года", а в каком "лет"? От чего это зависит?
Капитан Очевидность: "От возраста зависит!" :-)
Капитан Неочевидность: "От знания языка! И не языка 1С, а русского языка... с чем у современных программистов трудностей не меньше, чем с созданием алгоритмов."
Поэтому, так и быть, поможем новичку (с алгоритмом):
1. Если возраст меньше 20 - тогда "лет".
2. Если последняя цифра возраста равна 1 - "год".
3. Если эта цифра равна 2,3, или 4 - "года".
4. В остальных случаях - "лет".
Посмотрим, как автор переведет этот нехитрый алгоритм на язык 1С.
(1) 1С ввела метод СтрокаСЧислом (доступна в платформе начиная с 8.3.10). Как раз для таких случаев.
СтрокаВыводаЛет = СтрокаСЧислом(";%1 год;;%1 года;%1 лет;%1 года", Возраст, ВидЧисловогоЗначения.Количественное, "L=ru");
СтрокаВывода = СтрШаблон( " %1 - самый %2 в нашем коллективе!
| А, между прочим, ему уже целых %3! ", ФИО, Качество, СтрокаВыводаЛет);
(8)
Возвраст получает не тип число, а элемент списка значения.
Число хранится в свойстве Значение у элемента.
Возраст = СписокВозрастов.ВыбратьЭлемент("Выберите возраст сотрудника : ") ;
Возвраст получает не тип число, а элемент списка значения.
Число хранится в свойстве Значение у элемента.
СтрокаВыводаЛет = СтрокаСЧислом(" ; %1 год; ; %1 года ; %1 лет ; %1 года ", Возраст.Значение, ВидЧисловогоЗначения.Количественное, "L = ru" ) ;
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1) 1С ввела метод СтрокаСЧислом (доступна в платформе начиная с 8.3.10). Как раз для таких случаев.
СтрокаВыводаЛет = СтрокаСЧислом(";%1 год;;%1 года;%1 лет;%1 года", Возраст, ВидЧисловогоЗначения.Количественное, "L=ru");
СтрокаВывода = СтрШаблон( " %1 - самый %2 в нашем коллективе!
| А, между прочим, ему уже целых %3! ", ФИО, Качество, СтрокаВыводаЛет);
(4)Пожалуйста посмотрите - где у меня ошибка? - вроде код точно переписала, и на четвертом шаге, когда должно выйти сообщение, выходит окно с ошибкой : « Несоответствие типов ( параметр номер '2' ) :
СписокФИО = Новый СписокЗначений ;
СписокФИО.Добавить("Вася Иванов");
СписокФИО.Добавить("Витя Степанов");
СписокФИО.Добавить("Саша Хороший ");
СписокКачеств = Новый СписокЗначений ;
СписокКачеств.Добавить("Добрый") ;
СписокКачеств.Добавить(" Отзывчивый") ;
СписокКачеств.Добавить(" Веселый") ;
СписокВозрастов = Новый СписокЗначений ;
СписокВозрастов.Добавить( 30);
СписокВозрастов.Добавить(20);
СписокВозрастов.Добавить(52);
ФИО = СписокФИО.ВыбратьЭлемент("Выберите фамилию сотрудника : ") ;
Качество = СписокКачеств.ВыбратьЭлемент("Выберите качество сотрудника : " ) ;
Возраст = СписокВозрастов.ВыбратьЭлемент("Выберите возраст сотрудника : ") ;
СтрокаВыводаЛет = СтрокаСЧислом(" ; %1 год; ; %1 года ; %1 лет ; %1 года ", Возраст, ВидЧисловогоЗначения.Количественное, "L = ru" ) ;
Вывод = СтрШаблон( " %1 - самый %2 в нашем коллективе! А, между прочим, ему уже целых %3 ! ",ФИО,Качество,СтрокаВыводаЛет );
Сообщить(Вывод);
СписокФИО = Новый СписокЗначений ;
СписокФИО.Добавить("Вася Иванов");
СписокФИО.Добавить("Витя Степанов");
СписокФИО.Добавить("Саша Хороший ");
СписокКачеств = Новый СписокЗначений ;
СписокКачеств.Добавить("Добрый") ;
СписокКачеств.Добавить(" Отзывчивый") ;
СписокКачеств.Добавить(" Веселый") ;
СписокВозрастов = Новый СписокЗначений ;
СписокВозрастов.Добавить( 30);
СписокВозрастов.Добавить(20);
СписокВозрастов.Добавить(52);
ФИО = СписокФИО.ВыбратьЭлемент("Выберите фамилию сотрудника : ") ;
Качество = СписокКачеств.ВыбратьЭлемент("Выберите качество сотрудника : " ) ;
Возраст = СписокВозрастов.ВыбратьЭлемент("Выберите возраст сотрудника : ") ;
СтрокаВыводаЛет = СтрокаСЧислом(" ; %1 год; ; %1 года ; %1 лет ; %1 года ", Возраст, ВидЧисловогоЗначения.Количественное, "L = ru" ) ;
Вывод = СтрШаблон( " %1 - самый %2 в нашем коллективе! А, между прочим, ему уже целых %3 ! ",ФИО,Качество,СтрокаВыводаЛет );
Сообщить(Вывод);
(8)
Возвраст получает не тип число, а элемент списка значения.
Число хранится в свойстве Значение у элемента.
Возраст = СписокВозрастов.ВыбратьЭлемент("Выберите возраст сотрудника : ") ;
Возвраст получает не тип число, а элемент списка значения.
Число хранится в свойстве Значение у элемента.
СтрокаВыводаЛет = СтрокаСЧислом(" ; %1 год; ; %1 года ; %1 лет ; %1 года ", Возраст.Значение, ВидЧисловогоЗначения.Количественное, "L = ru" ) ;
(6)
- а кстати ))) в этой задачке в Списке Возрастов указан первый возраст число 10 ))) ... поэтому я исправила его на цифру 20 и 30 , 50 и дописала в Выборе Элемента "Сотрудника" - на решение задачи, надеюсь это никак не сказалось?
Сотрудник младше 11 лет? Пока что это запрещено законом! ;-)
- а кстати ))) в этой задачке в Списке Возрастов указан первый возраст число 10 ))) ... поэтому я исправила его на цифру 20 и 30 , 50 и дописала в Выборе Элемента "Сотрудника" - на решение задачи, надеюсь это никак не сказалось?
(2)
Капитан Неочевидность: "От знания языка! И не языка 1С, а русского языка... с чем у современных программистов трудностей не меньше, чем с созданием алгоритмов."
Поэтому, так и быть, поможем новичку (с алгоритмом):
1. Если возраст меньше 20 - тогда "лет".
2. Если последняя цифра возраста равна 1 - "год".
3. Если эта цифра равна 2,3, или 4 - "года".
4. В остальных случаях - "лет".
Посмотрим, как автор переведет этот нехитрый алгоритм на язык 1С.
а в каком случае пишется "года", а в каком "лет"? От чего это зависит?
Капитан Очевидность: "От возраста зависит!" :-)
Капитан Неочевидность: "От знания языка! И не языка 1С, а русского языка... с чем у современных программистов трудностей не меньше, чем с созданием алгоритмов."
Поэтому, так и быть, поможем новичку (с алгоритмом):
1. Если возраст меньше 20 - тогда "лет".
2. Если последняя цифра возраста равна 1 - "год".
3. Если эта цифра равна 2,3, или 4 - "года".
4. В остальных случаях - "лет".
Посмотрим, как автор переведет этот нехитрый алгоритм на язык 1С.
(3)
1. Если возраст меньше 20 - тогда "лет".
Не совсем так. Если между 11 и 20. До 10 лет тоже действует общее правило про "1 год / 2,3,4 года / X лет".
Посмотрим, как автор переведет этот нехитрый алгоритм на язык 1С.
Научиться переводить закономерности в нехитрые алгоритмы - вопрос технический. А вот научиться видеть эти самые закономерности в условиях задачи - вот это намного важнее для программиста, особенно для начинающего.
(5)
- А подскажите пожалуйста, как я могу научиться "Видеть" эти закономерности побыстрее?
- мне на что нужно в первую очередь смотреть?
- Незнакомых Функций так много и пока нет практики, чтобы их применить и запомнить ... просто сидеть и повторять их ...
Научиться переводить закономерности в нехитрые алгоритмы - вопрос технический. А вот научиться видеть эти самые закономерности в условиях задачи - вот это намного важнее для программиста, особенно для начинающего.
- А подскажите пожалуйста, как я могу научиться "Видеть" эти закономерности побыстрее?
- мне на что нужно в первую очередь смотреть?
- Незнакомых Функций так много и пока нет практики, чтобы их применить и запомнить ... просто сидеть и повторять их ...
(18) для лучшего понимания рекомендую начать изучать алгоритмы программирования. Они как правило без привязки к конкретному языку, но могут и основываться на классических языках программирования.
Это никак не поможет в работе с формами 1С, но даст пространственное мышление заточенное на обработку данных. Без этого нормально программировать будет сложно.
Это никак не поможет в работе с формами 1С, но даст пространственное мышление заточенное на обработку данных. Без этого нормально программировать будет сложно.
(28) Мне нравится их учить сначала думать, прежде чем задавать глупые вопросы. Я же всегда переживаю, когда они выглядят глупо.
Ну и иногда подталкиваю их на правильную мысль. Не более.
А обижаться ты должна на себя, потому что не зная базовых конструкций любого языка программирования пришла на сайт к профессионалам. Ты же не приходишь в мишленовские рестораны к поварам с вопросом "как пользоваться мясорубкой"?
Ну и иногда подталкиваю их на правильную мысль. Не более.
А обижаться ты должна на себя, потому что не зная базовых конструкций любого языка программирования пришла на сайт к профессионалам. Ты же не приходишь в мишленовские рестораны к поварам с вопросом "как пользоваться мясорубкой"?
В школе не объясняют, что бывает единственное число, паукальное число и множественное число.
Ед и множественное как-то объясняют, а паукальное (не большое количество) умалчивают, к нему относится полтора, два, три, четыре.
Ед и множественное как-то объясняют, а паукальное (не большое количество) умалчивают, к нему относится полтора, два, три, четыре.
(11)
а какое это имеет значение в разрезе этой задачи и этого прогр. кода?
СтрокаВыводаЛет = СтрокаСЧислом(";%1 год;;%1 года;%1 лет;%1 года", Возраст,
ВидЧисловогоЗначения.Количественное, "L=ru")
В школе не объясняют, что бывает единственное число, паукальное число и множественное число.
Ед и множественное как-то объясняют, а паукальное (не большое количество) умалчивают, к нему относится полтора, два, три, четыре.
Ед и множественное как-то объясняют, а паукальное (не большое количество) умалчивают, к нему относится полтора, два, три, четыре.
а какое это имеет значение в разрезе этой задачи и этого прогр. кода?
СтрокаВыводаЛет = СтрокаСЧислом(";%1 год;;%1 года;%1 лет;%1 года", Возраст,
ВидЧисловогоЗначения.Количественное, "L=ru")
(20) - "А если бы 1С не ввела специальный метод для таких случаев? " ... -
- ... Наверно тогда существует решение без этого метода для таких случаев... интересно как это можно сделать ..
"А если вообще не язык 1С, а другой? "- тогда мы бы не встретились на этом форуме, а были бы на другом ...
- Программист должен понимать закономерность, в каких случаях надо применять то или иное написание (склонение) единицы измерения.
... ну чтоб это понимать, наверно сначала надо узнать все про эти единицы измерения ? и случаи применения ... а я эту Функцию даже в Справке найти не могу :(
- ... Наверно тогда существует решение без этого метода для таких случаев... интересно как это можно сделать ..
"А если вообще не язык 1С, а другой? "- тогда мы бы не встретились на этом форуме, а были бы на другом ...
- Программист должен понимать закономерность, в каких случаях надо применять то или иное написание (склонение) единицы измерения.
... ну чтоб это понимать, наверно сначала надо узнать все про эти единицы измерения ? и случаи применения ... а я эту Функцию даже в Справке найти не могу :(
(22)
Наверно тогда существует решение без этого метода для таких случаев... интересно как это можно сделать ..
Конечно существует. И любой программист знает что такое условное ветвление.
ну чтоб это понимать, наверно сначала надо узнать все про эти единицы измерения ?
Конечно. Для правильного написания склонения единицы измерения "килограмм" надо обязательно знать физические свойства эталона, знать его расшифровку с латыни, и понимать, что килограмм не всегда равен килограмму.
(33) шутка конечно бородатая. Только ведь мы программисты? Осталось дополнить, что уронить нужно еще и в вакууме.
И тут происходит понимание, что оперируем не массой, а весом. А это уже килограмм-сила (ну или в Ньютонах).
Это как раз отличный пример постановки ТЗ клиентом.
И тут происходит понимание, что оперируем не массой, а весом. А это уже килограмм-сила (ну или в Ньютонах).
Это как раз отличный пример постановки ТЗ клиентом.
(29)
P.S. Тем более - обижаться на себя: для этого существуют гораздо более подходящие существа мужского пола, за примерамидалеко никуда ходить не надо.
P.P.S. Опять я встрял в женскую ветку, да еще и необремененную возрастом и жизненным опытом... старый дурак.
А обижаться ты должна на себя
"Женщина никому ничего не должна!" (с)
P.S. Тем более - обижаться на себя: для этого существуют гораздо более подходящие существа мужского пола, за примерами
P.P.S. Опять я встрял в женскую ветку, да еще и необремененную возрастом и жизненным опытом... старый дурак.
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)