Показать сообщение отдельно
  #12  
Старый 21.11.2010, 16:41
flips flips вне форума
Новичок
 
Регистрация: 04.11.2010
Сообщения: 60
Репутация: 10
По умолчанию

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;
Ответить с цитированием