Удалить элементы, равные числу Х, из массива А целых чисел - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Описать процедуру Remove X (A,N,X) удаляющию элементы, равные числу Х, из массива А целых чисел размера N. Массив А и число N являются входными и выходными параметрами. С помощью этой процедуры удалить из массивов А,В,С размера NA,NB,NC числа ХА, ХАВ,ХС соотвественно.

Решение задачи: «Удалить элементы, равные числу Х, из массива А целых чисел»

textual
Листинг программы
uses crt;
const nmax=100;
type mas=array[1..nmax] of integer;
procedure massiv(var a:mas;var n:integer;c:char);
var i:integer;
begin
repeat
write('Размер массива ',c,' до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Массив ',c);
for i:=1 to n do
 begin
  a[i]:=random(20);
  write(a[i]:4);
 end;
writeln;
end;
procedure removeX(var a:mas;var n,x:integer);
var i,j,m:integer;
begin
m:=n;
write('Введите число для удаления x=');
readln(x);
i:=1;
while i<=n do
if a[i]=x then
 begin
  if i=n then dec(n)
  else
   begin
    for j:=i to n-1 do
    a[j]:=a[j+1];
    dec(n)
   end;
 end
else inc(i);
if n=m then writeln('Числа ',x,' в массиве нет')
else if n=0 then writeln('Вме элементы удалены')
else
 begin
  writeln('Удаление элементов, равных ',x);
  for i:=1 to n do
  write(a[i]:4);
 end;
writeln
end;
 
var a,b,c:mas;
    na,nb,nc,xa,xb,xc:integer;
begin
clrscr;
randomize;
massiv(a,na,'A');
removeX(a,na,xa);
massiv(b,nb,'B');
removeX(b,nb,xb);
massiv(c,nc,'C');
removeX(c,nc,xc);
readln
end.

Объяснение кода листинга программы

  1. В первой функции massiv объявляются переменные a, n и c, которые представляют собой массив целых чисел, его размер и символ, которым будет помечаться начало каждой строки вывода.
  2. Затем в цикле repeat считывается размер массива n и выводится запрос на ввод символа начала строки.
  3. После этого в цикле for считываются случайные числа от 0 до 20 и записываются в массив a.
  4. Выводится сообщение о том, что массив был успешно записан.
  5. Во второй функции removeX объявляются переменные a, n и x, которые представляют собой массив целых чисел, его размер и число, которое нужно удалить.
  6. Затем выводится запрос на ввод числа для удаления.
  7. В цикле while считывается индекс элемента массива.
  8. Если считанный элемент равен x, то происходит проверка, является ли текущий индекс последним в массиве.
  9. Если это так, то уменьшается значение n на единицу.
  10. Если нет, то в цикле for перебираются элементы массива от текущего индекса до конца массива и заменяется каждый из них на следующий элемент.
  11. После этого выводится сообщение о том, что элемент был удален.
  12. В третьей функции massiv объявляются переменные a, n и c, которые представляют собой массив целых чисел, его размер и символ, которым будет помечаться начало каждой строки вывода.
  13. Затем в цикле repeat считывается размер массива n и выводится запрос на ввод символа начала строки.
  14. После этого в цикле for считываются случайные числа от 0 до 20 и записываются в массив a.
  15. Выводится сообщение о том, что массив был успешно записан.
  16. Во второй функции removeX объявляются переменные a, n и x, которые представляют собой массив целых чисел, его размер и число, которое нужно удалить.
  17. Затем выводится запрос на ввод числа для удаления.
  18. В цикле while считывается индекс элемента массива.
  19. Если считанный элемент равен x, то происходит проверка, является ли текущий индекс последним в массиве.
  20. Если это так, то уменьшается значение n на единицу.
  21. Если нет, то в цикле for перебираются элементы массива от текущего индекса до конца массива и заменяется каждый из них на следующий элемент.
  22. После этого выводится сообщение о том, что элемент был удален.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы