Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Поиск элементов, удовлетворяющих заданному условию.

Читайте также:
  1. III.2.4. Опыт поиска в городской библиотеке
  2. А. В ПОИСКАХ АБСОЛЮТА
  3. Автоматизация поисковых операций
  4. АЙКИДО - ПОИСКИ БУДУЩЕГО В ЕГО ПРОШЛОМ
  5. Активная фаза. Поисковый рефлекс
  6. Алгоритмы поиска информации
  7. Альные беседы, беседы с семьей правонарушителя, помощь в трудоустройстве, поиске жи-

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

Следующая программа заполняет массив целыми случайными числами от -100 до 100, определяет количество положительных элементов и выдаёт сообщение на экран. Program Primer2;var m: array[1..30] of Integer; {Описание массива} i: integer; {параметр цикла for} n: integer; {счётчик положительных эл-ов}beginRandomize; {Инициализация датчика}for i:=1 to 30 do {заполнение массива} m[i]:=Random(201)-100;n:=0; {обнуление счётчика п. эл-ов}for i:=1 to 30 do if m[i]>=0 {Условие положительности} then n:=n+1; {Наращиваем на 1 счетчик}write('в массиве ',n,' положительных эл-ов');readln; { пауза }end.

 

Определение максимального элемента и его положения в массиве. Рассмотрим пример программы, которая заполняет вещественный массив случайными числами и определяет значение и индекс (номер) максимального элемента этого массива Programm Primer3;var m: array[1..30] of real; {Описание массива} i: integer; {параметр цикла for} max: real; {значение максимального элемента} t: integer; {индекс (номер) макс. элемента}beginRandomize;for i:=1 to 30 do m[i]:=10*Random; {заполнение массива}max:=m[1]; {допустим, что 1-й элемент - максимален}t:=1;for i:=2 to 30 do {Для всех остальных элементов} if m[i]>max then {Сравниваем с максимальным} begin max:=m[i]; t:=i; end;writeln('максимальный элемент = ',max);writeln('номер максимального элемента ',t);readln; { пауза }end. Упорядочивание (сортировка) массивов. В большинстве случаев, массивы применяются для хранения большого количества однотипной информации, создания и организации баз и банков данных и т.д. Во многих случаях номер (индекс) элемента в массиве не играет большой роли. Важно именно его значение, т.е. сама информация.Базы и банки данных, в свою очередь, необходимы не только для того, чтобы "складывать" в них информацию, но и для того, чтобы в любой момент была возможность удобного и быстрого доступа к ней. В обычном "неотсортированном" массиве информацию найти можно, но только способом последовательного перебора-просмотра всех его элементов, до тех пор, пока нужный элемент не будет обнаружен. Этот самый простой метод обладает только одним но очень существенным недостатком - на поиск одного элемента уходит много времени. Все остальные методы поиска информации намного эффективнее, быстрее, но применяются только в упорядоченных, отсортированных массивах. Поэтому часто возникает задача об упорядочивании массива.Рассмотрим простой случай такой задачи: дан числовой массив x1, x2,... xn, элементы которого попарно различны; требуется переставить элементы массива так, чтобы после перестановки они были упорядочены в порядке возрастания: x1 < x2 <... < xn. Существует несколько алгоритмов решения этой задачи. Алгоритм сортировки перебором. Очевидно, что первое место в массиве должен занять минимальный элемент массива, второе - наименьший из всех остальных, третий - наименьший из оставшихся и т.д. Для этого необходимо выполнить следующую последовательность действий:1. Определить минимальный элемент массива;2. Поменять его местами с первым элементом;3. Определить минимальный элемент среди оставшихся;4. Поменять его местами со вторым элементом и т.д.;Эта последовательность действий должна выполняться до тех пор, пока не будет определён последний минимальный элемент. Всю операцию по упорядочиванию массива можно разбить на более простые задачи. Первая — поиск минимального элемента среди элементов с номерами i..n. Величина i должна быть равна сначала 1, затем 2, 3 и т.д до n-1.Вторая — замена местами минимального элемента с номером t и элемента номером i. Поменять местами две переменные x и y можно двумя способвми:1) с использованием вспомогательной переменной v:=x; x:=y; y:=v;2) без использования вспомогательной переменной x:=x+y; y:=x-y; x:=x-y;
Блок-схема алгоритма сортировки перебором:
 
 

 

 


 


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

Если два соседних элемента расположены не в нужной последовательности, то меняем их местами. Так повторяем до тех пор, пока в очередном проходе не сделаем ни одного обмена, т.е. массив будет упорядоченным. Ниже показана блок-схема алгоритма сортировки по возрастанию методом пузырька (m - массив для сортировки с начальным индексом 1, n - размерность массива).

 

 
 

 


Дата добавления: 2015-08-13; просмотров: 345 | Нарушение авторских прав


Читайте в этой же книге: Лекции (черновики). | Интегрированная среда Turbo Pascal (Borland Pascal) | Главное меню Turbo Pascal | Пункт Edit. | Введение в язык Паскаль. Структура программы на Паскале. | Строки. | Многомерные массивы. | Длина строки. | Параметры-значения и параметры-переменные. | Устройства LРT1, LРT2, LРT3. |
<== предыдущая страница | следующая страница ==>
Описание одномерных массивов.| Алгоритм быстрой сортировки.

mybiblioteka.su - 2015-2024 год. (0.006 сек.)