Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
28 сен 2024, 00:28

Верно ли, что в каждом отдельном ряду числа расположены в порядке убывания?

Автор Schredder, 07 дек 2020, 13:22

0 Пользователей и 1 гость просматривают эту тему.

Schredder

Добрый день!
Я написал задачу.
Условие выполнения задачи: Пользователь вводит ряд чисел через ПРОБЕЛ. Верно ли, что в каждом отдельном ряду числа расположены в порядке убывания? Например: 6543 2345 87654 2234 425 86457 Ответ: 6543 - нет 2345 - нет 87654 - да 2234 – нет, 425 - нет, 86457 - нет. Обработайте ситуацию, когда пользователь вводит несколько пробелов между числами.
Если ввожу ряд 6543 2345 87654 2234 86457, то выдаётся сообщение 6543 - да, 2345 - нет, 87654 - да, 2234 - нет, 425 - нет, а 86457 - вместо нет выдаёт да.
&НаКлиенте
Процедура Решить(Команда)
    Ряд = Объект.Ряд;
    Пробел = " ";
    Результат = Новый Массив;
    Результат = СтрРазделить(Ряд, Пробел, Ложь);
   
    Для СчётчикВнешний = 0 По Результат.Количество() - 1 Цикл
КоличествоЧисел = СтрДлина(Результат[СчётчикВнешний]);
МоёПредположение = Истина;
МаксЧисло = 0;
Для СчётчикВнутренний = 1 По КоличествоЧисел Цикл
            Цифра = Число(Сред(Результат[СчётчикВнешний], СчётчикВнутренний, 1));
Если СчётчикВнутренний = 1 Тогда
МаксЧисло = Цифра;
Продолжить;
КонецЕсли;
Если МаксЧисло <= Цифра Тогда
                Сообщить(Результат[СчётчикВнешний] + " - нет");
МоёПредположение = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;
Если МоёПредположение Тогда
        Сообщить(Результат[СчётчикВнешний] + " - да");
КонецЕсли;
КонецЦикла;
КонецПроцедуры

antoneus

МаксЧисло - в переменную записывается первая цифра и не меняется больше. В 86457 все последующие цифры меньше 8. В остальных, на которые получен ответ "нет" какая-нибудь из последующих цифр больше первой.

АлександрВладимирович

...
Для СчётчикВнутренний = 1 По КоличествоЧисел Цикл
Цифра = Число(Сред(Результат[СчётчикВнешний], СчётчикВнутренний, 1));
Если СчётчикВнутренний > 1 И МаксЧисло <= Цифра Тогда
Сообщить(Результат[СчётчикВнешний] + " - нет");
МоёПредположение = Ложь;
Прервать;
КонецЕсли;
МаксЧисло = Цифра;
КонецЦикла;
...

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск