Как создать алгоритм для правильной подстановки в прогр.код где нужно- "лет", а где нужно-"года"

1. Sharap09 24.06.22 00:29 Сейчас в теме
Здравствуйте! - извините пожалуйста, я только учусь и хочется полностью разобраться в заданном уроке.

-Пожалуйста подскажите как написать программный код так, чтобы в тексте СтрШаблон( "... ему уже целых %3 года ! ... ); подставлялось правильное значение в соответствии с числом лет - например: « 22 годА» , «30 лет », « 41 год » ...

Задача:

•Дано: Сздать Списки Значений : ФИО, Качества, Возраст .

• Требуется вывести сообщение : « < ФИО > - самый < Качество > в нашем коллективе ! А, между прочим, ему уже целых < Возраст > лет ! ».

Решение :

 СписокФИО = Новый СписокЗначений ;    

         СписокФИО.Добавить("Витя  Иванов");   
         СписокФИО.Добавить("Петя Степанов");
         СписокФИО.Добавить("Саша Хороший "); 

     СписокКачеств = Новый СписокЗначений ; 
     СписокКачеств.Добавить("Добрый") ;       
     СписокКачеств.Добавить(" Отзывчивый") ;
     СписокКачеств.Добавить(" Веселый") ;
 

         СписокВозрастов = Новый СписокЗначений ;    
         СписокВозрастов.Добавить( 30);   
         СписокВозрастов.Добавить(20);
         СписокВозрастов.Добавить(50);
 
 

    ФИО = СписокФИО.ВыбратьЭлемент("Какая Фамилия сотрудника", ФИО ) ;
    Качество  = СписокКачеств.ВыбратьЭлемент("Какое Качество сотрудника : ", Качество );   
    Возраст = СписокВозрастов.ВыбратьЭлемент("Какой Возраст сотрудника : ", Возраст ) ;
    
    
     СтрокаВывода = СтрШаблон( " %1 - самый %2 в нашем коллективе!
    | А, между прочим, ему уже целых %3 года! ",  ФИО,  Качество, Возраст );

     Сообщить(СтрокаВывода);
Показать



Буду очень сильно благодарна всем кто подскажет решение :)
С уважением ко всем на форуме.
+
Найденные решения
3. ishelper 24.06.22 01:41 Сейчас в теме
(2)
а в каком случае пишется "года", а в каком "лет"? От чего это зависит?
Капитан Очевидность: "От возраста зависит!" :-)

Капитан Неочевидность: "От знания языка! И не языка 1С, а русского языка... с чем у современных программистов трудностей не меньше, чем с созданием алгоритмов."

Поэтому, так и быть, поможем новичку (с алгоритмом):
1. Если возраст меньше 20 - тогда "лет".
2. Если последняя цифра возраста равна 1 - "год".
3. Если эта цифра равна 2,3, или 4 - "года".
4. В остальных случаях - "лет".

Посмотрим, как автор переведет этот нехитрый алгоритм на язык 1С.
FatPanzer; PhoenixAOD; muskul; +3
4. spacecraft 24.06.22 07:25 Сейчас в теме
(1) 1С ввела метод СтрокаСЧислом (доступна в платформе начиная с 8.3.10). Как раз для таких случаев.

СтрокаВыводаЛет = СтрокаСЧислом(";%1 год;;%1 года;%1 лет;%1 года", Возраст, ВидЧисловогоЗначения.Количественное, "L=ru");
СтрокаВывода = СтрШаблон( " %1 - самый %2 в нашем коллективе!
| А, между прочим, ему уже целых %3! ", ФИО, Качество, СтрокаВыводаЛет);
unknown181538; Sharap09; +2
2. FatPanzer 24.06.22 01:14 Сейчас в теме
Для начала надо подумать - а в каком случае пишется "года", а в каком "лет"? От чего это зависит?
Sharap09; +1
9. spacecraft 24.06.22 10:15 Сейчас в теме
(8)
Возраст = СписокВозрастов.ВыбратьЭлемент("Выберите возраст сотрудника : ") ;

Возвраст получает не тип число, а элемент списка значения.
Число хранится в свойстве Значение у элемента.
СтрокаВыводаЛет = СтрокаСЧислом(" ; %1 год; ; %1 года ; %1 лет ; %1 года ", Возраст.Значение, ВидЧисловогоЗначения.Количественное, "L = ru" ) ;
Sharap09; +1
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. spacecraft 24.06.22 07:25 Сейчас в теме
(1) 1С ввела метод СтрокаСЧислом (доступна в платформе начиная с 8.3.10). Как раз для таких случаев.

СтрокаВыводаЛет = СтрокаСЧислом(";%1 год;;%1 года;%1 лет;%1 года", Возраст, ВидЧисловогоЗначения.Количественное, "L=ru");
СтрокаВывода = СтрШаблон( " %1 - самый %2 в нашем коллективе!
| А, между прочим, ему уже целых %3! ", ФИО, Качество, СтрокаВыводаЛет);
unknown181538; Sharap09; +2
8. Sharap09 24.06.22 10:05 Сейчас в теме
(4)Пожалуйста посмотрите - где у меня ошибка? - вроде код точно переписала, и на четвертом шаге, когда должно выйти сообщение, выходит окно с ошибкой : « Несоответствие типов ( параметр номер '2' ) :


СписокФИО = Новый СписокЗначений ;
СписокФИО.Добавить("Вася Иванов");
СписокФИО.Добавить("Витя Степанов");
СписокФИО.Добавить("Саша Хороший ");


СписокКачеств = Новый СписокЗначений ;
СписокКачеств.Добавить("Добрый") ;
СписокКачеств.Добавить(" Отзывчивый") ;
СписокКачеств.Добавить(" Веселый") ;

СписокВозрастов = Новый СписокЗначений ;
СписокВозрастов.Добавить( 30);
СписокВозрастов.Добавить(20);
СписокВозрастов.Добавить(52);



ФИО = СписокФИО.ВыбратьЭлемент("Выберите фамилию сотрудника : ") ;

Качество = СписокКачеств.ВыбратьЭлемент("Выберите качество сотрудника : " ) ;

Возраст = СписокВозрастов.ВыбратьЭлемент("Выберите возраст сотрудника : ") ;

СтрокаВыводаЛет = СтрокаСЧислом(" ; %1 год; ; %1 года ; %1 лет ; %1 года ", Возраст, ВидЧисловогоЗначения.Количественное, "L = ru" ) ;

Вывод = СтрШаблон( " %1 - самый %2 в нашем коллективе! А, между прочим, ему уже целых %3 ! ",ФИО,Качество,СтрокаВыводаЛет );

Сообщить(Вывод);
+
9. spacecraft 24.06.22 10:15 Сейчас в теме
(8)
Возраст = СписокВозрастов.ВыбратьЭлемент("Выберите возраст сотрудника : ") ;

Возвраст получает не тип число, а элемент списка значения.
Число хранится в свойстве Значение у элемента.
СтрокаВыводаЛет = СтрокаСЧислом(" ; %1 год; ; %1 года ; %1 лет ; %1 года ", Возраст.Значение, ВидЧисловогоЗначения.Количественное, "L = ru" ) ;
Sharap09; +1
12. Sharap09 24.06.22 15:27 Сейчас в теме
(9)
Возвраст получает не тип число, а элемент списка значения.
Число хранится в свойстве Значение у элемента.

- спасибо огромное!, все сразу получилось )) - а по какому пути я могу посмотреть эту Функцию в Справке ? - что т о искала-искала и не могу найти
+
30. spacecraft 24.06.22 19:51 Сейчас в теме
(12) это нужно смотреть в СП (синтакс-помощник) Выбрать метод и нажать Ctrl+F1 (или использовать контекстное меню)
+
10. ishelper 24.06.22 13:50 Сейчас в теме
(8)
где у меня ошибка? - вроде код точно переписала
М-да, рождение программиста не состоялось - родился еще один 1Сник, который на каждую дурную хотелку (заказчика или свою) будет искать "готовую функцию 1С".
+
13. Sharap09 24.06.22 15:30 Сейчас в теме
(10) зачем вам нужно все сразу обругать??? ... я только начала учиться, учусь самостоятельно , и что ? - сразу такие выводы надо сделать ? :(
+
38. unknown181538 152 24.06.22 23:18 Сейчас в теме
(4) Надо же, какое существует...
+
6. ishelper 24.06.22 09:21 Сейчас в теме
(5)
До 10 лет тоже действует общее правило про "1 год / 2,3,4 года / X лет".
В принципе - верно, но в условиях данной задачи это неважно:
(1)
ФИО = СписокФИО.ВыбратьЭлемент("Какая Фамилия сотрудника", ФИО ) ;

Сотрудник младше 11 лет? Пока что это запрещено законом! ;-)
Sharap09; +1
7. FatPanzer 24.06.22 09:36 Сейчас в теме
(6) В задаче нет ни слова про сотрудников ))) В задаче есть коллектив. А про сотрудников это уже автор сама в своем коде отсебятину наваяла ;-)
(Пример того, как надо неправильно читать ТЗ)
Sharap09; +1
14. Sharap09 24.06.22 15:35 Сейчас в теме
(7) ну считайте, что ТЗ я сама задала... там детский текст - он мне не понравился и я его изменила и суть не изменилась от этого ...
-мне механизм программного кода понять важнее ...
+
15. Sharap09 24.06.22 15:40 Сейчас в теме
(6)
Сотрудник младше 11 лет? Пока что это запрещено законом! ;-)


- а кстати ))) в этой задачке в Списке Возрастов указан первый возраст число 10 ))) ... поэтому я исправила его на цифру 20 и 30 , 50 и дописала в Выборе Элемента "Сотрудника" - на решение задачи, надеюсь это никак не сказалось?
+
26. FatPanzer 24.06.22 17:23 Сейчас в теме
(15) Нет. Это в твоем решении возраст начинается с 10. А в условиях твоей же задачи ничего про это нет.
+
2. FatPanzer 24.06.22 01:14 Сейчас в теме
Для начала надо подумать - а в каком случае пишется "года", а в каком "лет"? От чего это зависит?
Sharap09; +1
3. ishelper 24.06.22 01:41 Сейчас в теме
(2)
а в каком случае пишется "года", а в каком "лет"? От чего это зависит?
Капитан Очевидность: "От возраста зависит!" :-)

Капитан Неочевидность: "От знания языка! И не языка 1С, а русского языка... с чем у современных программистов трудностей не меньше, чем с созданием алгоритмов."

Поэтому, так и быть, поможем новичку (с алгоритмом):
1. Если возраст меньше 20 - тогда "лет".
2. Если последняя цифра возраста равна 1 - "год".
3. Если эта цифра равна 2,3, или 4 - "года".
4. В остальных случаях - "лет".

Посмотрим, как автор переведет этот нехитрый алгоритм на язык 1С.
FatPanzer; PhoenixAOD; muskul; +3
5. FatPanzer 24.06.22 07:56 Сейчас в теме
(3)
1. Если возраст меньше 20 - тогда "лет".
Не совсем так. Если между 11 и 20. До 10 лет тоже действует общее правило про "1 год / 2,3,4 года / X лет".
Посмотрим, как автор переведет этот нехитрый алгоритм на язык 1С.
Научиться переводить закономерности в нехитрые алгоритмы - вопрос технический. А вот научиться видеть эти самые закономерности в условиях задачи - вот это намного важнее для программиста, особенно для начинающего.
Sharap09; +1
18. Sharap09 24.06.22 15:49 Сейчас в теме
(5)
Научиться переводить закономерности в нехитрые алгоритмы - вопрос технический. А вот научиться видеть эти самые закономерности в условиях задачи - вот это намного важнее для программиста, особенно для начинающего.


- А подскажите пожалуйста, как я могу научиться "Видеть" эти закономерности побыстрее?
- мне на что нужно в первую очередь смотреть?

- Незнакомых Функций так много и пока нет практики, чтобы их применить и запомнить ... просто сидеть и повторять их ...
+
21. FatPanzer 24.06.22 16:19 Сейчас в теме
(18) Причём тут функции? Речь же о русском языке, а не о программировании.
Sharap09; +1
23. Sharap09 24.06.22 17:04 Сейчас в теме
(21) Причём тут функции? Речь же о русском языке, а не о программировании. вообще то я о программировании интересуюсь а не о русском языке :(
+
24. FatPanzer 24.06.22 17:09 Сейчас в теме
(23) Не серди меня!!! Ты должна была понять о закономерностях русского языка, а потом эти понятия перенести в алгоритм!
Это называется - предметная область. То есть правила определения неких данных, обращение с которыми ты пытаешься автоматизировать!
+
32. spacecraft 24.06.22 20:06 Сейчас в теме
(18) для лучшего понимания рекомендую начать изучать алгоритмы программирования. Они как правило без привязки к конкретному языку, но могут и основываться на классических языках программирования.
Это никак не поможет в работе с формами 1С, но даст пространственное мышление заточенное на обработку данных. Без этого нормально программировать будет сложно.
+
17. Sharap09 24.06.22 15:43 Сейчас в теме
(3) Спасибо за подсказку! ... ну там в решении я таких Методов или Функций пока нигде не встречала!

( даже в Справке не могу найти :( )
+
27. FatPanzer 24.06.22 17:25 Сейчас в теме
(17) Попробуйте в с правке 1С поискать "Правила определения прогнозируемых надоев у коров английской породы в условиях Воронежской области".
Это же 1С - там на все случаи жизни справка есть!
+
28. Sharap09 24.06.22 17:32 Сейчас в теме
- « Попробуйте в с правке 1С поискать "Правила определения прогнозируемых надоев у коров английской породы в условиях Воронежской области". »
(27) глупо и не смешно вообще :( вам нравится людей на форуме обижать? -
+
29. FatPanzer 24.06.22 17:34 Сейчас в теме
(28) Мне нравится их учить сначала думать, прежде чем задавать глупые вопросы. Я же всегда переживаю, когда они выглядят глупо.
Ну и иногда подталкиваю их на правильную мысль. Не более.

А обижаться ты должна на себя, потому что не зная базовых конструкций любого языка программирования пришла на сайт к профессионалам. Ты же не приходишь в мишленовские рестораны к поварам с вопросом "как пользоваться мясорубкой"?
+
16. Sharap09 24.06.22 15:41 Сейчас в теме
(2) Спасибо большое! - в следующий раз буду знать как начинать правильно думать )
+
11. user1326147 24.06.22 15:05 Сейчас в теме
В школе не объясняют, что бывает единственное число, паукальное число и множественное число.
Ед и множественное как-то объясняют, а паукальное (не большое количество) умалчивают, к нему относится полтора, два, три, четыре.
Sharap09; +1
19. Sharap09 24.06.22 15:53 Сейчас в теме
(11)
В школе не объясняют, что бывает единственное число, паукальное число и множественное число.
Ед и множественное как-то объясняют, а паукальное (не большое количество) умалчивают, к нему относится полтора, два, три, четыре.


а какое это имеет значение в разрезе этой задачи и этого прогр. кода?


СтрокаВыводаЛет = СтрокаСЧислом(";%1 год;;%1 года;%1 лет;%1 года", Возраст,
ВидЧисловогоЗначения.Количественное, "L=ru")
+
20. FatPanzer 24.06.22 16:09 Сейчас в теме
(19) Большое. А если бы 1С не ввела специальный метод для таких случаев? А если вообще не язык 1С, а другой?
Программист должен понимать закономерность, в каких случаях надо применять то или иное написание (склонение) единицы измерения.
Sharap09; +1
22. Sharap09 24.06.22 17:03 Сейчас в теме
(20) - "А если бы 1С не ввела специальный метод для таких случаев? " ... -

- ... Наверно тогда существует решение без этого метода для таких случаев... интересно как это можно сделать ..

"А если вообще не язык 1С, а другой? "- тогда мы бы не встретились на этом форуме, а были бы на другом ...


- Программист должен понимать закономерность, в каких случаях надо применять то или иное написание (склонение) единицы измерения.
... ну чтоб это понимать, наверно сначала надо узнать все про эти единицы измерения ? и случаи применения ... а я эту Функцию даже в Справке найти не могу :(
+
25. FatPanzer 24.06.22 17:22 Сейчас в теме
(22)
Наверно тогда существует решение без этого метода для таких случаев... интересно как это можно сделать ..
Конечно существует. И любой программист знает что такое условное ветвление.

ну чтоб это понимать, наверно сначала надо узнать все про эти единицы измерения ?
Конечно. Для правильного написания склонения единицы измерения "килограмм" надо обязательно знать физические свойства эталона, знать его расшифровку с латыни, и понимать, что килограмм не всегда равен килограмму.
Sharap09; +1
31. spacecraft 24.06.22 20:00 Сейчас в теме
(25)
и понимать, что килограмм не всегда равен килограмму.

как раз килограмм всегда равен килограмму. Это масса. А вот вес может меняться, но это уже не килограмм :)
+
33. FatPanzer 24.06.22 21:38 Сейчас в теме
(31) И ты попал )) А теперь попробуй уронить себе на ногу килограмм пуха и килограмм чугуна...

Это же старая шутка, ну ты чо???
+
35. spacecraft 24.06.22 22:03 Сейчас в теме
(33) шутка конечно бородатая. Только ведь мы программисты? Осталось дополнить, что уронить нужно еще и в вакууме.
И тут происходит понимание, что оперируем не массой, а весом. А это уже килограмм-сила (ну или в Ньютонах).
Это как раз отличный пример постановки ТЗ клиентом.
+
37. FatPanzer 24.06.22 22:18 Сейчас в теме
(35) Почему сразу в вакууме? Я как выпускник физмата яростно протестую против таких левых условий испытаний!
А вдруг заказчик с Марса???
+
34. пользователь 24.06.22 21:58
Сообщение было скрыто модератором.
...
36. ishelper 24.06.22 22:03 Сейчас в теме
(29)
А обижаться ты должна на себя
"Женщина никому ничего не должна!" (с)

P.S. Тем более - обижаться на себя: для этого существуют гораздо более подходящие существа мужского пола, за примерами далеко никуда ходить не надо.

P.P.S. Опять я встрял в женскую ветку, да еще и необремененную возрастом и жизненным опытом... старый дурак.
FatPanzer; +1
Внимание! Тема сдана в архив

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот