Дан массив X, состоящий из n элементов. Необходимо найти максимальный элемент массива и номер, под которым он хранится в массиве.
Алгоритм решения задачи следующий. Пусть в переменной с именем max хранится значение максимального элемента массива, а в переменной с именем Nmax – его номер. Предположим, что первый элемент массива является максимальным и запишем его в переменную max, а в Nmax – его номер (т.е. 1). Затем все элементы, начиная со второго, сравниваем в цикле с максимальным. Если текущий элемент массива оказывается больше максимального, то записываем его в переменную max, а в переменную Nmax – текущее значение индекса i.
Соответствующий фрагмент программы имеет вид:
Writeln(‘max= ’,max,’ Nmax= ‘,Nmax);
Сортировка массивов
Сортировка – распределение элементов массива по группам в соответствии с определенными правилами.
Линейная сортировка (сортировка отбором)
Идея линейной сортировки (например, по возрастанию) заключается в том, чтобы последовательно просматривая весь массив, отыскать наименьшее число и поместить его на первую позицию, обменяв его с элементом, который ранее занимал первую позицию. Затем просматриваются все остальные элементы массива и выполняется аналогичная операция по отбору из рассматриваемой части массива минимального элемента и обмену местами этого элемента и первого из рассматриваемой части и т.д.
var A: array[1..10] of integer;
for i:=1 to 10 do
for i:=1 to 10-1 do
for j:=i+1 to 10 do
for i:=1 to 10 do
где I – используется для указания позиции первого элемента в рассматриваемой части массива;
J – для указания позиции очередного сравниваемого с ним элемента;
Если условие A[i]>=A[j] выполняется, т.е. в неотсортированной части массива найден элемент, меньший, чем первый, то необходимо обменять местами эти элементы.
Генерация случайных чисел
Генерация случайных вещественных чисел (REAL) в диапазоне от 0 до 1 осуществляется с помощью функции RANDOM
Если необходимо генерировать случайные числа в другом диапазоне, то необходимо преобразовать это выражение с помощью операций смещения и масштабирования. Например, для того, чтобы получить случайное число в диапазоне от 10 до 12, необходимо написать:
Для генерации целых случайных чисел (INTEGER) в диапазоне от 0 до N используется функция RANDOM с аргументом:
Для смены базы генерации случайных чисел, чтобы при каждом новом прогоне программы числа были другие, используется процедура RANDOMIZE. Обращение к этой процедуре идёт до обращения к функциям RANDOM.
Алгоритм поиска минимального (максимального) элемента в неупорядоченном массиве довольно очевиден: делается предположение, что первый элемент массива является минимальным (максимальным), затем остальные элементы массива последовательно сравниваются с этим элементом. Если во время очередной проверки обнаруживается, что проверяемый элемент меньше (больше) принятого за минимальный (максимальный), то этот элемент принимается за минимальный (максимальный) и продолжается проверка оставшихся элементов.
Пример программы поиска минимального элемента в массиве целых чисел.
program Primer;
const n=10;
vara:array[1..n] of integer;
Begin
for i:=2 to n do
writeln(‘минимальный элемент массива’,a[min],’, номер элемента’,min);
Задание: Дан массив целых чисел. Найти сумму элементов массива, которые делятся на 5 нацело.
Алгоритм решения задачи:
1. Попросить пользователя ввести с клавиатуры 5 чисел и записать их в массив A.
2. Присвоить переменной S значение ноль (сумма элементов, которые делятся на 5).
3. Просматривая массив, найти элементы, которые делятся на 5, т.е. при делении элемента массива на 5 остаток от деления должен равняться нулю и значение этих элементов накапливать в переменной S.
4. Вывести сумму на экран.
Блок-схема программыприведена на рисунке И.3.
Рисунок И.3 – Алгоритм программы
Листинг программы:
program Primer;
var A:array[1..10] of integer;
Begin
writeln(‘Введите 10 элементов массива’);
fori:=1 to 10 do readln(A[i]);
for i:=1 to 10 do
if A[i] mod 5=0 then S:=S+A[i];
writeln(‘Сумма элементов массива, которые делятся на 5 равна’,S);
Приложение К
Не нашли то, что искали? Воспользуйтесь поиском:
Лучшие изречения: Для студентов недели бывают четные, нечетные и зачетные. 9696 — | 7547 — или читать все.
91.146.8.87 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.
Отключите adBlock!
и обновите страницу (F5)
очень нужно
Часто встречаются задачи, где необходимо найти максимальный элемент в массиве. Рассмотрим общий алгоритм решения такой задачи.
Первое, что придётся сделать – создать массив. Как нам уже известно, нужно использовать цикл с параметром. Также удобнее будет создать массив случайным образом, если в условии задачи не оговорён способ задания массива.
Алгоритм нахождения максимального элемента массива выполняется следующим образом.
Сначала указываем, что первый элемент массива считается максимальным, иначе говоря – Max = A[i].
Потом начинаем процесс сравнивания последующих элементов массива с максимальным элементом в массиве.
Тут возможно два случая :
- Если максимальный элемент больше следующего, то ничего не меняем.
- Если максимальный элемент меньше следующего, то он становиться максимальным.
После этого выводим на экран максимальный элемент.
Блок-схема максимальный элемент массива
Программа максимальный элемент массива Pascal
Ниже представлен текст программы на языке Pascal, как найти максимальный элемент массива. Как было указанно в алгоритме выше, сначала создается сам массив (в моем случает любые целые числа от 0 до 100 включительно).