Удалить элементы, равные числу Х, из массива А целых чисел - 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.
Объяснение кода листинга программы
- В первой функции
massiv
объявляются переменныеa
,n
иc
, которые представляют собой массив целых чисел, его размер и символ, которым будет помечаться начало каждой строки вывода. - Затем в цикле
repeat
считывается размер массиваn
и выводится запрос на ввод символа начала строки. - После этого в цикле
for
считываются случайные числа от 0 до 20 и записываются в массивa
. - Выводится сообщение о том, что массив был успешно записан.
- Во второй функции
removeX
объявляются переменныеa
,n
иx
, которые представляют собой массив целых чисел, его размер и число, которое нужно удалить. - Затем выводится запрос на ввод числа для удаления.
- В цикле
while
считывается индекс элемента массива. - Если считанный элемент равен
x
, то происходит проверка, является ли текущий индекс последним в массиве. - Если это так, то уменьшается значение
n
на единицу. - Если нет, то в цикле
for
перебираются элементы массива от текущего индекса до конца массива и заменяется каждый из них на следующий элемент. - После этого выводится сообщение о том, что элемент был удален.
- В третьей функции
massiv
объявляются переменныеa
,n
иc
, которые представляют собой массив целых чисел, его размер и символ, которым будет помечаться начало каждой строки вывода. - Затем в цикле
repeat
считывается размер массиваn
и выводится запрос на ввод символа начала строки. - После этого в цикле
for
считываются случайные числа от 0 до 20 и записываются в массивa
. - Выводится сообщение о том, что массив был успешно записан.
- Во второй функции
removeX
объявляются переменныеa
,n
иx
, которые представляют собой массив целых чисел, его размер и число, которое нужно удалить. - Затем выводится запрос на ввод числа для удаления.
- В цикле
while
считывается индекс элемента массива. - Если считанный элемент равен
x
, то происходит проверка, является ли текущий индекс последним в массиве. - Если это так, то уменьшается значение
n
на единицу. - Если нет, то в цикле
for
перебираются элементы массива от текущего индекса до конца массива и заменяется каждый из них на следующий элемент. - После этого выводится сообщение о том, что элемент был удален.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д