35 / 35 / 4
Регистрация: 28.11.2012
Сообщений: 164
|
|
1 | |
Интересное задание (Определить стоимость проезда на трамвае)28.11.2012, 00:31. Показов 1269. Ответов 6
Метки нет (Все метки)
Определить стоимость проезда на трамвае.
Университетское задание для первокурсников, можно сказать первое задание по программированию. По идее, решение должно быть простым, но в голову не приходит ничего путевого (ну не использовать же перебор или не писать же метод для определения кратчайшего пути, но в голову лезут именно такие мысли). У кого какие идеи по решению задачки. Только описывайте алгоритм подробно. Можно и код, и не важно на каком языке, или даже псевдокод. Задание: Написать программу, которая вычисляет стоимость поездки на трамвае. Трамвайная сеть имеет следующую структуру: Существует 5 трамвайных линий, каждая из которых имеет конечную остановку (обозначено красным). Существует 2 зоны (зеленая область, городская зона; белая микрорайоны). Кроме пяти линий существует еще кольцевой маршрут, который соединяет между собой каждую вторую остановку каждой из 5 линий. Остановки обозначаются кодом из двух цифр. Первая цифра обозначает номер линии, вторая номер остановки. Участки дороги, обозначенные пунктиром, закрыты временно на ремонт, по этому не используются. За каждую поездку берется одноразовый сбор 3 рубля. Если остановки находятся по соседству и проезд между ними не закрыт, стоимость уменьшается до 2 рублей. Дополнительно берется сбор в 1 рубль за каждое пересечение зон, и за использование конечной станции. Например: старт->цель стоимость объяснение 31 -> 32 2 рубля поездка на соседнюю остановку 21 -> 14 4 рубля одноразовый сбор + пересечение границы зон 55 -> 52 5 рублей одноразовый сбор + пересечение границы зон + конечная остановка
0
|
28.11.2012, 00:31 | |
Ответы с готовыми решениями:
6
По введенному с клавиатуры виду транспорта определить стоимость проезда Вычислить стоимость проезда Альтернативная стоимость проезда на маршрутке равна Составить программу, которая определяла бы стоимость проезда в один конец между станциями |
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,686
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
28.11.2012, 11:25 | 2 | ||||||||||||||||||||||||||||||||||||||||||||||||||
нет необходимости писать. При внимательном рассмотрении мы увидим, что каким бы длинным не был путь, стоимость проезда не изменится. Завтра накропаю, а щас всем спать.
Добавлено через 9 часов 29 минут Хотя нет, я может быть поторопился с предыдущим выводом, ибо 00->01 можно добраться несколькими путями и стоимость будет разная. Но не суть. Всё равно кратчайший маршрут это лишнее. Эту задачу надо решать так: Имеем (условно): <две_рядом><две_не_рядом><пересечение_зон><конечная> Каждую из этих сущностей это назовём "услуга" Сколько таких услуг мы будем иметь в дороге? Одну или две или три ну и так далее. Подсчитаем все варианты этих услуг, которые МЫ МОЖЕМ ИМЕТЬ В ДОРОГЕ. Вот они (Начинаем с одной услуги, потом увеличиваем до двух и так далее) 1 услуга ++++++++++++ <две_рядом> <две_не_рядом> 2 услуги ++++++++++++ <две_рядом><пересечение_зон> <две_рядом><конечная> <две_не_рядом><пересечение_зон> <две_не_рядом><конечная> 3 услуги ++++++++++++ <две_не_рядом><пересечение_зон><конечная> <две_не_рядом><пересечение_зон><пересечение_зон> 4 услуги ++++++++++++ <две_не_рядом><пересечение_зон><пересечение_зон><конечная> 5 услуг ++++++++++++ <две_не_рядом><пересечение_зон><пересечение_зон><конечная><конечная> ВНИМАНИЕ! ДАЛЬШЕ БУДЕТ БАЗИРОВАНИЕ НА ВЫВОДАХ ВЫШЕ! ВРОДЕ ВСЕ ВАРИАНТЫ ПЕРЕБРАЛ, ИСПРАВЛЯЙТЕ, ЕСЛИ ЧТО! Ну теперь попроще будет. Видим, что там где присутствует услуга <две_рядом>, там нет услуги <две_не_рядом>; Псевдокод:
Пусть одна станция X, другая Y. На практике если они <две_рядом> это будет означать
Имеем псевдокод то есть:
Добавлено через 7 минут В псевдокодах надо писать так:
1
|
Неэпический
|
||||||
28.11.2012, 11:34 | 3 | |||||
Но ведь остановки 12 и 52 не имеют промежуточных узлов.
Добавлено через 3 минуты И еще закрытые пути тоже нужно учесть.
1
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,686
|
|
28.11.2012, 12:10 | 4 |
значит нужно поправить условие. Могу и ошибиться, я там крупными буквами написал
1
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,686
|
|||||||||||
28.11.2012, 13:20 | 6 | ||||||||||
Тестируй, результаты сюда. Файл для лучшего понимания ниже кода
Кликните здесь для просмотра всего текста
<две_рядом>
///////////////////////////////////////////////////////////////////// <две_рядом><пересечение_зон> <две_рядом><конечная> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ <две_не_рядом> ///////////////////////////////////////////////////////////////////// <две_не_рядом><двойное_пересечение_зон> <две_не_рядом><двойное_пересечение_зон><конечная> <две_не_рядом><двойное_пересечение_зон><конечная><конечная> ______________________________________________________________________ <две_не_рядом><пересечение_зон> <две_не_рядом><пересечение_зон><конечная> <две_не_рядом><конечная> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Добавлено через 56 секунд Кликните здесь для просмотра всего текста
<две_рядом>
///////////////////////////////////////////////////////////////////// <две_рядом><пересечение_зон> <две_рядом><конечная> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ <две_не_рядом> ///////////////////////////////////////////////////////////////////// <две_не_рядом><двойное_пересечение_зон> <две_не_рядом><двойное_пересечение_зон><конечная> <две_не_рядом><двойное_пересечение_зон><конечная><конечная> ______________________________________________________________________ <две_не_рядом><пересечение_зон> <две_не_рядом><пересечение_зон><конечная> <две_не_рядом><конечная> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Добавлено через 58 секунд фигня какая-то не удаётся что-то мне сжать это содержание.
1
|
35 / 35 / 4
Регистрация: 28.11.2012
Сообщений: 164
|
||||||
30.11.2012, 19:29 [ТС] | 7 | |||||
Спасибо большое за помощь, я просмотрел код, уловил мысль, написал сам программу и потом рассмотрел Ваш код детально и сравнил со своим. Я немного по другому if инструкции написал но булевы выражения по сути те же.
Выложу и свой код, может кому то еще пригодится, но выложу на Java.
0
|
30.11.2012, 19:29 | |
30.11.2012, 19:29 | |
Помогаю со студенческими работами здесь
7
Посчитать минимальную и максимальную стоимость проезда в рублях, которую могли заплатить пассажиры автобуса интересное задание Интересное задание. Интересное задание... Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |