Интересный код, жаль что не рабочий
let str = '4 98 4 6 1 32 4 65 4 3 5 7 89 7 10 1 36 8 57';
let current = '',
max = -Infinity, // нужен для первого цикла
min = Infinity; // нужен для первого цикла
for (let i = 0; i <= str.length; i++){ // *1
if (str[i] !== ' '){ // если это символ то
current += str[i]; // записываем его в виде строки '9' + '8' = '98'
}else{
if (min > +current) min = +current; // 4 > 98 стало +числом = false
if (max < +current) max = +current; // 4 < 98 true max = 98
current = ''; // current чист, начинаем сначала
}
}
document.write(`Минимум ${min}. Максимум ${max}.`);
*1 str.length = кол-ву элементов в строке, length возвращает человеческий счёт, начиная с единицы, а не с 0, а в строке как и в массиве счёт идёт с нуля, выходит последний цикл вызовет несуществующий символ строки, получим str[i] = undefined. Ошибка будет заметна, если в строке последний элемент будет минимальным по значению, и скрипт его не вернёт в качестве минимального.
dmitriyblecklov 0 / 0 / 0 Регистрация: 01.11.2008 Сообщений: 16 |
||||
1 |
||||
Найти наименьшее число в строке01.11.2008, 23:51. Показов 7712. Ответов 17 Метки нет (Все метки)
не как не могу сделать задачу суть такая дана строка симболов и надо найти наименьшее число Добавлено через 40 минут 36 секунд
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
01.11.2008, 23:51 |
Ответы с готовыми решениями: Найти натуральное наименьшее число n, факториал которого превышает число 4000 Найти в первом стеке максимальное число, а во втором – наименьшее число Найти наименьшее число, число M(N<M<2N) которое делятся на сумму цифр числа N(без остатка). Найти в строке число, содержащее наименьшее количество цифр 17 |
257 / 173 / 27 Регистрация: 17.10.2008 Сообщений: 770 |
|
02.11.2008, 00:05 |
2 |
Во первых во вторых Код if (Ord(s[i])>=4) and (Ord(s[i])<=57) then
1 |
0 / 0 / 0 Регистрация: 01.11.2008 Сообщений: 16 |
|
02.11.2008, 00:12 [ТС] |
3 |
я понел и исравил все равно прога не работает спасибо
0 |
257 / 173 / 27 Регистрация: 17.10.2008 Сообщений: 770 |
|
02.11.2008, 00:14 |
4 |
Что такое n:=n*10+m;
1 |
0 / 0 / 0 Регистрация: 01.11.2008 Сообщений: 16 |
|
02.11.2008, 00:18 [ТС] |
5 |
в результате прогона выдает нуль Добавлено через 2 минуты 8 секунд Добавлено через 1 минуту 18 секунд
0 |
257 / 173 / 27 Регистрация: 17.10.2008 Сообщений: 770 |
|
02.11.2008, 00:26 |
6 |
Давай проследим логику твою.
0 |
0 / 0 / 0 Регистрация: 01.11.2008 Сообщений: 16 |
|
02.11.2008, 00:36 [ТС] |
7 |
ну да Добавлено через 59 секунд Добавлено через 3 минуты 48 секунд
0 |
Arriba 257 / 173 / 27 Регистрация: 17.10.2008 Сообщений: 770 |
||||||||
02.11.2008, 00:41 |
8 |
|||||||
Вот написал чтоб работала твоя программа.
Но мне не очень понятно зачем тебе делать
вот эти строчки, если просто можно получить код символа.
0 |
0 / 0 / 0 Регистрация: 01.11.2008 Сообщений: 16 |
|
02.11.2008, 00:50 [ТС] |
9 |
я сначала получаю цифру
0 |
257 / 173 / 27 Регистрация: 17.10.2008 Сообщений: 770 |
|
02.11.2008, 00:53 |
10 |
введи asdf= получиш 97 токо проверил,всё нормуль.
0 |
0 / 0 / 0 Регистрация: 01.11.2008 Сообщений: 16 |
|
02.11.2008, 00:57 [ТС] |
11 |
n:=Ord(s[i]); что за код Добавлено через 3 минуты 4 секунды
0 |
257 / 173 / 27 Регистрация: 17.10.2008 Сообщений: 770 |
|
02.11.2008, 00:58 |
12 |
n:=Ord(s[i]); что за код В переменную n запихнуть номер i символа в строке s, по таблице “кодировки символов”.
0 |
0 / 0 / 0 Регистрация: 01.11.2008 Сообщений: 16 |
|
02.11.2008, 01:04 [ТС] |
13 |
я понел а зачем он там нужен
0 |
257 / 173 / 27 Регистрация: 17.10.2008 Сообщений: 770 |
|
02.11.2008, 01:06 |
14 |
Тогда напиши задание полностью и целиком, что нужно получить из слова?А то задание типо надо найти наименьшее число из строки символов. Добавлено через 1 минуту 34 секунды
0 |
0 / 0 / 0 Регистрация: 01.11.2008 Сообщений: 16 |
|
02.11.2008, 01:09 [ТС] |
15 |
из твоей строчки получить число 23 минимальное 86 максимальное
0 |
257 / 173 / 27 Регистрация: 17.10.2008 Сообщений: 770 |
|
02.11.2008, 01:11 |
16 |
всё понял блин, хотяб тогда пример привёл сразу.Понял зачем строчки n:=n*10+m;
0 |
0 / 0 / 0 Регистрация: 01.11.2008 Сообщений: 16 |
|
02.11.2008, 01:14 [ТС] |
17 |
сложно
0 |
Arriba 257 / 173 / 27 Регистрация: 17.10.2008 Сообщений: 770 |
||||
02.11.2008, 01:50 |
18 |
|||
Вот написал наконец то:можешь тестить.
Добавлено через 2 минуты 40 секунд
0 |
Возвращает минимальное значение элемента последовательности.
Синтаксис:
min(iterable, *[, key, default]) min(arg1, arg2, *args[, key])
Параметры:
iterable
– итерируемый объект,key
– должна быть функцией (принимает один аргумент), используется для порядка сравнения элементов итерируемого объекта. Функция вычисляется один раз.default
– значение по умолчанию, если итерируемый объект окажется пустым,arg1...argN
– позиционный аргумент,*args
– список позиционных аргументов.
Возвращаемое значение:
- наименьшее значение.
Описание:
Функция min()
возвращает минимальное значение элемента из итерируемого объекта или наименьшее из двух или более переданных позиционных аргументов.
- Если указан один позиционный аргумент, он должен быть итерируемым объектом (список, кортеж, словарь и т.д.).
- Если в функцию передается два или более позиционных аргумента, возвращается наименьшее из них.
- В случае, когда минимальное значение имеют сразу несколько аргументов, то возвращается первый по порядку элемент с наименьшим значением. Это согласуется с другими инструментами сохранения стабильности сортировки, такими как
sorted(iterable, key=keyfunc, reverse=True)[0]
иheapq.nlargest(1, iterable, key=keyfunc)
Аргумент key
– функция подобная той, которая используется в дополнительном методе списков list.sort()
. Функция принимает один аргумент и используется для упорядочивания элементов.
>>> x = ['4', '11', '6', '31'] # функция `min` сравнивает # числа как строки >>> min(x) # '11' # функция 'key=lambda i: int(i)' применяется # к каждому элементу списка 'x', преобразуя # строки в тип 'int' и теперь функция `min` # сравнивает элементы списка как числа. >>> min(x, key=lambda i: int(i)) # '4' # или другое применение функции 'key' выбор # списка с наименьшей суммой элементов >>> min([1,2,3,4], [3,4,5], key=sum) # [1,2,3,4]
Аргумент default
по умолчанию указывает объект, который нужно вернуть, если итерируемый объект пуст. Если итерация пуста и значение по умолчанию не указано, то возникает ошибка ValueError
.
# Значение по умолчанию >>> min([], default=0) # 0 >>> min([]) # Traceback (most recent call last): # File "<stdin>", line 1, in <module> # ValueError: min() arg is an empty sequence
Функция min()
сравнивает элементы, используя оператор <
. Поэтому, все передаваемые в них значения должны быть сопоставимы друг с другом и одного типа, иначе бросается исключение TypeError
При передаче в качестве аргумента текстовых строк, байтовых строк или байтовых массивов, а так же списка символов, минимальное значение будет выбираться исходя из порядка следования символов, в таблице соответствующей кодировки.
>>> x = list('abcdifgh') >>> min(x) # 'a'
Изменено в Python 3.8: Аргумент key
может быть None
.
Примеры нахождения минимального элемента в последовательности.
- Нахождение самой короткой строки в списке строк;
- Нахождение минимального значения в списке строк чисел;
- Нахождение минимального значения у вторых элементов кортежа;
- Определение индекса у минимального значения в списке;
- Смотрите хороший пример с числами, записанными в строке в описании функции
max()
.
# использование позиционных аргументов >>> min(5, 3, 6, 5, 6) # 3 # использование в качестве аргумента списка >>> min([1.2, 1.3, 1.5, 2, 5.52]) # 1.2 # комбинирование позиционных аргументов и списка # при передаче списка 'x' происходит его распаковка >>> x = (1.2, 1.3, 1.5, 2, 5.52) >>> min(5, 3, 5, *x) # 1.2
Нахождение самой короткой строки в списке строк.
Найдем самую короткую строку. В качестве ключа используем функцию len()
. Она посчитает количество символов в строке каждого переданного позиционного аргумента, а функция min()
выберет минимальное число. Строки можно передать например списком ['Jul', 'John', 'Vicky']
, результат будет тот же.
>>> min('Jul', 'John', 'Vicky', key=len) # 'Jul'
Нахождение min()
в списке строк, записанных как целые числа
Есть список строк чисел и необходимо найти минимум, как если бы они были целыми числами? В первом случае функция min()
выберет наименьшее значение списка исходя из лексикографической сортировки. Применим функцию lambda i: int(i)
в качестве ключа key
, которая преобразует строчные элементы списка в целые числа, тогда функция min()
выберет то что нам нужно.
>>> x = ['4', '11', '6', '31'] # неправильное решение >>> min(x) # '11' # правильное решение >>> min(x, key = lambda i: int(i)) # '4'
Нахождение min()
по второму элементу кортежа для
Например есть список кортежей. По умолчанию будет выбираться кортеж, у которого минимальное значение имеет первый элемент. Но мы хотим получить кортеж, у которого наименьшее значение имеет второй элемент! Для этого применим лямбда-функцию lambda i : i[1]
в качестве ключа key
, которая укажет функции min()
, из каких элементов кортежа выбирать минимальное значение.
>>> x = [(1,3), (2,4), (1,9), (4,1)] # происходит сравнение по # первым элементам кортежа >>> min(x) # (1,3) # меняем порядок сравнения >>> x = [(1,3), (2,4), (1,9), (4,1)] >>> min(x, key=lambda i : i[1]) # (4,1)
Определение индекса у минимального значения в списке.
Допустим есть список чисел и стоит задача, определить индекс минимального значения в этом списке.
Для решения этой задачи необходимо пронумеровать список, т.е. создать кортеж – индекс/число, а затем найти минимум при помощи функции min()
, а в качестве ключа этой функции использовать key=lambda i : i[1]
.
>>> lst = [5, 3, 1, 0, 9, 7] # пронумеруем список >>> lst_num = list(enumerate(lst, 0)) # получился список кортежей, в которых # первый элемент - это индекс значения списка, # а второй элемент - само значение списка >>> lst_num # [(0, 5), (1, 3), (2, 1), (3, 0), (4, 9), (5, 7)] # найдем минимум (из второго значения кортежей) >>> t_min = min(lst_num, key=lambda i : i[1]) >>> t_min # (3, 0) # индекс минимального значения списка >>> t_min[0] # 3
Skip to content
В этой статье вы узнаете, как использовать функцию МИН в Excel 2007-2019, найти минимальное значение, наименьшее значение по условию и выделить самое маленькое число в вашем диапазоне.
Сегодня мы расскажем вам, как использовать базовую, но очень важную функцию МИН в Excel. Вы увидите способы найти минимальное значение, в том числе исключая нули, абсолютный минимум и наименьшее значение с учётом условий. Кроме того, я покажу вам пошагово, как выделить цветом наименьшее число, а также подскажу, что делать, если ваша функция МИН возвращает ошибку вместо нужного результата.
- Функция Excel МИН – синтаксис
- 1. Нахождение наименьшего значения
- 2. Как найти самую раннюю дату
- 3. Поиск абсолютного минимума в Excel
- Как найти самое маленькое значение в Excel, исключая нули
- Нахождение минимума на основе условия
- Как подсветить наименьшее число в Excel
- Почему не работает функция МИН?
Итак, начнем 🙂
Функция Excel МИН – синтаксис
Функция МИН проверяет ваш диапазон данных и возвращает минимальное значение в этом наборе.
Синтаксис для Excel МИН следующий:
МИН (число 1; [число 2]; …)
число1, [число2],… – это серия чисел, откуда вы хотите получить минимум. Число1 – обязательный аргумент, в то время как [число 2] и следующие являются необязательными. В одной формуле МИН допускается до 255 аргументов. Аргументы могут быть числами, ссылками на ячейки и диапазонами.
Функция МИН является одной из самых простых в применении. Вот пару примеров, доказывающих это:
1. Нахождение наименьшего значения
Допустим, у вас есть фрукты на складе. Ваша задача – проверить, какие из них заканчиваются. Есть несколько способов это сделать:
1: Ввести каждое значение из столбца «Количество на складе» в формулу:
= МИН(366;476;398;982;354;534;408)
2: Сделать ссылки на каждую ячейку столбца Количество:
= МИН(В2; В3; В4; В5; В6; В7; В8)
3: Или просто сослаться на весь диапазон ячеек:
= МИН(В2:В8)
4: в качестве альтернативы вы можете создать именованный диапазон и использовать его вместо этого, чтобы избежать любых прямых ссылок:
2. Как найти самую раннюю дату
Представьте, что вы ждете несколько доставок и хотели бы быть готовыми к самой ближайшей. Как узнать самую раннюю дату в Excel? Легко! Используйте функцию МИН, следуя логике из примера 1:
Примените МИН и выберите даты, ссылаясь непосредственно на ячейки:
= МИН(В2:В8)
или на именованный диапазон:
= МИН(дата_поставки)
3. Поиск абсолютного минимума в Excel
Предположим, что у вас есть диапазон чисел, и вам нужно определить не просто самое маленькое из них, но найти абсолютный минимум или минимум по абсолютному значению (по модулю). Одна только МИН функция не сможет справиться с этим, поскольку она просто будет искать минимальное число. Здесь вам нужна вспомогательная функция, которая может конвертировать все отрицательные числа в положительные.
Есть ли готовое решение для этого случая? Вопрос был риторическим, в Excel есть решение любой задачи. Если у вас есть какие-либо сомнения, просто просмотрите наш блог. 🙂
Но вернемся к нашей задаче. Готовое решение для этого конкретного случая называется функцией ABS, которая возвращает абсолютное значение заданных вами чисел. Таким образом, комбинация функций МИН и ABS сделает свое дело. Просто введите следующую формулу в любую пустую ячейку:
{= МИН(ABS(А1:Е12))}
Важно! Вы заметили фигурные скобки вокруг формулы? Это признак того, что это формула массива, и ее нужно вводить с помощью комбинации клавиш Ctrl + Shift + Enter
, а не просто Enter
.
Как найти самое маленькое значение в Excel, исключая нули
Вам кажется, что вы уже знаете все о поиске минимальных значений в Excel? Не спешите с выводами, всегда есть чему поучиться. Например, как бы вы определили наименьшее ненулевое значение? Есть идеи? Не обманывай и не гугли, просто продолжай читать;)
Дело в том, что Excel МИН работает не только с положительными и отрицательными числами, но и с нулями. Если вы не хотите, чтобы нули были таким минимумом, вам нужна помощь функции ЕСЛИ (IF). Как только вы добавите ограничение, что ваш диапазон должен быть больше нуля, ожидаемый результат не заставит себя ждать. Вот пример формулы для использования:
{= МИН(ЕСЛИ(В2:В15>0;В2:В15))}
Вы, наверное, заметили фигурные скобки вокруг формулы массива. Просто помните, что вы не вводите их вручную. Они появляются в тот момент, когда вы нажимаете Ctrl + Shift + Enter
на клавиатуре.
Нахождение минимума на основе условия
Предположим, вам нужно найти наименьшее количество продаж определенного фрукта в списке. Другими словами, ваша задача – определить минимальное значение на основе некоторого критерия. В Excel условия обычно требуют использования функции ЕСЛИ. Все, что вам нужно сделать, это создать идеальную комбинацию МИН и ЕСЛИ для решения этой задачи:
Нажмите Ctrl + Shift + Enter, чтобы эта функция массива работала, и наслаждайтесь результатом.
Выглядит довольно легко, правда? И как вы определите минимум на основе 2 или более условий? Может быть, есть более простая формула для этой задачи, доступная в Excel? Читайте дальше, чтобы узнать ответ. 😉
Как подсветить наименьшее число в Excel
А что, если вам не нужно возвращать минимальное значение, а вы просто хотите найти его в своей таблице? Самый простой способ найти ячейку – выделить ее. И самый простой способ сделать это – применить условное форматирование. Это даже проще, чем создать формулу:
1 Создайте новое правило условного форматирования, щелкнув Условное форматирование -> Создать правило
2 Когда откроется диалоговое окно «Создание правила форматирования», выберите тип правила «Форматировать только первые или последние значения».
3 Поскольку задача состоит в том, чтобы найти одно-единственное наименьшее значение, выберите опцию «последним» в раскрывающемся списке и укажите 1 в качестве количества ячеек, которые нужно выделить.
Но что делать, если в вашей таблице снова есть ноль? Как игнорировать нули при выделении минимального значения? Не беспокойтесь, для этого случая тоже есть маленькая хитрость:
1. Создайте новое правило условного форматирования, выбрав опцию «Использовать формулу для определения форматируемых ячеек».
2. Введите это выражение в поле «Значения формата» для проверки условия:
=B2=МИН(ЕСЛИ($B$2:$B$15>0;$B$2:$B$15))
Где B2 – первая ячейка диапазона, в которой будет найдено самое маленькое значение
3. Выберите цвет ( Формат… -> Заливка) и нажмите ОК.
4. Наслаждайтесь 🙂
Почему не работает функция МИН?
В идеальном мире все формулы будут работать как часы и возвращать правильные результаты, когда вы нажмете Enter
. Но в мире, в котором мы живем, формулы иногда возвращают ошибку, а не результат, который нам нужен. Не беспокойтесь, сама ошибка всегда намекает на ее возможную причину. Вам просто нужно всмотреться в вашу формулу.
Исправление ошибки #ЗНАЧ! в формуле МИН
Как правило, вы получаете #ЗНАЧ! сообщение об ошибке, когда хотя бы одно из значений, использованных в формуле, неверно. Что касается МИН, это может произойти, когда один из аргументов поврежден, например, что-то не так с ячейками, которые использует формула.
Например, #ЗНАЧ! может появиться, если один из аргументов является ячейкой с ошибкой или в ссылке на ячейку есть опечатка.
Что может вызвать ошибку #ЧИСЛО! ?
Excel показывает ошибку #ЧИСЛО!, когда невозможно рассчитать вашу формулу. Обычно это происходит, когда числовое значение слишком велико или мало для отображения в Excel. В Excel допустимы номера от -2,2251E-308 до 2,2251E-308. Если один из ваших аргументов находится вне этого диапазона, функция вернет #ЧИСЛО!
Я получаю сообщение #ДЕЛ/0!, что делать?
Исправление #ДЕЛ/0! – это легко. Не делите на ноль! 🙂 Не шучу, это единственное решение этой проблемы. Проверьте диапазон ваших данных, исправьте ошибку #ДЕЛ/0!, и формула незамедлительно вернет правильный результат.
Ищете минимум, но получаете #ИМЯ?
Сообщение #ИМЯ? означает, что Excel не может распознать формулу или ее аргументы. Наиболее вероятная причина этого результата – опечатка. Вы можете либо неправильно написать формулу, либо указать неверные аргументы для получения такого результата.
Другая возможная причина этой проблемы лежит в именованном диапазоне. Итак, если вы ссылаетесь на несуществующий диапазон или в нем есть опечатка, вы увидите #ИМЯ? в ячейке с результатом.
Это были некоторые из способов найти минимум в Microsoft Excel с помощью функции МИН. Для вас я рассмотрел различные подходы, чтобы найти самое маленькое значение в Excel и найти абсолютный минимум. Вы можете считать эту статью своей шпаргалкой и использовать всякий раз, когда вам нужно найти минимальное число в зависимости от условия, чтобы предотвратить и исправить возможные ошибки.
Вот и все на сегодня. Пожалуйста, не стесняйтесь делиться своими мыслями и вопросами в разделе комментариев, я буду рад получить от вас обратную связь! 🙂
Еще полезная дополнительная информация:
Формулировка задачи:
не как не могу сделать задачу суть такая дана строка симболов и надо найти наименьшее число
Добавлено через 40 минут 36 секунд
вот текст программы не знаю почему не работает
Код к задаче: «Найти наименьшее число в строке»
textual
m:=Ord(s[i])-48; n:=n*10+m;
Полезно ли:
11 голосов , оценка 4.182 из 5