fortages
Новичок
- Сообщения
- 81
- Репутация
- 3
Здравствуйте! Помогите, пожалуйста, разобраться...
Возникла проблема с правильностью сортировки, но я не понимаю, из-за чего именно: или из-за Random, или из-за _ArraySort.
Задача следующая: нужно рандомно сгенерировать числа в "формате часов ", то есть 12:10, 00:05, 06:35 и т.д. Затем их нужно упорядочить по возрастанию и результат записать в файл.
Проблема в том, что в "формате часов" сгенерировать не получается: вместо нужного 02:42 получается 2:42, а вместо нужного 03:01 получается вообще 3:1... :stars:
Но помимо этого еще какая-то проблема с сортировкой: часть массива сортируется правильно, а часть как попало. На картинке видно, что 02:42 (которые еще и неправильно записаны) вместо того, чтобы стоять после 1:13, находятся вообще в середине списка, то же самое и с 4:26 и т.д...
Вот код программы:
Из-за чего возникает подобное? Из-за неправильно заданного параметра для Random? Тогда какой же он должен быть? Как это исправить?
Спасибо!
Возникла проблема с правильностью сортировки, но я не понимаю, из-за чего именно: или из-за Random, или из-за _ArraySort.
Задача следующая: нужно рандомно сгенерировать числа в "формате часов ", то есть 12:10, 00:05, 06:35 и т.д. Затем их нужно упорядочить по возрастанию и результат записать в файл.
Проблема в том, что в "формате часов" сгенерировать не получается: вместо нужного 02:42 получается 2:42, а вместо нужного 03:01 получается вообще 3:1... :stars:
Но помимо этого еще какая-то проблема с сортировкой: часть массива сортируется правильно, а часть как попало. На картинке видно, что 02:42 (которые еще и неправильно записаны) вместо того, чтобы стоять после 1:13, находятся вообще в середине списка, то же самое и с 4:26 и т.д...

Вот код программы:
Код:
#include <File.au3>
;-----------------------------------------------------------------
;|
for $i=1 to 24 ;создаем 24 записей ;|
$RandomHour = Random(00, 23, 1) ;|
$RandomMinute = Random(00, 59, 1) ;|
;|
$File = FileOpen ("time.txt",1) ;|
FileWrite ($File, $RandomHour & ":" & $RandomMinute & @CRLF) ;|
FileClose($File) ;|
next ;|
;|
MsgBox(0, "Random Time", "Готово!") ;|
;|
;-----------------------------------------------------------------
;-------- работа с массивом --------------------------------------
Local $TimeRecords
; проверяем на ошибки
If Not _FileReadToArray("time.txt", $TimeRecords) Then
MsgBox(4096, "Ошибка", " Ошибка чтения файла в массив Ошибка = " & @error)
Exit
EndIf
_ArrayDisplay($TimeRecords, "Какой получился массив (перед сортировкой)") ;смотрим, что получилось
_ArraySort($TimeRecords) ;сортируем
_ArrayDisplay($TimeRecords, "Массив после сортировки") ;смотрим, что получилось в итоге
$Sorted = FileOpen ("sorted.txt",1) ; куда сохраняем результат
_FileWriteFromArray($Sorted,$TimeRecords ) ;записываем получившийся массив в файл
Из-за чего возникает подобное? Из-за неправильно заданного параметра для Random? Тогда какой же он должен быть? Как это исправить?
Спасибо!