Длинное и короткое слово

1. user1770847 11.04.22 21:07 Сейчас в теме
Извечный вопрос вновь повторяется, много видел похожих тем, но нигде нет ответа…
Необходимо найти самое длинное и короткое число через цикл для Каждого. Найти короткое и длинное необходимо через заранее созданные !!!переменные для длинного и короткого слова!!!, а далее сравнить строки между собой
Как обозначить эти переменные, чтобы потом от них отталкиваться?
Прошу помощи
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ishelper 11.04.22 21:13 Сейчас в теме
(1)
Как обозначить эти переменные, чтобы потом от них отталкиваться?
Архисложный вопрос... Если СамоеДлинное и СамоеКороткое почему-то не подходят, то можно использовать имена УАфриканца и УКитайца. ;-)
vv2; starik-2005; user1619761; user930087; +4 Ответить
3. tetraren 37 12.04.22 01:21 Сейчас в теме
Зачем переменные? Переменные - прошлый век.
Зачем "для каждого" ? "Для каждого" - для каждого, кто слаб духом!

Чтобы эта задачка стала хоть сколько-то интересной, можно решить вообще без переменных и без циклов.
&НаКлиенте
Процедура Команда1(Команда)
    Строки = "ааа
    |bbbb
    |c
    |ddd";
    
    Сообщить("Самая длинная = " + ДлиннаяКороткаяСтрока(СтрРазделить(Строки, Символы.ПС), 1));
    Сообщить("Самая короткая = " + ДлиннаяКороткаяСтрока(СтрРазделить(Строки, Символы.ПС), -1));
КонецПроцедуры

&НаКлиенте
Функция ДлиннаяКороткаяСтрока(Строки, Знак, Сч = 0)
    Если Строки.Количество()-1 = Сч Тогда
        Возврат Строки[Сч];
    Иначе
        Возврат МаксДлина(Строки[Сч], ДлиннаяКороткаяСтрока(Строки,Знак, Сч+1), Знак); 
    КонецЕсли; 
КонецФункции

&НаКлиенте
Функция МаксДлина(Строка1, Строка2, Множитель)
    Возврат ?(Множитель * СтрДлина(Строка1) > Множитель * СтрДлина(Строка2), Строка1, Строка2);
КонецФункции
Показать
4. ishelper 12.04.22 02:23 Сейчас в теме
(3)
Зачем "для каждого" ?
Постановка задачи? Не, не читал - это для слабых духом!
"Для каждого" - для каждого, кто слаб духом!
Нууу, ваш дух - силен! И пахнет... сильно!

Вот в чем смысл выделения одной строчки кода в функцию МаксДлина(), которая вызывается один раз?

Ааа, ну да - мы же 1Сники, а не какие-то там программисты!
5. starik-2005 3165 12.04.22 08:55 Сейчас в теме
(4)
Нууу, ваш дух - силен!
Типа суть в том, что обычные программисты используют циклы, а продвинутые вместо циклов используют рекурсию. А функция МаксДлина() - это уменьшение сложности. Но это - разговор столетних "батюшек" и молодых "монахов", так что все типа правы. В терминах Белокаменцева Программисты vs Слесаря ))))
6. starik-2005 3165 12.04.22 08:57 Сейчас в теме
(3)
Строки = "ааа
|bbbb
|c
|ddd";
Зачем так сложно? Можно просто запятыми разделить (ну или решетками и прочими буквами, которые не используются в оригинальном тексте".
7. tetraren 37 12.04.22 11:47 Сейчас в теме
(6) ну в задаче сказано "строки", значит разделитель - перенос строки. В самих строках могут быть решетки и прочие буквы, и тогда программа будет работать неправильно.
Оставьте свое сообщение

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