Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 23.06.2016
Сообщений: 14
1

Движение между пунктами автостопом

23.06.2016, 06:49. Показов 619. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Автостоп. Из пункта А в пункт В между которыми Х км, выехал велосипедист со скоростью v0 км/ч. Одновременно навстречу ему из пункта В двинулся другой путешественник решил добраться автостопом – на разных видах попутного транспорта. Перед каждым участком он Qi минут «голосует», ожидая попутного транспорта, затем движется ti со скоростью v1 км/ч. Величины Qi, ti, vi, i = 1,2, …, n заданы в соответствующих массивах.
Delphi. Прошу.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2016, 06:49
Ответы с готовыми решениями:

Расстояние между пунктами
Помогите мне пожалуйста решить задачу: Дана карта местности с обозначенными на ней N пунктами....

Прокладка наивыгоднейшего пути между двумя пунктами
Прокладка наивыгоднейшего пути между двумя пунктами. (инфо) Помогите найти исходник решения этих...

Как по двум значениям GPS найти расстояние между пунктами?
для соревнований по голубиной почте (есть такие): есть координаты GPS для двух пунктов Земли,...

Расстояние между пунктами меню
Как сделать разное расстояние между пунктами меню? типо 1--2------3--4.

3
Администратор
Эксперт .NET
9602 / 4744 / 761
Регистрация: 17.04.2012
Сообщений: 9,592
Записей в блоге: 14
23.06.2016, 07:26 2
kylomassa, какой вопрос в задаче? Где велосипедист встретится с путешественником?
0
0 / 0 / 0
Регистрация: 23.06.2016
Сообщений: 14
23.06.2016, 08:32  [ТС] 3
Через какое время после старта и на каком расстоянии от пункта А путники встретились?
0
438 / 367 / 132
Регистрация: 09.09.2011
Сообщений: 1,334
23.06.2016, 13:36 4
вот такое решение "в лоб":
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
program autostop;
 
{$mode objfpc}{$H+}
{Задача по заданию https://www.cyberforum.ru/delphi-beginners/thread1769180.html}
{Из пункта А в пункт В между которыми Х км, выехал велосипедист со скоростью
 v0 км/ч. Одновременно навстречу ему из пункта В двинулся другой путешественник
решил добраться автостопом – на разных видах попутного транспорта. Перед каждым
участком он Qi минут «голосует», ожидая попутного транспорта, затем движется ti
со скоростью v1 км/ч. Величины Qi, ti, vi, i = 1,2, …, n заданы в
соответствующих массивах.
Через какое время после старта и на каком расстоянии от пункта А путники
встретились?}
uses
  Classes, sysutils, math;
const
  N = 10; //кол-во этапов голосвания/езды
  EPS = 0.01; // точность
var
  dist  : single; // diatance between A and B
  dist1, dist2: single; //
  v0    : single; // speed
  Q     : array[1..N] of Single; // время ожидания
  T     : array[1..N] of Single; // время в движении
  V     : array[1..N] of Single; // скорость авто
 
  tim   : Single;
 
procedure initvars(out adist, av0: single; out aQ, aT, aV: array of Single);
var
  i: integer;
begin
  adist:= RandomRange(10, 50); // 10 - 50 км
  av0:=   RandomRange(15, 30); // 15 - 30 км/ч
  for i:= low(aQ) to High(aQ) do begin
    aQ[i]:= RandomRange(3, 15); // 3 - 15 минут
    aT[i]:= RandomRange(15, 60); // 15 - 60 минут
    aV[i]:= RandomRange(40, 75); // 40 - 75 км /ч
  end;
end;
//пройденное растояние в километрах 1-м путешественником за a минут
function getDist1(const a: single): Single;
begin
  Result:= v0/60 * a;
end;
//пройденное растояние в километрах 2-м путешественником за a минут
function getDist2(const a: single): Single;
var
  i, j: integer;
  max_dist: single = 0.0;
  max_time: single = 0.0;
  tc: single = 0.0;
begin
  //время до первой поездки
  if (a < Q[1]) or (abs(a - Q[1]) < EPS) then begin
    Result:= 0.0;
    Exit;
  end;
  //время после последней поездки
  for i:= low(Q) to High(Q) do begin
    max_time:= max_time + Q[i] + T[i];
    max_dist:= max_dist + v[i]/60 * T[i];
  end;
  if (a > max_time) or (abs(a - max_time) < EPS) then begin
    Result:= max_dist;
    Exit;
  end;
 
  // иначе узнаем в какой промежуток времени мы попали и посчитаем
  Result:=0;
  for j:= low(Q) to High(j) do begin
    tc:= tc + Q[j] + T[j];
    if (a < tc) or (abs(a -tc) < EPS) then begin
      if (a - (tc - T[j]) > Q[j]) then
        Result:= Result + v[j]/60 * (a - (tc - Q[j]));
 
      exit;
    end else
      Result:= Result + v[j]/60 * T[j];
  end;
end;
 
procedure printVars;
var
  value: single;
begin
  writeln('Distance between A and B: ', dist:3:2);
  writeln('V0: ', v0:3:2);
  write('Q = ');
  for value in Q do
      write(value:3:2, ' ');
  writeln;
  write('T = ');
  for value in T do
      write(value:3:2, ' ');
  writeln;
  write('V = ');
  for value in V do
      write(value:3:2, ' ');
  writeln;
end;
 
begin
  Randomize;
  initvars(dist, v0, Q, T, V);
  printVars;
  tim:= 0;
  repeat
    tim:= tim + 1.0; // шаг - 1 минута
    dist1:= getDist1(tim);
    dist2:= getDist2(tim);
  until  (dist1 + dist2) > dist;
 
  writeln('They are meeting after ', tim:3:2, ' min.');
  writeln('Distance from point A is ', dist1:3:2, ' km.');
 
  readln;
end.
0
23.06.2016, 13:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2016, 13:36
Помогаю со студенческими работами здесь

Растояние между пунктами меню
Подскажите как убрать расстояние между пунктами вертикального меню вот картинка для ясности. ...

Картинка между пунктами меню
день добрый. как добавить между пунктами меню png картинку в виде темного кружка, что бы при :hover...

Горизонтальное меню с картинкой между пунктами
Итак есть горизонтальное меню состоящее из 4 пунктов, между 2 и 3 пунктом находится картинка. Всё...

Поиск рейсов между заданными пунктами
Не могу понять, почему не работает функция find_punkt, она должна обеспечить поиск рейсов между...

Вычисление расстояния между населенными пунктами
помогите пожалуйста написать программу вычисления расстояния между населенными пунктами. дан...

Уменьшение расстояния между пунктами меню
Здравствуйте форумчане, помогите пожалуйста. Нужно уменьшить расстояние между пунктами меню и...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru