Чтобы удалить все максимальные элементы из массива в языке программирования Паскаль, нужно выполнить несколько шагов. Я предоставлю вам программу, которая реализует этот процесс, а затем объясню каждый шаг.
Вот пример кода на языке Паскаль:
program RemoveMaxElements;
uses SysUtils;
var
arr: array of Integer;
n, i, max, newSize: Integer;
begin
// Запрашиваем у пользователя количество элементов массива
Write('Введите количество элементов массива: ');
ReadLn(n);
// Инициализируем массив
SetLength(arr, n);
// Заполняем массив элементами, введенными пользователем
WriteLn('Введите элементы массива:');
for i := 0 to n - 1 do
begin
Write('Элемент ', i + 1, ': ');
ReadLn(arr[i]);
end;
// Ищем максимальное значение в массиве
max := arr[0];
for i := 1 to n - 1 do
begin
if arr[i] > max then
max := arr[i];
end;
// Выводим максимальное значение для проверки
WriteLn('Максимальное значение в массиве: ', max);
// Удаляем все максимальные элементы
newSize := 0;
for i := 0 to n - 1 do
begin
if arr[i] max then
begin
arr[newSize] := arr[i];
Inc(newSize);
end;
end;
// Изменяем размер массива
SetLength(arr, newSize);
// Выводим массив после удаления максимальных элементов
WriteLn('Массив после удаления максимальных элементов:');
for i := 0 to newSize - 1 do
begin
Write(arr[i], ' ');
end;
WriteLn;
end.
Объяснение программы:
Инициализация и ввод данных:
- Пользователь вводит количество элементов массива
n
.
- Создается массив
arr
размером n
.
- Пользователь заполняет массив элементами.
Поиск максимального элемента:
- Инициализируем переменную
max
первым элементом массива.
- Проходим по массиву, сравнивая каждый элемент с текущим максимальным значением. Если находим большее значение, обновляем
max
.
Удаление максимальных элементов:
- Создаем переменную
newSize
, чтобы отслеживать новый размер массива.
- Проходим по массиву и копируем все элементы, не равные
max
, в начало массива, увеличивая newSize
каждый раз, когда элемент копируется.
Изменение размера массива:
- После цикла изменяем размер массива на
newSize
с помощью SetLength
.
Вывод результата:
- Выводим массив после удаления всех максимальных элементов.
Этот алгоритм позволяет эффективно удалить все вхождения максимального элемента из массива, сохраняя порядок остальных элементов.