Можно ли создать множества? - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д