Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1138292129
XsID
2006-01-26 19:15
2006.02.19
386 и 64Тб виртуальной памяти


2-1138555718
JEK2
2006-01-29 20:28
2006.02.19
TImage как рисовать поверх другой картинки?


15-1138250776
begin...end
2006-01-26 07:46
2006.02.19
С Днём рождения! 26 января


1-1137572125
Ega23
2006-01-18 11:15
2006.02.19
Раскрашивание DBGridEh


15-1138640973
Tarantiono
2006-01-30 20:09
2006.02.19
"Программирование серверных приложений для Windows 2000", Дж. Рих





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский