0 / 0 / 0
Регистрация: 12.08.2020
Сообщений: 6
1

Массив: Определить значение наибольшего интервала времени между отправлениями поездов.

12.08.2020, 15:16. Показов 2821. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите с решением задачи.

"По данным о расписании движения пригородных поездов определите значение наибольшего интервала времени между отправлениями поездов."
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.08.2020, 15:16
Ответы с готовыми решениями:

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

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

Массив. По данному времени определить, какие из поездов стоят сейчас на станции
Дан массив, в котором хранятся данные о расписании поездов:номер поезда, название (откуда-куда,...

Дан массив данных о расписании поездов. Определить, какие из поездов стоят сейчас на станции.
Дан массив данных о расписании поездов: номер поезда, название (откуда-куда, например,...

10
Наивное Существо
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
12.08.2020, 21:21 2
PolyMoly, а исходные данные? А ваш вариант? , Я, например, вижу только один рейс утром в 3:25 раз в сутки. И интервал получается 24 часа между рейсами.
Не надо ничего даже на калькуляторе считать....
0
0 / 0 / 0
Регистрация: 12.08.2020
Сообщений: 6
12.08.2020, 21:29  [ТС] 3
В том то и дело что исходных данных нет. Мне нужно сделать так, чтобы пользователь сам вводил эти данные, а дальше нужно предоставить результат. Я новичок и не совсем понимаю даже как начать
0
Наивное Существо
666 / 141 / 27
Регистрация: 09.05.2020
Сообщений: 750
Записей в блоге: 15
12.08.2020, 22:37 4
PolyMoly, ну хотя бы математическую модель сделать можете? При нынешней постановке задачи разве что на выходных можно подумать.
найти наибольший интервал - это не сложно. А вот организовать расписание-это не пустяк.

Добавлено через 7 минут
Да и люди пошли ненадёжные - попросят, а потом и не заходят ((((
0
0 / 0 / 0
Регистрация: 12.08.2020
Сообщений: 6
13.08.2020, 10:02  [ТС] 5
Простите, были проблемы с сетью.
Я на этом сайте нашла код на Паскале по данной задаче, пыталась переделать на qbasic, но что то не получалось. Может вы сможете этот код перевести на qbasic?

Взято из SWAG
Pascal
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
{From: Scott Stone <Scott.Stone@m.cc.utah.edu> }
 
Procedure CompTimes(t1,t2 : string);
Var
  h1,h2,m1,m2,s1,s2 : string;
  x0,x1,x2,x3,x4,x5,sec0,sec1 : integer;
  err : integer;
  timediff : integer;
Begin
  h1:=t1[1]+t1[2];
  h2:=t2[1]+t2[2];
  m1:=t1[4]+t1[5];
  m2:=t2[4]+t2[5];
  s1:=t1[7]+t1[8];
  s2:=t2[7]+t2[8];
  val(h1,x0,err);
  val(h2,x1,err);
  val(m1,x2,err);
  val(m2,x3,err);
  val(s1,x4,err);
  val(s2,x5,err);
  sec0:=((3600*x0)+(60*x2)+(x4));
  sec1:=((3600*x1)+(60*x3)+(x5));
  timediff:=abs(sec1-sec0);
  writeln('Time Difference is ',timediff,' seconds.');
End;
 
begin
  CompTimes('11:23:31','16:32:21');
end.
0
5000 / 1672 / 409
Регистрация: 25.04.2010
Сообщений: 4,619
Записей в блоге: 2
13.08.2020, 17:34 6
Лучший ответ Сообщение было отмечено PolyMoly как решение

Решение

Цитата Сообщение от PolyMoly Посмотреть сообщение
Может вы сможете этот код перевести на qbasic?
Перевести то мы переведём, но это говнокод и он не решает вашу задачу:

QBasic/QuickBASIC
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
DECLARE FUNCTION CompTimes% (t1 AS STRING, t2 AS STRING)
 
 CLS : LOCATE 5, 7
 PRINT "Time Difference is"; CompTimes%("11:23:31", "16:32:21"); "seconds"
 
FUNCTION CompTimes% (t1 AS STRING, t2 AS STRING)
 
DIM h1 AS LONG, h2 AS LONG
DIM m1 AS LONG, m2 AS LONG
DIM s1 AS LONG, s2 AS LONG
DIM sec1 AS LONG, sec2 AS LONG
 
  h1 = VAL(MID$(t1, 1, 2))
  h2 = VAL(MID$(t2, 1, 2))
  m1 = VAL(MID$(t1, 4, 2))
  m2 = VAL(MID$(t2, 4, 2))
  s1 = VAL(MID$(t1, 7, 2))
  s2 = VAL(MID$(t2, 7, 2))
 
 sec0 = ((3600 * h1) + (60 * m1) + s1)
 sec1 = ((3600 * h2) + (60 * m2) + s2)
 
 CompTimes% = ABS(sec1 - sec0)
 
END FUNCTION
1
0 / 0 / 0
Регистрация: 12.08.2020
Сообщений: 6
13.08.2020, 17:39  [ТС] 7
Спасибо)
А у вас есть идеи по решению этой задачи? Мне бы хотя бы начать, дальше я постаралась бы продолжить)
0
5000 / 1672 / 409
Регистрация: 25.04.2010
Сообщений: 4,619
Записей в блоге: 2
13.08.2020, 17:41 8
Лучший ответ Сообщение было отмечено PolyMoly как решение

Решение

В самом простом случае это массив строк, если взялись делать процедурами.
Создайте процедуру добавления времени в этот массив(TimeAppend) и процедуру проверки(TimeCheck).
0
0 / 0 / 0
Регистрация: 12.08.2020
Сообщений: 6
13.08.2020, 17:44  [ТС] 9
Хорошо, благодарю за помощь.)
0
5000 / 1672 / 409
Регистрация: 25.04.2010
Сообщений: 4,619
Записей в блоге: 2
13.08.2020, 19:07 10
Лучший ответ Сообщение было отмечено PolyMoly как решение

Решение

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

QBasic/QuickBASIC
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
DECLARE FUNCTION CompTimes& (t1 AS STRING, t2 AS STRING)
DECLARE FUNCTION TimeToVal& (t AS STRING)
DECLARE FUNCTION ValToTime$ (v AS LONG)
DECLARE SUB AppendTime (NewTime AS STRING)
DECLARE SUB DisplayTimes ()
DECLARE SUB CheckTimes ()
REDIM SHARED TrainTimes(1 TO 5) AS STRING
DIM SHARED TekIdx AS INTEGER
 
 WIDTH 80, 50
 CLS : LOCATE 5, 5
 
 AppendTime "11:23:31"
 AppendTime "16:32:21"
 AppendTime "13:32:15"
 AppendTime "12:10:03"
 AppendTime "20:42:46"
 
 PRINT "Source times:": LOCATE CSRLIN + 1, 7
 
 DisplayTimes
 
 LOCATE CSRLIN + 1, 5
 PRINT "Sorted times:": LOCATE CSRLIN + 1, 7
 
 CheckTimes
 
SUB AppendTime (NewTime AS STRING)
DIM MaxInMas AS INTEGER
MaxInMas = UBOUND(TrainTimes)
TekIdx = TekIdx + 1
IF TekIdx > MaxInMas THEN
  MaxInMas = MaxInMas + 5
  REDIM TrainTimes(MaxInMas)
END IF
TrainTimes(TekIdx) = NewTime
 
END SUB
 
SUB CheckTimes
DIM Tm(1 TO TekIdx) AS LONG
DIM Diff AS LONG, MaxDiff AS LONG
DIM OldCl AS INTEGER
OldCl = POS(0)
 
   FOR i = 1 TO TekIdx                    ' To digital fmt
      Tm(i) = TimeToVal(TrainTimes(i))
   NEXT
 
   FOR j = TekIdx - 1 TO 1 STEP -1        ' Sort
      FOR i = 1 TO j
         IF Tm(i) > Tm(i + 1) THEN SWAP Tm(i), Tm(j + 1)
      NEXT
   NEXT
  
   FOR i = 1 TO TekIdx                    ' Disp sorted
      LOCATE , OldCl
      PRINT ValToTime$(Tm(i))
   NEXT
 
   Diff = -1  ' for init first            ' Find diff
   FOR i = 1 TO TekIdx - 1
      Diff = Tm(i + 1) - Tm(i)
      IF Diff > MaxDiff THEN MaxDiff = Diff: MaxIdx = i
   NEXT
 
 
   LOCATE CSRLIN + 3, 5                   ' Msg
   PRINT "Maximum time difference between train departures is"; Diff; "seconds"
   LOCATE , 5
   PRINT "and this is times "; ValToTime$(Tm(MaxIdx)); " and "; ValToTime$(Tm(MaxIdx + 1))
END SUB
 
SUB DisplayTimes
DIM OldCl AS INTEGER
OldCl = POS(0)
 
 FOR i = 1 TO TekIdx
    LOCATE , OldCl
    PRINT TrainTimes(i)
 NEXT
 
END SUB
 
FUNCTION TimeToVal& (t AS STRING)
 
  h = VAL(MID$(t, 1, 2))
  m = VAL(MID$(t, 4, 2))
  s = VAL(MID$(t, 7, 2))
 
  TimeToVal = ((3600 * h) + (60 * m) + s)
 
END FUNCTION
 
FUNCTION ValToTime$ (v AS LONG)
  DIM h AS LONG, m AS LONG, s AS LONG
  DIM hs AS STRING, ms AS STRING, ss AS STRING
  h = v \ 3600
  m = (v - (h * 3600)) \ 60
  s = v - (h * 3600) - (m * 60)
  hs = LTRIM$(STR$(h))
  hs = STRING$(2 - LEN(hs), "0") + hs
  ms = LTRIM$(STR$(m))
  ms = STRING$(2 - LEN(ms), "0") + ms
  ss = LTRIM$(STR$(s))
  ss = STRING$(2 - LEN(ss), "0") + ss
  ValToTime$ = hs + ":" + ms + ":" + ss
END FUNCTION
0
0 / 0 / 0
Регистрация: 12.08.2020
Сообщений: 6
13.08.2020, 19:12  [ТС] 11
Ещё раз спасибо. Огромное спасибо, вы мне очень помогли))
0
13.08.2020, 19:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.08.2020, 19:12
Помогаю со студенческими работами здесь

Дан массив А[N]. Определить индекс и значение наибольшего попадающего в интервал (-5,0) элемента.ъ
Работа с файлами в С++ Цель работы: изучение команд и приемов работы с файлами при...

Определить дни наибольшего выполнения плана каждым рабочим и значение наибольшего
Исходные данные: выполнение плана каждым из N рабочих за каждый рабочий день недели, в процентах....

Определить номера всех поездов, отправляющихся после указанного времени и время прибытия заданного поезда
27. Дан файл, содержащий сведения о поездах дальнего следования. Структура записи файла: номер...

Необходимо в ячейку «Q» выводить значение ячейки «N» и значение интервала между ячейками от «O» до «P» и знак %
Необходимо в ячейку «Q» выводить значение ячейки «N» и значение интервала между ячейками от «O» до ...

Дан файл чисел. Определите длину наибольшего интервала возрастания, и среднее арифм-е чисел этого интервала
В общем саму задачу я сделал, а вот запись в файл сделать не могу, точнее не пойму к чему что...

Пусть дан файл целых чисел. Определите длину наибольшего интервала возрастания и среднее арифметическое чисел этого интервала
Пусть дан файл целых чисел. Определите длину наибольшего интервала возрастания и среднее...


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

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

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