Remkomplekty.ru

IT Новости из мира ПК
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

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

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

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

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

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

Язык паскаль онлайн

Поиск Максимального Элемента и Минимального Элемента в Массиве Паскаль

    Browse: Home / Самоучитель паскаль онлайн / Поиск Максимального Элемента и Минимального Элемента в Массиве Паскаль

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

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

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

Чтобы разобраться в том , как осуществляется поиск элемента в массиве паскаль , мы разберем такую задачу :

Условие : С клавиатуры вводятся 5 целых чисел , требуется найти наибольший элемент ( наибольшее число ) и вывести его на экран.

Решение:

В блоке var объявляем массив «а». Диапазон индексов от 1 до 5 , так как максимальное количество введенных чисел = 5 ( исходя из условия задачи ). Тип переменных integer ( вводятся целые числа ).

Также нам понадобятся ещё две переменные «i» и «max». Переменная i будет играть роль счетчика для цикла , а переменная max будет хранить в себе максимальное значение элемента в массиве.

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

Далее присваиваем переменной max значения первого элемента массива. Возможно у вас возникает вопрос для чего это делается ? ведь первый элемент массива может и не быть наибольшим , более того , он может быть наименьшим. Это делается для того , чтобы иметь «точку отправления» , с которой мы будем сравнивать все остальные элементы в массиве.

В следующем цикле мы будем проверять все элементы в массиве ( из условия 5 ). Проверять нужно все элементы массива , так как мы не знаем где находится наибольший. Но начинать мы будем со 2 , так как первый элемент уже занесен в максимум и сравнивать одинаковые числа не имеет смысла.

Представим , что мы заполнили наш массив так : 4 17 -5 0 8 , тогда переменная max = 4 ( так как a[1] = 4 ).

Читать еще:  На каком языке написан паскаль

Во время сравнения двух элементов max и a[i] выполняется условие ( a[i] > max ). Если условие истинно ( какой-либо элемент массива больше max ) , то переменной max присваивается значение этого элемента ( a[i] ).

Второй элемент массива больше переменной max , поэтому max присваивается значение 17.


При дальнейших сравнениях в массиве , не найдены элементы большие 17 , поэтому max остается неизменным.

В конце программы выводим max на экран ( 17 ).

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

Условие : С клавиатуры вводятся 5 целых чисел , требуется найти наименьший элемент ( наименьшее число ) и вывести его на экран.

Pascal-Паскаль

Программирование. Одномерные массивы Pascal-Паскаль

  • Скачено бесплатно: 9311
  • Куплено: 414
  • Pascal-Паскаль->Программирование. Одномерные массивы Pascal-Паскаль

Программирование. Одномерные массивы Pascal-Паскаль

Понятие структуры

До сих пор мы работали с простыми типами данных – логический ( boolean ), целый ( integer , word , byte , longint ), вещественный ( real ), символьный ( char ). Любой алгоритм можно запрограммировать с помощью этих четырех базовых типов. Но для обработки информации о многообразном реальном мире требуются данные, имеющие более сложное строение. Такие сложные конструкции, основанные на простейших скалярных типах, называются структурами. Структура – некоторый составной тип данных, составленный из базовых скалярных. Если структура не изменяет своего строения на протяжении всего выполнения программы, в которой она описана, то такую структуру называют статической.

Массив – однородная совокупность элементов

Самой распространенной структурой, реализованной практически во всех языках программирования, является массив.

Массивы состоят из ограниченного числа компонент, причем все компоненты массива имеют один и тот же тип, называемый базовым. Структура массива всегда однородна. Массив может состоять из элементов типа integer , real или char , либо других однотипных элементов. Из этого, правда, не следует делать вывод, что компоненты массива могут иметь только скалярный тип.

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

Индекс массива

Номер элемента массива называется индексом. Индекс – это значение порядкового типа, определенного, как тип индекса данного массива. Очень часто это целочисленный тип ( integer , word или byte ), но может быть и логический и символьный.

Описание массива в Паскале. В языке Паскаль тип массива задается с использованием специального слова array (англ. – массив), и его объявление в программе выглядит следующим образом:

где I – тип индекса массива, T – тип его элементов.

Можно описывать сразу переменные типа массив, т.е. в разделе описания переменных:

Обычно тип индекса характеризуется некоторым диапазоном значений любого порядкового типа : I 1 .. I n . Например, индексы могут изменяться в диапазоне 1..20 или ‘ a ‘..’ n ‘.

При этом длину массива Паскаля характеризует выражение:

Вот, например, объявление двух типов: vector в виде массива Паскаля из 10 целых чисел и stroka в виде массива из 256 символов:

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

Опишем переменные типа vector и stroka :

далее в программе мы можем обращаться к отдельным элементам массива a или c . Например, a [5]:=23; c [1]:=’ w ‘; a [7]:= a [5]*2; writeln ( c [1], c [3]).

Вычисление индекса массива Паскаля

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

Этот механизм – весьма мощное средство программирования. Но он порождает распространенную ошибку: результат вычислений может оказаться за пределами интервала допустимых значений индекса, то есть будет произведена попытка обратиться к элементу, которого не существует. Эта типичная ошибка называется «выход за пределы массива».

Пример программы с ошибкой массива Паскаля

Хотя данная программа полностью соответствует синтаксису языка, и транслятор «пропустит» ее, на стадии выполнения произойдет ошибка выхода за пределы массива Паскаля. При n =45 выражение n *2=90, компьютер сделает попытку обратиться к элементу массива a [90], но такого элемента нет, поскольку описан массив размерностью 80.

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

Из всего этого следует сделать вывод: программисту надо быть очень аккуратным при работе с индексами массива.

Основные действия с массивами Паскаля

Как известно, определение типа данных означает ограничение области допустимых значений, внутреннее представление в ЭВМ, а также набор допустимых операций над данными этого типа. Мы определили тип данных как массив Паскаля. Какие же операции определены над этим типом данных? Единственное действие, которое можно выполнять над массивами целиком, причем только при условии, что массивы однотипны, – это присваивание. Если в программе описаны две переменные одного типа, например,

Читать еще:  Сложение матриц паскаль

то можно переменной a присвоить значение переменной b ( a := b ). При этом каждому элементу массива a будет присвоено соответствующее значение из массива b. Все остальные действия над массивами Паскаля производятся поэлементно (это важно!).

Ввод массива Паскаля

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

Пример фрагмента программы ввода массива Паскаля

Рассмотрим теперь случай, когда массив Паскаля заполняется автоматически случайными числами, для этого будем использовать функцию random ( N ).

Пример фрагмента программы заполнения массива Паскаля случайными числами

Вывод массива Паскаля

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

Пример фрагмента программы вывода массива Паскаля

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

Пример программы вывода массива Паскаля в столбик

На экране мы увидим, к примеру, следующие значения:

Пример решения задачи с использованием массивов Паскаля

Задача: даны два n -мерных вектора. Найти сумму этих векторов.

Решение задачи:

    Входными данными в этой задаче будут являться два одномерных массива. Размер этих массивов может быть произвольным, но определенным. Т.е. мы можем описать заведомо большой массив, а в программе определить, сколько элементов реально будет использоваться. Элементы этих массивов могут быть целочисленными. Тогда описание будет выглядеть следующим образом:

Ход решения задачи:

  • определим количество элементов (размерность) массивов, введем значение n ;
  • введем массив a ;
  • введем массив b ;
  • в цикле, перебирая значения индекса i от 1 до n , вычислим последовательно значения элементов массива c по формуле:

Текст программы :

Пример программы суммирования векторов

Программирование

Исходники Pascal (127)

Справочник

Справочник по паскалю: директивы, функции, процедуры, операторы и модули по алфавиту

1 Программирование на языке Паскаль Максимальный элемент массива. — презентация

Презентация была опубликована 6 лет назад пользователемФедор Ростовцев

Похожие презентации

Презентация на тему: » 1 Программирование на языке Паскаль Максимальный элемент массива.» — Транскрипт:

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

4 4 Программа program qq; const N = 5; var a: array [1..N] of integer; i, iMax: integer; begin writeln(‘Исходный массив:’); for i:=1 to N do begin a[i] := random(100) + 50; write(a[i]:4); end; iMax := 1; < считаем, что первый – максимальный >for i:=2 to N do < проверяем все остальные >if a[i] > a[iMax] then < новый максимальный >iMax := i; < запомнить i >writeln; <перейти на новую строку>writeln(‘Максимальный элемент a[‘, iMax, ‘]=’, a[iMax]); end; program qq; const N = 5; var a: array [1..N] of integer; i, iMax: integer; begin writeln(‘Исходный массив:’); for i:=1 to N do begin a[i] := random(100) + 50; write(a[i]:4); end; iMax := 1; < считаем, что первый – максимальный >for i:=2 to N do < проверяем все остальные >if a[i] > a[iMax] then < новый максимальный >iMax := i; < запомнить i >writeln; <перейти на новую строку>writeln(‘Максимальный элемент a[‘, iMax, ‘]=’, a[iMax]); end; for i:=1 to N do begin a[i] := random(100) + 50; write(a[i]:4); end; for i:=1 to N do begin a[i] := random(100) + 50; write(a[i]:4); end; iMax := 1; < считаем, что первый – максимальный >for i:=2 to N do < проверяем все остальные >if a[i] > a[iMax] then < новый максимальный >iMax := i; < запомнить i >iMax := 1; < считаем, что первый – максимальный >for i:=2 to N do < проверяем все остальные >if a[i] > a[iMax] then < новый максимальный >iMax := i; < запомнить i >случайные числа в интервале [50,150) поиск максимального a[iMax] then < новый максимальный >iMax := i; < запомнить i >writeln; <перейти на новую строку>writeln(‘Максимальный элемент a[‘, iMax, ‘]=’, a[iMax]); end; program qq; const N = 5; var a: array [1..N] of integer; i, iMax: integer; begin writeln(‘Исходный массив:’); for i:=1 to N do begin a[i] := random(100) + 50; write(a[i]:4); end; iMax := 1; < считаем, что первый – максимальный >for i:=2 to N do < проверяем все остальные >if a[i] > a[iMax] then < новый максимальный >iMax := i; < запомнить i >writeln; <перейти на новую строку>writeln(‘Максимальный элемент a[‘, iMax, ‘]=’, a[iMax]); end; for i:=1 to N do begin a[i] := random(100) + 50; write(a[i]:4); end; for i:=1 to N do begin a[i] := random(100) + 50; write(a[i]:4); end; iMax := 1; < считаем, что первый – максимальный >for i:=2 to N do < проверяем все остальные >if a[i] > a[iMax] then < новый максимальный >iMax := i; < запомнить i >iMax := 1; < считаем, что первый – максимальный >for i:=2 to N do < проверяем все остальные >if a[i] > a[iMax] then < новый максимальный >iMax := i; < запомнить i >случайные числа в интервале [50,150) поиск максимального»>

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

6 Найти максимальный (минимальный) элемента массива, а также его порядковый номер. program prim3; uses crt; var i,n,r,max,min,imax,imin:integer; a:array[ ] of integer; begin clrscr; randomize; write(‘число элементов n= ‘); readln(n); for i:=1 to n do begin a[i]:=random(45)-22; <Получаем случайные числа и выводим их на экран.>write(a[i],’ ‘); end; <За начальный максимум (минимум) берем первый элемент массива.>min:=a[1]; max:=a[1]; for i:=1 to n do begin <Если найдется элемент, меньший MIN, то MIN будет равен этому элементу. Одновременно запоминаем индекс промежуточного минимума.>if a[i] = max then begin max:=a[i]; imax:=i; end; end; <Печатаем минимальный элемент и его индекс.>writeln(‘ наименьший=’, min,’ номер’, imin); <Печатаем максимальный элемент и его индекс.>writeln(‘ наиболльший’, max, ‘ номер’,imax); readkey; end.

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

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

Принцип нахождения максимального и минимального элементов массива одинаков. Поэтому рассмотрим его на примере алгоритма поиска максимального элемента.

Нахождение максимального элемента массива выполняется путём последовательных сравнений. Значение наибольшего из сравниваемых элементов станем запоминать в переменной МАХ. В качестве начального значения максимума примем значение первого элемента массива. Значение переменной МАХ будем сравнивать с каждым следующим элементом массива. Если МАХ окажется меньше очередного элемента, то значение этого элемента сохраним в переменной МАХ для сравнения с последующими элементами массива. В противном случае значение переменной МАХ оставим без изменений.

Таким образом, когда все элементы массива будут просмотрены, в переменной МАХ останется копия максимального элемента массива. Сам же массив изменён не будет.

Блок-схема алгоритма нахождения максимума приведена на рисунке 13. Фрагмент программы приведён ниже.

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

При этом ничего не будет известно о местоположении максимального элемента в массиве, т.е. об его индексе. Между тем существует большая группа задач, для решения которых необходимо знать номер максимального элемента в массиве. В этот класс задач входят те, в которых требуется преобразовать сам максимальный элемент массива; задачи, в которых требуется обработать часть массива до максимального элемента или после него и т.п.

Алгоритм нахождения номера максимального элемента в одномерном массиве показан на рисунке 14. Понятно, что номер максимального элемента следует находить одновременно со значением максимума.

Суть алгоритма нахождения номера максимального элемента массива состоит в том, что при изменении значения, хранящегося в переменной МАХ, на значение большего элемента массива ещё в одной переменной Imax запоминается индекс элемента, принятого за максимальный. После просмотра всех элементов массива в переменной МАХ останется копия значения максимального элемента массива, а в переменной Imax – номер максимального элемента. Чтобы преобразовать максимальный элемент массива, необходимо обратиться к нему по его найденному номеру. В качестве примера на рисунке 14 приведён алгоритм нахождения номера максимального элемента одномерного массива и замена максимального элемента нулём. Фрагмент программы приведён ниже.

• • •

Как указывалось выше, алгоритм поиска минимального значения

MIN массива похож на алгоритм поиска максимального значения. Аналогично, в качестве начального значения MIN можно принять значение первого элемента массива, а затем MIN поэлементно сравнивать с элементами массива. Если значение MIN окажется больше элемента массива, то значение этого элемента массива необходимо сохранить в переменной MIN. Фрагмент программы поиска минимального значения среди всех элементов массива приводится ниже.

for i := 2 to N do

if MIN > A[i] then

writeln (‘MIN= ‘, MIN);

В случае, когда требуется найти MIN и MAX не среди всех элементов массива, а лишь среди тех элементов, которые удовлетворяют некоторому условию (положительные, четные и т.п.), тогда в качестве начальных значений MIN и MAX нельзя принимать значение первого элемента массива, так как заранее не известно, удовлетворяют ли они заданным условиям. В этом случае необходимо поступить следующим образом: в качестве начального значения MAX принять заведомо малое число, которое не будет принадлежать данному массиву (например, MAX = -10000, и если необходимо, Imax = 0), а в качестве начального значения MIN – большое число (например, MIN = 10000, Imin = 0). Такой метод выбора значений MAX, MIN является универсальным.

Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×