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.