Часто встречаются задачи, где необходимо найти максимальный элемент в массиве. Рассмотрим общий алгоритм решения такой задачи.
Первое, что придётся сделать – создать массив. Как нам уже известно, нужно использовать цикл с параметром. Также удобнее будет создать массив случайным образом, если в условии задачи не оговорён способ задания массива.
Алгоритм нахождения максимального элемента массива выполняется следующим образом.
Сначала указываем, что первый элемент массива считается максимальным, иначе говоря – Max = A[i].
Потом начинаем процесс сравнивания последующих элементов массива с максимальным элементом в массиве.
Тут возможно два случая :
- Если максимальный элемент больше следующего, то ничего не меняем.
- Если максимальный элемент меньше следующего, то он становиться максимальным.
После этого выводим на экран максимальный элемент.
Блок-схема максимальный элемент массива
Программа максимальный элемент массива 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.
Основные операции обработки массивов:
- вычисление суммы элементов массива;
- поиск максимального или минимального значения в массиве;
- поиск максимального или минимального среди всех элементов массива, удовлетворяющих некоторому условию;
- обмен значениями между элементами;
- реверс — перестановка элементов массива местами в обратном порядке (последний становится первым, первый — последним и т. д.
Рассмотрим подробнее каждую операцию.
Вычислим сумму элементов массива из предыдущей теории — усовершенствуем программу. Цикл, с помощью которого выводился массив, заменим на цикл, который будет прибавлять к переменной (s) каждый последующий элемент массива.
Ответ: (55).
Задачи на поиск в массиве
Поиск максимального значения.
Идея поиска максимального значения заключается в следующем: каждый элемент массива поочерёдно сравнивается со следующим. Если он больше, то некоторой переменной max будет присвоено значение этого элемента. Напишем программу.
Ответ: (100).
Найдём наибольшее число, удовлетворяющее некоторому условию.
Задача: найти максимальное чётное число. Для этого добавим в условие проверку на чётность при помощи операции mod.
Ответ: (8).
Обмен значениями между элементами
Допустим, нам нужно удалить некоторый элемент массива.
Удалим элемент с индексом (6). Для этого добавляем ещё одну переменную, которая будет обозначать индекс удаляемого элемента. Далее массив будем выводить по частям. До удаляемого элемента — без изменений, пропустим удаляемый элемент и выведем остаток массива.
Перейти к содержанию
Найти наибольший элемент и его порядковый номер в массиве
Просмотров 17.8к. Обновлено 15 октября 2021
Заполнить одномерный массив случайными числами. Найти и вывести на экран наибольший его элемент и порядковый номер этого элемента.
Заполнение массива и поиск наибольшего элемента можно выполнять в одном цикле.
Поскольку необходимо найти не только максимальный элемент, но и его индекс, то лучше искать индекс, так как по нему всегда можно получить значение из массива. Конечно, при поиске можно сохранять и индекс, и элемент в двух разных переменных. Однако этого делать не обязательно. До цикла присвоим переменной, в которой будет храниться индекс максимального элемента, значение 1. Это значит, предполагается, что максимальный элемент находится в первой ячейке массива.
Тело цикла будет состоять из следующих действий:
- Сгенерировать случайное число и записать его в очередную ячейку массива.
- Вывести полученное число на экран.
- Если это число больше, чем то, что хранится под индексом, записанным в переменную-максимум, то присвоить этой переменной текущий индекс (не само число!).
После того, как индекс наибольшего элемента будет найден, вывести его на экран. Чтобы вывести элемент по данному индексу, надо использовать выражение извлечения элемента из массива. Например, если 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 "Номер элемента: " + 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» должен остаться номер этого числа.
После запуска программы в верхней строке у нас вывелось 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.
Предыдущая статья : Randomize и Random в Pascal.
Оглавление : Уроки Паскаль.
Следующая статья : Вычисление суммы положительных элементов массива.
Поиск минимального (максимального) элемента массива
Алгоритм
поиска минимального (максимального)
элемента массива довольно очевиден:
делается предположение, что первый
элемент массива является минимальным
(максимальным), затем остальные элементы
массива сравниваются с этим элементом.
Если обнаруживается, что проверяемый
элемент меньше ( больше) принятого за
минимальный (максимальный) и продолжается
проверка оставшихся элементов. Ниже на
рис. 20 представлена блок-схема алгоритма
поиска минимального элемента в массиве
из 10 целых чисел.

Рис.20.
Блок-схема алгоритма поиска минимального
элемента.
Программа:
Program Example ;
Var
A
: Array[1..10] of integer ; { массив
целых
чисел
] ;
Min
: Integer ; { номер минимального элемента
массива }
i
: Integer ; { номер элемента сравниваемого
с минимальным}
Begin
WriteLn(‘ Введите 10
целых чисел в одной строке через пробел
‘) ;
for
i :=1 to 10 do ReadLn(A[i]) ; { Ввод
массива
целых
}
Min := A[1] ;
for i := 2 to 10 do
if A[i] < Min then Min :=
A[i] ;
WriteLn(‘ Минимальный
элемент массива : ‘, Min:3) ;
End.
Операции с матрицами
Матрицей
A размерности n
m называется двумерный массив из n строк
и m столбцов :

где
элементы матрицы A.
Наиболее типичные
действия производимые над матрицами:
-
сложение матриц;
-
транспонирование
матрицы; -
умножение матриц.
Сложение матриц
Рассмотрим
на примере сложения двух матриц A и B
размерности 3 4.
Блок-схема алгоритма
сложения матриц представлена на рис.
21.

Рис.21.
Блок-схема алгоритма сложения матриц.
Программа:
program
Summa_matrix;
Const
m=4;
n=3;
Type
matrix
= array[1..n,1..m] of Integer;
Var
A,B,C
: matrix;
i,j
: Integer;
BEGIN
Writeln(‘Ввод
матрицы
A’);
for
i:= 1 to n do
begin
writeln(‘Cтрока’,i:2);
for j := 1 to m do
begin
write(‘Столбец’,j:2,’->’);
readln(A[i,j])
end;
end;
Writeln(‘Ввод
матрицы
B’);
for
i:= 1 to n do
begin
writeln(‘Cтрока’,i:2);
for j := 1 to m do
begin
write(‘Столбец’,j:2,’->’);
readln(B[i,j])
end;
end;
writeln(‘Матрица С
— сумма матриц A и B’) ;
for
i:= 1 to n do begin
for j := 1 to m
do begin
C[i,j]
:= A[i,j] + B[i,j] ;
write(C[i,j]:3)
end ;
writeln ;
end
End.
Транспонирование матрицы
Пусть
дана матрица
размерности n
m. Матрица
размерности m
n называется транспонированной к матрице
A, если ее элементы определены по формуле
.
Рассмотрим
пример транспонирования матрицы
размерности 2
3.
Блок-схема алгоритма
транспонирования матрицы представлена
на рис. 22.

Рис.22.
Блок-схема алгоритма транспонирования
матрицы.
Программа:
program Transp_matrix;
Const
m=3;
n=2;
Var
A : array[1..n,1..m] of
integer;
B : array[1..m,1..n] of
integer;
i,j : Integer;
BEGIN
Writeln(‘Ввод
матрицы
A’);
for i:= 1 to n do
begin
writeln(‘Cтрока’,i:2);
for j := 1 to m do
begin
write(‘Столбец’,j:2,’->’);
readln(A[i,j])
end;
end;
writeln(‘Матрица B
— Транспонированная к матрице A’) ;
for
i:= 1 to m do begin
for
j := 1 to n do begin
B[i,j]
:= A[j,i] ;
write(B[i,j]:3)
end
;
writeln
;
end
End.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #








