Как найти максимальный элемент массива pascal

К обработке элементов одномерного массива можно отнести такие типы задач:

1. найти сумму элементов;

2. найти количество элементов;

3. заменить элементы по условию;

4. поиск максимального и минимального значений.

Рассмотрим эти задачи на двух языках программирования

Найти сумму элементов массива (сложить все элементы массива).

ps_summ.jpg

py_summ.jpg

Рис. (1). Программа на Pascal Рис. (2). Программа на Python

Найти сумму по условию, например сумму чётных элементов (сложить все чётные элементы массива).

ps_xtn.jpg

py_чет.jpg

Рис. (3). Программа на Pascal Рис. (4). Программа на Python

Найти количество элементов по сложному условию, например кратных (7) и не кратных (5) и (3).

ps_k_sl_usl.jpg

колво.jpg

Рис. (5). Программа на Pascal Рис. (6). Программа на Python

Заменить все отрицательные элементы на модуль элемента.

ps_zamena.jpg

py_zam.jpg

Рис. (7). Программа на Pascal Рис. (8). Программа на Python

Способов поиска максимального и минимального значений элементов массива существует множество. Остановимся на таком способе:

1. допустим, что максимальное значение равно меньшему из диапазона;

2. сравним его со всеми элементами массива поочерёдно;

3. всегда найдётся значение большее, чем начальное, поэтому запомним его в переменную, которую ввели для поиска максимального значения.

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

Заполнить массив элементами в диапазоне от (-10) до (20). Найти максимальный элемент массива.

макс.jpg

Рис. (9). Алгоритм поиска максимального элемента массива

ps_max.jpg

py_max.jpg

Рис. (10). Поиск максимального

элемента на Pascal

Рис. (11). Поиск максимального

элемента на Python

Аналогично происходит поиск минимального элемента.

Источники:

Рис. 1. Программа на Pascal. © ЯКласс.

Рис. 2. Программа на Python. © ЯКласс.

Рис. 3. Программа на Pascal. © ЯКласс.

Рис. 4. Программа на Python. © ЯКласс.

Рис. 5. Программа на Pascal. © ЯКласс.

Рис. 6. Программа на Python. © ЯКласс.

Рис. 7. Программа на Pascal. © ЯКласс.

Рис. 8. Программа на Python. © ЯКласс.

Рис. 9. Алгоритм поиска максимального элемента массива. © ЯКласс.

Рис. 10. Поиск максимального элемента на Pascal. © ЯКласс.

Рис. 11. Поиск максимального элемента на Python. © ЯКласс.

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

Максимальное число массива - последовательности в 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

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

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

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

Перейти к содержанию

Найти наибольший элемент и его порядковый номер в массиве

Просмотров 17.6к. Обновлено 15 октября 2021

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

Заполнение массива и поиск наибольшего элемента можно выполнять в одном цикле.

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

Тело цикла будет состоять из следующих действий:

  1. Сгенерировать случайное число и записать его в очередную ячейку массива.
  2. Вывести полученное число на экран.
  3. Если это число больше, чем то, что хранится под индексом, записанным в переменную-максимум, то присвоить этой переменной текущий индекс (не само число!).

После того, как индекс наибольшего элемента будет найден, вывести его на экран. Чтобы вывести элемент по данному индексу, надо использовать выражение извлечения элемента из массива. Например, если max — это индекс, а arr — массив, то выражение будет таким: arr[max].

Pascal

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


const N = 10;
var
arr: array[1..N] of integer;
i, max: byte;
begin
randomize;
max := 1;
for i:=1 to N do begin
arr[i] := random(100);
write(arr[i], ' ');
if arr[max] < arr[i] then
max := i;
end;
writeln;
writeln('arr[',max,'] = ',arr[max]);
end.



64 26 99 37 57 64 6 21 48 19
arr[3] = 99

Язык Си


#include < stdio.h>
#define N 10
main() {
int arr[N], i, mx;
srand(time(NULL));
mx = 0;
for (i=0; i< N; i++) {
arr[i] = rand() % 100;
printf("%d ", arr[i]);
if (arr[i] > arr[mx])
mx = i;
}
printf("narr[%d] = %dn", mx, arr[mx]);
}



75 46 7 39 11 29 34 77 86 25
arr[8] = 86

Python

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


from random import random
N = 10
arr = [0] * N
mx = 0
for i in range(N):
arr[i] = random() * 100
print("%.2f" % arr[i], end='; ')
if arr[i] > arr[mx]:
mx = i
print("narr[%d] = %.2f" % (mx, arr[mx]))



73.83; 16.23; 30.18; 27.41; 94.27; 46.27; 66.17; 61.07; 18.89; 61.16;
arr[4] = 94.27

КуМир


алг
нач
цел N = 10
целтаб arr[1:N]
цел mx, i
mx := 1
нц для i от 1 до N
arr[i] := irnd(100)
вывод arr[i], " "
если arr[mx] < arr[i] то
mx := i
все
кц
вывод нс,"arr[",mx,"] = ",arr[mx]
кон



57 78 14 96 76 9 19 36 45 54
arr[4] = 96

Basic-256


decimal 1
N = 10
dim arr(N)
mx = 0
for i=0 to N-1
arr[i] = rand * 100
print arr[i] + "; ";
if arr[i] > arr[mx] then mx = i
next i
print
print "Номер элемента: " + mx
print "Значение элемента: " + arr[mx]



21.9; 58.4; 24.4; 72.6; 88.5; 65.2; 56.6; 65.1; 72.6; 40.4;
Номер элемента: 4
Значение элемента: 88.5

Напишем программу, которая вычисляем максимальный элемент в массиве.

 Нахождение максимального элемента массива.



program massiv5;
uses crt;
const N=10;
type x=array [1..N] of integer;
var a:x;
i:integer;
max:integer;
imax:integer;
begin
clrscr;
randomize;
for i:=1 to N do
begin
a[i]:= -50+random(101);
write (A[i]:5)
end;
writeln;
imax:=1;
max:=A[1];
for i:=2 to N do
if max<a[i] then
begin
max:=a[i];
imax:=i
end;
writeln (‘Максимальный элемент в массиве=’,max:5);
writeln (‘Его индекс=’,imax:5);
readln
end.



В строке №7 записываем переменную для хранения величины максимального элемента.

В строке №8 записываем переменную для хранения индекса максимального элемента.

В строке №11 мы включаем функцию Randomize. Эта функция позволяет генерировать случайные числа в программе. В данном случае нам необходимо каждому элементу массива [1..N] (всего 10 элементов) присвоить какое-нибудь значение. В программе «massiv3» значения для всех элементов массива мы вводили с клавиатуры. В этой задаче мы ничего вводить не будем. Функция Randomize сама создаст значения для каждого элемента массива. В массиве у нас 10 элементов ([1..N], const N=10), соответственно будет сгенерировано 10 случайных чисел.

В строке №12 включаем цикл. Переменная «I» будет изменяться в цикле от 1 до «N»

В строке №14 очередному элементу массива мы присваиваем случайное число, которое лежит в диапазоне от – 50 до + 50. (Сначала пишется минимальное число – 50, затем знак +, затем слово RANDOM, затем в скобках указывается общее количество возможных чисел в диапазоне; в диапазоне от – 50 до + 50 получается 100 чисел + число  0, всего 101)
Строка №15. Если мы запустим программу на данном этапе, у нас выведется на экран 10 различных чисел со значением от – 50 до + 50.

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

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

В строке №20 задаем цикл. В него мы не включаем 1-ый элемент. А затем, в строке №21 мы проверяем условие. Мы сравниваем все значения элементов  массива (т.е. все сгенерированные числа) начиная со 2-го и до 10-го с  1 – ым числом. И если очередное число в массиве больше чем 1-ое число, то в переменную для хранения максимального числа записываем это очередное число (строка  №23), а в переменную для хранения индекса максимального числа записываем индекс этого очередного числа. После выполнения цикла в переменной max должно остаться максимальное число, а в переменной «imax» должен остаться номер этого числа.

maksimaljnihyj ehlement massiva

maksimaljnihyj ehlement massiva.

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


Если в массиве несколько маскимальных элементов и нужно вывести на экран индексы всех этих элементов, то программа будет выглядет так:




program massiv5;
uses crt;
const N=10;
type x=array [1..N] of integer;
var a:x;
i:integer;
max:integer;
imax:integer;
begin
clrscr;
randomize;
for i:=1 to N do
begin
a[i]:= -5+random(3);
write (A[i]:5)
end;
writeln;
imax:=1;
max:=A[1];
for i:=2 to N do
if max<a[i] then
begin
max:=a[i];
imax:=i;
end;
writeln('Максимальный элемент в массиве=',max);
write('Его индекс ');
for i:=1 to N do
if max=a[i] then
begin
write (i,', ');
end;
readln
end.




maxelemmas

maxelemmas.


Предыдущая статья : Randomize и Random в Pascal.

Оглавление : Уроки Паскаль.

Следующая статья : Вычисление суммы положительных элементов массива.


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