Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2018, 18:44   #1
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
Сообщение помогите доделать алгоритм из 5-ти совпадений

Привет, помогите доделать алгоритм из 5-ти Cout (Random)

если выпадает 5 совпадений:

Код:
if (sel1 > -1) and (sel2 > -1) and (sel3 > -1) or (sel4 > -1) or (sel5 > -1) then
  begin
if (AdvSmoothSpinner2.Columns[0].CustomItems[sel1].PictureName = 'telegram') and
       (AdvSmoothSpinner2.Columns[0].CustomItems[sel2].PictureName = 'telegram') and
       (AdvSmoothSpinner2.Columns[0].CustomItems[sel3].PictureName = 'telegram') and
       (AdvSmoothSpinner2.Columns[0].CustomItems[sel4].PictureName = 'telegram') and
       (AdvSmoothSpinner2.Columns[0].CustomItems[sel5].PictureName = 'telegram') then
//результат для 5-ти одинаковых совпадений

Громоздкий код если для 4-х или 3-х и 2-х совпадений(((((

Как его сократить?

по этому примеру лепил)) :
TMS-Component-Pack-AdvSmoothSpinner

Вложения
Тип файла: zip Demo.zip (1.62 Мб, 6 просмотров)

Последний раз редактировалось beegl; 28.01.2018 в 18:53. Причина: edit text
beegl вне форума Ответить с цитированием
Старый 28.01.2018, 19:16   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Сделай массив Sel[0..4] вместо своих Sel-ов
Код:
Count:=0;
for i:=0 to 4 do if (Sel[i]>=0) and (AdvSmoothSpinner2.Columns[0].CustomItems[Sel[i]].PictureName = 'telegram') then Inc(Count);
вот тебе и количество совпадений ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.01.2018, 19:18   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
var sel0, sel1, sel2...: integer; 
var sel: array[0..X]: array of integer;

otvet:=true;
for i:=0 to X do begin
  if (sel[i]<0) or (AdvSmoothSpinner2.Columns[0].CustomItems[sel[i]].PictureName <> 'telegram') then otvet:=false;
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 28.01.2018, 19:33   #4
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Сделай массив Sel[0..4] вместо своих Sel-ов
а как результат из одинаковых или совпадений получить?
beegl вне форума Ответить с цитированием
Старый 28.01.2018, 19:43   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

см. Count ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.01.2018, 19:48   #6
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
см. Count ))
так три совпадения "прочитаю"?

Код:
if Count = 2 then
// три совпадения

Последний раз редактировалось beegl; 28.01.2018 в 19:49. Причина: edit text
beegl вне форума Ответить с цитированием
Старый 28.01.2018, 19:49   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ну если 3 и 2 одно и то же, тогда 3. На самом деле 2 конечно

ps отвечаю на следующий вопрос - если count=5 то 5 совпадений

pss это все на совпадение с telegram, все сложней, если вообще совпадения значений итемов, но и это с помощью циклов в несколько строк
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 28.01.2018 в 19:55.
Аватар вне форума Ответить с цитированием
Старый 28.01.2018, 19:58   #8
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
ps отвечаю на следующий вопрос - если count=5 то 5 совпадений
значит Count совсем не нужен, а как бы его проверить 4-3-2 одинаковых?)

там как-то if SelEx[i]>=0 then :

Код:
if (SelEx[i]>=0) and (AdvSmoothSpinner2.Columns[0].CustomItems[SelEx[i]].PictureName = 'telegram') then
i проверять остается?) .. только условие >=0 не подходит.

Подскажите, какое верное условие необходимо?

Последний раз редактировалось beegl; 28.01.2018 в 20:18. Причина: edit text
beegl вне форума Ответить с цитированием
Старый 28.01.2018, 20:18   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Разжовываю - Count равно числу повторений. Что не так?
Дальше:
>=0 и >-1 и <>-1 идентично для индекса твоих итемов, не бывает он меньше -1
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 28.01.2018, 20:23   #10
beegl
instagram
Участник клуба
 
Аватар для beegl
 
Регистрация: 24.05.2008
Сообщений: 1,451
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
>=0 и >-1 и <>-1 идентично для индекса твоих итемов, не бывает он меньше -1

Цитата:
Сообщение от Аватар Посмотреть сообщение
>-1 и <>-1
если >-1 то какой результат будет

или, если <>-1 также не понятно, какой результат будет

А надо проверить 4 или 3 или 2 одинаковых совпадений.
beegl вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск совпадений в диапазоне и поставление значения соседней от совпавшей ячейки, Поиск совпадений в диапазоне ANshag Microsoft Office Excel 3 08.09.2015 16:35
помогите доделать garic888270 Помощь студентам 2 23.12.2009 20:31
помогите доделать innaa639 Паскаль, Turbo Pascal, PascalABC.NET 1 21.05.2009 09:52
Помогите доделать Povar Паскаль, Turbo Pascal, PascalABC.NET 1 16.05.2008 14:43