Помогите с алгоритмом сортировки

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить
Аватара пользователя
Pavel V.
Мявтор!
Сообщения: 384
Зарегистрирован: Ср май 17, 2006 18:39:01
Откуда: Москва
Контактная информация:

Помогите с алгоритмом сортировки

Сообщение Pavel V. »

Есть некая задача: машинки ездят по кругу, нужно подсчитывать кол-во пройденных кругов и определять победителя. Время заезда задано.

Подсчет кругов осуществляется в ручном режиме, т.е. нажатием соответствующей кнопки.

А затруднение вызвал следущий вопрос: допустим, две машины проехали заезд с одинаковым кол-вом кругов. Тогда мы сравниваем время, за которое эти самые круги были пройдены.

Что мы имеем: два массива. Один содержит кол-во пройденных каждой машиной кругов. Второй - время в секундах, прошедшее с момента старта до сигнала о прохождении последнего круга.

А теперь самое интересное. Как теперь правильно отсортировать результаты гонки? Вот ломаю голову, а ничего умного не получается..

Может быть вы поможете??
Реклама
Аватара пользователя
xelos
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Пн мар 20, 2006 13:05:08
Контактная информация:

Сообщение xelos »

что-то я не очень понял условие.
время заезда задано и если за это время машины проехали одинковое кол-во кругов, то по какому критерию определяется победитель? Общее время-то одинаковое будет. и кол-во кругов одинаковое.

про массивы тоже не очень понятно. по идее это не массивы а простые переменные (или сохраняется время прохождения каждого круга для каждой машины?).
Я просто верю в то, что рушить догмы - лучший способ не стареть.
Реклама
Аватара пользователя
Pavel V.
Мявтор!
Сообщения: 384
Зарегистрирован: Ср май 17, 2006 18:39:01
Откуда: Москва
Контактная информация:

Сообщение Pavel V. »

Да, время заезда задано. Но если за это время несколько участников проехали одинаковое количество кругов - это не значит, что они ЭТИ круги проехали за одно и то же время.

Просто один может на момент окончания заезда находиться практически у финишной черты (пересечение которой добавило бы ему круг), а другой только пересечь ее. Естественно, у первого время прохождения кругов будет меньше, чем у второго.

А насчет массивов - да, можно считать, что просто переменные.

Ух.. Надеюсь, внятно объяснил :) Я старался :)
Аватара пользователя
xelos
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Пн мар 20, 2006 13:05:08
Контактная информация:

Сообщение xelos »

тогда не хватает еще данных - нужно знать расстояние, оно как-то измеряется?

потому что если основываться только на времени прохождения целых кругов - вывод кто выиграл сделать нельзя. При условии, что победитель - тот, кто дальше всех проехал.

P.S. не для картинга устройство?
Я просто верю в то, что рушить догмы - лучший способ не стареть.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Pavel V.
Мявтор!
Сообщения: 384
Зарегистрирован: Ср май 17, 2006 18:39:01
Откуда: Москва
Контактная информация:

Сообщение Pavel V. »

xelos, расстояние никак не измеряется. Программа должна определять победителя именно по времени прохождения целого количества кругов. Ведь очевидно, что если один человек проехал, скажем, 4.8 круга, а другой 4.2 круга за отведенное время, то 4 целых круга первый проехал быстрее.

Понимаю, что не совсем корректно, но приходится идти на упрощение.

А приборчик для детского кружка меня попросили сделать. Они на радиоуправляемых машинках катаются. Существуют специализированные "засечки" для таких соревнований, то тут не тот масштаб.
Реклама
Аватара пользователя
Мышонок
Друг Кота
Сообщения: 3792
Зарегистрирован: Чт сен 14, 2006 11:42:09
Откуда: Обитаю на чердаке
Контактная информация:

Сообщение Мышонок »

Дональд Кнут "Библия для программистов" :) или Искусство програмирования для ЭВМ - том № не помню точно "Сортировка и поиск".
Память очень интересная штука: бывает так, что запомнишь одно, а вспомнишь другое...
Реклама
Аватара пользователя
xelos
Потрогал лапой паяльник
Сообщения: 336
Зарегистрирован: Пн мар 20, 2006 13:05:08
Контактная информация:

Сообщение xelos »

да не, тут все намного проще. просто нужно найти минимальное значение в массиве.
алгоритм такой:
пусть есть массив Время[х]
создаем переменную А=Время[0]
создаем переменную В=0
потом в цикле i=1;i++;i<x
if A<Время
{
А=Время
В=i
}
конец

по выходу из программы в А будет лучшее время, в В номер машины.
Я просто верю в то, что рушить догмы - лучший способ не стареть.
Ответить

Вернуться в «Разные вопросы по МК»