русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Поиск максимального (минимального) элемента массива.


Дата добавления: 2015-07-09; просмотров: 1069; Нарушение авторских прав


Пусть одномерный массив заполнен следующими числами:

20, -2, 4, 10,7, 21, -12, 0, 4, 17.

Подумаем, какие операции выполняются, если требуется найти максимальный элемент? Естественно, операцию сравнения. Мы не задумываемся над тем, что сравниваем всегда пару, «пробегая» глазами все элементы массива. Алгоритм поиска максимального (минимального) элемента построим таким образом, чтобы сравнивать очередную пару чисел, повторяя действие сравнения нужное количество раз.

Итак, нам необходимо ответить на два вопроса:

1) какие числа входят в пару, составляющую операцию отношения

2) сколько раз необходимо повторить операцию сравнения.

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

Здесь могут быть два варианта:

1) присвоить переменной max (min) первй элемент массива, тогда количество повторений операции сравнения равно n-1;

2) присвоить число заведомо меньшее (большее) всех элементов массива.

В этом случае, количество повторений операции сравнения n.

Рассмотрим несколько примеров:

1) для заданного одномерного массива найти максимальный элемент.

PROGRAM ARRAY_MAX;

USES CRT;

TYPE

mas = array[1..10] of integer;

VAR

a: mas;

i: byte;

max: integer;

BEGIN

clrscr;

{блок заполнения}

FOR i:=1 TO 10 DO

BEGIN

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

readln(a[i])

END;

{поиск максимального элемента}

max:=a[1];

FOR i:=2 TO 10 DO

IF a[i]>max THEN

max:=a[i];

writeln('максимальный элемент массива = ', max);

writeln('нажмите любую клавишу...');

readln;

END.

2) массив содержит сведения о количестве студентов каждой группы I курса. Определить группу с максимальным количеством студентов, считая, что номер группы соответствует порядковому номеру числа в массиве (считаем, что такая группа единственная). Итак, делаем вывод: требуется найти номер максимального элемена.



PROGRAM ARRAY_MAX_NUM;

USES CRT;

TYPE

mas = array[1..10] of byte;

VAR

a: mas;

i, num: byte;

BEGIN

clrscr;

{блок заполнения}

FOR i:=1 TO 7 DO

BEGIN

write('Введите количество студентов в группе ', i, ' : ');

readln(a[i])

END;

{поиск номера максимального элемента}

num := 1;

FOR i:=1 TO 7 DO

IF a[i] > a[num] THEN

num:=i;

writeln('максимальное число студентов = ', a[num]);

writeln('номер группы = ', num);

writeln('нажмите любую клавишу...');

readln;

END.

 

3) найти минимальный элемент среди четных элементов массива.

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

Если мы объявим элементы массива integer, то таким числом будет +32767.

PROGRAM ARRAY_MIN_EVEN;

USES CRT;

TYPE

mas = array[1..10] of integer;

VAR

a:mas;

i: integer;

min: integer;

BEGIN

clrscr;

FOR i:=1 TO 10 DO

BEGIN

writeln('введите очередной элемент массива ');

readln(a[i])

END;

min:=32767;

FOR i:=1 TO 10 DO

IF (a[i]<min) and (a[i] mod 2 = 0) THEN

min:=a[i];

IF min=32767 THEN

writeln ('в массиве нет четных элементов')

ELSE

writeln ('минимальный элемент среди четных элементов массива = ',min);

writeln('нажмите любую клавишу');

readln;

END.

Обратите внимание: необходимо проверить, изменилось ли значение переменной min, т.к. четных элементов могло и не быть.



<== предыдущая лекция | следующая лекция ==>
Доступ к элементам массива. | Задачи для самостоятельного решения.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.307 сек.