Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
murod
-2 / 7 / 2
Регистрация: 04.11.2010
Сообщений: 163
#1

На какой отметке остановится мотоциклист через определенное время? - C++

20.06.2011, 13:19. Просмотров 1901. Ответов 6
Метки нет (Все метки)

Длина Московской кольцевой автомобильной дороги —109 километров. Байкер Вася стартует с нулевого километра МКАД и едет со скоростью vкилометров в час. На какой отметке он остановится через t часов?

Программа получает на вход значения v и t. Если v>0, то Вася движется в положительном направлении по МКАД, если же значение v<0, то в отрицательном.

Программа должна вывести целое число от 0 до 108 — номер отметки, на которой остановится Вася.
Пример
Ввод Вывод

60
2 11

-1
1 108
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2011, 13:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос На какой отметке остановится мотоциклист через определенное время? (C++):

Изменить значение переменной через определенное время - C++
Всем доброго времени суток. Допустим есть значение a=10; Надо его изменить на a=15 и что бы оно так держалось допустим в течени часа,...

Очистка экрана в консоли через определенное время - C++
Результат стоит в консоли секунду потом происходит очистка экрана. как такое можно реализовать??

Завершение бесконечного цикла через определенное время - C++
Есть бесконечный цикл for( ; ; ), который обрабатывает событие нажатия кнопки в игре. Если на кнопку не нажали в течении двух секунд,...

Открыть и закрыть файл exe через определенное время - C++
Извините за тупой вопрос. Мне нужно просто открыть экзешник и со временем,например 5 секунд,чтобы сам просто закрылся. То есть просто...

Как сделать обновление текста строки через определенное время? - C++
Здравствуйте. Как сделать обновление текста строки через определенное время? #include &lt;iostream&gt; #include &lt;string&gt; #include...

Какой код треугольника Паскаля через цыкл, который выводит определенное количество строк? - C++
Какой код треугольника Паскаля через цыкл, который выводит определенное количество строк?

6
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
20.06.2011, 13:20 #2
murod, Це ж физика. Накидайте алгоритм, затем напишите код... Тут кода-то почти не будет.
0
murod
-2 / 7 / 2
Регистрация: 04.11.2010
Сообщений: 163
20.06.2011, 13:22  [ТС] #3
я решил, но когда сдаю задачу у меня выводит ошибку компиляции

Добавлено через 42 секунды
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
 
int main()
{
    int v, t, s;
    cin >> v >> t;
    s = abs(v) * t;
    if (v < 0)
    cout << 109 - s % 109;
    else
    cout << s % 109;
    return 0;
}
вот код
0
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
20.06.2011, 13:22 #4
C++
1
2
3
4
5
6
7
double mkad(double v, double t)
{
 double result;
 result=v*t;
 result-=double(((long int)result)%109);
 return result;
}
0
murod
-2 / 7 / 2
Регистрация: 04.11.2010
Сообщений: 163
20.06.2011, 13:25  [ТС] #5
задача выводит неправильный ответ!
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
20.06.2011, 13:56 #6
taras atavin, Стоит учитывать отрицательную скорость...

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
 
int main()
{
    int v, t, s;
    cin >> v >> t;
    s = v * t;
    if (v < 0)
    cout << 109 - (s % 109);
    else
    cout << s % 109;
    return 0;
}
0
Melvil
47 / 46 / 13
Регистрация: 20.05.2015
Сообщений: 251
26.05.2015, 11:08 #7
Цитата Сообщение от ForEveR Посмотреть сообщение
taras atavin, Стоит учитывать отрицательную скорость...
Я, конечно, новичек, да и сообщение было 3 года назад, однако всё равно задача остается актуальной.

Вот это:

C++
1
cout << 109 - (s % 109);
Нужно заменить на:

C++
1
cout << 109 + (s % 109);
Так как получается два минуса, они складываются и значение выходит больше 109, а это недопустимо. Весь код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdafx.h"
#include <iostream>
#include <iomanip>
using namespace std;
 
int main()
{
    int v, t, s;
    cin >> v >> t;
    s = v * t;
    if (v < 0)
        cout << 109 + (s % 109);
    else
        cout << s % 109 << endl;
    return 0;
}
И я не понимаю, зачем здесь <cmath> - всё и так работает.

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include <iostream>
using namespace std;
 
int main()
{
    int v, t, s;
    cin >> v >> t;
    s = v * t;
    if (v < 0)
        cout << 110 + (s % 109);
    else
        cout << (s % 109) + 1 << endl;
    return 0;
}
Во-первых, часто нужно вставлять без #include "stdafx.h", а теперь о самой задаче. Дорога всего 109 км, следовательно сразу после 109-го километра идёт снова первый. Получается при нахождении отрицательного значения нам нужно считать от 1-го километра, т.е. в задаче я это выразил как 110-й километр. А при нахождении положительного нужно прибавлять ещё 1 километр, так как как мы к 1 километру. который дан изначально прибавляем ещё. К примеру: U = 60, t = 2. Тогда ( 1 + 120 % 109 ). Также всё зависит от задачи. В похожей задаче есть входные данные, такие как 60, 2 = 12; -1, 1 = 109
0
26.05.2015, 11:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2015, 11:08
Привет! Вот еще темы с ответами:

Помогите решить задачу(Гражданин открыл счет в банке. Определить прирост и сумму вклада через определенное время) - C++
Помогите решить задачи через цикл do _ while: 2) Гражданин 1 марта открыл счет в банке вложив 1000 руб. Через каждый месяц размер...

Нажатие клавиш за определенное время - C++
Всем доброго времени суток. Возник такой вопрос... как в С++ возможно описать такое &quot;дело&quot;: пользователю даеться определенный интервал...

Выполнение функции в определенное системное время - C++
Привет. Как реализовать вызов функции, в строго определенные моменты времени? Конкретнее: вызывать функцию каждую секунду. Синхронно с...

Подсчитать количество за определенное прошедшее время - C++
Помогите с алгоритмом для такой задачи. Код не нужен, но можно описать словами. Представим одностороннюю дорогу, по которой постоянно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru