Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Кто то работал с массивами?
Кто то работал с массивами?
vladh Дата: Пт, 19.04.2019, 09:55  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 317
Репутация: 9   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Вопрос к знатокам Протона. Кто то работал в нем с массивами? Есть ли сейчас такая возможность? А если есть то где можно о ней что то почитать. Только не надо меня посылать на ...(Гугл). Пожалуйста конкретней постарайтесь быть с ответом, пожалуйста.
P.S. Прошу простить но прям тут же в хелпе нашел то что ищу. Просто давно не сталкивался.
Прошу еще раз меня извинить, но решил развить тему. Какой самый простой способ нахождения максимального или минимального значения в байтовом массиве, составленным из переменных типа word?

Сообщение отредактировал vladh - Пт, 19.04.2019, 10:53
ЯНДЕКС Дата: 19.04.2019
ivan_fd Дата: Пн, 22.04.2019, 10:23  |                                                                                                                Сообщение # 2
Группа: Модераторы
Ранг:  Специалист
Сообщений: 1089
Репутация: 83   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Цитата vladh ()
Какой самый простой способ нахождения максимального или минимального значения в байтовом массиве, составленным из переменных типа word?


Например, можно использовать пузырьковую сортировку.

Declare All_Digital On
Declare Create_Coff = 1

Dim Array[6] As Word
Dim i As Byte
Dim t As Word
Dim SWAP_Flag As Bit

main:'==========================================================================================
Array[0] = 1223
Array[1] = 216
Array[2] = 1
Array[3] = 13345
Array[4] = 4116
Array[5] = 6

GoSub BUBBLE_SORT
GoTo main

;============================
; Пузырьковая сортировка
;============================
BUBBLE_SORT:
Repeat
    SWAP_Flag = 0                                ' очистим флаг указывающий на перемещение в массиве
    i = 0
    Repeat                                            ' повтор¤ем для каждой ячейки в массиве
        If Array > Array[i + 1] Then          ' если значение массива больше следующей ячейки, то перемещаем вверх
            t = Array                        ' перемещаем.....
            Array
= Array[i+1]
            Array[i+1] = t
            SWAP_Flag = 1                        ' ставим флаг, что было перемещение
        EndIf
        Inc i
    Until i = 5 'длина массива - 1
Until SWAP_Flag = 0

i = 0
Return

End


Меня все время преследуют умные мысли...но я быстрее!!!
Сообщение отредактировал ivan_fd - Пн, 22.04.2019, 10:27
vladh Дата: Вт, 23.04.2019, 12:49  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 317
Репутация: 9   ±
Замечания:   ±
На сайте с 15.10.2007

Статус: Offline

Спасибо, Иван за подсказку. Я, правда, почти сразу нашел способ выявления максимального либо минимального значения в массиве.
Например:

Dim m As Byte   ' вспомогательная пер.
Dim imax As Byte   ' переменная c номером позиции искомого                                  ' максимального либо минимального значения
Dim maxl As Word   ' Переменная в которую сохраняется максимальное либо                        ' минимальное зн.
Dim Tok[6] As Word  ' определяем массив из 6 элементов
Tok[0] = 0         ' присваиваем значения элементам массива
Tok[1] = 216
Tok[2] = 1
Tok[3] = 13345
Tok[4] = 4116
Tok[5] = 6
main:           ' Поиск максимального (минимального) значения
maxl = Tok[0]
For m = 1 To 6
If Tok [m]> maxl Then maxl = Tok[m]: imax = m  'заменив > на < получим минимальное зн.
Next

Сообщение отредактировал vladh - Вт, 23.04.2019, 12:57
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Кто то работал с массивами?
  • Страница 1 из 1
  • 1
Поиск: