1. Выдает ошибку о несовместимости типов.
2. Исходный массив я уже передаю по ссылке.
Вот код всех моих подпрограмм:
Создание массива
Код:
procedure createRandomArray(var a:TArray100;cnt,modul:integer);
var i:integer;
begin
randomize;
for i:=1 to cnt do a[i]:=random(modul);
end;
Вывод массива в строку
Код:
function ArrayToStr(const a:TArray100;cnt:integer):string;
var i:integer;
begin
result:='';
for i:=1 to cnt do
result:=result+intToStr(a[i])+' ';
end;
Получение массива из строки
Код:
procedure getArrayFromStr(var a:TArray100;var cnt:integer; const s:string);
var wep:integer; w:string[20];s1:string;
begin
s1:=s;
cnt:=0;
while length(Trim(s1))>0 do
begin
s1:=Trim(s1);
wep:=Pos(' ',s1);
if wep=0 then
wep:=length(s1)
else
wep:=wep-1;
w:=copy(s1,1,wep);
delete(s1,1,wep);
cnt:=cnt+1;
a[cnt]:=strtoint(w);
end;
end;
Вывод массива в Memo
Код:
procedure showArrayInMemo(const a:TArray100;cnt:integer;Memo1:TMemo);
var i:integer;
begin
Memo1.Clear;
for i:=1 to cnt do
begin
Memo1.Lines.Add(inttostr(a[i]));
end;
end;
Сортировка массива
Код:
procedure SortArray(var a:TArray100;cnt:integer);
var last,x,i:integer;ok:boolean;
begin
last:=cnt;
repeat
ok:=true;
for i:=1 to last-1 do
if a[i]>a[i+1] then
begin
x:=a[i];
a[i]:=a[i+1];
a[i+1]:=x;
ok:=false;
end;
until ok;
end;
Ну и наконец удаление элементов массива
Код:
procedure DelEvenElement(var a:TArray100;var cnt:integer);
var i,j:integer;
begin
for i:=cnt downto 1 do
if a[i]=a[i+1] then
begin
for j:=i to cnt do
a[j]:=a[j+1];
cnt:=cnt-1;
end;
end;