|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
рендомно сравнить результаты
Помогите написать часть програмы! Нужно со списка ComboBox взять подряд каждого ученика и сравнить однажды с кем-то рендомно, кто лучше.
ПРимер: Иванов 10 8 Петров 9 7 Сидоров 11 11 Сравнить сперва Иванова первая оценка(10) с Сидоровым со второй оценкой(11). Потом Петрова первая оцека(9) с кем то со второй оценкой и т.д. Возможно ли такую прогу написать? Заранее благодарен. |
#2
|
||||
|
||||
Возможно.
Код:
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
|
|||
|
|||
С текстового файла могу только первую оценку с первой сравнить, а как первую оценку со второй сравнить другого ученика? этого понятия неимею.... и как прыстыкувать рендомный выбор списка со значениями с текстового файла?
Последний раз редактировалось dinamo0, 06.08.2011 в 22:16. |
#4
|
||||
|
||||
Как хранятся записи?
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
|||
|
|||
в текстовом файле:
Иванов-12-10 Петров-10-8 Сидоров-7-10 |
#6
|
||||
|
||||
Так, ещё раз. Что загружено в ComboBox, соответствует ли порядок загруженного с порядком в текстовом файле? Что точно хочется получить, по пунктам. Подкинь текстовый файл.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 06.08.2011 в 23:02. |
#7
|
|||
|
|||
в СomboBoxe тот же список что и в текстовике. Нужно подряд каждого ученика сравнить только один раз с кемто с этого же списка(тоесть рендомно, а здесь повторения можна). Сравниваютя оценки первой колонки(для первого ученика) со второй оценкой другого ученика. Итог кто лучше, вывести диалоговым сообщением...
|
#8
|
||||
|
||||
Тут уже 3 оценки.
То есть, если я сравнил Алешину с Горбачевым, то нельзя эти фамилии больше использовать? Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#9
|
|||
|
|||
Алешину уже нет, но только это касается для первой оценкой. Когда цикл дойдет до Горбачевой(первая оценка), то ее можна сравнивать с Алешиной(вторая оценка). Мне главное первые две оценки. Там допишу по возможности. Может так понятливо будет : нужно первую оценку каждого ученика по списку подряд, сравнить со второй оценкой другого ученика с этого же списка. Вторая оценка у ученика которого рендом выбрал. Рендом может хоть 5 раз вибирать одного и того же ученика со второй оценкой.
|
#10
|
||||
|
||||
Ладно, всё равно туплю. Допишу выложу.
Вот, получи. Получилось тупо, но я не всё понял по заданию. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 07.08.2011 в 23:42. |
#11
|
|||
|
|||
Спасибо! Это оно на 90%. Таблица не нужна. Можна было проще диалоговым окном кто лучше: Алешина лучше за Горбачеву иначе Горбачева лучше Алешиной. Или в таблице добавить столбец кто лучше. Завтра разберусь...
Для меня тяжело додуматься как с текстовика выбирать нужные позиции Буду разбирать на твоем примере. |
#12
|
||||
|
||||
Загрузил в StringList, а затем построчно обрабатываешь. Можно использовать функции Pos или PosEx для поиска нужных "вхождений", в данном случае "-".
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#13
|
|||
|
|||
снова нужна помощь, я застрял. Пытаюсь вставить для твоей проги диалоговые сообщения :
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
|
||||
|
||||
Можно, но смысл? Тогда будет неизвестно кто лучший в паре. Может добавить колонку для лучшего?
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#15
|
|||
|
|||
сделай как лучше для тебя
|