Можно ли создать множества? - VB

Узнай цену своей работы

Формулировка задачи:

Я подумал. Вот в Паскале есть множества. А чем хуже VB? И придумал. По крайней мере можно создать числовые множества и даже лучше чем на паскале. Суть дела в том, что мы задаем массив. Например A(1 To 10000) 2) в этот массив мы будем помещать натуральные числа, принадлежащие сегменту [1; 10000] 3) принцип следующий: числу N соответствует А(N). Иными словами. Индекс элемента массива равен самому элементу массива N = A(N) !! 4) это значит в массиве-множестве в принципе не будет равных элементов. 5) а как быть например с отрицательными числами? Например дано множество: (-10; 0; 20) Сдвинется индексы для этого множества на постоянное целое число. Например на 20 и множество расположится по индексам 10; 20; 40 Вопросы. А можно ли образовать множества для вещественных чисел? А как поступить с буквами и сочетаниями букв? Что еще можно сказать? Настоящему программисту всегда есть что сказать, если он настоящий программист.

Решение задачи: «Можно ли создать множества?»

textual
Листинг программы
'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
':::         Установить бит в логической шкале              :::
'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Public Sub SetBit(LScale$, N&, B%)
    L& = Len(LScale$)
    '::: Если номер бита слишком велик
    If N& > L& * 8 Then Error 250
    '::: Рассчитаем номер байта шкалы
    NByte& = N& / 8
    If (N& - NByte& * 8) <= 0 Then NByte& = NByte& - 1
    NBit% = N& - NByte& * 8
    NByte& = NByte& + 1
    '::::  Установка нужного бита
    S$ = Mid$(LScale$, NByte&, 1)
    i% = Asc(S$)
    If B% <> 0 Then
       i% = (i% Or 2 ^ (8 - NBit%))
    Else
       i% = (i% And (255 - 2 ^ (8 - NBit%)))
    End If
    S$ = Chr$(i%)
    Mid$(LScale$, NByte&, 1) = S$
End Sub
 
'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
':::            Опросить бит в логической шкале             :::
'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Public Sub GetBit(LScale$, N&, B%)
       L& = Len(LScale$)
       ':::: Если номер бита слишком велик
       If N& > L& * 8 Then Error 250
       ':::: Рассчитаем номер байта шкалы
       NByte& = N& / 8
       If (N& - NByte& * 8) <= 0 Then Decr NByte&
       NBit% = N& - NByte& * 8
       Incr NByte&
       '::::    Чтение нужного бита
       S$ = Mid$(LScale$, NByte&, 1)
       i% = Asc(S$)
       B% = (i% And 2 ^ (8 - NBit%))
       If B% <> 0 Then B% = 1
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.125 из 5
Похожие ответы