Помочь - значит, подать идею или указать на ошибки в вашем коде. Где ваш код? Нету? Значит, вы хотите, чтобы кто-то сделал работу (выполнил задание) за вас.
Пользователь вводит ряд чисел через пробел, вывести наибольшее из этих чисел. Помогите написать код
На котором языке?
1. Разделить числа в строке через сплит. На выходе массив чисел. В 1С есть соответствующая функция для строки, в JS есть .split(), в питоне есть тоже.
2. Взять первое число, как наибольшее.
3. Поиск максимального числа - это задача, в которой для неквантового компьютера нужно N итераций. Т.е. придется просмотреть весь массив.
4. Сравнить максимальное число и текущее число. Фактически "МаксЧисло = Макс(МаксЧисло, ЭлементМассива)", для строковых элементов массива нужно добавить "0+", чтобы произошло приведение типа.
5. После того, как все элементы массива пройдены, МаксЧисло будет содержать максимальный элемент массива.
Если обернуть в Вычислить("Макс("+Строка+")") - вполне сработает )))
да, только это будет решение задачи третьеклассника через производные. И без проверки вводимых значений можно получить ошибку.
(1) В дополнение к (3)
Фактически "МаксЧисло = Макс(МаксЧисло, ЭлементМассива)"
там, надо "МаксЧисло = Макс(МаксЧисло, Число(ЭлементМассива))" и обернуть в попытку. А в исключении выводить, что ЭлементМассива не является числом. Плюс в условии нигде не сказано, что числа натуральные, т.е. по факту могут быть дробные числа. Через что они вводятся? Через точку? Или через запятую?
Ну и если попадет туда абракадабра, то она будет в большинстве своем корректно обработана (если нет кавычек). Ну и для экранирования кавычек можно превентивно их заменить на двойные. А для разделителя, то если, допустим, это запятые, то никто не мешает эти запятые заменить на ".".
Но это - да, что-то типа мидла, которому уже надоело, но еще не совсем )))
Не взлетит, можно даже и не проверять - достаточно заглянуть в Синтакс-помощник:
Синтаксис:
Макс(<Значение1>,...,<ЗначениеN>)
Параметры:
<Значение1>,...,<ЗначениеN> (обязательный)
Тип: Число, Строка, Дата, Булево.
Набор параметров, который определяет перечень значений для сравнения.
Возвращаемое значение:
Тип: Число, Строка, Дата, Булево.
Возвращается максимальное из полученных значений.
Вы в своем коде передаете одно строковое значение, а не перечень. Естессно, оно же и будет возвращено как максимальное: "25,45,13,456,128,256,12,21,144"
Вы в своем коде передаете одно строковое значение, а не перечень. Естессно, оно же и будет возвращено как максимальное: "25,45,13,456,128,256,12,21,144"
Ты забыл про извращение - загрузить массив в ТЗ, ТЗ загнать в запрос, и пусть там уже SQL решает...
Я не настолько силен в извращениях (тем более - в архиизвращениях), поэтому мой алгоритм таков:
1. При помощи СтрРазложить() загнать строку в массив;
2. В цикле преобразовать значения массива из строк в числа;
3. Выгрузить массив в список значений;
4. Отсортировать список значений и последнее (или первое, по выбранному направлению) значение будет максимальным.