Главная страница
    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.032 c
15-1138299301
Pat
2006-01-26 21:15
2006.02.19
Замена текста в Ворде из макроса


1-1137507030
belenkov
2006-01-17 17:10
2006.02.19
Циклический опрос COM порта


15-1138610774
Opilki_Inside
2006-01-30 11:46
2006.02.19
Посоветуйте хороший XML-редактор.


15-1138382833
Ермак
2006-01-27 20:27
2006.02.19
Американский экономист Л. Ларуш: "Россиянам нужно спасать нацию"


2-1138478666
Николай_
2006-01-28 23:04
2006.02.19
Подскажите пожалуйста,как наиболее эффективно реализовать поиск





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский