Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2011, 15:00   #1
Рик
Пользователь
 
Регистрация: 07.02.2011
Сообщений: 29
По умолчанию Сравнение двух массивов

Здравствуйте. Даны два строковых массива: а, а2. Надо найти количество одинаковых элементов массива, чтоб они совпадали не только по значению, но и по индексу. Делаю так:
Код:
var z,i,j:integer;
begin
z:=0;;
for i:=low(a) to high(a) do  begin
 if a2[i]=a[i]  then
 z:=z+1
 else z:=z;
end;
edit1.Text :=inttostr(z);
end;
Но прога упрямо выдает: 0, хотя я намеренно набираю одинаковые строки, потом расщипляю их на массивы.
Рик вне форума Ответить с цитированием
Старый 07.04.2011, 15:26   #2
BoozZzilla
Форумчанин
 
Аватар для BoozZzilla
 
Регистрация: 26.01.2009
Сообщений: 125
По умолчанию

ну допустим else здесь вообще можно убрать
а можно остальной код посмотреть?
BoozZzilla вне форума Ответить с цитированием
Старый 07.04.2011, 15:30   #3
Рик
Пользователь
 
Регистрация: 07.02.2011
Сообщений: 29
По умолчанию

Код:
Total :string;
   ss:string;
//.................................................................
procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
total:='';
ss:='aaaabbcddb';
edit2.Text :=ss;
for i:=low(ansArr) to qCount-1 do begin
  total:= total + ansArr[i];//+ ';';
 end;
 edit1.Text :=total;
 Repeat 
    setlength(a,length(a)+1);
    if pos(' ',ss)>0 then 
      begin
        a[length(a)-1]:=copy(ss,1, pos(' ',ss));
        ss:=copy(ss,pos(' ',ss)+1, length(ss));
      end
    else
      begin
        a[length(a)-1]:=ss;
        break;/
      end;
  Until False;
  Repeat 
    setlength(a2,length(a2)+1);/
    if pos(' ',total)>0 then 
      begin
        a2[length(a2)-1]:=copy(total,1, pos(' ',total));
        total:=copy(total,pos(' ',total)+1, length(total));
      end
    else
      begin
        a2[length(a2)-1]:=total;
        break;
      end;
  Until False;
end;

procedure TForm1.Button1Click(Sender: TObject);
var z,i,j:integer;
r:string;
begin
z:=0;;
for i:=low(a) to high(a) do  begin

if a2[i]=a[i]  then
z:=z+1;
//else z:=z;
end;

 edit3.Text :=inttostr(z);
end;

Последний раз редактировалось Рик; 07.04.2011 в 15:31. Причина: Cтрока total формируется в процессе работы пользывателя
Рик вне форума Ответить с цитированием
Старый 07.04.2011, 15:53   #4
BoozZzilla
Форумчанин
 
Аватар для BoozZzilla
 
Регистрация: 26.01.2009
Сообщений: 125
По умолчанию

Хорошо, это всё мой воспалённый моск.
Вопрос по существу - вы отладчиком пользовались, что в массивах лежит?

Последний раз редактировалось BoozZzilla; 07.04.2011 в 16:08.
BoozZzilla вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сравнение массивов nik1905 Microsoft Office Excel 3 13.12.2010 13:53
подробнее о программе где сравнение массивов moda Паскаль, Turbo Pascal, PascalABC.NET 2 21.03.2010 15:19
Сравнение массивов до заданной разницы (Delphi7) giga_person Помощь студентам 1 17.02.2010 22:55
Корректное сравнение массивов на условии. Alex Cones Общие вопросы Delphi 4 10.01.2010 15:08