Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.08.2011, 21:01
dinamo0 dinamo0 вне форума
Прохожий
 
Регистрация: 06.08.2011
Сообщения: 16
Репутация: 10
По умолчанию рендомно сравнить результаты

Помогите написать часть програмы! Нужно со списка ComboBox взять подряд каждого ученика и сравнить однажды с кем-то рендомно, кто лучше.
ПРимер: Иванов 10 8
Петров 9 7
Сидоров 11 11
Сравнить сперва Иванова первая оценка(10) с Сидоровым со второй оценкой(11). Потом Петрова первая оцека(9) с кем то со второй оценкой и т.д.
Возможно ли такую прогу написать? Заранее благодарен.
Ответить с цитированием
  #2  
Старый 06.08.2011, 21:40
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Возможно.

Код:
procedure TForm2.Button3Click(Sender: TObject);
var
  I, J : Integer;
  St :   String;
begin
  for I := 0 to Combobox1.Items.Count - 1 do
  begin
    St := ComboBox1.Items[i];
    while True do
    begin
      J := Random(ComboBox1.Items.Count);
      if J = I then
        Continue
      else
      begin
        St := St + ComboBox1.Items[J];
        Break;
      end;
    end;
  end;
end;
Тут показан только перебор, значения, думаю, сам "выкусишь".
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 06.08.2011 в 21:56.
Ответить с цитированием
  #3  
Старый 06.08.2011, 22:12
dinamo0 dinamo0 вне форума
Прохожий
 
Регистрация: 06.08.2011
Сообщения: 16
Репутация: 10
По умолчанию

С текстового файла могу только первую оценку с первой сравнить, а как первую оценку со второй сравнить другого ученика? этого понятия неимею.... и как прыстыкувать рендомный выбор списка со значениями с текстового файла?

Последний раз редактировалось dinamo0, 06.08.2011 в 22:16.
Ответить с цитированием
  #4  
Старый 06.08.2011, 22:33
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Как хранятся записи?
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #5  
Старый 06.08.2011, 22:54
dinamo0 dinamo0 вне форума
Прохожий
 
Регистрация: 06.08.2011
Сообщения: 16
Репутация: 10
По умолчанию

в текстовом файле:
Иванов-12-10
Петров-10-8
Сидоров-7-10
Ответить с цитированием
  #6  
Старый 06.08.2011, 22:58
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Так, ещё раз. Что загружено в ComboBox, соответствует ли порядок загруженного с порядком в текстовом файле? Что точно хочется получить, по пунктам. Подкинь текстовый файл.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 06.08.2011 в 23:02.
Ответить с цитированием
  #7  
Старый 06.08.2011, 23:25
dinamo0 dinamo0 вне форума
Прохожий
 
Регистрация: 06.08.2011
Сообщения: 16
Репутация: 10
По умолчанию

в СomboBoxe тот же список что и в текстовике. Нужно подряд каждого ученика сравнить только один раз с кемто с этого же списка(тоесть рендомно, а здесь повторения можна). Сравниваютя оценки первой колонки(для первого ученика) со второй оценкой другого ученика. Итог кто лучше, вывести диалоговым сообщением...
Вложения
Тип файла: txt Новый текстовый документ.txt (230 байт, 2 просмотров)
Ответить с цитированием
  #8  
Старый 06.08.2011, 23:32
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Тут уже 3 оценки.
То есть, если я сравнил Алешину с Горбачевым, то нельзя эти фамилии больше использовать?
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #9  
Старый 06.08.2011, 23:57
dinamo0 dinamo0 вне форума
Прохожий
 
Регистрация: 06.08.2011
Сообщения: 16
Репутация: 10
По умолчанию

Алешину уже нет, но только это касается для первой оценкой. Когда цикл дойдет до Горбачевой(первая оценка), то ее можна сравнивать с Алешиной(вторая оценка). Мне главное первые две оценки. Там допишу по возможности. Может так понятливо будет : нужно первую оценку каждого ученика по списку подряд, сравнить со второй оценкой другого ученика с этого же списка. Вторая оценка у ученика которого рендом выбрал. Рендом может хоть 5 раз вибирать одного и того же ученика со второй оценкой.
Ответить с цитированием
  #10  
Старый 07.08.2011, 00:10
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Ладно, всё равно туплю. Допишу выложу.
Вот, получи. Получилось тупо, но я не всё понял по заданию.
Вложения
Тип файла: rar prj11.rar (1.9 Кбайт, 1 просмотров)
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 07.08.2011 в 23:42.
Ответить с цитированием
  #11  
Старый 07.08.2011, 01:14
dinamo0 dinamo0 вне форума
Прохожий
 
Регистрация: 06.08.2011
Сообщения: 16
Репутация: 10
По умолчанию

Спасибо! Это оно на 90%. Таблица не нужна. Можна было проще диалоговым окном кто лучше: Алешина лучше за Горбачеву иначе Горбачева лучше Алешиной. Или в таблице добавить столбец кто лучше. Завтра разберусь...
Для меня тяжело додуматься как с текстовика выбирать нужные позиции
Буду разбирать на твоем примере.
Ответить с цитированием
  #12  
Старый 07.08.2011, 01:37
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Загрузил в StringList, а затем построчно обрабатываешь. Можно использовать функции Pos или PosEx для поиска нужных "вхождений", в данном случае "-".
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #13  
Старый 07.08.2011, 22:59
dinamo0 dinamo0 вне форума
Прохожий
 
Регистрация: 06.08.2011
Сообщения: 16
Репутация: 10
По умолчанию

снова нужна помощь, я застрял. Пытаюсь вставить для твоей проги диалоговые сообщения :
if Rec[i].Rate1>Rec[J].Rate2 then ShowMessage(Rec[i].Name +' имеет бал больше чем '+Rec[J].Name )
else
if Rec[i].Rate1<Rec[J].Rate2 then ShowMessage(Rec[i].Name +' имеет бал меньше чем '+Rec[J].Name )
else ShowMessage(Rec[i].Name +' имеет бал равный '+Rec[J].Name );
и ничего хорошого.
а может обойтись без сообщений и в таблицу вставь имя лучшего в каждой паре?
Ответить с цитированием
  #14  
Старый 07.08.2011, 23:21
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Можно, но смысл? Тогда будет неизвестно кто лучший в паре. Может добавить колонку для лучшего?
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #15  
Старый 07.08.2011, 23:24
dinamo0 dinamo0 вне форума
Прохожий
 
Регистрация: 06.08.2011
Сообщения: 16
Репутация: 10
По умолчанию

сделай как лучше для тебя
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:40.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter