Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
1 / 1 / 0
Регистрация: 27.05.2013
Сообщений: 16

Как правильно организовать цикл для сравнения?

05.06.2013, 19:58. Показов 2062. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!!!!!!!
помогите пожалуйста с вопросом. Не могу организовать правильный цикл. Мне нужно сравнивать первую строку
со всей таблицей полностью if (StringGrid1->Cells[i][1] == StringGrid1->Cells[i][j] потом вторую строку
if (StringGrid1->Cells[i][2] == StringGrid1->Cells[i][j] со всей таблицей. Пробовал поставить еще один цикл, но что-то не получается.

вот полный код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for ( int i =1; i<= StringGrid1->ColCount -1; i++)
{
for ( int j =1; j<= StringGrid1->RowCount -1; j++)
{
if (StringGrid1->Cells[i][1] == StringGrid1->Cells[i][j])
{
 
if(j==1)
Memo1->Lines->Add("");
Memo1->Text =   "  "+ Memo1->Text +   "   "+  "S" + StrToInt(j);
 
}
}
}
и после этого мне нужно сравнивать if(j==1) переход на следующую строку потом if(j==2) на вторую и так далее.
как это все сделать по циклу? помогите пожалуйста

Добавлено через 3 минуты
мне нужно каждую следующую строку сравнивать со всей таблицей полностью.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.06.2013, 19:58
Ответы с готовыми решениями:

Как правильно организовать цикл для построения графика?
Нужно построить график экспоненты на промежутке с учетом изменения величины шага построения. В масштабе, я строю график от 20-й до 500-й...

Как правильно организовать цикл for?
Имеем два числа, например 30 и 42 Нужно в цикле перебрать их например 3 раза по следующему алгоритму: int x = 30; int y = 42; ...

Как правильно организовать следующий цикл?
Привет всем. У меня есть список(List) с вопросами и ответами. Каждому вопросу есть несколько ответов. Нужно вывести на екран...

5
2 / 2 / 0
Регистрация: 02.07.2009
Сообщений: 52
05.06.2013, 21:49
Строку или ячейку ?

Что с чем надо сравнить ?
1
1 / 1 / 0
Регистрация: 27.05.2013
Сообщений: 16
06.06.2013, 16:48  [ТС]
мне нужно сравнивать каждую ячейку одной строки со всей таблицей, потом перейти на следующую строку которая
ниже и опять сравнивать со всей таблицей. Программа у меня работает правильно, но только если я все буду делать в ручную сравнивать if (StringGrid1->Cells[i][1] == StringGrid1->Cells[i][j]) , Cells[i][2]==Cells[i][1] , Cells[i][3]==Cells[i][j],
Cells[i][4]==Cells[i][j] и так далее. Это все в ручную писать долго и программу повторять множество раз придется.
я хочу сделать это одним циклом например if ( Cells[i][k]==Cells[i][j] )

вот полный код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void __fastcall TForm1::Button6Click(TObject *Sender)
{
AnsiString sStr,sSub;
int len,pos;
int j;
int mas[100];
int moshnost = 0;
String Massiv;
 Memo1->Lines->Add("Относительно S1");
 
 for ( int i =1; i<= StringGrid1->ColCount -1; i++)
{
for ( int j =1; j<= StringGrid1->RowCount -1; j++)
{
if (   StrToInt(StringGrid1->Cells[i][1]) == StrToInt(StringGrid1->Cells[i][j])  )
{
 
if(j==1)     //  здесь у меня проверяет встречается ли единица в массиве и разбивает массив на части и потом в memo
Memo1->Lines->Add("");    // мне нужно для 2-и 3-и и тд проверить и разбивать одномерный массив  и потом в memo
Memo1->Text =   "  "+ Memo1->Text +   "   "+  "S" + StrToInt(j);
 
}
}
}
Принцип разбиения простой он работает у меня но только относительно 1-й строки
вот массив 1 2 3 5 1 2 3 6 1 5 6 8 9 6 1 5 8 9 6 6
он разобьет его на порядок разбиения Если в массиве есть 1-ка то разбиваем на другую строку в Memo
1 2 3 5
1 2 3 6 Получили похожие элементы относительно первой строки
1 5 6 8 9 6
1 5 8 9 6 6

Потом когда j==2 будет другой массив например 2 5 8 9 10 9 2 5 6 7 8 9 2 3 5 8 2 1 4 6 9 7 2 3 6 7
он разобьет его на
2 5 8 9 10 9 порядок разбиения Если в массиве есть 2-ка то разбиваем на другую строку в Memo
2 5 6 7 8 9
2 3 5 8 Получили похожие элементы относительно второй строки
2 1 4 6 9 7
2 3 6 7

и т. д

потом относительно 3-й 4-й... думаю все просто должно быть.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
06.06.2013, 17:22
Ваши объяснения еще больше запутали; примерно я бы делал так: в двойном цикле по столбцам и строкам выбирал ячейку таблицы, и затем только для нее третий цикл - по строкам таблицы
C++
1
 if (Grid->Rows[index]->CommaText.Pos(cellule))  /*действия при совпадении*/
1
1 / 1 / 0
Регистрация: 27.05.2013
Сообщений: 16
06.06.2013, 17:54  [ТС]
спасибо!!!! я вроде разобрался.
у меня такой вопрос возник. мне нужно искать похожие строки в Memo и если любая строка является подстрокой другой строки то мы её удаляем вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for (int j = 1; j<=Memo1->Lines->Count-1; j++)
{
sStr = Memo1->Lines->Strings[i];
sSub = Memo1->Lines->Strings[j];
len = sSub.Length();
pos = sStr.Pos(sSub);
if ((sStr.SubString(pos,len) == sSub)&& (sStr!="Относительно S1")    )
 
 {
  Memo1->Lines->Delete(j);
 
}
 
}
 
}
Но он полностью по всему memo проверяет а мне нужно в пределах интервала


S1
S1 S3 S6
S1 S8
S1 // Тут нужно отдельно сократить
S1
S1
S1
Относительно S1

S2
S2 S7 S9
S2
S2 // тут тоже отдельно
S2 S5
S2
S2
Относительно S2

S3 S1
S3 S6
S3 И тут
S3
S3
S3
S3
а мой код полностью сокращает он проверяет все строки на совпадения

как можно подогнать правильно код? заранее благодарю.

Добавлено через 14 минут
После сокращения должно получиться вот так в поле Memo
S1 S3 S6
S1 S8

Относительно S1

S2 S7 S9

S2 S5

Относительно S2

S3 S1
S3 S6
S3 И тут
0
1 / 1 / 0
Регистрация: 27.05.2013
Сообщений: 16
06.06.2013, 18:50  [ТС]
вот исходник Теперь помогите в мемо сокротить подстроки
например
относительно s1
S1 S5
s4 S8
s
s9 S10
относительно s2
S2 S5 S6
s5 S6
s2
s3 S4
s2

Должен быть результат
относительно s1
S1 S5
s4 S8
s9 S10



относительно s2
S2 S5 S6
s3 S4
Вложения
Тип файла: rar bekproga.rar (835.8 Кб, 3 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.06.2013, 18:50
Помогаю со студенческими работами здесь

Подскажите как правильно организовать цикл
Есть бд, необходимо вывести товары на вкладку Каталог. Вывожу товары в таблицу, в 1 строке должно быть 3 товара, не могу сделать...

Как правильно организовать цикл при вычислениях
Имеется формула: Условие первой точки: \varepsilon c1:=15*{10}^{-5} \varepsilon c2:=0 Прибавлять к \varepsilon c2 (всегда...

Как правильно считать строку для сравнения?
как правильно считать строку для сравнения ?

Как правильно писать IF для сравнения строк
Есть у меня текст: tt = int.Parse(comboBox1.Text); ct = int.Parse(comboBox2.Text); if (tt == 0 &amp;&amp;...

Правильно организовать цикл в цикле
проблема в том, что я не знаю, какой второй цикл мне нужен и в каком порядке поставить... do{ for(x=a;x&lt;=b; ) { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru