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

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

05.06.2013, 19:58. Показов 2021. Ответов 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru