purebasic.info

PureBasic forum
Текущее время: Вт фев 25, 2020 3:57 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
СообщениеДобавлено: Пт фев 14, 2020 11:23 am 
Не в сети
студент

Зарегистрирован: Пн окт 21, 2019 2:52 pm
Сообщений: 8
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
Код:
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
 
Structure STR
A.l[10]
EndStructure
NewList B.STR()
 
AddElement(B())
  For x = 0 To 9
    B()\A[x] = Random(9)
  Next x
 
Debug "несорт"
For x = 0 To 9
  Debug B()\A[x]
Next x
 
;SortArray(???, #PB_Sort_Ascending)
;SortStructuredArray(???, #PB_Sort_Ascending, OffsetOf(STR\A), #PB_Sort_Long)
 
Debug "сорт"
For x = 0 To 9
  Debug B()\A[x]
Next x
 
 



P.S. v4.40


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт фев 14, 2020 11:52 am 
Не в сети
профессор

Зарегистрирован: Вт май 13, 2014 4:12 am
Сообщений: 920
Благодарил (а): 100 раз.
Поблагодарили: 31 раз.
Пункты репутации: 5
а так сойдёт?
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    Structure STR
    Array A.l(10)
    EndStructure
    NewList B.STR()
     
    AddElement(B())
      For x = 0 To 9
        B()\A(x) = Random(9)
      Next x
     
    Debug "несорт"
    For x = 0 To 9
      Debug B()\A(x)
    Next x
     
    ;SortArray(???, #PB_Sort_Ascending)
 SortStructuredArray(b()\a(), #PB_Sort_Ascending, OffsetOf(STR\A), #PB_Long)
     
    Debug "сорт"
    For x = 0 To 9
      Debug B()\A(x)
    Next x
 



Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт фев 14, 2020 1:51 pm 
Не в сети
студент

Зарегистрирован: Пн окт 21, 2019 2:52 pm
Сообщений: 8
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.
Пункты репутации: 0
newJS , спасибо! Однако, v4.40 вроде бы не поддерживает объявление динамических массивов в структуре...


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт фев 14, 2020 3:38 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11588
Благодарил (а): 4 раз.
Поблагодарили: 486 раз.
Life Play One писал(а):
Однако, v4.40 вроде бы не поддерживает объявление динамических массивов в структуре
Они появились в 4.50, т. е. в следующей версии. Может стоит обновить PB?

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт фев 14, 2020 4:14 pm 
Не в сети
профессор

Зарегистрирован: Пт фев 20, 2009 12:57 pm
Сообщений: 1799
Откуда: Алматы
Благодарил (а): 18 раз.
Поблагодарили: 50 раз.
Пункты репутации: 5
обновления - это проклятье :) то синтаксис поменялся, это то ладно. может можно исправить... а вот всякие дополнительные библиотеки - могут послать.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт фев 14, 2020 4:15 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6597
Благодарил (а): 32 раз.
Поблагодарили: 228 раз.
Пункты репутации: 59
Life Play One писал(а):
Однако, v4.40 вроде бы не поддерживает...

Встроенная функция сортировки это приятный бонус Пурика. Но ведь существуют куча различных алгоритмов сортировок, которые реализуются непосредственно кодом, типа пузырьковая, быстрая, шейкерная, гномья и т.п.
Знать хотя бы пару способов сортировки это классика программирования!

_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: Пт фев 14, 2020 4:33 pm 
Не в сети
МОДЕРАТОР

Зарегистрирован: Вт дек 05, 2006 8:46 am
Сообщений: 6597
Благодарил (а): 32 раз.
Поблагодарили: 228 раз.
Пункты репутации: 59
Ну вот простейший пример без встроенных функций
Код:
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
 
Structure STR
    Array A.l(10)
    EndStructure
    NewList B.STR()
     
    AddElement(B())
      For x = 0 To 9
        B()\A(x) = Random(9)
      Next x
     
    Debug "несорт"
    For x = 0 To 9
      Debug B()\A(x)
    Next x
     
    ;SortArray(???, #PB_Sort_Ascending)
    ;SortStructuredArray(b()\a(), #PB_Sort_Ascending, OffsetOf(STR\A), #PB_Long)
  len = 10
  done = 0
 
  While done = 0
    done = 1
    For i = 1 To len
      If B()\A(i-1) > B()\A(i)
        done = 0
        Swap B()\A(i-1), B()\A(i)
      EndIf
    Next
    len - 1
  Wend
 
    Debug "сорт"
    For x = 0 To 9
      Debug B()\A(x)
    Next x
 


_________________
read-only ¯\_(ツ)_/¯


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB