Уважаемые гуру. помогите пожалуйста. дали задачку на делфи "удалить из массива заданный элемент" подскажите пожалуйста как ее написать ( неполучается никак.
Тупой у вас какой-то препод... Условий мало для задачи.
Ну если, по позиции, то тогда совсем все просто. Если по значению, то напиши процедурку типа:
procedure Del_Var (val: integer); var mass : array[0..10] of integer = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11); success: boolean:=false; begin for i:=0 to 10 do begin if mass[i] = val then begin mass[i] := nil; success:=true; end; end; if success then {напечатать типа "Ура нашли"} else {напечатать "=("}; end;
ну.. могу составить. Ток пишу тут, без проверок на ошибки, возможно всё)
Const l=10; Var a : array [0..l] of integer; i, d, n : integer; BEGIN n:=l; for i:=0 to n do a[i]:=random(100); for i:=0 to n do Write(a[i], ' '); WriteLn; Write('Удалить элемент номер: '); ReadLn(d); for i:=d to n-1 do a[i]:=a[i+1]; a[n]:=0; dec(n); for i:=0 to n do Write(a[i], ' '); ReadLn; END.
Если задают индекс то бери и удаляй
Если задают значение то удаляй из масива все элементы с этим значением
Ну если, по позиции, то тогда совсем все просто.
Если по значению, то напиши процедурку типа:
procedure Del_Var (val: integer);
var
mass : array[0..10] of integer = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11);
success: boolean:=false;
begin
for i:=0 to 10 do
begin
if mass[i] = val then
begin
mass[i] := nil;
success:=true;
end;
end;
if success then {напечатать типа "Ура нашли"}
else {напечатать "=("};
end;
пасиба за процедуру...ща попробую)
for i:=d to n-1 do a[i]:=a[i+1];
a[n]:=0;
dec(n);
ArrayName[index]:=Value;
Const l=10;
Var a : array [0..l] of integer;
i, d, n : integer;
BEGIN
n:=l;
for i:=0 to n do a[i]:=random(100);
for i:=0 to n do Write(a[i], ' ');
WriteLn;
Write('Удалить элемент номер: ');
ReadLn(d);
for i:=d to n-1 do a[i]:=a[i+1];
a[n]:=0;
dec(n);
for i:=0 to n do Write(a[i], ' ');
ReadLn;
END.