Консультация № 146330
07.10.2008, 14:59
0.00 руб.
0 2 1
Уважаемые эксперты помогите пожалуйста с задачей:
описать процедуру removeX(A,N,X), удаляющую из целочисенного массива A размера N элементы, равные целому числу X. Массив A и число N являются входными и выходными параметрами.С помощью этой процедуры удалить числа Xa, Xb, Xc из массивовA,B,C размера Na,Nb,Nc соответственно и вывести размер и содержимое полученных массивов.

Обсуждение

давно
Профессор
401888
1232
07.10.2008, 20:41
общий
это ответ
Здравствуйте, Клементенко Анастасия Александровна!
Решение с пояснениями в приложении. Чтобы не писать по три раза ввод и вывод массивов, оформил тоже процедурами.

Приложение:
uses crt;
type Tmas=array[1..100]of integer; {тип массив}
procedure Remove(var a:Tmas;var n:byte;x:integer);
var i,j:integer;
begin
i:=1;
while i<=n do
begin
if a[i]=x then {если элемент=х}
begin
for j:=i to n-1 do
a[j]:=a[j+1]; {сдвигаем все элементы от i+1 до n на 1 влево}
n:=n-1; {уменьшаем n}
end
else i:=i+1; {иначе переходим к следующему элементу}
end;
end;
procedure Input(n:byte; var a:Tmas);{ввод массива}
var i:integer;
begin
randomize;
for i:=1 to n do
begin
a[i]:=random(20);
write(a[i],' ');
end;
writeln;
end;
procedure Output(n:byte; var a:Tmas);{вывод измененного массива}
var i:integer;
begin
for i:=1 to n do
write(a[i],' ');
writeln;
end;
var a,b,c:Tmas; {раздел переменных}
na,nb,nc:byte;
xa,xb,xc:integer;
begin {начало программы}
clrscr;
randomize;
write('na=');readln(na);
writeln('Massiv A:');
Input(na,a); {выводим массив}
write('xa=');readln(xa); {выбираем число, которое удалять}
Remove(a,na,xa); {удаляем}
Output(na,a); {выводим измененный массив}
write('nb=');readln(nb);
writeln('Massiv B:');
Input(nb,b);
write('xb=');readln(xb);
Remove(b,nb,xb);
Output(nb,b);
write('nc=');readln(nc);
writeln('Massiv C:');
Input(nc,c);
write('xc=');readln(xc);
Remove(c,nc,xc);
Output(nc,c);
readln
end.

Неизвестный
08.10.2008, 13:32
общий
спасибо огромное за помощь
Форма ответа