Как исключить из одномерного массива max и min? - VB

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

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

Из данного массива A(n) исключить максимальный и минимальный элемент Задача элементарная, но я тупо забыл как работать в VB)))

Решение задачи: «Как исключить из одномерного массива max и min?»

textual
Листинг программы
Option Explicit
Declare Function SafeArrayGetDim Lib "oleaut32.dll" (ByRef saArray() As Any) As Long
 
Private Sub Fill_Array(ByRef A() As Long, ByVal Bound As Long, _
    ByVal nFrom As Long, ByVal nTo As Long, _
    ByRef min As Long, ByRef max As Long)
    'Bound 'кол-во эл-тов
    'nFrom 'диапазон - от
    'nTo 'диапазон - до (включительно)
    'min 'буфер для получения мин. числа
    'max 'буфер для получения макс. числа
    Dim n As Long
    ReDim A(Bound)
    min = nFrom: max = nTo
    
    For n = 0 To Bound
        A(n) = Int(Rnd * (nTo - nFrom + 1)) + nFrom
        If A(n) > max Then max = A(n)
        If A(n) < min Then min = A(n)
    Next
End Sub
 
Private Function Del_min_max(ByRef A() As Long, ByVal min As Long, ByVal max As Long)
    Dim B() As Long
    Dim n As Long
    Dim c As Long
    ReDim B(UBound(A))
    
    For n = 0 To UBound(A)
        If A(n) <> max And A(n) <> min Then
            B(c) = A(n)
            c = c + 1
        End If
    Next
    
    If c = 0 Then Erase B() Else ReDim Preserve B(c - 1)
    Del_min_max = B()
End Function
 
Public Sub main()
    Dim A() As Long
    Dim min As Long 'буфер для получения мин. числа
    Dim max As Long 'буфер для получения макс. числа
    Dim n As Long
    
    Call Fill_Array(A(), 20, 0, 9, min, max)
    
    Debug.Print "Исходный массив:"
    For n = 0 To UBound(A)
        Debug.Print "A("; n; ")="; A(n)
    Next
    
    A() = Del_min_max(A(), min, max)
    
    Debug.Print "После удаления:"
    If SafeArrayGetDim(A) <> 0 Then
        For n = 0 To UBound(A)
            Debug.Print "A("; n; ")="; A(n)
        Next
    End If
End Sub

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


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

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

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