Удалить из массива все элементы, равные значению первого элемента. - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д