Вывести с клавиатуры массив из 5 элементов найти минимальный из них

Обновлено: 16.05.2024

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

1 способ

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

Результат:

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

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

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;

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

Результат:

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

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.

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

Результат:

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

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
195 264 127 936 658 152 339 504 395 553

Конечно, решить эту задачу можно и первым способом, но для нахождения первого значения 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.

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

Результат:

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

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.

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

Результат:

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

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.

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

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

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

Поняв это, можно приступить к решению задачи.

Алгоритм решения задачи

Алгоритм решения на языке C++

Для начала нужно подключить заголовок ввода/вывода <iostream>, заголовок стандартных функций <cstdlib> в ней имеется функция rand(), которая позволит заполнить массив случайными числами. Заполнение каждого элемента массива вручную требует времени, его можно сэкономить автоматизировав процесс. Подключаем пространство имён std. Создаём константу N, она будет определять количество элементов в массиве.

В теле функции main() инициализируем массив целых чисел из N лементов, целочисленные переменные max и min, они будут хранить значение максимального и минимального элементов массива соответственно.

Теперь заполним массив случайными числами. Для этого используем цикл от 0 до N (не включительно), который пройдется по каждому элементу массива и поместит случайное значение от 0 до 98. Это можно сделать, использовав функцию rand(), которая возвращает случайное число. Поделить возвращаемое значение на 99 и внести в ячейку остаток от деления, таким образом значение ячейки будет иметь значение в диапазоне от 0 до 99(не включая 99, т.к. остаток от деления не может быть кратным делителю). При этом выведем значения элементов массива на экран.

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

Обратите внимание! Если вы программируете под Windows и у Вас не отображаются русские символы в консоли, то советую Вам почитать о решении этой проблемы в статье Русские символы(буквы) при вводе/выводе в консоль на C++.

Далее определим максимальный и минимальный элемент в массиве, для этого вновь пройдемся по массиву циклом. При помощи условия определим максимальный и минимальный элемент массива.

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

После цикла выведем значения min и max.

После компиляции и запуска прогамма выводит следующее

Описание массива в Паскале

var dlina: array [1..3] of integer; begin dlina[1]:=500; dlina[2]:=400; dlina[3]:=150; .

Объявить размер можно через константу:

размер массива через константу

Инициализация массива

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

const a:array[1..4] of integer = (1, 3, 2, 5);

заполнение массива

Заполнение последовательными числами:

var a: array of integer; var n:=readInteger; a:=new integer[n];

var a: array of integer; var n:=readInteger; SetLength(a,n); // устанавливаем размер

begin var a: array of integer; a := new integer[3]; a[0] := 5; a[1] := 2; a[2] := 3; end.

или в одну строку:

begin var a: array of integer; a := new integer[3](5,2,3); print(a) end.

Ввод с клавиатуры:

Пример: Рассмотрим, как происходит ввод массива в Паскале:

writeln ('введите кол-во элементов: '); readln(n); for i := 1 to n do begin write('a[', i, ']='); read(a[i]); . end; .

var a:=ReadArrInteger(5); // целые var a:=ReadArrReal(5); // вещественные

Вывод элементов массива

Пример: Рассмотрим, как вывести массив в Паскале:

var a: array[1..5] of integer; i: integer; begin a[1]:=2; a[2]:=4; a[3]:=8; a[4]:=6; a[5]:=3; writeln('Массив A:'); for i := 1 to 5 do write(a[i]:2); end.

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

[Название файла: taskArray0.pas ]

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

Обработка массивов в Паскале, так же как и заполнение массива, происходит обычно с использованием цикла for .

for var i:=0 to a.Length-1 do a[i] += 1;

Проход по элементам (только для чтения):
Пример:

foreach var x in a do Print(x)

Функция Random в Pascal

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

Для генерации чисел от 0 до n (не включая само значение n , целые числа в интервале [0,N)) используется запись random (n) .
Перед использованием функции необходимо инициализировать датчик случайных чисел с помощью процедуры randomize .

Диапазон в Паскале тех самых случайных чисел от a до b задается формулой:

Пример: Заполнение массива случайными числами в Pascal:

var f: array[1..10] of integer; i:integer; begin randomize; for i:=1 to 10 do begin f[i]:=random(10); < интервал [0,9] >write(f[i],' '); end; end.

Для вещественных чисел в интервале [0,1]:

var x: real; . x := random(0.0,1.0);;

Массив из 10 сгенерированных случайным образом целых чисел в диапазоне [0;99]:

или с дополнительными параметрами (диапазон [5;15]):

Задача Array 1. Необходимо задать массив размерностью 5, заполнить массив случайными числами в интервале [-1,1] и вывести элементы на экран: определить три позиции для вывода каждого элемента, с двумя знаками после запятой.

[Название файла: taskArray1.pas ]

Числа Фибоначчи в Паскале

Наиболее распространенным примером работы с массивом является вывод ряда чисел Фибоначчи в Паскаль. Рассмотрим его.

Пример: Ряд чисел Фибоначчи: 1 1 2 3 5 8 13…

Получили формулу элементов ряда.

Пример: Вычислить и распечатать первые 20 чисел Фибоначчи.

var i:integer; f:array[0..19]of integer; begin f[0]:=1; f[1]:=1; for i:=2 to 19 do begin f[i]:=f[i-1]+f[i-2]; writeln(f[i]) end; end.

На данном примере, становится понятен принцип работы с числовыми рядами. Обычно, для вывода числового ряда находится формула определения каждого элемента данного ряда. Так, в случае с числами Фибоначчи, эта формула-правило выглядит как f[i]:=f[i-1]+f[i-2] . Поэтому ее необходимо использовать в цикле for при формировании элементов массива.

[Название файла: taskArray2.pas ]

Задача Array 3. Написать программу решения задачи о печати ряда чисел 2 4 8 16 32 . 512 ; для заполнения массива использовать цикл Repeat
[Название файла: taskArray3.pas ]

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

максимальный элемент по номеру

Поиск максимального элемента по его индексу:

// … var (min, minind) := (a[0], 0); for var i:=1 to a.Length-1 do if a[i]<min then (min, minind) := (a[i], i); Result := (min, minind);

// … var (min, minind) := (real.MaxValue, 0); for var i:=0 to a.Length-1 do if a[i]<min then (min, minind) := (a[i], i); Result := (min, minind);

begin var a := new integer[5]; a := arrRandomInteger(5); // [86,37,41,45,76] print(a.Min,a.IndexMin); // 37 1 end.

Задача Array_min: Найдите минимальный элемент массива. Выведите элемент и его индекс.

[Название файла: taskArray_min.pas ]

Задача Array 4. Дан массив из 10 целочисленных элементов. Найти количество отрицательных и вывести количество на экран.

[Название файла: taskArray4.pas ]

Задача Array 5. Найти минимальное и максимальное из n введенных чисел (массива). Определить расстояние между этими элементами.

[Название файла: taskArray5.pas ]

Задача Array 6. Дан целочисленный массив размера N. Вывести все содержащиеся в данном массиве четные числа в порядке убывания их индексов, а также их количество K.

[Название файла: taskArray6.pas ]

Задача Array 7. Ввести с клавиатуры массив из 5 элементов, найти в нем два максимальных элемента и их номера.

Пример:

[Название файла: taskArray7.pas ]

Поиск в массиве

Рассмотрим сложный пример работы с одномерными массивами:

Пример: Дан массив из 10 чисел. Определить, есть ли в массиве число, введенное пользователем. Если есть – выводить «найдено», если нет – «не найдено».
Сложность задания заключается в том, что выводить слова «найдено» или «не найдено» необходимо один раз.

var f: array[1..10] of integer; flag:boolean; i,c:integer; begin randomize; for i:=1 to 10 do begin f[i]:=random(10); write(f[i],' '); end; flag:=false; writeln('введите образец'); readln(c); for i:=1 to 10 do if f[i]=c then begin writeln('найден'); flag:=true; break; end; if flag=false then writeln('не найден'); end.

begin var a := new integer[10]; a := arrRandomInteger(5,0,5); //[1,3,5,4,5] print(a.IndexOf(3)) // 1 end.

или метод a.Contains(x) наравне с x in a :

begin var a := new integer[10]; a := arrRandomInteger(5,0,5); //[1,3,5,4,5] print(a.Contains(3)); // True print(3 in a)// True end.

Рассмотрим эффективное решение:

Задача: найти в массиве элемент, равный X , или установить, что его нет.

Алгоритм:

  • начать с 1-го элемента ( i:=1 );
  • если очередной элемент ( A[i] ) равен X , то закончить поиск иначе перейти к следующему элементу.

решение на Паскале Вариант 2. Цикл While:

Поиск элемента в массиве

Поиск элемента в массиве

Предлагаем посмотреть подробный видео разбор поиска элемента в массиве (эффективный алгоритм):

Задача Array 8. Заполнить массив из 10 элементов случайными числами в интервале [0..4] и вывести номера всех элементов, равных X .

Пример:

[Название файла: taskArray8.pas ]

Циклический сдвиг

циклический сдвиг

Пример: сдвинуть элементы массива влево на 1 позицию, первый элемент становится на место последнего.

Решение:

// … var v := a[0]; for var i:=0 to a.Length-2 do a[i] := a[i+1]; a[a.Length-1] := v;

// … var v := a[a.Length-1]; for var i:=a.Length-1 downto 1 do a[i] := a[i-1]; a[0] := v;

Задача Array 9. Заполнить массив из 10 элементов случайными числами в интервале [-10..10] и выполнить циклический сдвиг влево без первого элемента.
Пример:

[Название файла: taskArray9.pas ]

Перестановка элементов в массиве

Рассмотрим, как происходит перестановка или реверс массива.

реверс массива

Пример: переставить элементы массива в обратном порядке

Решение:

2

Псевдокод:

перестановка элементов массива

Программа:

begin var a: array of integer := (1,3,5,7); var n := a.Length; for var i:=0 to n div 2 - 1 do Swap(a[i],a[n-i-1]); End.

Решение 2 (стандартная процедура Reverse() ):

begin var a:=new integer[10]; a:=arrRandomInteger(10); print(a);// [41,81,84,63,12,26,88,25,36,72] Reverse(a); print(a) //[72,36,25,88,26,12,63,84,81,41] end.

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

[Название файла: taskArray10.pas ]

Выбор элементов и сохранение в другой массив

Пример: найти в массиве элементы, удовлетворяющие некоторому условию (например, отрицательные), и скопировать их в другой массив

Решение:

Решение: подсчитывать количество найденных элементов с помощью счетчика count, очередной элемент устанавливать на место B[count]. Переменой count необходимо присвоить 1.

сохранение элементов массива в другой


Вывод массива B:

writeln('Выбранные элементы'); for i:=1 to count-1 do write(B[i], ' ')

// . for var i := 0 to a.length - 1 do if a[i] < 0 then begin b[j] := a[i]; j += 1; end; SetLength(b, j);

Задача Array 11. Заполнить массив случайными числами в интервале [20,100] и записать в другой массив все числа, которые оканчиваются на 0.
Пример:

[Название файла: taskArray11.pas ]

Сортировка элементов массива

сортировка методом пузырька

for i:=1 to N-1 do begin for j:=N-1 downto i do if A[j] > A[j+1] then begin с := A[j]; A[j] := A[j+1]; A[j+1] := с; end; end;

for var i := 0 to arr.High - 1 do for var j := arr.High - 1 downto i do if arr[j] > arr[j + 1] then Swap(arr[j], arr[j + 1]);

[Название файла: taskArray12.pas ]

  • в массиве ищется минимальный элемент и ставится на первое место (меняется местами с A[1]);
  • среди оставшихся элементов также производится поиск минимального, который ставится на второе место (меняется местами с A[2]) и т.д.

сортировка методом вставки

for i := 1 to N-1 do begin min:= i ; for j:= i+1 to N do if A[j] < A[min] then min:=j; if min <> i then begin c:=A[i]; A[i]:=A[min]; A[min]:=c; end; end;

for var i := 0 to a.High-1 do begin var (min,imin) := (a[i],i); for var j := i + 1 to a.High do if a[j] < min then (min,imin) := (a[j],j); Swap(a[imin],a[i]); end;

Задача Array 13: Заполнить массив из 10 элементов случайными числами в интервале [0..50] и отсортировать его по возрастанию суммы цифр

[Название файла: taskArray13.pas ]

    Выбирается и запоминается средний элемент массива (присвоим X):

быстрая сортировка

Рубрики:

См. пузырьковая сортировка.
При второй итерации цикла (согласно вашим рисункам и коду ) нет надобности сравнивать первый элемент со вторым. Снова вы всех путаете =)

admin

Именно поэтому в коде : for j:=N-1 downto i do

Bronislav

Владимир

А как насчёт странного способа поменки оандомням образом, конечно это долго , но все таки есть
Var
A: array[1..10] of integer;
I,e,r,r1: integer;
Begin
While i < 10 do begin
I+=1;
A[i]:=random(10);
Write(a[i]:3);
End;
While e = 0 do begin
R:=random(10)+1;
R1:=random(10)+1;
Swap(a[r], a[r1]);
E:=1
I:=0;
// Проверка отсортированности если все хорошо то е равен одному и в следующий раз из цикла выйдется а если не отсортированности то ставится на нуль и ещё раз
While i < 9 do begin
I+=1;
If a[i] < a[i+1] then e:=0;
End;
End;
End.

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

Aurangzeb

Нажмите, чтобы узнать подробности

Разработка содержит план конспект урока, презентацию, задания для закрепления нового материала с решениями.

Просмотр содержимого документа
«Урок №47-48»

Информатика 9 класс Яковлева А.Н.

Урок №___

Дата __________________

Тема: «Максимальный и минимальный элементы массива»

образовательная – ввести понятие строкового типа данных; познакомить с алгоритмом поиска минимального и максимального элемента массива;

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

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

Оборудование: персональный компьютер (ПК) учителя, мультимедийный проектор, экран, ПК учащихся.

Тип урока: Комбинированный.

Проверка домашнего задания;

Домашнее задание пояснения к нему.

Организационный момент. Приветствие учеников. Проверка готовности учащихся к уроку.

Проверка домашнего задания. (слайд 2)

1. Составьте программу вычисления в массиве суммы нечетных элементов.

Program massiv4;

var M: array [ 1..10 ] of integer ;

writeln ( ' Массив случайных чисел ' );

for I:= 1 to 10 do

write ('Сумма нечетных элементов = ');

for I:= 1 to 10 do

if M[I] mod 2 = 1 then K:=K+M[I];

2. Составьте программу вычисления среднего арифметического элементов с четными номерами

Program massiv4;

var M: array [ 1..10 ] of integer ;

writeln ( ' Массив случайных чисел ' );

for I:= 1 to 10 do

write ('среднего арифметического элементов с четными номерами ');

for I:= 1 to 10 do

if I mod 2 = 0 then

Актуализация знаний. (слайд 3)

Что такое массив?

Какие данные можно хранить в массивах?

Как осуществить ввод массива с клавиатуры?

Как осуществить ввод массива с помощью оператора случайных чисел?

Формат описания одномерного массива?

Как записывается оператор цикла с параметром?

Одной из типовых задач обработки массивов является поиск наименьшего и наибольшего значения среди значений его элементов. Это и будет нашей темой урока. (слайд 4)

Знакомство с новым материалом.

(слайд 5-6) Задача и алгоритм поиска максимального элемента в массиве.

(слайд 7) Например, у нас есть итоговые данные чемпионата России по футболу за 2003 г. (табл. стр. 120). Нашей задачей является найти команду-победителя и команду-проигравшего. Причем в результате программа должна нам будет показать не только номер команды и количество набранных очков, но и название команды. Как это сделать прочитайте в учебнике на стр. 122-124 и узнайте о строковом типе данных

Подведение итогов.

1. Ввести с клавиатуры массив из 5 элементов, найти в нем минимальный элемент и его номер

Program Zadanie1;

Var T: array [ 1..5 ] of integer ;

I, Amin,Nmin: integer ;

for I:= 1 to 5 do

begin Write( 'T[' ,I, ']=' );

Amin:=T[ 1 ]; Nmin:= 1 ;

for i := 2 to 5 do

if T[i] then

write ('Минимальный элемент T[',Nmin,']=',Amin)

2. Ввести с клавиатуры массив из 5 элементов, найти в нем максимальный и минимальный элементы и их номера

Program Zadanie 2 ;

Var T: array [ 1..5 ] of integer ;

I, Amin,Nmin,Amax,Nmax: integer ;

for I:= 1 to 5 do

begin Write( 'T[' ,I, ']=' );

Amin:=T[ 1 ]; Nmin:= 1 ;

for i := 2 to 5 do

if T[i] then

Amax:=T[ 1 ]; Nmax:= 1 ;

for i := 2 to 5 do

if T[i]Amax then

writeln ( ' Минимальный элемент T[' ,Nmin, ']=' ,Amin);

write ('Максимальный элемент T[',Nmax,']=',Amax)

3. Ввести с клавиатуры массив из 5 элементов, найти в нем два максимальных элемента и их номера.

Program massiv 3;

var Nmax , Nmax2, Amax, Amax2, i: integer ;

s: array [ 1..5 ] of integer ;

writeln ( ' Введите элементы массива ' );

for i := 1 to 5 do

Amax:=s[ 1 ]; Nmax:= 1 ;

for i := 2 to 5 do

if s[i]Amax then

for i := 2 to 5 do

if s[i]Amax2 then

writeln ( ' Максимальные A[' ,Nmax, ']=' ,Amax, ' и A[' ,Nmax2, ']=' ,Amax2);

Домашнее задание.

§ 20, Задание 5 (стр. 124) на Паскале

Просмотр содержимого презентации
«Поиск наибольшего и наименьшего элементоы массива»

Задача: найти в массиве максимальный элемент.

Почему цикл от i=2 ?


max then < нашли новый максимальный >begin max := a[i]; < запомнить a[i] >iMax := i; < запомнить i >end; 5" width="640"

Дополнение: как найти номер максимального элемента?

5 Прочитай учебник стр. 122-124 Узнай о строковом типе данных

Прочитай учебник стр. 122-124

Узнай о строковом типе данных

5 «3»: Ввести с клавиатуры массив из 5 элементов, найти в нем минимальный элемент и его номер. Пример: Исходный массив: 4 -5 10 -10 5 мимимальный A[ 4 ]= - 10 «4»: Ввести с клавиатуры массив из 5 элементов, найти в нем максимальный и минимальный элементы и их номера. Пример: Исходный массив: 4 -5 10 -10 5 максимальный A[3]=10 минимальный A[4]= - 10 5

«3»: Ввести с клавиатуры массив из 5 элементов, найти в нем минимальный элемент и его номер.

мимимальный A[ 4 ]= - 10

«4»: Ввести с клавиатуры массив из 5 элементов, найти в нем максимальный и минимальный элементы и их номера.

минимальный A[4]= - 10

5 «5»: Ввести с клавиатуры массив из 5 элементов, найти в нем два максимальных элемента и их номера. Пример: Исходный массив: 4 -5 10 -10 5 максимальные A[3]=10, A[5]=5 «6»: Заполнить массив из 10 элементов случайными числами в интервале [-10..10] и найти в нем два максимальных элемента и их номера. 5

«5»: Ввести с клавиатуры массив из 5 элементов, найти в нем два максимальных элемента и их номера.

максимальные A[3]=10, A[5]=5

«6»: Заполнить массив из 10 элементов случайными числами в интервале [-10..10] и найти в нем два максимальных элемента и их номера.

Читайте также: