Удалить из массива все элементы, равные значению первого элемента. - Pascal
Формулировка задачи:
1.1. Дан линейный массив целых чисел. Удалить из массива все элементы, равные значению первого элемента массива. Сам первый элемент не удалять.
1.2. Дана матрица размера M на N. В каждом ее столбце найти количество элементов, больших среднего арифметического всех элементов этого столбца.
Кирюша Пархом постарался и сделал сам)
1.2
type
A1=array [1..100] of real;
var
A:array [1..100] of A1;
i,j,m,n,x:integer;
sum,sr:real;
B:A1;
begin
write('Введите количество строк: ');
readln(m);
write('Введите количество столбов: ');
readln(n);
for i:=1 to m do
for j:=1 to n do
a[i,j]:=random(100);
writeln;
writeln('Матрица: ');
writeln;
for i:=1 to m do begin
for j:=1 to n do write('|',a[i,j]:3,'|');
writeln;
end;
writeln;
For j:=1 to n do begin
sum:=0; x:=0;
For i:=1 to n do
sum:=sum+A[i,j]; sr:=sum/n;
For i:=1 to n do If A[i,j]>sr then x:=x+1;
writeln('Кол-во элементов в ',j,' столбце: ',x);
end;
end.Решение задачи: «Удалить из массива все элементы, равные значению первого элемента.»
textual
Листинг программы
const n=20;
var a: array [1..n] of integer;
i,j:byte;
begin
randomize;
writeln('Исходный массив');
for i:=1 to n do
begin
a[i]:=1+random(5);
write(a[i]:3);
end;
writeln;
j:=1; //счётчик не равных первому, кроме первого
for i:=2 to n do //проходим по массиву
if a[i]<>a[1] then //пропускаем не равные первому
begin
inc(j);
if j<i then a[j]:=a[i]; //если равен первому, на их место пишем следующие
end;
if j=0 then write('Все элементы удалены')
else if j=n then write('В массиве нет элементов, равных первому')
else
begin
writeln('Удаление равных первому');
for i:=1 to j do write(a[i]:3);
end;
end.
Объяснение кода листинга программы
- Константа
nсо значением 20 - определяет размер массива. - Массив
aтипа integer с размером n - используется для хранения элементов. - Переменные
iиjтипа byte - используются для циклов и подсчета элементов. - Заполнение массива случайными значениями от 1 до 5.
- Итерация по массиву и вывод исходного массива.
- Инициализация счетчика не равных первому(j) в 1, кроме первого элемента.
- Проход по массиву, проверка элементов на равенство первому элементу.
- Если элемент не равен первому, то увеличиваем счетчик и, если он не равен текущему индексу, то перемещаем элемент на место, которое указывает счетчик.
- В зависимости от значения счетчика j, выводится соответствующее сообщение или удаляются элементы равные первому, и выводится получившийся массив.
- Если все элементы удалены, выводится сообщение об этом. В данном коде реализован алгоритм удаления всех элементов, равных значению первого элемента массива a.