Форум: "Основная";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];
ВнизНе работает правильно алгоритм создание массива с других... Найти похожие ветки
← →
Рома (2003-12-16 13:09) [0]Нужно создать массив с из элементов q не входящих до массива f. Программа не работает. Если изменить условие на входящие до массива f - все нормально. Почему?
Form1 : TForm1;
q : array[1..10] of Integer;
f : array[1..12] of Integer;
c : array[1..10] of Integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i, j, k : Integer;
begin
for i:=1 to 10 do
begin
q[i]:=i;
lb_1.Items.Add(IntToStr(q[i]));
end;
for i:=1 to 12 do
begin
f[i]:=i+7;
lb_2.Items.Add(IntToStr(f[i]));
end;
for i:=1 to 10 do
for j:=1 to 12 do
begin
{не работет данное условие}
if (q[i]<>f[j]) then
begin
c[j]:=q[i];
inc(k);
end;
end;
Form1.Caption := IntToStr(k);
for i:=1 to k do
begin
lb_3.Items.Add(IntToStr(c[i]));
end;
end;
← →
Digitman (2003-12-16 13:15) [1]
> элементов q не входящих до массива f
это даже по-китайски не сказать)
а не то что по-русски) ... да еще и понять, что есть "до массива")
← →
Palladin (2003-12-16 13:19) [2]Условие работает и прекрасно работает. А вот алгоритм в целом к сожалению не очень.
for i:=1 to 10 do
begin
bNotIn:=true;
for j:=1 to 12 do
if q[i]=f[j] then
begin
bNotIn:=false;
break;
end;
if bNotIn then
begin
c[j]:=q[i];
inc(k);
end;
end;
← →
Рома (2003-12-16 13:20) [3]Такая вот контрольная.
Я понял так. Имеется 2 массива f и q. f=12 q=10
Нужно создать массив c в котор. будут входить элементы массива q, которые не входят до массива f.
← →
Ega23 (2003-12-16 13:20) [4]1. А чему изначально равно k?
2.c[j]:=q[i];
j пробегает от 1 до 12, аc : array[1..10] of Integer;
← →
Palladin (2003-12-16 13:21) [5]Ах еще с индексами проблема...
инициализация k не проведена
перед циклом выставь k:=1;
и в цикле вместо
c[j]:=q[i]
поставь
c[k]:=q[i]
← →
Palladin (2003-12-16 13:22) [6]Выражайся по русски, не в ходят в массив f...
← →
Digitman (2003-12-16 13:25) [7]если загрузить списки q и f элементами соотв.исх.массивов, то решение - ровно в 3 строчки текста :
q, f, c : TList;
for i:= 0 to g.Count - 1 do
if f.IndexOf(f[i]) = - 1 then
c.Add(f[i]);
остается выгрузить готовый список С в одноименный массив
← →
Digitman (2003-12-16 13:27) [8]миль пардон
c.Add(g[i]) - так будет правильней)
← →
Рома (2003-12-16 14:00) [9]Спасибо всем за отзыв. Даже не ожидал. Буду пробовать. Если что знаю к кому обращаться.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.12.30;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.009 c