Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Вс ноя 12, 2006 19:24:08
Есть некая задача: машинки ездят по кругу, нужно подсчитывать кол-во пройденных кругов и определять победителя. Время заезда задано.
Подсчет кругов осуществляется в ручном режиме, т.е. нажатием соответствующей кнопки.
А затруднение вызвал следущий вопрос: допустим, две машины проехали заезд с одинаковым кол-вом кругов. Тогда мы сравниваем время, за которое эти самые круги были пройдены.
Что мы имеем: два массива. Один содержит кол-во пройденных каждой машиной кругов. Второй - время в секундах, прошедшее с момента старта до сигнала о прохождении последнего круга.
А теперь самое интересное. Как теперь правильно отсортировать результаты гонки? Вот ломаю голову, а ничего умного не получается..
Может быть вы поможете??
Вс ноя 12, 2006 22:35:28
что-то я не очень понял условие.
время заезда задано и если за это время машины проехали одинковое кол-во кругов, то по какому критерию определяется победитель? Общее время-то одинаковое будет. и кол-во кругов одинаковое.
про массивы тоже не очень понятно. по идее это не массивы а простые переменные (или сохраняется время прохождения каждого круга для каждой машины?).
Вс ноя 12, 2006 22:52:45
Да, время заезда задано. Но если за это время несколько участников проехали одинаковое количество кругов - это не значит, что они ЭТИ круги проехали за одно и то же время.
Просто один может на момент окончания заезда находиться практически у финишной черты (пересечение которой добавило бы ему круг), а другой только пересечь ее. Естественно, у первого время прохождения кругов будет меньше, чем у второго.
А насчет массивов - да, можно считать, что просто переменные.
Ух.. Надеюсь, внятно объяснил
Я старался
Пн ноя 13, 2006 00:32:42
тогда не хватает еще данных - нужно знать расстояние, оно как-то измеряется?
потому что если основываться только на времени прохождения целых кругов - вывод кто выиграл сделать нельзя. При условии, что победитель - тот, кто дальше всех проехал.
P.S. не для картинга устройство?
Пн ноя 13, 2006 13:43:12
xelos, расстояние никак не измеряется. Программа должна определять победителя именно по времени прохождения целого количества кругов. Ведь очевидно, что если один человек проехал, скажем, 4.8 круга, а другой 4.2 круга за отведенное время, то 4 целых круга первый проехал быстрее.
Понимаю, что не совсем корректно, но приходится идти на упрощение.
А приборчик для детского кружка меня попросили сделать. Они на радиоуправляемых машинках катаются. Существуют специализированные "засечки" для таких соревнований, то тут не тот масштаб.
Пн ноя 13, 2006 15:28:36
Дональд Кнут "Библия для программистов"
или Искусство програмирования для ЭВМ - том № не помню точно "Сортировка и поиск".
Вт ноя 14, 2006 00:45:07
да не, тут все намного проще. просто нужно найти минимальное значение в массиве.
алгоритм такой:
пусть есть массив Время[х]
создаем переменную А=Время[0]
создаем переменную В=0
потом в цикле i=1;i++;i<x
if A<Время[i]
{
А=Время[i]
В=i
}
конец
по выходу из программы в А будет лучшее время, в В номер машины.
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.