Как найти максимум информатика

Skip to content

Функция МАКС в Excel: как найти максимальное значение

В этой статье объясняется функция МАКС с множеством примеров формул, которые показывают, как найти наибольшее значение в Excel и выделить наибольшее число на листе.

МАКС – одна из самых простых и простых в использовании функций Excel. Тем не менее, у нее есть несколько хитростей, которые дадут вам большие возможности. Скажите, как вы используете функцию МАКС с условиями? Или знаете, как извлечь абсолютное наибольшее значение? Мы предложим несколько решений для этих и других аналогичных задач.

  • Функция МАКС — основные сведения
  • Найти максимальное в группе чисел
  • Вычисляем максимум в несмежных диапазонах
  • Как получить максимальную (последнюю) дату
  • Максимальное значение с условиями
  • Наибольшее число без учёта нулей
  • Как найти максимальное число игнорируя ошибки
  • Определяем абсолютное максимальное значение
  • Максимум применительно к тексту
  • Вычисление наибольшей разницы
  • Выводим адрес ячейки с максимальным значением
  • Как выделить цветом самое большое число
  • Почему не получается?

Функция МАКС

Функция МАКС в Excel возвращает наибольшее значение в указанном вами наборе данных.

Синтаксис у неё следующий:

МАКС(число1; [число2];…)

Где число может быть представлено числовым значением, массивом, именованным диапазоном, ссылкой на ячейку или диапазоном, содержащим числа.

Число1 является обязательным, число2 и последующие аргументы необязательны.

Чтобы создать самую простую формулу, чтобы выбрать максимальное значение в таблице Excel, вы можете вводить числа непосредственно в список аргументов, например:

=МАКС(1; 2; 3)

На практике это – очень редкий случай. По большей части вы будете иметь дело с диапазонами и ячейками.

Самый быстрый способ найти наибольшее значение в диапазоне, – это:

  1. В ячейке введите = МАКС(
  2. Выберите диапазон чисел с помощью мыши.
  3. Введите закрывающую скобку.
  4. Жмём Enter для завершения.

Например, чтобы найти максимальное значение в диапазоне A1: A6, формула будет выглядеть следующим образом:

=МАКС(A1:A6)

Если ваши числа находятся в непрерывном диапазоне (как в этом примере), вы можете заставить Excel автоматически создать формулу МАКС. Вот как:

  1. Выделите ячейки со своими числами.
  2. На вкладке «Главная» в группе «Форматы» нажмите «Автосумма» и выберите «Максимум» из раскрывающегося списка.

5 фактов, которые нужно знать о функции МАКС –

  1. В текущих версиях Excel она может обрабатывать до 255 аргументов.
  2. Если аргументы не содержат ни одного числа, возвращается ноль.
  3. Если аргументы содержат одно или несколько значений ошибки, возвращается ошибка.
  4. Пустые ячейки игнорируются.
  5. Обрабатываются логические значения и текстовые представления чисел, предоставленные непосредственно в списке аргументов (ИСТИНА приравнивается к 1, ЛОЖЬ – к 0). Если используется ссылка на ячейку с логическим или текстовым значением, то они игнорируются.

Как найти в Excel наибольшее число – примеры.

Ниже мы покажем несколько стандартных вариантов использования функции МАКС. 

Во многих случаях существует несколько различных решений для одной и той же задачи, поэтому я рекомендую вам протестировать все варианты, чтобы выбрать наиболее подходящий.

Как выбрать максимальное значение в группе чисел.

Чтобы в Excel извлечь наибольшее число в группе чисел, передайте эту группу функции МАКС в качестве ссылки на диапазон. Диапазон может содержать любое количество строк и столбцов. Например, чтобы получить максимальное значение из C2: E7, используйте эту простую формулу:

=МАКС(C2:E7)

Предположим, у нас есть сведения об учениках с их оценкой, но некоторые из значений оценки являются логическими, текстовыми, а некоторые пока вовсе не имеют оценки.

Применим функцию:

 = МАКС(B2:B10)

Как видите, игнорируются ячейки с текстом, а также пустые, логические значения приравниваются к нулю, а затем вычисляется максимальное число, как показано в таблице Excel выше.

Наибольшее значение в несмежных ячейках или диапазонах Excel

Чтобы осуществить поиск в несмежных ячейках и диапазонах, необходимо включить в формулу ссылку на каждый отдельный адрес. Рассмотрим пошагово:

  1. Начните вводить функцию МАКС в ячейку.
  2. После того, как вы ввели открывающую скобку, нажмите и удерживайте Ctrl  и выберите мышкой нужные ячейки и диапазоны.
  3. Отпустите Ctrl и введите закрывающую круглую скобку.
  4. Нажмите Enter.

Вы получите формулу максимального числа в Excel, подобную этому:

=МАКС(C2:E2;C7:E7)

Как получить наибольшую (последнюю) дату в Excel

Во внутренней системе Excel даты – это не что иное, как порядковые номера дней, поэтому функция МАКС обрабатывает их без проблем.

Например, чтобы найти последнюю дату доставки из C2: C7, запишите обычную формулу, которую вы использовали бы для чисел:

=МАКС(C2:C7)

Поскольку дата – это также число, всё работает замечательно.

Максимальное значение с условиями.

Довольно часто случается, что из большого объёма данных Excel нужно выбрать максимальное значение из какой-то его части. К примеру, найти самую большую партию какого-то определённого товара в огромном списке продаж. Или же найти наивысшую оценку по какому-то предмету среди большого набора данных оценок, набранных учащимися определенного класса по нескольким предметам в школе.

Если вы хотите получить максимальное значение Excel с учётом каких-то условий, то вы можете выбрать из нескольких предложенных ниже формул. Чтобы убедиться, что все они возвращают одинаковый результат, мы протестируем их на одном и том же наборе данных.

Задача: мы хотим найти самую большую продажу для определенного товара, указанного в F1.

МАКС + ЕСЛИ

Если вы ищете решение, которое работает во всех версиях Excel, используйте функцию ЕСЛИ для проверки условия, а затем передайте полученный массив в функцию:

=МАКС(ЕСЛИ(B2:B15=F1; C2:C15))

Чтобы это работало, необходимо нажать Ctrl + Shift + Enter одновременно, чтобы ввести как формулу массива. Если все сделано правильно, Excel заключит ваше выражение в {фигурные скобки}, что является визуальным указанием на формулу массива.

Также можно оценить несколько условий одновременно, о чем мы поговорим далее.

МАКС + СУММПРОИЗВ

Если вам не нравится использовать формулы массива в ваших листах, объедините МАКС с функцией СУММПРОИЗВ, которая умеет работать с массивами:

=СУММПРОИЗВ(МАКС((B2:B15=F1)*(C2:C15)))

МАКСЕСЛИ

В Excel 2019 и Office 365 есть специальная функция МАКСЕСЛИ, которая предназначена для поиска наибольшего значения по 126 критериям.

В нашем случае используется только одно условие, поэтому формула очень проста:

=МАКСЕСЛИ(C2:C15;B2:B15;F1)

На приведенном ниже скриншоте показаны все 3 формулы в действии:

Выбираем максимальное значение в Excel без учета нулей

Фактически, это разновидность условного МАКС, рассмотренного в предыдущем примере. Чтобы исключить нули, используйте логический оператор «не равно» и поместите выражение «<> 0» либо в критерий функции МАКСЕСЛИ, либо в конструкцию МАКС + ЕСЛИ.

Как вы понимаете, проверка этого условия имеет смысл только в случае наличия отрицательных чисел. Для положительных чисел эта проверка излишняя, потому что любое положительное число больше нуля.

Чтобы попробовать, давайте найдем самую маленькую скидку в диапазоне C2:C7. Поскольку все скидки представлены отрицательными числами, наименьшая скидка фактически является наибольшим значением.

Обязательно нажмите Ctrl + Shift + Enter, чтобы правильно заполнить эту формулу массива:

=МАКС(ЕСЛИ(C2:C7<>0; C2:C7))

А это обычная формула –

=МАКСЕСЛИ(C2:C7;C2:C7;”<>0″)

И вот что у нас получилось:

Как найти максимальное значение, игнорируя ошибки

Когда вы работаете с большим объемом данных, управляемых различными формулами, есть вероятность, что некоторые из них приведут к ошибкам. Соответственно, функция МАКС тоже вернет ошибку.

В качестве обходного пути можно использовать МАКС вместе с ЕОШИБКА. Учитывая, что вы ищете в диапазоне A1: B5, формула принимает следующую форму:

=МАКС(ЕСЛИ(ЕОШИБКА(A1:B6); “”; A1:B6))

Чтобы упростить формулу, используйте функцию ЕСЛИОШИБКА вместо комбинации ЕСЛИ + ЕОШИБКА. Это также сделает логику более очевидной – если есть ошибка в A1:B6, замените ее пустой строкой (”), а затем вычислите самое большое значение в диапазоне:

=МАКС(ЕСЛИОШИБКА(A1:B6; “”))

Неудобство состоит в том, что нужно не забывать нажимать Ctrl + Shift + Enter, потому что это работает только как формула массива.

В Excel 2019 и Office 365 функция МАКСЕСЛИ может быть хорошим решением при условии, что ваш набор данных содержит хотя бы одно положительное число или нулевое значение:

=МАКСЕСЛИ(A1:B6;A1:B6;”>=0″)

Поскольку формула выполняет поиск максимального значения с условием «больше или равно 0», она не будет работать для набора данных, состоящего исключительно из отрицательных чисел.

Также идеально подходит функция АГРЕГАТ, которая может выполнять ряд операций и игнорировать значения ошибок:

=АГРЕГАТ(4;6;A1:B6)

Число 4 в первом аргументе предписывает выполнить поиск максимального числа, шестёрка во втором аргументе – это параметр «игнорировать ошибки», а A1: B6 – ваш целевой диапазон.

Все формулы возвращают одинаковый результат:

Как найти абсолютное наибольшее значение в Excel

При работе с диапазоном положительных и отрицательных чисел иногда может потребоваться найти максимальное абсолютное значение независимо от знака.

Первая идея, которая приходит в голову, – получить абсолютные значения всех чисел в диапазоне с помощью функции ABS и передать их в МАКС:

{= МАКС(ABS( диапазон ))}

Это формула массива, поэтому не забудьте подтвердить ее с помощью Ctrl + Shift + Enter. Еще одно предостережение: он работает только с числами и приводит к ошибке в случае нечисловых данных.

Не нравится это решение? Тогда давайте построим что-нибудь более жизнеспособное 🙂

Что, если мы найдем минимальное значение, изменим или проигнорируем его знак, а затем вычислим вместе со всеми другими числами? Да, это будет отлично работать как обычная формула. В качестве дополнительного бонуса это отлично обрабатывает текстовые записи и ошибки.

С исходными данными в A1: B5 расчёты выглядят следующим образом.

Формула массива (заполняется с помощью Ctrl + Shift + Enter):

=МАКС(ABS(A1:B5))

Обычная формула (заполняется клавишей Enter):

=МАКС(МАКС(A1:B5); -МИН(A1:B5))

или же

=МАКС(МАКС(A1:B5); ABS(МИН(A1:B5)))

На скриншоте ниже показаны результаты:

Вернуть максимальное абсолютное значение с сохранением знака

В некоторых ситуациях может потребоваться найти наибольшее абсолютное значение в таблице Excel, но вернуть число с исходным знаком, а не его абсолютное значение.

Предполагая, что числа находятся в ячейках A1: B5, вот выражение, которое следует использовать:

=ЕСЛИ(ABS(МАКС(A1:B5))>ABS(МИН(A1:B5)); МАКС(A1:B5);МИН(A1:B5))

Сложная на первый взгляд логика довольно проста. Сначала вы находите наибольшее и наименьшее числа в диапазоне и сравниваете их абсолютные значения. Если абсолютное (без учёта знака) максимальное значение больше абсолютного минимального значения, возвращается это наиболшее число, иначе – наименьшее число. 

Поскольку формула возвращает исходное, а не абсолютное значение, информация о знаке сохраняется (см. скриншот выше).

Максимальное значение применительно к тексту.

Предположим, у нас есть список имен, и нам нужно вычислить их максимальную длину, то есть найти наибольшее количество символов в ячейке Excel.

Здесь мы должны применить функцию ДЛСТР для вычисления длины имени.

=ДЛСТР(А2)

А затем  применим функцию МАКС, чтобы узнать максимальную длину ФИО.

=МАКС(B2;B13)

А можно обойтись без дополнительного столбца и вычислить максимальную длину текстового значения в одной ячейке. Для этого нужно объединить эти формулы, вложив ДЛСТР в МАКС:

=МАКС(ДЛСТР(A2:A13))

Учтите, что это формула массива. Ведь можно работать не только с диапазоном, но и с массивом числовых значений, который формируется другой функцией.

Вычислить наибольшую разницу в сумме.

Предположим, нам нужно вычислить наибольшую разницу в сумме за любой смежный месяц для каждого товара. Или, выражаясь иначе, найти максимальное изменение продаж за месяц.

 Ниже представлена ​​таблица Excel с небольшой выборкой данных за 4 месяца.

Если решать проблему «в лоб», то можно использовать функцию ЕСЛИ со множеством условий:

=ЕСЛИ(И((МАКС(B2:C2)-МИН(B2:C2))>(МАКС(C2:D2)-МИН(C2:D2)),  (МАКС(B2:C2)-МИН(B2:C2))>(МАКС(D2:E2)-МИН(D2:E2))), МАКС(B2:C2)-МИН(B2:C2), ЕСЛИ((МАКС(C2:D2)-МИН(C2:D2))>(МАКС(D2:E2)-МИН(D2:E2)), МАКС(C2:D2)-МИН(C2:D2),МАКС(D2:E2)-МИН(D2:E2)))

Но при помощи функции МАКС можно значительно упростить расчет и не пользоваться такой длинной и сложной конструкцией.

Используя функцию ABS, мы будем искать максимальное изменение вне зависимости от знака. Попробуйте заменить большую формулу этой:

=МАКС(ABS(B2-C2);ABS(C2-D2);ABS(D2-E2))

Как вы можете видеть в таблице ниже, этот вариант намного проще и возвращает те же результаты.

Как найти адрес ячейки Excel с максимальным числом.

Есть ли решение, которое сообщит адрес ячейки с наибольшим числом, а не само число? То есть, если A4 равно 9 и это значение является самым большим, как мне составить формулу, которая возвратит координаты A4 вместо 9?

Вы можете использовать функции ЯЧЕЙКА , ИНДЕКС и ПОИСКПОЗ в сочетании с функцией МАКС, чтобы вернуть адрес ячейки с наибольшим значением.

Например, если вы хотите найти ячейку с наивысшим значением в столбце от А1 до А7, вы можете использовать следующий расчёт:

=ЯЧЕЙКА(“адрес”;ИНДЕКС(A1:A7;ПОИСКПОЗ(МАКС(A1:A7);A1:A7;0)))

Получаем результат в виде абсолютной ссылки $А$4, которая указывает на самое большое число из этого диапазона.

Однако учтите, что это выражение работает только с одним столбцом.

А вот еще альтернативные варианты поиска адреса наибольшего числа по столбцу, из которых вы можете выбрать наиболее подходящий для себя:

Формула массива –

{=АДРЕС(ПОИСКПОЗ(МАКС(F1:F7);F1:F7;0);СТОЛБЕЦ(F1:F7);4)}

Обычная формула, в которой явным образом нужно указать столбец:

=”F”&ПОИСКПОЗ(МАКС(F1:F7);F1:F7;0)

Ещё одна формула массива –

{=ЯЧЕЙКА(“address”;ИНДЕКС(F2:F7;ПОИСКПОЗ(МАКС(F2:F7);F2:F7;0)))}

На скриншоте вы видите, что все они возвращают один и тот же адрес:

И ещё одна формула массива для вывода адреса, которая работает с диапазоном из нескольких строк и столбцов:

{=АДРЕС(МАКС(ЕСЛИ((C2:E7=МАКС(C2:E7));СТРОКА(C2:E7))); МАКС(ЕСЛИ((C2:E7=МАКС(C2:E7));СТОЛБЕЦ(C2:E7))))}

В данном случае, как видите, мы ищем адрес наибольшего числа в двумерном диапазоне C2:E7.

Напомню, что формула массива вводится с использованием комбинации клавиш Ctrl + Shift + Enter.

Как выделить наибольшее значение в Excel

В ситуации, когда вы хотите определить самое большое число в исходном наборе данных, самый быстрый способ – выделить его с помощью условного форматирования Excel. Приведенные ниже примеры покажут вам два разных варианта действий.

Выделите максимальное число в диапазоне Excel

В Microsoft Excel есть встроенное правило для форматирования максимальных чисел в диапазоне, которое идеально соответствует нашим потребностям. Вот как можно применить его:

  1. Выберите диапазон чисел (в нашем случае C2: E8).
  2. На вкладке «Главная» в группе «Стили» щелкните «Условное форматирование»> «Новое правило».
  3. В диалоговом окне «Новое правило форматирования» выберите «Форматировать только первые или последние значения».
  4. На нижней панели выберите «первым» из раскрывающегося списка и введите 1 в поле рядом с ним (это означает, что вы хотите выделить только одну ячейку, содержащую наибольшее значение).
  5. Нажмите кнопку «Формат» и выберите стиль оформления.
  6. Дважды щелкните OK, чтобы закрыть оба окна.

Как выделить цветом максимальное число в каждой строке

Поскольку нет встроенного правила, чтобы выделить наибольшее значение из каждой строки таблицы Excel, вам придется настроить собственное на основе функции МАКС. Вот как:

  1. Выберите все строки, которые вы хотите проверить (C3:E8).
  2. Кликните Новое правило > Использовать формулу.
  3. В поле Форматировать значения, запишите:

=C3=МАКС($C3:$E3)

Где C3 – крайняя верхняя левая ячейка, а $C3:$E3 – координаты первой строки. Чтобы правило работало, обязательно зафиксируйте координаты столбца в диапазоне знаком $.

  1. Нажмите кнопку «Формат» и выберите нужный формат.
  2. Дважды щелкните ОК.

Кончик. Таким же образом вы можете выделить максимальное значение в каждом столбце. Шаги в точности такие же, за исключением того, что вы пишете условие для диапазона первого столбца и фиксируете координаты строки:

=C2=МАКС(C$2:C$7)

Дополнительные сведения см. в статье « Как создать правило условного форматирования на основе формул» .

Почему не получается найти наибольшее число?

МАКС – одна из самых простых в использовании функций Excel. Если вопреки всем ожиданиям она не работает, то, скорее всего, это одна из следующих проблем:

МАКС возвращает ноль

Если обычная формула МАКС возвращает 0, даже если в указанном диапазоне есть числа явно большие, скорее всего, эти числа отформатированы как текст. 

Это особенно актуально, когда вы запускаете функцию МАКС для данных, получаемых другими формулами или же импортированных из других программ. 

Вы можете проверить это с помощью функции ЕЧИСЛО, например:

=ЕЧИСЛО(A1)

Если приведенная выше формула возвращает ЛОЖЬ, то значение в A1 не является числовым. Это означает, что вы должны устранять неполадки с исходными данными, а не с формулой.

МАКС возвращает значение #Н/Д, #ЗНАЧ или другую ошибку.

Пожалуйста, внимательно проверьте указанные ячейки. Если какая-либо из указанных ячеек содержит ошибку, поиск максимума приведет к той же ошибке. Чтобы обойти это, посмотрите, как получить максимальное значение, игнорируя все ошибки .

Вот как можно найти максимальное значение в Excel. Благодарю вас за чтение!

Функция ЕСЛИОШИБКА – примеры формул В статье описано, как использовать функцию ЕСЛИОШИБКА в Excel для обнаружения ошибок и замены их пустой ячейкой, другим значением или определённым сообщением. Покажем примеры, как использовать функцию ЕСЛИОШИБКА с функциями визуального…
Сравнение ячеек в Excel Вы узнаете, как сравнивать значения в ячейках Excel на предмет точного совпадения или без учета регистра. Мы предложим вам несколько формул для сопоставления двух ячеек по их значениям, длине или количеству…
проверка правильности ввода Excel при помощи функции ЕСЛИ Как проверить правильность ввода данных в Excel? Подтверждаем правильность ввода галочкой. Задача: При ручном вводе данных в ячейки таблицы проверять правильность ввода в соответствии с имеющимся списком допустимых значений. В случае правильного ввода в отдельном столбце ставить…
ЕСЛИ + СОВПАД текст Функция ЕСЛИ: проверяем условия с текстом Рассмотрим использование функции ЕСЛИ в Excel в том случае, если в ячейке находится текст. СодержаниеПроверяем условие для полного совпадения текста.ЕСЛИ + СОВПАДИспользование функции ЕСЛИ с частичным совпадением текста.ЕСЛИ + ПОИСКЕСЛИ…
функция если Визуализация данных при помощи функции ЕСЛИ Функцию ЕСЛИ можно использовать для вставки в таблицу символов, которые наглядно показывают происходящие с данными изменения. К примеру, мы хотим показать в отдельной колонке таблицы, происходит рост или снижение продаж.…
ЕСЛИ с датами 3 примера, как функция ЕСЛИ работает с датами. На первый взгляд может показаться, что функцию ЕСЛИ для работы с датами можно применять так же, как для числовых и текстовых значений, которые мы только что обсудили. К сожалению, это…

Максимальный элемент массива в Pascal

Часто
встречаются задачи, где необходимо найти максимальный элемент в массиве.
Рассмотрим общий алгоритм решения такой задачи.
Первое, что придётся сделать – создать массив. Как нам уже известно, нужно использовать
цикл с параметром. Также удобнее будет создать массив случайным образом, если в
условии задачи не оговорён способ задания массива.
Алгоритм нахождения максимального элемента массива выполняется следующим
образом.
Сначала указываем, что первый элемент массива считается максимальным, иначе
говоря – Max = A[i].
Потом начинаем процесс сравнивания последующих элементов массива с максимальным
элементом в массиве.
Возможно два случая :

1.         
Если максимальный элемент больше следующего, то ничего не меняем.

2.         
Если максимальный элемент меньше следующего, то он становиться
максимальным.

После
этого выводим на экран максимальный элемент. 

Блок-схема максимальный элемент массива

https://3.bp.blogspot.com/-H2M0HM-t-2E/TyUejraPMwI/AAAAAAAAAPc/tEDvXgoA3pA/s1600/%D0%9C%D0%B0%D0%BA%D1%81%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9+%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82+%D0%BC%D0%B0%D1%81%D1%81%D0%B8%D0%B2%D0%B0.png

Программа максимальный элемент массива Pascal

Ниже представлен текст программы на языке Pascal, как найти
максимальный элемент массива. Как было указанно в алгоритме выше, сначала
создается сам массив (в моем случает любые целые числа от 0 до 100
включительно).

Program
Max_element_massiva ;

Var i, n,
max : integer ;

    A : array
[1..100] of integer;

Begin

    
Writeln
(‘Введите количество элементов массива’) ;

    
Readln(N)
;

    
Randomize;

     For i
:= 1 to N do

         
begin

              
A[i] := Random(100);

              
Write(A[i]);

         
end;

     Max :=
A[1];

     For i
:= 2 to N do

         
if A[i]>Max then Max := A[i];

     Writeln(‘Максимальный
Элемент массива = ‘,Max) ;

    
Readln ;

End.

 В этой статье рассмотрены два способа нахождения минимального (максимального) элемента массива, а также задачи с применением этих способов.

1 способ

Задача 1: Дан одномерный массив, состоящий из n целых чисел. Найти минимальный элемент массива. В первой строке вводится количество чисел в массиве n. Затем выводятся сами числа, заданные случайным образом. В третьей строке выводится результат: минимальный элемент массива.

Исходные данные:

Результат:

10
5  -2  14  7  -4  23  0  8  6  -1

-4

10
0  4  5  2  77  62  4  8  0  45

0

Считаем, что первый элемент массива – минимальный.  Затем, сравниваем, начиная со второго до последнего все элементы массива с минимальным. Используем для этого цикл. Если очередной элемент на каком-то шаге цикла оказывается меньше минимального, то значение минимального изменяем, присвоив ему значение этого очередного элемента. По окончании цикла выводим результат: минимальный элемент.

program min1;
var a:array[1..100] of integer;
i,min,n:integer;
begin
//заполнение массива и вывод массива в строчку
readln(n);
for i:=1 to n do begin
a[i]:=random(-100,100);
write(a[i],’ ‘);
end;
//нахождение минимального элемента массива
min:=a[1];
for i:=2 to n do
if min>=a[i] then min:=a[i];
//вывод результата
writeln;
write(min);
end.

Заметим, что для нахождения максимального элемента массива достаточно заменить имя переменной min на max и знак >= на знак <=.

Задача 2: Дан одномерный массив, состоящий из n целых чисел. Найти индекс минимального элемент массива. В первой строке вводится количество чисел в массиве n. Затем выводится массив, заданный случайным образом. В третьей строке выводится результат: индекс минимального элемент массива.

Исходные данные:

Результат:

10
5  -2  14  7  -4  23  0  8  6  -1

5

10
0  4  5  2  77  62  4  8  0  45

9

Если в задаче требуется найти индекс минимального (максимального), то вводим переменную imin, в которую будем запоминать индекс минимального (максимального), причем первоначально ее значение равно 1.

program min2;
var a:array[1..100] of integer;
i,min,n,imin:integer;
begin
//заполнение массива и вывод массива в строчку
readln(n);
for i:=1 to n do begin
a[i]:=random(-100,100);
write(a[i],’ ‘);
end;
//нахождение индекса минимального элемента массива
min:=a[1];
imin:=1;
for i:=2 to n do
if min>=a[i] then begin
imin:=i;
min:=a[i];
end;
//вывод результата
writeln;
write(imin);
end.

Если в массиве есть несколько равных между собой минимальных элементов, то данная программа найдет номер последнего (правого) элемента. Для того чтобы найти индекс первого (левого) элемента достаточно изменить знак  >= на строгий знак >.
Эту программу можно оптимизировать, так как, зная индекс минимального элемента, можно найти значение минимального элемента массива. Значит, переменная min не нужна:

var a:array[1..100] of integer;
i,n,imin:integer;

Фрагмент нахождения индекса минимального элемента массива выглядит так:

imin:=1;
for i:=2 to n do
if a[imin]>=a[i] then imin:=i;

Задача 3: Дан одномерный массив, состоящий из n целых чисел. Найти количество минимальных элементов массива. В первой строке вводится количество чисел в массиве n. Затем выводится массив, заданный случайным образом. В третьей строке выводится результат: количество минимальных элементов массива.

Исходные данные:

Результат:

10
5  -2  14  7  -4  23  0  8  -4  -1

2

10
0  4  5  2  77  0  4  8  0  45

3

program min3;
var a:array[1..100] of integer;
i,min,n,k:integer;
begin
//заполнение массива и вывод массива в строчку
readln(n);
for i:=1 to n do begin
a[i]:=random(-5,5);
write(a[i],’ ‘);
end;
//нахождение минимального элемента массива
min:=a[1];
for i:=2 to n do
if min>=a[i] then
min:=a[i];
//считаем количество равных элементов
k:=0;
for i:=1 to n do
if a[i]=min then k:=k+1;
//вывод результата
writeln;
write(k);
end.

Задача 4: Дан целочисленный массив из n элементов. Элементы массива могут принимать целые значения от 0 до 1000. Напишите программу, находящую минимальное значение среди элементов массива, которые имеют чётное значение и не делятся на четыре. Гарантируется, что в исходном массиве есть хотя бы один элемент, значение которого чётно и не кратно четырем. В первой строке вводится количество чисел в массиве n. Затем выводится массив, заданный случайным образом. В третьей строке выводится результат: минимальное значение среди элементов массива, которые имеют чётное значение и не делятся на четыре.

Исходные данные:

Результат:

10
5  -2  14  7  -4  22  0  -8  -6  -1

-6

10
0  4  5  -10  77  0  4  -12  0  45

-10

В этой задаче первый способ нахождения минимального не подойдет. Первый элемент массива может оказаться меньше, чем минимальный четный и не кратный четырем и программа выведет неверный результат. Каким должно быть начальное значение переменной min? Его нужно выбрать таким, чтобы для первого же «подходящего» элемента выполнилось условие a[i] < min, и это «временное» начальное значение было бы заменено на реальное. Такое «подходящее» обязательно будет, так как это гарантировано условием задачи. Оно должно быть большим и таким, какое не может быть по условию задачи, например, 1001.

Кроме того заметим, что задавать элементы массива нужно с клавиатуры, чтобы обеспечить условия задачи.

Итак, находим минимальный элемент вторым способом.

2 способ

Записываем в переменную min значение 1001. Затем в цикле просматриваем все элементы массива, с первого до последнего. Если остаток от деления очередного элемента на 2 равен 0 и остаток от его деления на 4 не равен нулю и значение элемента меньше, чем значение переменной min, сохраняем в переменную min значение очередного элемента массива. После окончания работы цикла выводим значение переменной min.

program min4;
var a:array[1..100] of integer;
i,min,n:integer;
begin
//заполнение массива и вывод массива в строчку
readln(n);
for i:=1 to n do
readln(a[i]);
for i:=1 to n do
write(a[i],’ ‘);
//нахождение минимального элемента массива
min:=1001;
for i:=1 to N do
if (a[i] mod 2=0) and (a[i] mod 4 <> 0) and (a[i]<min) then
  min:=a[i];
//вывод результата
writeln;
write(min);
end.

Проверяем на тестах:

10
411 837 755 90 520 203 581 798 401 640

90

10
195 264 127 936 658 152 339 504 395 553

658

 Конечно, решить эту задачу можно и первым способом, но для нахождения первого значения min нужно написать дополнительные команды поиска. Вот таким может быть решение:

program min5;
var a:array[1..100] of integer;
i,min,n,j:integer;
begin
//заполнение массива и вывод массива в строчку
readln(n);
for i:=1 to n do
readln(a[i]);
for i:=1 to n do
write(a[i],’ ‘);
//нахождение первого четного и не кратного 4 числа
i:=1;
while (i<=n)and not((a[i] mod 2=0) and (a[i] mod 4 <> 0)) do i:=i+1;
//в переменной i запомнился номер первого элемента, удовлетворяющего условию
//нахождение минимального, начиная со следующего за найденным
min:=a[i];
for j:=i+1 to N do
if (a[j] mod 2=0) and (a[j] mod 4 <> 0) and (a[j]<min) then
  min:=a[j];
//вывод результата
writeln;
write(min);
end.

Задача 5: Дан целочисленный массив из n элементов. Элементы массива могут принимать произвольные целые значения. Напишите программу, которая находит и выводит второй максимум массива (элемент, который в отсортированном по невозрастанию массиве стоял бы вторым).

Исходные данные:

Результат:

10
5  -2  14  7  -4  22  0  -8  -6  -1

14

10
0  4  5  -10  77  0  4  -12  0  45

45

Мы знаем, как найти первый максимум, а в этой задаче нужно найти второй по величине максимум. Попробуем это сделать это за один проход по массиву. Нам нужны две переменные, max1 (максимальный элемент) и max2 (второй максимум). Сначала выбираем максимальный из первых двух элементов и записываем его значение в max1, а второй по величине записываем в max2.

Затем в цикле перебираем все элементы, начиная с 3-го до последнего. Если очередной элемент a[i] больше, чем max1, записываем значение max1 в max2 (предыдущий максимум становится вторым), а значение a[i] – в max1. Иначе, если a[i] больше, чем max2, записываем значение a[i] в max2. После завершения цикла выводим значение переменной max2.

program min6;
var a: array [1..100] of integer;
i, k,n, max1, max2: integer;
begin
  //заполнение массива и вывод массива в строчку
readln(n);
for i:=1 to n do begin
a[i]:=random(0,100);
write(a[i],’ ‘);
end;
//начальные значения max1 и max2
if a[1] > a[2] then begin
max1:=a[1]; max2:=a[2]
end
else begin
max1:=a[2]; max2:=a[1]
end;
// поиск второго максимального
for i:=3 to N do
if a[i] > max1 then begin
max2:= max1;
max1:= a[i]
end
else
if a[i] > max2 then max2:=a[i];
//вывод результата
writeln;
writeln(max2);
end.

Задача 6: Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 1 до 10000 включительно. Напишите программу, позволяющую найти и вывести минимальный элемент массива, шестнадцатеричная запись которого содержит ровно две цифры, причём первая (старшая) цифра больше второй (младшей).  Если таких чисел нет, нужно вывести ответ 0.

Исходные данные:

Результат:

20
5  -2  14  7  -4  22  0  -8  -6  -1

14

10
0  4  5  -10  77  0  4  -12  0  45

45

Эта задача усложнена только тем, что элементы массива должны быть в диапазоне от 16 до 255. В этом случае первая цифра находится как результат деления нацело на 16, а вторая цифра – как остаток от деления на 16.

Кроме этого здесь массив можно объявить через константу n, так как размер массива задан явно: 20 элементов.

program z6;
//объявление массива через константу
const n=20;
var a: array [1..n] of integer;
i,min: integer;
begin
  //заполнение массива и вывод массива в строчку
for i:=1 to n do begin
a[i]:=random(0,10000);
write(a[i],’ ‘);
end;
writeln;
min := 10001;
for i := 1 to n do begin
//для проверки правильности программы выведем две шестнадцатеричные цифры:
//write(a[i] div 16,a[i] mod 16,’ ‘);
if (16 <= a[i]) and (a[i] < 256) and (a[i] div 16 > a[i] mod 16) and (a[i] < min) then
    min := a[i];
end;
writeln;
//вывод результата
if min = 10001 then
  writeln(0)
else
  writeln(min);
end.

Задачи для самостоятельного решения:

  1. Дан целочисленный массив из n элементов. Элементы могут принимать значения от 150 до 210 ­– рост учащихся выпускного класса. В волейбольную команду берут тех, чей рост не менее 170 см. Напишите программу, которая определяет и выводит минимальный рост игрока баскетбольной команды. Гарантируется, что хотя бы один ученик играет в баскетбольной команде.
  2. Дан целочисленный массив из n элементов. Элементы массива могут принимать целые значения от 0 до 100 – баллы учащихся выпускного класса за экзамен по информатике. Для получения положительной оценки за экзамен требовалось набрать не менее 50 баллов. Напишите программу, которая находит и выводит минимальный балл среди учащихся, получивших за экзамен положительную оценку. Известно, что в классе хотя бы один учащийся получил за экзамен положительную оценку.
  3. Дан целочисленный массив – сведения о температуре за каждый день октября. Элементы массива могут принимать целочисленные значение значения от -15 до 20. Напишите программу, которая находит и выводит максимальную температуру среди дней, когда были заморозки (температура опускалась ниже нуля). Гарантируется, что хотя бы один день в октябре была отрицательная температура.
  4. Дан целочисленный массив из n элементов, все элементы которого – неотрицательные числа, не превосходящие 10000. Напишите программу, которая находит и выводит минимальное трехзначное число, записанное в этом массиве. Если таких чисел нет, нужно вывести сообщение «Таких чисел нет».
  5. Дан целочисленный массив из n элементов. Элементы массива могут принимать целые значения от 1 до 10000 включительно. Напишите программу, позволяющую найти и вывести наибольший из элементов массива, шестнадцатеричная запись которого оканчивается на букву F. Если таких чисел нет, нужно вывести ответ 0.
  6. Дан целочисленный массив из n элементов. Элементы массива могут принимать произвольные целые значения. Напишите программу, которая находит и выводит номера двух элементов массива, сумма которых минимальна.
  7. Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 1 до 10000 включительно. Напишите программу, находящую минимальный элементов массива, шестнадцатеричная запись которого содержит ровно две цифры, причём вторая (младшая) цифра – это буква (от A до F). Если таких чисел нет, нужно вывести ответ 0.

Источники информации

  1. Угринович Н.Д. Информатика и информационные технологии. Учебник для 10-11 классов/ Н.Д. Угринович. – М.:Бином. Лаборатория знаний, 2005.
  2. Сайт К. Полякова http://kpolyakov.spb.ru/school/ege.htm

Добрый день, товарищи!

Максимальное число массива - последовательности в Pascal

В этой публикации я расскажу вам, как найти максимальное число из заданной пользователем последовательности. Для этого мы проведем небольшое первое знакомство с массивами ( более детально они будут разобраны в будущих публикациях ).

Напишем нам задачу:

Разработать программу определения максимума из последовательности чисел. Все числа вводятся пользователем.

Хорошо. Значит исходя из задания можем предположить, что сначала нужно организовать ввод этой самой последовательности пользователем.

В конце статьи будет ссылка на скачивание кода с Яндекс.Диска!

1. Типы данных

Давайте подумаем: нам нужна последовательность цифр. Вроде бы логично ввести N переменных, чтобы пользователь просто вводил каждую. Вот.. Только сколько это – N? Вот и первая сложность – простыми переменными нам тут не обойтись.

Объявим массив
Объявим массив

Если с первыми тремя переменными проблем нет, то теперь у нас новый вариант их объявления – массивы.

Все переменные сделаем Integer для простоты эксперимента. Вы, разумеется, можете изменить тип данных на Real, при необходимости.

Как объявляется массив вы можете видеть выше.

  • mass – имя массива, работает так же как имя переменной
  • array – объявление переменной массивом
  • [1..100] – диапазон массива. В данном массиве не может быть более 100 элементов
  • of integer – тип данных массива, так же может быть и of char и of real и т.д.

2. Начало программы

Задаем количество элементов последовательности
Задаем количество элементов последовательности

В этом куске кода вводим пару пригласительных сообщений, и предлагаем пользователю ввести, какой длины будет его последовательность.

3. Заносим элементы в массив

Обычный цикл
Обычный цикл

Работает это так: просто вводим числа в последовательность по циклу.

От 1 до нашего максимального количества. Кроме того, mass[i] – это значение массива в данный момент. Например i = 3, значит mass[3] – это третий элемент массива. Вообще, есть такой нюанс, что нумерация в массиве начинается с 0, а не с 1, но в рамках этой программы останавливаться на этом не будем. Разберем это в публикации, посвященной массивам.

4. Находим максимум

Находим максимальное число
Находим максимальное число

Сейчас, до этих строк, наше Мах пустое. Для начала возьмем первый элемент введенной последовательности.

После этого объявим цикл (начиная с двух, так как первый элемент нами уже занят), который будет сравнивать каждое следующее число с нашим “максимальным”, и, если число больше – оно будет становится новым максимальным. Все просто!

В конце просто выведем это.

5. Тесты

Вот несколько наборов данных, которые использовались для тестов.

Как видим, максимальный элемент находится без проблем

6. Заключение

Вот мы и разобрали программу, которая находит максимальный элемент последовательности, а если быть точным – одномерного массива.

Весь код программы будет выглядеть так:

Весь код программы
Весь код программы

Как и говорил, вот ссылка на скачивание этого файла с Яндекс.Диска:

Скачать 21max.pas с Яндекс.Диска

Максимальное число массива - последовательности в Pascal

Данный человек всегда открыт для обсуждения контента и общения с подписчиками, если найдутся какие либо вопросы то я обязательно постараюсь ответить на них.

По возможности я попросил бы подписаться и оценить публикацию. Сейчас это критически важно для развития канала. Так то!

Доброго вам всем здоровьица в эти трудные времена!

Принцип поиска максимального или
минимального элемента массива заключается
в следующем: в дополнительную переменную
заносится значение первого элемента
массива, которое принимается за максимум
(минимум); затем организовывается перебор
оставшихся элементов массива, каждый
из которых сравнивается с максимумом
(минимумом); если текущий элемент массива
оказывается больше (меньше), чем принятый
за максимум (минимум), то этот элемент
становится максимальным (минимальным).
Таким образом, после завершения перебора
элементов массива в дополнительной
переменной окажется максимальное
(минимальное) значение среди элементов
массива. Фрагмент блок-схемы алгоритма,
реализующий описанный метод приведен
на рисунке 5.2.1.

В блоке 1 дополнительным переменным maxиmin, в которых
будут храниться максимальное и минимальное
значения соответственно, присваивается
значение 1-го элемента массива. Кроме
этого введены еще две переменныеimaxиimin, которые будут
использоваться для хранения номеров
максимального и минимального элементов
массива. С помощью блока модификации
(блок 2) организовывается цикл по перебору
элементов массива Х (перебор начинается
со 2-го элемента, так как 1-й элемент уже
обработан в блоке 1). Если текущий элемент
массиваXiбольше значения, которое хранится в
переменнойmax(блок 3), то за максимум принимается
значение этого элемента:max=Xi,
и запоминается его номер:imax=i(блок 4). Если текущий элемент массива
не больше максимума, то проверяется, не
меньше ли он минимума (блок 5). В случае
если текущий элементXiокажется меньше минимального значения,
которое хранится в переменнойmin,
то за минимум принимается значение
этого элемента:min=Xi,
и запоминается его номер:imin=i(блок 6). После выхода из цикла будут
выведены значения максимального и
минимального элементов, а также их
номера в массиве (блок 7).

Приведенный
выше алгоритм имеет один недостаток –
в нем используется две лишние переменныеmaxиmin.
Зная индекс элемента массива всегда
можно получить его значение, поэтому
нет необходимости хранить максимальное
и минимальное значения в отдельных
переменных. Оптимальный алгоритм
приведен на рис. 5.2.2.

В блоке 1 дополнительным переменным
imaxиimin,
используемых для хранения номеров
максимального и минимального элемента,
присваивается значение 1. Таким образом,
за максимум и минимум принимается 1-й
элемент массива, само же значение этого
элемента нигде дополнительно не
сохраняется. Оставшиеся элементы массива
также перебираются, начиная со второго
(блок 2). При этом каждый элемент массиваXi
сравнивается с
элементами, имеющими номер равныйimax(блок 3) иimin(блок
6), т.е. с элементами принятыми за максимум
(минимум). Если результат проверки
условий является истиной, то в переменныхimaxиiminсохраняются индексы новых максимального
(блок 4) и минимального (блок 6) элементов.
После выхода из цикла будут выведены
значения максимального и минимального
элементов, а также их номера в массиве
(блок 7).

Если в массиве имеется несколько
элементов равных по значению максимальному
(минимальному) элементу, то алгоритмы,
приведенные на рис 5.2.1 и 5.2.2, определят
позицию только первого такого элемента.
Например, чтобы найти количество
элементов массива равных максимальному
и позицию последнего такого элемента,
можно воспользоваться алгоритмом,
приведенным на рис. 5.2.3.

В начале алгоритма за максимум принимается
1-й элемент массива и вводится переменная
kдля подсчета
количества элементов равных максимальному
(блок 1). Затем организовывается цикл по
перебору оставшихся элементов массива
(блок 2). На каждом шаге цикла выполняется
следующая последовательность действий.

Вначале текущий элемент массива Xiсравнивается с максимальным (блок 3).
Если он оказывается больше элемента,
принятого за максимальный, то запоминается
номер этого элемента и переменнойkприсваивается 1 (блок 4). Это означает,
что встретился первый «новый» максимальный
элемент.

Если текущий элемент не больше максимума,
значит, он может быть равным или меньше
максимального элемента. Поэтому в блоке
5 текущий элемент массива Xi
проверяется на равенство
максимальному. Если он оказывается
равным максимуму, то опять запоминается
номер текущего элемента и значение
переменнойkувеличивается на 1 (блок 6). Это означает,
что встретился следующий элемент равный
максимальному элементу. В итоге после
выхода из цикла в переменнойimaxбудет храниться индекс последнего по
счету элемента равного максимальному,
а в переменнойkколичество элементов, равных максимуму.
Если же из блока 6 убрать операциюimax=i,
то в переменнойimax,
как и в предыдущих примерах будет
сохранен номер первого по счету элемента
равного максимальному.

В некоторых задачах невозможно вначале
принять за максимум (минимум) первый
элемент массива. Например, если элементы
массива ещё не определены (не введены
или не вычислены), или если необходимо
найти максимум (минимум) только среди
положительных, четных по значению и
т.д. элементов. Во втором случае неизвестно
когда в массиве встретится первый такой
элемент. В таких ситуациях можно
использовать способ, реализованный в
алгоритме из примера 5.2.

Пример 5.2.В массиве Х [N]
найти минимальный положительный элемент.

Массив
Х может содержать как положительные,
так и отрицательные элементы. Поэтому
неизвестно какой элемент массива или
произвольное значение можно принять
за начальный минимум. Решение поставленной
задачи можно разбить на два этапа: поиск
положительных элементов в массиве с
определением первого такого элемента
и поиск среди положительных элементов
минимального по значению. Блок-схема
алгоритма приведена на рис. 5.2.4.

В нашем примере нумерация элементов
массива начинается с единицы, поэтому
в качестве начального значения для
переменной iminпринимается 0 (блок 1), т.е. значение
которое не могут принимать индексы
элементов массива Х. Таким образом
показывается, что при обработке массива
еще не встречался положительный элемент,
который можно принять за начальное
значение для минимума. Затем организовывается
цикл по перебору всех элементов массива
(блок 2). На каждом шаге цикла выполняется
следующая последовательность действий.

В блоке 3 проверяется, не является ли
текущий элемент массива Xiположительным. Если он отрицательный
или равен нулю, то такой элемент
пропускается и над ним не выполняется
никаких действий. ЕслиXi> 0, то в блоке 4 проверяется, не является
ли этот элемент первым встретившимся
положительным элементом массива
(признаком чего служит значениеiminравное 0). В этом случае в блоке 5 переменнойiminбудет присвоено
текущее значениеi.
Таким образом, за начальное значение
для минимума будет принято значение
первого по счету положительного элемента
массива Х. Эта ситуация может возникнуть
только один раз, и при дальнейшей работе
цикла блок 5 больше выполняться не будет.
Остальные положительные элементы
массива в блоке 6 будут сравниваться с
элементом массива, принятым в текущий
момент за минимум. Если такой элемент
окажется меньше минимального, то в блоке
7 в переменнойiminбудет сохранен его номерi.

После выхода из цикла проверяется, не
равно ли значение iminнулю (блок 8), так как сразу же выводить
значение минимального элемента массиваXimin
и его номерimin(блок 9) нельзя. Это объясняется тем что,
если в массиве Х не будет положительных
элементов, то значение переменнойiminостанется равным нулю, а обращение к
несуществующему элементу массиваХ0не допустимо.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Добавить комментарий