Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
ВнизStringgrid Найти похожие ветки
← →
Silica © (2006-02-03 17:33) [0]procedure TForm1.Button1Click(Sender: TObject);
begin
randomize;
for i := 0 to k do
begin
a[i] := random(m);
stringgrid1.Cells[i,0] := inttostr(m);
StringGrid1.Cells[i,0] := inttostr(a[i]);
end;
for j := 0 to k do
begin
b[j] := random(m+n);
stringgrid1.Cells[i,0] := inttostr(m+n);
StringGrid1.Cells[5,1] := inttostr(b[j]);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
for i := 1 to k do
for j := 1 to k do
begin
if ((a[i] = a[j]) and (i <> j)) then
a[j] := -1;
end;
end;
Скажите, что не так в этом коде. В первой процедуре все нормально, генерация осуществляется. Но вот во второй процедуре нужно один из совпавших элементов заменить на -1. Например:
3 6 9 12 23 12 10 9 7 10
3 6 9 12 23 -1 10 -1 7 -1
Программа компилируется, не возникает никаких ошибок, но вот замена не происходит.
← →
Zeqfreed © (2006-02-03 17:36) [1]Во-первых, не понятно что такое a и b. Во-вторых, стоит использовать локальные переменные, вместо глобальных (насколько я понимаю, иначе код не компилировался бы) и, пожалуй, стоит вынести код в отдельные процедуры, а не держать его в обработчиках событий.
← →
umbra © (2006-02-03 17:43) [2]
> замена не происходит.
значит, условие не выполняется. Лучше всего вылавливать источник неправильной работы в отладчике
← →
Silica © (2006-02-03 18:29) [3]var
Form1: TForm1;
a : array[0..24] of integer;
b : array[0..27] of integer;
i, j, x : integer;
const
k = 10;
m = 24;
n = 3;
На массив b не обращайте внимания. Он только выводит число в одну ячейку. Меня интерисует массив а. Нужны именно глобальные переменные, потому что с этими массивами будет связана вся программа.
umbra, при пошаговой компиляции в циклах второй процедуры i=11(откуда эта цифра вообще), а j=0. Может он не определяет массив? (но откуда тогда эти цифры?). :( Многое пробовала, ничего не получается.
← →
Zeqfreed © (2006-02-03 18:38) [4][3] Silica © (03.02.06 18:29)
k = 10;
, а массив содержит 25 чисел. Может быть в этом проблема?
> при пошаговой компиляции
Пошаговом выполении (оно же трассировка) ? :)
← →
Silica © (2006-02-03 18:51) [5]Zeqfreed, массив выводит случайные числа от 0 до 25 в 10 ячеек. Поэтому k=10. Там же random. Попробую через stringgrid. :(
Ну скажите кто-нибудь что неправильно. Плизззз... :(
← →
Zeqfreed © (2006-02-03 18:58) [6]Хорошо, скажите, чего вы ожидаете от своего кода:
procedure TForm1.Button2Click(Sender: TObject);
begin
for i := 1 to k do
for j := 1 to k do
begin
if ((a[i] = a[j]) and (i <> j)) then
a[j] := -1;
end;
end;
?
← →
Silica © (2006-02-03 19:40) [7]У меня получилось с помощью stringgrid:
procedure TForm1.Button2Click(Sender: TObject);
begin
for i := 0 to k do
for j := 0 to k do
begin
if ((stringgrid1.Cells[i,0] = stringgrid1.Cells[j,0])
and (i <> j)) then
stringgrid1.Cells[j,0] :=inttostr(-1);
end;
end;
В этом коде я заменяю одну из совпавших цифр на -1. Например:
5 5 7 12 ...
5 -1 7 12 ...
Теперь я не могу сложить все ячейки, только как раз без этого элемента "-1" (без этой ячейки). Помогите, пожалуйста... Например, всего 10 ячеек, ячеек с элементом "-1", к примеру 2. Значит должно получиться в итоге 8. Этот результат выводится в label.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.02.19;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.04 c